From e500d1a6e71c4fb8e1a95c7e3867cdfd995cd7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?= Date: Mon, 12 Dec 2022 10:47:30 +0100 Subject: [PATCH] feat: custom sw without injection point (#390) Co-authored-by: Anthony Fu --- .../vanilla-ts-dev-options/src/vite-env.ts | 1 + examples/vanilla-ts-no-ip/README.md | 9 + examples/vanilla-ts-no-ip/index.html | 22 + examples/vanilla-ts-no-ip/package.json | 24 + examples/vanilla-ts-no-ip/public/favicon.svg | 130 ++++ .../vanilla-ts-no-ip/public/pwa-192x192.png | Bin 0 -> 15230 bytes .../vanilla-ts-no-ip/public/pwa-512x512.png | Bin 0 -> 55738 bytes examples/vanilla-ts-no-ip/src/custom-sw.ts | 66 ++ examples/vanilla-ts-no-ip/src/main.ts | 33 + examples/vanilla-ts-no-ip/src/vite-env.ts | 5 + examples/vanilla-ts-no-ip/tsconfig.json | 21 + examples/vanilla-ts-no-ip/vite.config.ts | 53 ++ pnpm-lock.yaml | 594 +++++------------- src/modules.ts | 4 + 14 files changed, 523 insertions(+), 439 deletions(-) create mode 100644 examples/vanilla-ts-no-ip/README.md create mode 100644 examples/vanilla-ts-no-ip/index.html create mode 100644 examples/vanilla-ts-no-ip/package.json create mode 100644 examples/vanilla-ts-no-ip/public/favicon.svg create mode 100644 examples/vanilla-ts-no-ip/public/pwa-192x192.png create mode 100644 examples/vanilla-ts-no-ip/public/pwa-512x512.png create mode 100644 examples/vanilla-ts-no-ip/src/custom-sw.ts create mode 100644 examples/vanilla-ts-no-ip/src/main.ts create mode 100644 examples/vanilla-ts-no-ip/src/vite-env.ts create mode 100644 examples/vanilla-ts-no-ip/tsconfig.json create mode 100644 examples/vanilla-ts-no-ip/vite.config.ts diff --git a/examples/vanilla-ts-dev-options/src/vite-env.ts b/examples/vanilla-ts-dev-options/src/vite-env.ts index 64251fba..c9e0f2be 100644 --- a/examples/vanilla-ts-dev-options/src/vite-env.ts +++ b/examples/vanilla-ts-dev-options/src/vite-env.ts @@ -1,2 +1,3 @@ /// /// +/// diff --git a/examples/vanilla-ts-no-ip/README.md b/examples/vanilla-ts-no-ip/README.md new file mode 100644 index 00000000..3a12543b --- /dev/null +++ b/examples/vanilla-ts-no-ip/README.md @@ -0,0 +1,9 @@ +# Example + +This example relies on [https-localhost](https://github.com/daquinoaldo/https-localhost) to serve the dist files on https://localhost/. Please refer to it's docs for the steps to setup your local environment. + +```bash +npm run start-sw +``` + +Open up https://localhost/ to check the PWA is working. diff --git a/examples/vanilla-ts-no-ip/index.html b/examples/vanilla-ts-no-ip/index.html new file mode 100644 index 00000000..3b056a5b --- /dev/null +++ b/examples/vanilla-ts-no-ip/index.html @@ -0,0 +1,22 @@ + + + + + + + + + + + Vite App + + + +
+ + + diff --git a/examples/vanilla-ts-no-ip/package.json b/examples/vanilla-ts-no-ip/package.json new file mode 100644 index 00000000..622f6cff --- /dev/null +++ b/examples/vanilla-ts-no-ip/package.json @@ -0,0 +1,24 @@ +{ + "name": "vanilla-ts-no-ip", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "rimraf dev-dist && cross-env DEBUG=vite-plugin-pwa:* SW_DEV=true vite --force", + "run-build-sw": "cross-env DEBUG=vite-plugin-pwa:* BASE_URL=/ SOURCE_MAP=true vite build", + "start-sw": "npm run run-build-sw && npm run serve", + "serve": "serve dist" + }, + "devDependencies": { + "cross-env": "^7.0.3", + "rimraf": "^3.0.2", + "typescript": "^4.8.2", + "vite": "^3.1.0", + "vite-plugin-pwa": "workspace:*", + "workbox-cacheable-response": "^6.5.4", + "workbox-core": "^6.5.4", + "workbox-expiration": "^6.5.4", + "workbox-routing": "^6.5.4", + "workbox-strategies": "^6.5.4", + "workbox-window": "^6.5.4" + } +} diff --git a/examples/vanilla-ts-no-ip/public/favicon.svg b/examples/vanilla-ts-no-ip/public/favicon.svg new file mode 100644 index 00000000..733f4fb4 --- /dev/null +++ b/examples/vanilla-ts-no-ip/public/favicon.svg @@ -0,0 +1,130 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/vanilla-ts-no-ip/public/pwa-192x192.png b/examples/vanilla-ts-no-ip/public/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3ee45e5b7b6e74a9fcaa9b610caac5161be424 GIT binary patch literal 15230 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%0DtiI=f!M=*+^j2wN{nn;? z-#tp_A*1hMW$s}uXz6DCo&dNwxHwrkcv(4lwK@3&x!zAM77h+U4i4)bpR)f2;OJ~+ zZ{z!a1K{>R3Eu(q{IvBwG|jy!UEG{)>>aErJ$zlPDeYZ6ECB$Yyqzl$lB+HwS07!$%W{HYJgQJv+3&f$6hVTqn0cpNzQ;sjsj}A@@k`5w{L*$DT*#JibSRPlB Syy@>G017gy()E(ykpBVD1`M?T literal 0 HcmV?d00001 diff --git a/examples/vanilla-ts-no-ip/public/pwa-512x512.png b/examples/vanilla-ts-no-ip/public/pwa-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..200cb73a0b0378984fb76dad6172f0fbb6138a5f GIT binary patch literal 55738 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 XnbvRrp3EEI6CiC(eT}kvc2WNWzs1*! literal 0 HcmV?d00001 diff --git a/examples/vanilla-ts-no-ip/src/custom-sw.ts b/examples/vanilla-ts-no-ip/src/custom-sw.ts new file mode 100644 index 00000000..7e7220b1 --- /dev/null +++ b/examples/vanilla-ts-no-ip/src/custom-sw.ts @@ -0,0 +1,66 @@ +import { clientsClaim } from 'workbox-core' +import { registerRoute } from 'workbox-routing' +import { CacheFirst, NetworkFirst, StaleWhileRevalidate } from 'workbox-strategies' +import { CacheableResponsePlugin } from 'workbox-cacheable-response' +import { ExpirationPlugin } from 'workbox-expiration' + +declare let self: ServiceWorkerGlobalScope + +self.skipWaiting() +clientsClaim() + +if (import.meta.env.DEV) { + // Avoid caching on dev: force always go to the server + registerRoute( + () => true, + new NetworkFirst({ + cacheName: 'all-dev', + plugins: [ + new CacheableResponsePlugin({ statuses: [-1] }), + ], + }), + ) +} + +if (import.meta.env.PROD) { + // Cache page navigations (html) with a Network First strategy + registerRoute( + ({ request }) => { + return request.mode === 'navigate' + }, + new NetworkFirst({ + cacheName: 'pages', + plugins: [ + new CacheableResponsePlugin({ statuses: [200] }), + ], + }), + ) + + // Cache CSS, JS, and Web Worker requests with a Stale While Revalidate strategy + registerRoute( + ({ request }) => + request.destination === 'style' + || request.destination === 'manifest' + || request.destination === 'script' + || request.destination === 'worker', + new StaleWhileRevalidate({ + cacheName: 'assets', + plugins: [ + new CacheableResponsePlugin({ statuses: [200] }), + ], + }), + ) + + // Cache images with a Cache First strategy + registerRoute( + ({ request }) => request.destination === 'image', + new CacheFirst({ + cacheName: 'images', + plugins: [ + new CacheableResponsePlugin({ statuses: [200] }), + // 50 entries max, 30 days max + new ExpirationPlugin({ maxEntries: 50, maxAgeSeconds: 60 * 60 * 24 * 30 }), + ], + }), + ) +} diff --git a/examples/vanilla-ts-no-ip/src/main.ts b/examples/vanilla-ts-no-ip/src/main.ts new file mode 100644 index 00000000..ca74af40 --- /dev/null +++ b/examples/vanilla-ts-no-ip/src/main.ts @@ -0,0 +1,33 @@ +import { pwaInfo } from 'virtual:pwa-info' +import { registerSW } from 'virtual:pwa-register' + +const date = __DATE__ + +// eslint-disable-next-line no-console +console.log(pwaInfo) + +const app = document.querySelector('#app')! + +app.innerHTML = ` +
+ PWA Logo +

Vite + TypeScript

+

Testing SW without Injection Point (self.__WB_MANIFEST)

+
+

${date}

+
+
+` + +registerSW({ + immediate: true, + onNeedRefresh() { + // eslint-disable-next-line no-console + console.log('onNeedRefresh message should not appear') + }, + onOfflineReady() { + // eslint-disable-next-line no-console + console.log('onOfflineReady message should not appear') + }, +}) + diff --git a/examples/vanilla-ts-no-ip/src/vite-env.ts b/examples/vanilla-ts-no-ip/src/vite-env.ts new file mode 100644 index 00000000..b005af92 --- /dev/null +++ b/examples/vanilla-ts-no-ip/src/vite-env.ts @@ -0,0 +1,5 @@ +/// +/// +/// + +declare const __DATE__: string diff --git a/examples/vanilla-ts-no-ip/tsconfig.json b/examples/vanilla-ts-no-ip/tsconfig.json new file mode 100644 index 00000000..46b3edfc --- /dev/null +++ b/examples/vanilla-ts-no-ip/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM", "WebWorker"], + "moduleResolution": "Node", + "strict": true, + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "skipLibCheck": true, + "types": ["vite-plugin-pwa", "vite-plugin-pwa/client", "vite-plugin-pwa/info"] + }, + "include": ["src/**/*.ts"] +} diff --git a/examples/vanilla-ts-no-ip/vite.config.ts b/examples/vanilla-ts-no-ip/vite.config.ts new file mode 100644 index 00000000..0c193514 --- /dev/null +++ b/examples/vanilla-ts-no-ip/vite.config.ts @@ -0,0 +1,53 @@ +import { defineConfig } from 'vite' +import { VitePWA } from 'vite-plugin-pwa' + +export default defineConfig({ + logLevel: 'info', + define: { + __DATE__: `'${new Date().toISOString()}'`, + }, + build: { + sourcemap: process.env.SOURCE_MAP === 'true', + }, + plugins: [ + VitePWA({ + mode: 'development', + base: '/', + strategies: 'injectManifest', + registerType: 'autoUpdate', + includeAssets: ['favicon.svg'], + filename: 'custom-sw.ts', + srcDir: 'src', + manifest: { + name: 'PWA Router', + short_name: 'PWA Router', + theme_color: '#ffffff', + icons: [ + { + src: 'pwa-192x192.png', // <== don't add slash, for testing + sizes: '192x192', + type: 'image/png', + }, + { + src: '/pwa-512x512.png', // <== don't remove slash, for testing + sizes: '512x512', + type: 'image/png', + }, + { + src: 'pwa-512x512.png', // <== don't add slash, for testing + sizes: '512x512', + type: 'image/png', + purpose: 'any maskable', + }, + ], + }, + injectManifest: { + injectionPoint: undefined, + }, + devOptions: { + enabled: process.env.SW_DEV === 'true', + type: 'module', + }, + }), + ], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da7536fc..35367a32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,18 +32,18 @@ importers: workbox-build: ^6.5.4 workbox-window: ^6.5.4 dependencies: - '@rollup/plugin-replace': 5.0.1_rollup@3.7.2 + '@rollup/plugin-replace': 5.0.1_rollup@3.7.3 debug: 4.3.4 fast-glob: 3.2.12 pretty-bytes: 6.0.0 - rollup: 3.7.2 + rollup: 3.7.3 workbox-build: 6.5.4 workbox-window: 6.5.4 devDependencies: '@antfu/eslint-config': 0.33.1_ha6vam6werchizxrnqvarmz2zu '@antfu/ni': 0.18.8 '@types/debug': 4.1.7 - '@types/node': 18.11.12 + '@types/node': 18.11.13 '@types/prompts': 2.4.2 '@types/react': 18.0.26 '@types/workbox-build': 5.0.1 @@ -58,7 +58,7 @@ importers: svelte: 3.54.0 tsup: 6.2.3_typescript@4.9.4 typescript: 4.9.4 - vite: 4.0.0_@types+node@18.11.12 + vite: 4.0.0_@types+node@18.11.13 vue: 3.2.45 docs: @@ -236,7 +236,7 @@ importers: devDependencies: '@rollup/plugin-replace': 5.0.1 '@roxi/routify': 2.18.8 - '@sveltejs/vite-plugin-svelte': 2.0.0_svelte@3.54.0+vite@4.0.0 + '@sveltejs/vite-plugin-svelte': 2.0.1_svelte@3.54.0+vite@4.0.0 '@tsconfig/svelte': 3.0.0 cross-env: 7.0.3 eslint: 8.29.0 @@ -276,9 +276,9 @@ importers: workbox-precaching: ^6.5.3 workbox-routing: ^6.5.3 devDependencies: - '@rollup/plugin-replace': 4.0.0_rollup@2.79.1 - '@sveltejs/adapter-static': 1.0.0-next.49 - '@sveltejs/kit': 1.0.0-next.581_svelte@3.50.0+vite@4.0.0 + '@rollup/plugin-replace': 4.0.0_rollup@2.79.0 + '@sveltejs/adapter-static': 1.0.0-next.34 + '@sveltejs/kit': 1.0.0-next.582_svelte@3.50.0+vite@4.0.0 '@typescript-eslint/eslint-plugin': 5.36.2_iurrlxgqcgk5svigzxakafpeuu '@typescript-eslint/parser': 5.36.2_yqf6kl63nyoq5megxukfnom5rm cross-env: 7.0.3 @@ -311,6 +311,32 @@ importers: vite: 4.0.0 vite-plugin-pwa: link:../.. + examples/vanilla-ts-no-ip: + specifiers: + cross-env: ^7.0.3 + rimraf: ^3.0.2 + typescript: ^4.8.2 + vite: ^3.1.0 + vite-plugin-pwa: workspace:* + workbox-cacheable-response: ^6.5.4 + workbox-core: ^6.5.4 + workbox-expiration: ^6.5.4 + workbox-routing: ^6.5.4 + workbox-strategies: ^6.5.4 + workbox-window: ^6.5.4 + devDependencies: + cross-env: 7.0.3 + rimraf: 3.0.2 + typescript: 4.8.2 + vite: 3.1.0 + vite-plugin-pwa: link:../.. + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + workbox-window: 6.5.4 + examples/vue-basic-cdn: specifiers: '@rollup/plugin-replace': ^5.0.1 @@ -615,11 +641,11 @@ packages: /@babel/compat-data/7.19.0: resolution: {integrity: sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==} engines: {node: '>=6.9.0'} + dev: false /@babel/compat-data/7.20.5: resolution: {integrity: sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==} engines: {node: '>=6.9.0'} - dev: true /@babel/core/7.19.0: resolution: {integrity: sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==} @@ -627,14 +653,14 @@ packages: dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.0 - '@babel/helper-compilation-targets': 7.19.0_@babel+core@7.19.0 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helpers': 7.19.0 - '@babel/parser': 7.19.0 + '@babel/generator': 7.20.5 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.0 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helpers': 7.20.6 + '@babel/parser': 7.20.5 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.0 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.5 + '@babel/types': 7.20.5 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -666,14 +692,6 @@ packages: - supports-color dev: true - /@babel/generator/7.19.0: - resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - /@babel/generator/7.20.5: resolution: {integrity: sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==} engines: {node: '>=6.9.0'} @@ -681,29 +699,28 @@ packages: '@babel/types': 7.20.5 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - dev: true /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 dev: false - /@babel/helper-compilation-targets/7.19.0_@babel+core@7.19.0: - resolution: {integrity: sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==} + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.19.0: + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.19.0 + '@babel/compat-data': 7.20.5 '@babel/core': 7.19.0 '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.3 @@ -775,7 +792,7 @@ packages: '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.19.0 - '@babel/helper-compilation-targets': 7.19.0_@babel+core@7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.0 '@babel/helper-plugin-utils': 7.19.0 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -793,7 +810,7 @@ packages: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 dev: false /@babel/helper-function-name/7.19.0: @@ -801,19 +818,19 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 /@babel/helper-member-expression-to-functions/7.18.9: resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 /@babel/helper-module-imports/7.16.0: resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==} @@ -826,22 +843,7 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 - - /@babel/helper-module-transforms/7.19.0: - resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.18.6 - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.0 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.20.5 /@babel/helper-module-transforms/7.20.2: resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} @@ -857,13 +859,12 @@ packages: '@babel/types': 7.20.5 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-optimise-call-expression/7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 /@babel/helper-plugin-utils/7.19.0: resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} @@ -879,7 +880,7 @@ packages: '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-wrap-function': 7.19.0 - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 transitivePeerDependencies: - supports-color dev: false @@ -891,49 +892,39 @@ packages: '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-member-expression-to-functions': 7.18.9 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.19.0 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.5 + '@babel/types': 7.20.5 transitivePeerDependencies: - supports-color - /@babel/helper-simple-access/7.18.6: - resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - /@babel/helper-simple-access/7.20.2: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.5 - dev: true /@babel/helper-skip-transparent-expression-wrappers/7.18.9: resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 dev: false /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 /@babel/helper-string-parser/7.18.10: resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.18.6: - resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} - engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} @@ -948,22 +939,12 @@ packages: dependencies: '@babel/helper-function-name': 7.19.0 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.0 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.5 + '@babel/types': 7.20.5 transitivePeerDependencies: - supports-color dev: false - /@babel/helpers/7.19.0: - resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.0 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - /@babel/helpers/7.20.6: resolution: {integrity: sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==} engines: {node: '>=6.9.0'} @@ -973,13 +954,12 @@ packages: '@babel/types': 7.20.5 transitivePeerDependencies: - supports-color - dev: true /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 @@ -988,7 +968,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 /@babel/parser/7.20.5: resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==} @@ -1133,9 +1113,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.0 + '@babel/compat-data': 7.20.5 '@babel/core': 7.19.0 - '@babel/helper-compilation-targets': 7.19.0_@babel+core@7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.0 '@babel/helper-plugin-utils': 7.19.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.19.0 '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.19.0 @@ -1414,7 +1394,7 @@ packages: dependencies: '@babel/core': 7.19.0 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.19.0_@babel+core@7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.0 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-optimise-call-expression': 7.18.6 @@ -1495,7 +1475,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.0 - '@babel/helper-compilation-targets': 7.19.0_@babel+core@7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.0 '@babel/helper-function-name': 7.19.0 '@babel/helper-plugin-utils': 7.19.0 dev: false @@ -1527,7 +1507,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.0 - '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-module-transforms': 7.20.2 '@babel/helper-plugin-utils': 7.19.0 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: @@ -1541,9 +1521,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.0 - '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-module-transforms': 7.20.2 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-simple-access': 7.18.6 + '@babel/helper-simple-access': 7.20.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -1557,9 +1537,9 @@ packages: dependencies: '@babel/core': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-module-transforms': 7.20.2 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-identifier': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -1572,7 +1552,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.0 - '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-module-transforms': 7.20.2 '@babel/helper-plugin-utils': 7.19.0 transitivePeerDependencies: - supports-color @@ -1791,7 +1771,7 @@ packages: dependencies: '@babel/compat-data': 7.19.0 '@babel/core': 7.19.0 - '@babel/helper-compilation-targets': 7.19.0_@babel+core@7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.0 '@babel/helper-plugin-utils': 7.19.0 '@babel/helper-validator-option': 7.18.6 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.19.0 @@ -1859,7 +1839,7 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.19.0 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.19.0 '@babel/preset-modules': 0.1.5_@babel+core@7.19.0 - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 babel-plugin-polyfill-corejs2: 0.3.2_@babel+core@7.19.0 babel-plugin-polyfill-corejs3: 0.5.3_@babel+core@7.19.0 babel-plugin-polyfill-regenerator: 0.4.0_@babel+core@7.19.0 @@ -1878,7 +1858,7 @@ packages: '@babel/helper-plugin-utils': 7.19.0 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.19.0 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.19.0 - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 esutils: 2.0.3 dev: false @@ -1908,25 +1888,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.19.0 - '@babel/types': 7.19.0 - - /@babel/traverse/7.19.0: - resolution: {integrity: sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.0 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.19.0 - '@babel/types': 7.19.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/parser': 7.20.5 + '@babel/types': 7.20.5 /@babel/traverse/7.20.5: resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==} @@ -1944,15 +1907,15 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/types/7.19.0: resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.18.10 - '@babel/helper-validator-identifier': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + dev: true /@babel/types/7.20.5: resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==} @@ -2010,7 +1973,7 @@ packages: /@esbuild-kit/core-utils/2.3.0: resolution: {integrity: sha512-JL73zt/LN/qqziHuod4/bM2xBNNofDZu1cbwT6KIn6B11lA4cgDXkoSHOfNCbZMZOnh0Aqf0vW/gNQC+Z18hKQ==} dependencies: - esbuild: 0.15.13 + esbuild: 0.15.7 source-map-support: 0.5.21 dev: true @@ -2021,15 +1984,6 @@ packages: get-tsconfig: 4.2.0 dev: true - /@esbuild/android-arm/0.15.13: - resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm/0.16.4: resolution: {integrity: sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw==} engines: {node: '>=12'} @@ -2120,15 +2074,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.13: - resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64/0.15.7: resolution: {integrity: sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==} engines: {node: '>=12'} @@ -2416,7 +2361,7 @@ packages: '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2_@babel+core@7.20.5 debug: 4.3.4 - kolorist: 1.5.1 + kolorist: 1.6.0 resolve: 1.22.1 vite: 3.1.0 transitivePeerDependencies: @@ -2462,7 +2407,7 @@ packages: engines: {node: '>=14'} dev: false - /@rollup/plugin-babel/5.3.1_loko3dyoqyfrad2b2tv6icqcai: + /@rollup/plugin-babel/5.3.1_b6woseefyuugm6lsnk4tw7iz2e: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -2475,43 +2420,43 @@ packages: dependencies: '@babel/core': 7.19.0 '@babel/helper-module-imports': 7.18.6 - '@rollup/pluginutils': 3.1.0_rollup@2.79.1 - rollup: 2.79.1 + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 + rollup: 2.79.0 dev: false - /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.1: + /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.0: resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 '@types/resolve': 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.22.1 - rollup: 2.79.1 + rollup: 2.79.0 dev: false - /@rollup/plugin-replace/2.4.2_rollup@2.79.1: + /@rollup/plugin-replace/2.4.2_rollup@2.79.0: resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 magic-string: 0.25.9 - rollup: 2.79.1 + rollup: 2.79.0 dev: false - /@rollup/plugin-replace/4.0.0_rollup@2.79.1: + /@rollup/plugin-replace/4.0.0_rollup@2.79.0: resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 magic-string: 0.25.9 - rollup: 2.79.1 + rollup: 2.79.0 dev: true /@rollup/plugin-replace/5.0.1: @@ -2527,7 +2472,7 @@ packages: magic-string: 0.26.7 dev: true - /@rollup/plugin-replace/5.0.1_rollup@3.7.2: + /@rollup/plugin-replace/5.0.1_rollup@3.7.3: resolution: {integrity: sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2536,12 +2481,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.7.2 + '@rollup/pluginutils': 5.0.2_rollup@3.7.3 magic-string: 0.26.7 - rollup: 3.7.2 + rollup: 3.7.3 dev: false - /@rollup/pluginutils/3.1.0_rollup@2.79.1: + /@rollup/pluginutils/3.1.0_rollup@2.79.0: resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -2550,7 +2495,7 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.79.1 + rollup: 2.79.0 /@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -2574,7 +2519,7 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/pluginutils/5.0.2_rollup@3.7.2: + /@rollup/pluginutils/5.0.2_rollup@3.7.3: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2586,7 +2531,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.7.2 + rollup: 3.7.3 dev: false /@roxi/routify/2.18.8: @@ -2632,12 +2577,14 @@ packages: string.prototype.matchall: 4.0.7 dev: false - /@sveltejs/adapter-static/1.0.0-next.49: - resolution: {integrity: sha512-tPMnqzFpFDWbeRsSkTUUIvjSHv66uEilQvk9shupsVRDycBb7ZACEnfA/T1HyEZKaMZYfFafyKb2dCTDGks0nA==} + /@sveltejs/adapter-static/1.0.0-next.34: + resolution: {integrity: sha512-XjuMhemme5z0L/B2nTZpA6k+RJjF+b6L96ts6gIQ6ixiCzJQSbBqJhrrBYBCaeLAKvdUMoGEmX8m862JhKjRFg==} + dependencies: + tiny-glob: 0.2.9 dev: true - /@sveltejs/kit/1.0.0-next.581_svelte@3.50.0+vite@4.0.0: - resolution: {integrity: sha512-BIBJpx4q+MOa1fFuGNhRTIm8wygl8cK6b+Ei/iaG4F1GfqbZkVclrh4p9lGobSXtuXzCBLabe88mvHQ1cd5ZqA==} + /@sveltejs/kit/1.0.0-next.582_svelte@3.50.0+vite@4.0.0: + resolution: {integrity: sha512-Mt/1QcIHiHxrBLH4iV+pgVXDWOvQKX9iDEUwswRfkt6x72HR1FDeVRKFXS5PBFPGRFLejifGJRN383co7xzumA==} engines: {node: '>=16.14'} hasBin: true requiresBuild: true @@ -2645,7 +2592,7 @@ packages: svelte: ^3.54.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.0.0_svelte@3.50.0+vite@4.0.0 + '@sveltejs/vite-plugin-svelte': 2.0.1_svelte@3.50.0+vite@4.0.0 '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.2.0 @@ -2664,8 +2611,8 @@ packages: - supports-color dev: true - /@sveltejs/vite-plugin-svelte/2.0.0_svelte@3.50.0+vite@4.0.0: - resolution: {integrity: sha512-oUFrYQarRv4fppmxdrv00qw3wX8Ycdj0uv33MfpRZyR8K67dyxiOcHnqkB0zSy5sDJA8RC/2aNtYhXJ8NINVHQ==} + /@sveltejs/vite-plugin-svelte/2.0.1_svelte@3.50.0+vite@4.0.0: + resolution: {integrity: sha512-NA0dPOmd/i8yb0xG4fWu++Y1NJR+j2pWFplQKDxTVEFZ8uipJpSsSX0ZwkkjwJQJ1jMyXgmxKKZJsCM7Chx/Yw==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 @@ -2683,8 +2630,8 @@ packages: - supports-color dev: true - /@sveltejs/vite-plugin-svelte/2.0.0_svelte@3.54.0+vite@4.0.0: - resolution: {integrity: sha512-oUFrYQarRv4fppmxdrv00qw3wX8Ycdj0uv33MfpRZyR8K67dyxiOcHnqkB0zSy5sDJA8RC/2aNtYhXJ8NINVHQ==} + /@sveltejs/vite-plugin-svelte/2.0.1_svelte@3.54.0+vite@4.0.0: + resolution: {integrity: sha512-NA0dPOmd/i8yb0xG4fWu++Y1NJR+j2pWFplQKDxTVEFZ8uipJpSsSX0ZwkkjwJQJ1jMyXgmxKKZJsCM7Chx/Yw==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 @@ -2759,8 +2706,8 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node/18.11.12: - resolution: {integrity: sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==} + /@types/node/18.11.13: + resolution: {integrity: sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==} /@types/node/18.7.15: resolution: {integrity: sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ==} @@ -2773,7 +2720,7 @@ packages: /@types/prompts/2.4.2: resolution: {integrity: sha512-TwNx7qsjvRIUv/BCx583tqF5IINEVjCNqg9ofKHRlSoUHE62WBHrem4B1HGXcIrG511v29d1kJ9a/t2Esz7MIg==} dependencies: - '@types/node': 18.11.12 + '@types/node': 18.11.13 kleur: 3.0.3 dev: true @@ -2825,13 +2772,13 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 18.11.12 + '@types/node': 18.11.13 dev: false /@types/sass/1.43.1: resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} dependencies: - '@types/node': 18.11.12 + '@types/node': 18.11.13 dev: true /@types/scheduler/0.16.2: @@ -3040,7 +2987,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.2 typescript: 4.8.2 transitivePeerDependencies: @@ -3100,7 +3047,7 @@ packages: eslint: 8.29.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.29.0 - semver: 7.3.7 + semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript @@ -3269,7 +3216,7 @@ packages: '@unocss/inspector': 0.45.18 '@unocss/scope': 0.45.18 '@unocss/transformer-directives': 0.45.18 - magic-string: 0.26.3 + magic-string: 0.26.7 vite: 3.1.0 dev: true @@ -3312,7 +3259,7 @@ packages: /@vue/compiler-core/3.2.38: resolution: {integrity: sha512-/FsvnSu7Z+lkd/8KXMa4yYNUiqQrI22135gfsQYVGuh5tqEgOB0XqrUdb/KnCLa5+TmQLPwvyUnKMyCpu+SX3Q==} dependencies: - '@babel/parser': 7.19.0 + '@babel/parser': 7.20.5 '@vue/shared': 3.2.38 estree-walker: 2.0.2 source-map: 0.6.1 @@ -3348,7 +3295,7 @@ packages: '@vue/shared': 3.2.38 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.16 + postcss: 8.4.20 source-map: 0.6.1 /@vue/compiler-sfc/3.2.45: @@ -3362,7 +3309,7 @@ packages: '@vue/shared': 3.2.45 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.19 + postcss: 8.4.20 source-map: 0.6.1 /@vue/compiler-ssr/3.2.38: @@ -3388,7 +3335,7 @@ packages: /@vue/reactivity-transform/3.2.38: resolution: {integrity: sha512-3SD3Jmi1yXrDwiNJqQ6fs1x61WsDLqVk4NyKVz78mkaIRh6d3IqtRnptgRfXn+Fzf+m6B1KxBYWq1APj6h4qeA==} dependencies: - '@babel/parser': 7.19.0 + '@babel/parser': 7.20.5 '@vue/compiler-core': 3.2.38 '@vue/shared': 3.2.38 estree-walker: 2.0.2 @@ -3701,7 +3648,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.0 + '@babel/compat-data': 7.20.5 '@babel/core': 7.19.0 '@babel/helper-define-polyfill-provider': 0.3.2_@babel+core@7.19.0 semver: 6.3.0 @@ -4016,7 +3963,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} /configent/2.2.0: resolution: {integrity: sha512-yIN6zfOWk2nycNJ2JFNiWEai0oiqAhISIht8+pbEBP8bdcpwoQ74AhCZPbUv9aRVJwo7wh1MbCBDUV44UJa7Kw==} @@ -4368,15 +4315,6 @@ packages: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true - /esbuild-android-64/0.15.13: - resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /esbuild-android-64/0.15.7: resolution: {integrity: sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w==} engines: {node: '>=12'} @@ -4386,15 +4324,6 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.13: - resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /esbuild-android-arm64/0.15.7: resolution: {integrity: sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ==} engines: {node: '>=12'} @@ -4404,15 +4333,6 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.13: - resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-64/0.15.7: resolution: {integrity: sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==} engines: {node: '>=12'} @@ -4422,15 +4342,6 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.13: - resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-arm64/0.15.7: resolution: {integrity: sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ==} engines: {node: '>=12'} @@ -4440,15 +4351,6 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.13: - resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-64/0.15.7: resolution: {integrity: sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ==} engines: {node: '>=12'} @@ -4458,15 +4360,6 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.13: - resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-arm64/0.15.7: resolution: {integrity: sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q==} engines: {node: '>=12'} @@ -4476,15 +4369,6 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.13: - resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-32/0.15.7: resolution: {integrity: sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg==} engines: {node: '>=12'} @@ -4494,15 +4378,6 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.13: - resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-64/0.15.7: resolution: {integrity: sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ==} engines: {node: '>=12'} @@ -4512,15 +4387,6 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.13: - resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm/0.15.7: resolution: {integrity: sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ==} engines: {node: '>=12'} @@ -4530,15 +4396,6 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.13: - resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm64/0.15.7: resolution: {integrity: sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw==} engines: {node: '>=12'} @@ -4548,15 +4405,6 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.13: - resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-mips64le/0.15.7: resolution: {integrity: sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw==} engines: {node: '>=12'} @@ -4566,15 +4414,6 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.13: - resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-ppc64le/0.15.7: resolution: {integrity: sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw==} engines: {node: '>=12'} @@ -4584,15 +4423,6 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.13: - resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-riscv64/0.15.7: resolution: {integrity: sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g==} engines: {node: '>=12'} @@ -4602,15 +4432,6 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.13: - resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-s390x/0.15.7: resolution: {integrity: sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ==} engines: {node: '>=12'} @@ -4620,15 +4441,6 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.13: - resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-netbsd-64/0.15.7: resolution: {integrity: sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ==} engines: {node: '>=12'} @@ -4638,15 +4450,6 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.13: - resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-openbsd-64/0.15.7: resolution: {integrity: sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ==} engines: {node: '>=12'} @@ -4664,15 +4467,6 @@ packages: esbuild: 0.16.4 dev: true - /esbuild-sunos-64/0.15.13: - resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /esbuild-sunos-64/0.15.7: resolution: {integrity: sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag==} engines: {node: '>=12'} @@ -4682,15 +4476,6 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.13: - resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-32/0.15.7: resolution: {integrity: sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA==} engines: {node: '>=12'} @@ -4700,15 +4485,6 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.13: - resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-64/0.15.7: resolution: {integrity: sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==} engines: {node: '>=12'} @@ -4718,15 +4494,6 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.13: - resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-arm64/0.15.7: resolution: {integrity: sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw==} engines: {node: '>=12'} @@ -4736,36 +4503,6 @@ packages: dev: true optional: true - /esbuild/0.15.13: - resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.13 - '@esbuild/linux-loong64': 0.15.13 - esbuild-android-64: 0.15.13 - esbuild-android-arm64: 0.15.13 - esbuild-darwin-64: 0.15.13 - esbuild-darwin-arm64: 0.15.13 - esbuild-freebsd-64: 0.15.13 - esbuild-freebsd-arm64: 0.15.13 - esbuild-linux-32: 0.15.13 - esbuild-linux-64: 0.15.13 - esbuild-linux-arm: 0.15.13 - esbuild-linux-arm64: 0.15.13 - esbuild-linux-mips64le: 0.15.13 - esbuild-linux-ppc64le: 0.15.13 - esbuild-linux-riscv64: 0.15.13 - esbuild-linux-s390x: 0.15.13 - esbuild-netbsd-64: 0.15.13 - esbuild-openbsd-64: 0.15.13 - esbuild-sunos-64: 0.15.13 - esbuild-windows-32: 0.15.13 - esbuild-windows-64: 0.15.13 - esbuild-windows-arm64: 0.15.13 - dev: true - /esbuild/0.15.7: resolution: {integrity: sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==} engines: {node: '>=12'} @@ -5073,7 +4810,7 @@ packages: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.10 - semver: 7.3.7 + semver: 7.3.8 vue-eslint-parser: 9.0.3_eslint@8.29.0 xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -5784,7 +5521,6 @@ packages: /idb/7.0.2: resolution: {integrity: sha512-jjKrT1EnyZewQ/gCBb/eyiYrhGzws2FeY92Yx8qT9S9GeQAmo4JFVIiWRIfKW/6Ob9A+UDAOW9j9jn58fy2HIg==} - dev: false /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} @@ -6009,7 +5745,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.11.12 + '@types/node': 18.11.13 merge-stream: 2.0.0 supports-color: 7.2.0 dev: false @@ -6134,7 +5870,7 @@ packages: acorn: 8.8.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 - semver: 7.3.7 + semver: 7.3.8 dev: true /jsonc-parser/3.2.0: @@ -6163,10 +5899,6 @@ packages: engines: {node: '>=6'} dev: true - /kolorist/1.5.1: - resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==} - dev: true - /kolorist/1.6.0: resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==} dev: true @@ -6550,7 +6282,7 @@ packages: destr: 1.1.1 node-fetch-native: 0.1.4 ufo: 0.8.5 - undici: 5.12.0 + undici: 5.14.0 dev: true /on-finished/2.4.1: @@ -6746,16 +6478,8 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss/8.4.16: - resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.4 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - /postcss/8.4.19: - resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==} + /postcss/8.4.20: + resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -7076,14 +6800,14 @@ packages: glob: 7.2.3 dev: true - /rollup-plugin-terser/7.0.2_rollup@2.79.1: + /rollup-plugin-terser/7.0.2_rollup@2.79.0: resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} peerDependencies: rollup: ^2.0.0 dependencies: '@babel/code-frame': 7.18.6 jest-worker: 26.6.2 - rollup: 2.79.1 + rollup: 2.79.0 serialize-javascript: 4.0.0 terser: 5.15.0 dev: false @@ -7102,15 +6826,15 @@ packages: fsevents: 2.3.2 dev: true - /rollup/2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + /rollup/2.79.0: + resolution: {integrity: sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 - /rollup/3.7.2: - resolution: {integrity: sha512-orqIX5zkHyHKVsIBl8J5a2tnVikOAMte0DgOLViyW6McYuj45FG+cQPrXILhaifBSmy0D0hKbHg2RbgzFJcwTg==} + /rollup/3.7.3: + resolution: {integrity: sha512-7e68MQbAWCX6mI4/0lG1WHd+NdNAlVamg0Zkd+8LZ/oXojligdGnCNyHlzXqXCZObyjs5FRc3AH0b17iJESGIQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -7314,9 +7038,9 @@ packages: peerDependencies: solid-js: ^1.3 dependencies: - '@babel/generator': 7.19.0 + '@babel/generator': 7.20.5 '@babel/helper-module-imports': 7.18.6 - '@babel/types': 7.19.0 + '@babel/types': 7.20.5 solid-js: 1.6.4 dev: true @@ -7352,6 +7076,7 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} @@ -7959,7 +7684,7 @@ packages: joycon: 3.1.1 postcss-load-config: 3.1.4 resolve-from: 5.0.0 - rollup: 2.79.1 + rollup: 2.79.0 source-map: 0.8.0-beta.0 sucrase: 3.25.0 tree-kill: 1.2.2 @@ -8080,13 +7805,6 @@ packages: jiti: 1.15.0 dev: true - /undici/5.12.0: - resolution: {integrity: sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==} - engines: {node: '>=12.18'} - dependencies: - busboy: 1.6.0 - dev: true - /undici/5.14.0: resolution: {integrity: sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==} engines: {node: '>=12.18'} @@ -8323,7 +8041,7 @@ packages: optional: true dependencies: esbuild: 0.15.7 - postcss: 8.4.16 + postcss: 8.4.20 resolve: 1.22.1 rollup: 2.78.1 optionalDependencies: @@ -8356,14 +8074,14 @@ packages: optional: true dependencies: esbuild: 0.16.4 - postcss: 8.4.19 + postcss: 8.4.20 resolve: 1.22.1 - rollup: 3.7.2 + rollup: 3.7.3 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/4.0.0_@types+node@18.11.12: + /vite/4.0.0_@types+node@18.11.13: resolution: {integrity: sha512-ynad+4kYs8Jcnn8J7SacS9vAbk7eMy0xWg6E7bAhS1s79TK+D7tVFGXVZ55S7RNLRROU1rxoKlvZ/qjaB41DGA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -8388,11 +8106,11 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.12 + '@types/node': 18.11.13 esbuild: 0.16.4 - postcss: 8.4.19 + postcss: 8.4.20 resolve: 1.22.1 - rollup: 3.7.2 + rollup: 3.7.3 optionalDependencies: fsevents: 2.3.2 dev: true @@ -8647,9 +8365,9 @@ packages: '@babel/core': 7.19.0 '@babel/preset-env': 7.19.0_@babel+core@7.19.0 '@babel/runtime': 7.19.0 - '@rollup/plugin-babel': 5.3.1_loko3dyoqyfrad2b2tv6icqcai - '@rollup/plugin-node-resolve': 11.2.1_rollup@2.79.1 - '@rollup/plugin-replace': 2.4.2_rollup@2.79.1 + '@rollup/plugin-babel': 5.3.1_b6woseefyuugm6lsnk4tw7iz2e + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.79.0 + '@rollup/plugin-replace': 2.4.2_rollup@2.79.0 '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.11.0 common-tags: 1.8.2 @@ -8658,8 +8376,8 @@ packages: glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.79.1 - rollup-plugin-terser: 7.0.2_rollup@2.79.1 + rollup: 2.79.0 + rollup-plugin-terser: 7.0.2_rollup@2.79.0 source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 @@ -8689,7 +8407,6 @@ packages: resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==} dependencies: workbox-core: 6.5.4 - dev: false /workbox-core/6.5.4: resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==} @@ -8699,7 +8416,6 @@ packages: dependencies: idb: 7.0.2 workbox-core: 6.5.4 - dev: false /workbox-google-analytics/6.5.4: resolution: {integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==} diff --git a/src/modules.ts b/src/modules.ts index 631dc6ae..7090f764 100644 --- a/src/modules.ts +++ b/src/modules.ts @@ -138,6 +138,10 @@ export async function generateInjectManifest(options: ResolvedVitePWAOptions, vi await bundle.close() } + // don't force user to include injection point + if (!options.injectManifest.injectionPoint) + return + const injectManifestOptions = { ...options.injectManifest, // this will not fail since there is an injectionPoint