diff --git a/docs/changelog.md b/docs/changelog.md index cc8adbe42..740ff2ca0 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,20 @@ # Changelog +## 3.24.2 (2025-01-06) + +**🔧 Maintenance** + +- Bump @react-hook/resize-observer from 1.2.6 to 2.0.2 (#1312) +- Serve Assistant font locally (#1320) +- Remove wait-on package (#1322) +- Bump compression from 1.7.4 to 1.7.5 (#1324) + +**🐛 Fixes** + +- Avoid trying to launch Sentry for instances without Sentry DSN key (#1319) +- Render `manifest.json` as JSON file (#1321) +- Define bounds instead of minZoom for `tileLayerOffline` (#1332 and #1333) + ## 3.24.1 (2024-11-27) **🔧 Maintenance** diff --git a/frontend/package.json b/frontend/package.json index c79068af3..2289a8709 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "geotrek-rando-frontend", - "version": "3.24.1", + "version": "3.24.2", "private": true, "scripts": { "debug": "NODE_OPTIONS='--inspect' next ./src", @@ -36,10 +36,11 @@ "dependencies": { "@20tab/react-leaflet-resetview": "^1.1.0", "@hcaptcha/react-hcaptcha": "^1.4.4", + "@juggle/resize-observer": "^3.4.0", "@makina-corpus/rando3d": "^1.3.3", "@radix-ui/react-dialog": "^1.1.1", "@raruto/leaflet-elevation": "1.9.0", - "@react-hook/resize-observer": "^1.2.6", + "@react-hook/resize-observer": "^2.0.2", "@sentry/nextjs": "^8.32.0", "@tanstack/react-query": "^5.51.1", "@tanstack/react-query-devtools": "^5.51.1", @@ -47,7 +48,7 @@ "autoprefixer": "^10.4.14", "axios": "0.25.0", "class-variance-authority": "^0.7.0", - "compression": "^1.7.4", + "compression": "^1.7.5", "cypress": "^13.6.3", "debounce": "^1.2.1", "deepmerge": "^4.3.1", @@ -88,8 +89,7 @@ "tailwind-merge": "^2.5.2", "tailwindcss": "^3.4.15", "tailwindcss-animate": "^1.0.7", - "ts-node": "^10.9.1", - "wait-on": "6.0.0" + "ts-node": "^10.9.1" }, "devDependencies": { "@accessible/accordion": "^2.0.0", diff --git a/frontend/src/components/pages/_app/Root.tsx b/frontend/src/components/pages/_app/Root.tsx index 667126629..cd472aad0 100644 --- a/frontend/src/components/pages/_app/Root.tsx +++ b/frontend/src/components/pages/_app/Root.tsx @@ -1,5 +1,6 @@ import getNextConfig from 'next/config'; import Head from 'next/head'; +import { Assistant } from 'next/font/google'; import { IntlProvider } from 'react-intl'; import { getGlobalConfig } from 'modules/utils/api.config'; import { getDefaultLanguage } from 'modules/header/utills'; @@ -16,6 +17,12 @@ const { publicRuntimeConfig: { locales }, } = getNextConfig(); +const assistant = Assistant({ + weight: ['400', '600', '700'], + subsets: ['latin'], + display: 'swap', +}); + export const Root: React.FC = props => { const router = useRouter(); const language: string = router.locale ?? getDefaultLanguage() ?? 'fr'; @@ -54,6 +61,12 @@ export const Root: React.FC = props => { name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no, user-scalable=no, viewport-fit=cover" /> + + {props.children} diff --git a/frontend/src/hooks/useSize.ts b/frontend/src/hooks/useSize.ts index 6ef45635e..262ccc1df 100644 --- a/frontend/src/hooks/useSize.ts +++ b/frontend/src/hooks/useSize.ts @@ -1,5 +1,6 @@ import { MutableRefObject, RefObject, useState } from 'react'; import useResizeObserver from '@react-hook/resize-observer'; +import { ResizeObserver as ResizeObserverPolyfill } from '@juggle/resize-observer'; import useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'; const useSize = (target: MutableRefObject) => { @@ -9,7 +10,9 @@ const useSize = (target: MutableRefObject) => { setSize(target.current?.getBoundingClientRect() ?? null); }, [target]); - useResizeObserver(target as RefObject, entry => setSize(entry.contentRect ?? null)); + useResizeObserver(target as RefObject, entry => setSize(entry.contentRect ?? null), { + polyfill: ResizeObserverPolyfill, + }); return size; }; diff --git a/frontend/src/instrumentation.js b/frontend/src/instrumentation.ts similarity index 75% rename from frontend/src/instrumentation.js rename to frontend/src/instrumentation.ts index 7b819291d..0f89e71e9 100644 --- a/frontend/src/instrumentation.js +++ b/frontend/src/instrumentation.ts @@ -1,5 +1,3 @@ -import * as Sentry from '@sentry/nextjs'; - export async function register() { if (process.env.NEXT_RUNTIME === 'nodejs') { await import('./sentry.server.config'); diff --git a/frontend/src/pages/_app.tsx b/frontend/src/pages/_app.tsx index b81de304b..2f9768246 100644 --- a/frontend/src/pages/_app.tsx +++ b/frontend/src/pages/_app.tsx @@ -5,7 +5,6 @@ import { HydrationBoundary, QueryClient, QueryClientProvider } from '@tanstack/r import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import { ONE_MINUTE } from 'services/constants/staleTime'; import '../styles/global.css'; -import '../public/fonts.css'; import 'slick-carousel/slick/slick.css'; import 'slick-carousel/slick/slick-theme.css'; import 'orejime/dist/orejime.css'; diff --git a/frontend/src/pages/manifest.json.tsx b/frontend/src/pages/manifest.json.tsx index 39dccd4d7..98ff4a984 100644 --- a/frontend/src/pages/manifest.json.tsx +++ b/frontend/src/pages/manifest.json.tsx @@ -1,11 +1,11 @@ import { NextPageContext } from 'next'; -import { default as getNextConfig } from 'next/config'; +import getNextConfig from 'next/config'; const ManifestJson = (): null => { return null; }; -ManifestJson.getInitialProps = (props: NextPageContext) => { +export const getServerSideProps = (props: NextPageContext) => { const { publicRuntimeConfig: { global, manifest = {} }, } = getNextConfig(); @@ -43,9 +43,12 @@ ManifestJson.getInitialProps = (props: NextPageContext) => { ...defaultManifest, ...manifest, }; - res.setHeader('Content-Type', 'text/plain'); + res.setHeader('Content-Type', 'application/json'); res.write(JSON.stringify(content, null, 2)); res.end(); + return { + props: {}, + }; }; export default ManifestJson; diff --git a/frontend/src/public/fonts.css b/frontend/src/public/fonts.css deleted file mode 100644 index 9e80741e1..000000000 --- a/frontend/src/public/fonts.css +++ /dev/null @@ -1 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Assistant:100,200,300,400,500,600,700,800,900&display=swap'); diff --git a/frontend/src/public/icons/category-events.svg b/frontend/src/public/icons/category-events.svg index abb1592a1..41c4ee1a5 100644 --- a/frontend/src/public/icons/category-events.svg +++ b/frontend/src/public/icons/category-events.svg @@ -1,202 +1,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - + + + + diff --git a/frontend/src/public/icons/category-services.svg b/frontend/src/public/icons/category-services.svg index d9673bbfb..a2a1c2ec7 100644 --- a/frontend/src/public/icons/category-services.svg +++ b/frontend/src/public/icons/category-services.svg @@ -1,239 +1,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - + + + + diff --git a/frontend/src/public/icons/practice-outdoor.svg b/frontend/src/public/icons/practice-outdoor.svg index 59f5ce708..89660376d 100644 --- a/frontend/src/public/icons/practice-outdoor.svg +++ b/frontend/src/public/icons/practice-outdoor.svg @@ -1,206 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - + + diff --git a/frontend/src/public/icons/practice-pedestrian-old.svg b/frontend/src/public/icons/practice-pedestrian-old.svg deleted file mode 100644 index a90ec78c2..000000000 --- a/frontend/src/public/icons/practice-pedestrian-old.svg +++ /dev/null @@ -1,27 +0,0 @@ -image/svg+xml - - - - - - - - - diff --git a/frontend/src/public/icons/practice-pedestrian-v1.svg b/frontend/src/public/icons/practice-pedestrian-v1.svg deleted file mode 100644 index 271889763..000000000 --- a/frontend/src/public/icons/practice-pedestrian-v1.svg +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/src/public/icons/practice-pedestrian.svg b/frontend/src/public/icons/practice-pedestrian.svg index 3a9160d35..af5e8f17c 100644 --- a/frontend/src/public/icons/practice-pedestrian.svg +++ b/frontend/src/public/icons/practice-pedestrian.svg @@ -1,70 +1,6 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - + + + + - diff --git a/frontend/src/public/icons/practice-trek.svg b/frontend/src/public/icons/practice-trek.svg index 4984eb81d..0d0773825 100644 --- a/frontend/src/public/icons/practice-trek.svg +++ b/frontend/src/public/icons/practice-trek.svg @@ -1,12 +1,3 @@ - - - \ No newline at end of file + + + diff --git a/frontend/src/sentry.client.config.js b/frontend/src/sentry.client.config.ts similarity index 86% rename from frontend/src/sentry.client.config.js rename to frontend/src/sentry.client.config.ts index 2a467c9b8..c27c8deb2 100644 --- a/frontend/src/sentry.client.config.js +++ b/frontend/src/sentry.client.config.ts @@ -9,7 +9,7 @@ const sentryOptions = { maxBreadcrumbs: 50, attachStacktrace: true, integrations: [Sentry.replayIntegration()], -}; +} as Sentry.BrowserOptions; // Development & tests setup if (process.env.NODE_ENV !== 'production') { @@ -17,4 +17,6 @@ if (process.env.NODE_ENV !== 'production') { sentryOptions.beforeSend = () => null; } -Sentry.init(sentryOptions); +if (SENTRY_DSN) { + Sentry.init(sentryOptions); +} diff --git a/frontend/src/sentry.server.config.js b/frontend/src/sentry.server.config.ts similarity index 85% rename from frontend/src/sentry.server.config.js rename to frontend/src/sentry.server.config.ts index 496685cf4..075001de0 100644 --- a/frontend/src/sentry.server.config.js +++ b/frontend/src/sentry.server.config.ts @@ -8,7 +8,7 @@ const sentryOptions = { environment: process.env.ENVIRONMENT, maxBreadcrumbs: 50, attachStacktrace: true, -}; +} as Sentry.NodeOptions; // Development & tests setup if (process.env.NODE_ENV !== 'production') { @@ -16,4 +16,6 @@ if (process.env.NODE_ENV !== 'production') { sentryOptions.beforeSend = () => null; } -Sentry.init(sentryOptions); +if (SENTRY_DSN) { + Sentry.init(sentryOptions); +} diff --git a/frontend/src/services/offline/injectOfflineMode.ts b/frontend/src/services/offline/injectOfflineMode.ts index d33d7403a..469b5fc39 100644 --- a/frontend/src/services/offline/injectOfflineMode.ts +++ b/frontend/src/services/offline/injectOfflineMode.ts @@ -1,4 +1,4 @@ -import L, { LatLngBoundsExpression, Layer, Map } from 'leaflet'; +import L, { LatLngBoundsExpression, LatLngExpression, Layer, Map } from 'leaflet'; import CacheManager from 'services/offline/CacheManager'; import { getMapConfig } from 'components/Map/config'; @@ -6,8 +6,8 @@ import { ControlSaveTiles, getStorageInfo, getStoredTilesAsJson, - savetiles as Lsavetiles, tileLayerOffline as LtileLayerOffline, + savetiles, TileLayerOffline, } from 'leaflet.offline'; @@ -16,20 +16,18 @@ type EventStorageSize = TileLayerOffline & { }; const injectOfflineMode = (map: Map, id: number, bounds: LatLngBoundsExpression) => { - const mapConfig = getMapConfig(); - - const { mapOfflineLayer, mapClassicLayers, zoomAvailableOffline } = mapConfig; + const { mapOfflineLayer, mapClassicLayers, zoomAvailableOffline } = getMapConfig(); const tileLayerOffline = LtileLayerOffline(`${mapOfflineLayer.url}?${id}`, { attribution: mapOfflineLayer?.options?.attribution, subdomains: 'abc', - minZoom: Math.min(...(zoomAvailableOffline ?? [])), }); tileLayerOffline.addTo(map); - const controlInstance: ControlSaveTiles = Lsavetiles(tileLayerOffline, { - zoomlevels: mapConfig.zoomAvailableOffline, + const controlInstance: ControlSaveTiles = savetiles(tileLayerOffline, { + zoomlevels: zoomAvailableOffline, + bounds: bounds ? L.latLngBounds(bounds as [LatLngExpression, LatLngExpression]) : null, confirm(_layer: Layer, successCallback: () => void) { successCallback(); }, diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index 2e4900c7d..96f0d4568 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -8,7 +8,17 @@ module.exports = { desktop: '1024px', }, fontFamily: { - main: `'Assistant', 'Helvetica', 'Arial', sans-serif`, + main: [ + 'var(--font-assistant)', + '-apple-system', + 'BlinkMacSystemFont', + 'Segoe UI', + 'Roboto', + 'Helvetica Neue', + 'ubuntu', + 'Arial', + 'sans-serif', + ], code: 'Monospace', }, boxShadow: { diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 2f77707b8..49532e4e7 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1808,18 +1808,6 @@ intl-messageformat "10.2.1" tslib "2.4.0" -"@hapi/hoek@^9.0.0": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.0.4.tgz#e80ad4e8e8d2adc6c77d985f698447e8628b6010" - integrity sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw== - -"@hapi/topo@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" - integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hcaptcha/react-hcaptcha@^1.4.4": version "1.4.4" resolved "https://registry.yarnpkg.com/@hcaptcha/react-hcaptcha/-/react-hcaptcha-1.4.4.tgz#529c55369160995115735b5fe5453daef4670f04" @@ -2279,7 +2267,7 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@juggle/resize-observer@^3.3.1": +"@juggle/resize-observer@^3.4.0": version "3.4.0" resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== @@ -2848,12 +2836,11 @@ resolved "https://registry.yarnpkg.com/@react-hook/passive-layout-effect/-/passive-layout-effect-1.2.1.tgz#c06dac2d011f36d61259aa1c6df4f0d5e28bc55e" integrity sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg== -"@react-hook/resize-observer@^1.2.6": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@react-hook/resize-observer/-/resize-observer-1.2.6.tgz#9a8cf4c5abb09becd60d1d65f6bf10eec211e291" - integrity sha512-DlBXtLSW0DqYYTW3Ft1/GQFZlTdKY5VAFIC4+km6IK5NiPPDFchGbEJm1j6pSgMqPRHbUQgHJX7RaR76ic1LWA== +"@react-hook/resize-observer@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@react-hook/resize-observer/-/resize-observer-2.0.2.tgz#f49fe4e6b9de86c583d136df7fae430684528092" + integrity sha512-tzKKzxNpfE5TWmxuv+5Ae3IF58n0FQgQaWJmcbYkjXTRZATXxClnTprQ2uuYygYTpu1pqbBskpwMpj6jpT1djA== dependencies: - "@juggle/resize-observer" "^3.3.1" "@react-hook/latest" "^1.0.2" "@react-hook/passive-layout-effect" "^1.2.0" @@ -3169,23 +3156,6 @@ unplugin "1.0.1" uuid "^9.0.0" -"@sideway/address@^4.1.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.2.tgz#811b84333a335739d3969cfc434736268170cad1" - integrity sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@sinclair/typebox@^0.24.1": version "0.24.44" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.44.tgz#0a0aa3bf4a155a678418527342a3ee84bd8caa5c" @@ -4443,13 +4413,6 @@ axios@0.25.0: dependencies: follow-redirects "^1.14.7" -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - axobject-query@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" @@ -4772,6 +4735,11 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + cachedir@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -5122,14 +5090,14 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compressible@~2.0.16: +compressible@~2.0.16, compressible@~2.0.18: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" -compression@1.7.4, compression@^1.7.4: +compression@1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== @@ -5142,6 +5110,19 @@ compression@1.7.4, compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" +compression@^1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.5.tgz#fdd256c0a642e39e314c478f6c2cd654edd74c93" + integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + negotiator "~0.6.4" + on-headers "~1.0.2" + safe-buffer "5.2.1" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -5422,48 +5403,20 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "^2.1.1" + ms "^2.1.3" -debug@^3.2.7: +debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^4.3.5: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -6621,11 +6574,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== -follow-redirects@^1.14.0: - version "1.14.4" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" - integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g== - follow-redirects@^1.14.7: version "1.14.7" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" @@ -8281,17 +8229,6 @@ jiti@^1.21.6: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== -joi@^17.4.0: - version "17.4.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" - integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.0" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -9027,7 +8964,7 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.2, ms@^2.1.1: +ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -9066,6 +9003,11 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + next-compose-plugins@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/next-compose-plugins/-/next-compose-plugins-2.2.1.tgz#020fc53f275a7e719d62521bef4300fbb6fde5ab" @@ -10609,13 +10551,6 @@ run-parallel@^1.1.9: resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== -rxjs@^7.1.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.3.0.tgz#39fe4f3461dc1e50be1475b2b85a0a88c1e938c6" - integrity sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw== - dependencies: - tslib "~2.1.0" - rxjs@^7.5.1: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" @@ -10638,7 +10573,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -11133,7 +11068,8 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.2.3: + name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11160,15 +11096,6 @@ string-width@^4.2.2: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -11282,7 +11209,8 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1: + name strip-ansi-cjs version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11296,13 +11224,6 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -11867,11 +11788,6 @@ tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -12314,17 +12230,6 @@ w3c-xmlserializer@^3.0.0: dependencies: xml-name-validator "^4.0.0" -wait-on@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" - integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== - dependencies: - axios "^0.21.1" - joi "^17.4.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.1.0" - walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -12679,7 +12584,8 @@ workbox-window@6.5.4, workbox-window@^6.5.4: "@types/trusted-types" "^2.0.2" workbox-core "6.5.4" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + name wrap-ansi-cjs version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -12697,15 +12603,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"