From 0f8db862b48333373911a9e3ce7c4904f03ad285 Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Thu, 23 Mar 2023 10:27:12 -0800 Subject: [PATCH] feat: pwa support (#366) * add PWA support * fix broken URLs for query * remove unused variable * restore authURL --- docs/docs/tips-tricks.md | 2 +- frontend/app.vue | 4 + frontend/nuxt.config.ts | 37 +- frontend/package.json | 1 + frontend/pages/reports/label-generator.vue | 4 +- frontend/pnpm-lock.yaml | 1615 +++++++++++++++++++- frontend/public/pwa-192x192.png | Bin 0 -> 8122 bytes frontend/public/pwa-512x512.png | Bin 0 -> 26689 bytes 8 files changed, 1656 insertions(+), 7 deletions(-) create mode 100644 frontend/public/pwa-192x192.png create mode 100644 frontend/public/pwa-512x512.png diff --git a/docs/docs/tips-tricks.md b/docs/docs/tips-tricks.md index d5c1207..f2200c3 100644 --- a/docs/docs/tips-tricks.md +++ b/docs/docs/tips-tricks.md @@ -39,7 +39,7 @@ In some cases you may want to skip some items such as consumables, or items that Homebox has a built-in QR code generator that can be used to generate QR codes for your items. This is useful for tracking items with a mobile device. You can generate a QR code for any item by clicking the QR code icon in the top right of the item details page. The same can be done for the Labels and Locations page. Currently support is limited to generating one off QR Codes. -However, the API endpoint is available for generating QR codes on the fly for any item (or any other data) if you provide a valid API key in the query parameters. An example url would look like `/api/v1/qrcode?data=https://homebox.fly.dev/item/{uuid}&access_token={api_key}`. Currently the easiest way to get an API token is to use one from an existing URL of the QR Code in the API key, but this will be improved in the future. +However, the API endpoint is available for generating QR codes on the fly for any item (or any other data) if you provide a valid API key in the query parameters. An example url would look like `/api/v1/qrcode?data=https://homebox.fly.dev/item/{uuid}`. Currently the easiest way to get an API token is to use one from an existing URL of the QR Code in the API key, but this will be improved in the future. :octicons-tag-24: v0.8.0 diff --git a/frontend/app.vue b/frontend/app.vue index e8e26f3..8c48eb8 100644 --- a/frontend/app.vue +++ b/frontend/app.vue @@ -2,6 +2,10 @@ + + + + diff --git a/frontend/nuxt.config.ts b/frontend/nuxt.config.ts index 482fc05..c98f1a1 100644 --- a/frontend/nuxt.config.ts +++ b/frontend/nuxt.config.ts @@ -3,7 +3,7 @@ import { defineNuxtConfig } from "nuxt/config"; // https://v3.nuxtjs.org/api/configuration/nuxt.config export default defineNuxtConfig({ ssr: false, - modules: ["@nuxtjs/tailwindcss", "@pinia/nuxt", "@vueuse/nuxt"], + modules: ["@nuxtjs/tailwindcss", "@pinia/nuxt", "@vueuse/nuxt", "@vite-pwa/nuxt"], nitro: { devProxy: { "/api": { @@ -13,4 +13,39 @@ export default defineNuxtConfig({ }, }, css: ["@/assets/css/main.css"], + pwa: { + injectRegister: "script", + injectManifest: { + swSrc: "sw.js", + }, + devOptions: { + // Enable to troubleshoot during development + enabled: true, + }, + manifest: { + name: "Homebox", + short_name: "Homebox", + description: "Home Inventory App", + theme_color: "#5b7f67", + start_url: "/home", + icons: [ + { + src: "pwa-192x192.png", + sizes: "192x192", + type: "image/png", + }, + { + src: "pwa-512x512.png", + sizes: "512x512", + type: "image/png", + }, + { + src: "pwa-512x512.png", + sizes: "512x512", + type: "image/png", + purpose: "any maskable", + }, + ], + }, + }, }); diff --git a/frontend/package.json b/frontend/package.json index e06732d..2bda309 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -20,6 +20,7 @@ "@types/markdown-it": "^12.2.3", "@typescript-eslint/eslint-plugin": "^5.36.2", "@typescript-eslint/parser": "^5.36.2", + "@vite-pwa/nuxt": "^0.0.7", "eslint": "^8.23.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", diff --git a/frontend/pages/reports/label-generator.vue b/frontend/pages/reports/label-generator.vue index 0976be9..da3bbd7 100644 --- a/frontend/pages/reports/label-generator.vue +++ b/frontend/pages/reports/label-generator.vue @@ -158,8 +158,6 @@ location: string; }; - const api = useUserApi(); - function fmtAssetID(aid: number | string) { aid = aid.toString(); @@ -178,7 +176,7 @@ const data = `${origin}/a/${assetID}`; - return `/api/v1/qrcode?data=${encodeURIComponent(data)}&access_token=${api.items.attachmentToken}`; + return `/api/v1/qrcode?data=${encodeURIComponent(data)}`; } function getItem(n: number): LabelData { diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 04bc229..6cb5d5f 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -14,6 +14,7 @@ specifiers: '@types/markdown-it': ^12.2.3 '@typescript-eslint/eslint-plugin': ^5.36.2 '@typescript-eslint/parser': ^5.36.2 + '@vite-pwa/nuxt': ^0.0.7 '@vueuse/nuxt': ^9.1.1 '@vueuse/router': ^9.9.0 autoprefixer: ^10.4.8 @@ -67,6 +68,7 @@ devDependencies: '@types/markdown-it': 12.2.3 '@typescript-eslint/eslint-plugin': 5.46.0_oc2c4zwkt3rtrfvy7mzkexyjoi '@typescript-eslint/parser': 5.46.0_qbz4jmbab2hgh4ewp5o4qf6kv4 + '@vite-pwa/nuxt': 0.0.7 eslint: 8.29.0 eslint-config-prettier: 8.5.0_eslint@8.29.0 eslint-plugin-prettier: 4.2.1_5dgjrgoi64tgrv3zzn3walur3u @@ -87,6 +89,18 @@ packages: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.17 + /@apideck/better-ajv-errors/0.3.6_ajv@8.12.0: + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: 8.12.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -127,12 +141,30 @@ packages: '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 + /@babel/generator/7.21.3: + resolution: {integrity: sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + 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.20.7 + /@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.20.7 + dev: true + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} engines: {node: '>=6.9.0'} @@ -163,10 +195,63 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.3.2 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.12: + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} + /@babel/helper-explode-assignable-expression/7.18.6: + resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + /@babel/helper-function-name/7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} @@ -174,6 +259,14 @@ packages: '@babel/template': 7.20.7 '@babel/types': 7.20.7 + /@babel/helper-function-name/7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.3 + dev: true + /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} @@ -186,6 +279,13 @@ packages: dependencies: '@babel/types': 7.20.7 + /@babel/helper-member-expression-to-functions/7.21.0: + resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} @@ -207,6 +307,22 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-transforms/7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} + 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.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + 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'} @@ -217,6 +333,21 @@ packages: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-wrap-function': 7.20.5 + '@babel/types': 7.20.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-replace-supers/7.19.1: resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} engines: {node: '>=6.9.0'} @@ -229,12 +360,33 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-replace-supers/7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-simple-access/7.20.2: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + dev: true + /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} @@ -253,6 +405,18 @@ packages: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} + /@babel/helper-wrap-function/7.20.5: + resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.21.0 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helpers/7.20.13: resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} engines: {node: '>=6.9.0'} @@ -278,6 +442,285 @@ packages: dependencies: '@babel/types': 7.20.7 + /@babel/parser/7.21.3: + resolution: {integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.20.5 + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.21.3_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + dev: true + + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.12: + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} @@ -287,6 +730,80 @@ packages: '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.12: resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} engines: {node: '>=6.9.0'} @@ -296,6 +813,346 @@ packages: '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 + /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-block-scoping/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-classes/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/template': 7.20.7 + dev: true + + /@babel/plugin-transform-destructuring/7.21.3_@babel+core@7.20.12: + resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-for-of/7.21.0_@babel+core@7.20.12: + resolution: {integrity: sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.20.12: + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.21.2_@babel+core@7.20.12: + resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.20.12: + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.12: + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters/7.21.3_@babel+core@7.20.12: + resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.20.12: + resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.12: resolution: {integrity: sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==} engines: {node: '>=6.9.0'} @@ -309,6 +1166,137 @@ packages: transitivePeerDependencies: - supports-color + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.12: + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/preset-env/7.20.2_@babel+core@7.20.12: + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.20.5 + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.18.6 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.20.12 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.20.12 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-private-property-in-object': 7.21.0_@babel+core@7.20.12 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.12 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.21.0_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.21.0_@babel+core@7.20.12 + '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-destructuring': 7.21.3_@babel+core@7.20.12 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-for-of': 7.21.0_@babel+core@7.20.12 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.20.12 + '@babel/plugin-transform-modules-commonjs': 7.21.2_@babel+core@7.20.12 + '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.20.12 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.12 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.21.3_@babel+core@7.20.12 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.20.12 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.12 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12 + '@babel/preset-modules': 0.1.5_@babel+core@7.20.12 + '@babel/types': 7.20.7 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 + core-js-compat: 3.29.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.20.12: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 + '@babel/types': 7.20.7 + esutils: 2.0.3 + dev: true + + /@babel/regjsgen/0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime/7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: true + /@babel/standalone/7.20.13: resolution: {integrity: sha512-L13qadxX3yB4mU92iSiWKePm3hYfGaAXPMqGEPUDNzzsmNh0+1M7agMBF62UHM29kFWOWowGfRRDvfAU8uLovg==} engines: {node: '>=6.9.0'} @@ -338,6 +1326,24 @@ packages: transitivePeerDependencies: - supports-color + /@babel/traverse/7.21.3: + resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.3 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.3 + '@babel/types': 7.21.3 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types/7.20.7: resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} engines: {node: '>=6.9.0'} @@ -346,6 +1352,15 @@ packages: '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + /@babel/types/7.21.3: + resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + /@cloudflare/kv-asset-handler/0.3.0: resolution: {integrity: sha512-9CB/MKf/wdvbfkUdfrj+OkEwZ5b7rws0eogJ4293h+7b6KX5toPwym+VQKmILafNB9YiehqY0DlNrDcDhdWHSQ==} dependencies: @@ -1219,6 +2234,23 @@ packages: rollup: 3.17.3 slash: 4.0.0 + /@rollup/plugin-babel/5.3.1_3dsfpkpoyvuuxyfgdbpn4j4uzm: + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-imports': 7.18.6 + '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + rollup: 2.79.1 + dev: true + /@rollup/plugin-commonjs/24.0.1_rollup@3.17.3: resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==} engines: {node: '>=14.0.0'} @@ -1262,6 +2294,21 @@ packages: '@rollup/pluginutils': 5.0.2_rollup@3.17.3 rollup: 3.17.3 + /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.1: + 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 + '@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 + dev: true + /@rollup/plugin-node-resolve/15.0.1_rollup@3.17.3: resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} engines: {node: '>=14.0.0'} @@ -1279,6 +2326,16 @@ packages: resolve: 1.22.1 rollup: 3.17.3 + /@rollup/plugin-replace/2.4.2_rollup@2.79.1: + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + magic-string: 0.25.9 + rollup: 2.79.1 + dev: true + /@rollup/plugin-replace/5.0.2_rollup@3.17.3: resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} @@ -1317,6 +2374,18 @@ packages: dependencies: rollup: 3.17.3 + /@rollup/pluginutils/3.1.0_rollup@2.79.1: + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + /@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -1351,6 +2420,15 @@ packages: picomatch: 2.3.1 rollup: 3.17.3 + /@surma/rollup-plugin-off-main-thread/2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + dependencies: + ejs: 3.1.9 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.8 + dev: true + /@tailwindcss/aspect-ratio/0.4.2_tailwindcss@3.2.4: resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} peerDependencies: @@ -1407,6 +2485,10 @@ packages: '@types/json-schema': 7.0.11 dev: true + /@types/estree/0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + /@types/estree/1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} @@ -1444,6 +2526,12 @@ packages: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: false + /@types/resolve/1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 18.11.12 + dev: true + /@types/resolve/1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -1642,6 +2730,18 @@ packages: - encoding - supports-color + /@vite-pwa/nuxt/0.0.7: + resolution: {integrity: sha512-7bUTHbameF4GMLQjuyICB761YTC2/Zp6s+rd3hz63Q8lUHP/WUkvOhkoqAoA7CrRPrM85QDeOJKBEvailDb5+w==} + dependencies: + '@nuxt/kit': 3.2.3 + vite-plugin-pwa: 0.14.6 + transitivePeerDependencies: + - '@types/babel__core' + - rollup + - supports-color + - vite + dev: true + /@vitejs/plugin-vue-jsx/3.0.0_vite@4.1.4+vue@3.2.47: resolution: {integrity: sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1941,6 +3041,15 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + /ajv/8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -2081,7 +3190,6 @@ packages: /at-least-node/1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - dev: false /autoprefixer/10.4.13_postcss@8.4.19: resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} @@ -2114,6 +3222,42 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.20.5 + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 + core-js-compat: 3.29.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color + dev: true + /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2177,6 +3321,17 @@ packages: node-releases: 2.0.6 update-browserslist-db: 1.0.10_browserslist@4.21.4 + /browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001469 + electron-to-chromium: 1.4.284 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10_browserslist@4.21.5 + dev: true + /buffer-crc32/0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -2262,6 +3417,10 @@ packages: /caniuse-lite/1.0.30001439: resolution: {integrity: sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==} + /caniuse-lite/1.0.30001469: + resolution: {integrity: sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==} + dev: true + /chai/4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} @@ -2457,6 +3616,11 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + /common-tags/1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -2504,6 +3668,12 @@ packages: keygrip: 1.1.0 dev: false + /core-js-compat/3.29.1: + resolution: {integrity: sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==} + dependencies: + browserslist: 4.21.5 + dev: true + /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2541,6 +3711,11 @@ packages: shebang-command: 2.0.0 which: 2.0.2 + /crypto-random-string/2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + /css-declaration-sorter/6.3.1_postcss@8.4.21: resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} engines: {node: ^10 || ^12 || >=14} @@ -2883,6 +4058,14 @@ packages: /ee-first/1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + /ejs/3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.5 + dev: true + /electron-to-chromium/1.4.284: resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} @@ -3417,6 +4600,10 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + /estree-walker/1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -3521,6 +4708,12 @@ packages: /file-uri-to-path/1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + /filelist/1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.1 + dev: true + /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -3605,7 +4798,6 @@ packages: graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 - dev: false /fs-minipass/2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} @@ -3674,6 +4866,10 @@ packages: has-symbols: 1.0.3 dev: true + /get-own-enumerable-property-symbols/3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: true + /get-port-please/3.0.1: resolution: {integrity: sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==} @@ -3975,6 +5171,10 @@ packages: postcss: 8.4.21 dev: false + /idb/7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + dev: true + /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -4179,6 +5379,11 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + /is-obj/1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: true + /is-path-inside/3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} @@ -4203,6 +5408,11 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-regexp/1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: true + /is-shared-array-buffer/1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: @@ -4263,6 +5473,26 @@ packages: - encoding dev: true + /jake/10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-worker/26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.11.12 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + /jiti/1.17.1: resolution: {integrity: sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==} hasBin: true @@ -4279,6 +5509,11 @@ packages: dependencies: argparse: 2.0.1 + /jsesc/0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -4290,6 +5525,14 @@ packages: /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -4315,6 +5558,11 @@ packages: optionalDependencies: graceful-fs: 4.2.10 + /jsonpointer/5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + /keygrip/1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} @@ -4399,6 +5647,11 @@ packages: dependencies: readable-stream: 2.3.7 + /leven/3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -4495,6 +5748,10 @@ packages: /lodash.pick/4.4.0: resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} + /lodash.sortby/4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + /lodash.template/4.5.0: resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} dependencies: @@ -4867,6 +6124,10 @@ packages: resolution: {integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==} hasBin: true + /node-releases/2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} @@ -5747,6 +7008,11 @@ packages: hasBin: true dev: true + /pretty-bytes/5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + /pretty-bytes/6.1.0: resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} engines: {node: ^14.13.1 || >=16.0.0} @@ -5872,6 +7138,27 @@ packages: dependencies: redis-errors: 1.2.0 + /regenerate-unicode-properties/10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate/1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: true + + /regenerator-transform/0.15.1: + resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} + dependencies: + '@babel/runtime': 7.21.0 + dev: true + /regexp-tree/0.1.24: resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} hasBin: true @@ -5890,6 +7177,25 @@ packages: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} + /regexpu-core/5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser/0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + /replace-in-file/6.3.5: resolution: {integrity: sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==} engines: {node: '>=10'} @@ -5904,6 +7210,11 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + /requires-port/1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -5948,6 +7259,19 @@ packages: dependencies: glob: 7.2.3 + /rollup-plugin-terser/7.0.2_rollup@2.79.1: + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.18.6 + jest-worker: 26.6.2 + rollup: 2.79.1 + serialize-javascript: 4.0.0 + terser: 5.16.1 + dev: true + /rollup-plugin-visualizer/5.9.0_rollup@3.17.3: resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} @@ -6064,6 +7388,12 @@ packages: transitivePeerDependencies: - supports-color + /serialize-javascript/4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + dev: true + /serialize-javascript/6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: @@ -6164,6 +7494,13 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + /source-map/0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead @@ -6229,6 +7566,19 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.0.1 + /string.prototype.matchall/4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.5 + get-intrinsic: 1.1.3 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + /string.prototype.trimend/1.0.6: resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: @@ -6255,6 +7605,15 @@ packages: dependencies: safe-buffer: 5.2.1 + /stringify-object/3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -6272,6 +7631,11 @@ packages: engines: {node: '>=4'} dev: true + /strip-comments/2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + dev: true + /strip-final-newline/2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -6425,6 +7789,21 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 + /temp-dir/2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy/0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + /terser/5.16.1: resolution: {integrity: sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==} engines: {node: '>=10'} @@ -6488,6 +7867,12 @@ packages: /tr46/0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + /tr46/1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.1.1 + dev: true + /tsconfig-paths/3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: @@ -6530,6 +7915,11 @@ packages: engines: {node: '>=4'} dev: true + /type-fest/0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + dev: true + /type-fest/0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -6616,6 +8006,29 @@ packages: '@unhead/shared': 1.1.14 hookable: 5.4.2 + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript/2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript/2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + /unimport/1.0.1: resolution: {integrity: sha512-SEPKl3uyqUvi6c0MnyCmUF9H07CuC9j9p2p33F03LmegU0sxjpnjL0fLKAhh7BTfcKaJKj+1iOiAFtg7P3m5mQ==} dependencies: @@ -6668,6 +8081,13 @@ packages: transitivePeerDependencies: - rollup + /unique-string/2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + dev: true + /universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -6713,6 +8133,11 @@ packages: transitivePeerDependencies: - supports-color + /upath/1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: true + /update-browserslist-db/1.0.10_browserslist@4.21.4: resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true @@ -6723,6 +8148,17 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 + /update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -6847,6 +8283,23 @@ packages: rollup: 2.79.1 dev: true + /vite-plugin-pwa/0.14.6: + resolution: {integrity: sha512-3mqbkjvSF89pCSZyXAbv6AO4gYKYZel0rcpBgWOWqEupoBOZF9oHDdgHc+FgjmvQXxuU2k9aEFOfRCMGorV+4Q==} + peerDependencies: + vite: ^3.1.0 || ^4.0.0 + dependencies: + '@rollup/plugin-replace': 5.0.2_rollup@3.17.3 + debug: 4.3.4 + fast-glob: 3.2.12 + pretty-bytes: 6.1.0 + rollup: 3.17.3 + workbox-build: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + /vite/4.1.2_@types+node@18.11.12: resolution: {integrity: sha512-MWDb9Rfy3DI8omDQySbMK93nQqStwbsQWejXRY2EBzEWKmLAXWb1mkI9Yw2IJrc+oCvPCI1Os5xSSIBYY6DEAw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -7115,6 +8568,10 @@ packages: /webidl-conversions/3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + /webidl-conversions/4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + /webpack-sources/3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -7132,6 +8589,14 @@ packages: tr46: 0.0.3 webidl-conversions: 3.0.1 + /whatwg-url/7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -7167,6 +8632,152 @@ packages: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} + /workbox-background-sync/6.5.4: + resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==} + dependencies: + idb: 7.1.1 + workbox-core: 6.5.4 + dev: true + + /workbox-broadcast-update/6.5.4: + resolution: {integrity: sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-build/6.5.4: + resolution: {integrity: sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==} + engines: {node: '>=10.0.0'} + dependencies: + '@apideck/better-ajv-errors': 0.3.6_ajv@8.12.0 + '@babel/core': 7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + '@babel/runtime': 7.21.0 + '@rollup/plugin-babel': 5.3.1_3dsfpkpoyvuuxyfgdbpn4j4uzm + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.79.1 + '@rollup/plugin-replace': 2.4.2_rollup@2.79.1 + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.12.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + 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 + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 6.5.4 + workbox-broadcast-update: 6.5.4 + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-google-analytics: 6.5.4 + workbox-navigation-preload: 6.5.4 + workbox-precaching: 6.5.4 + workbox-range-requests: 6.5.4 + workbox-recipes: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + workbox-streams: 6.5.4 + workbox-sw: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /workbox-cacheable-response/6.5.4: + resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-core/6.5.4: + resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==} + dev: true + + /workbox-expiration/6.5.4: + resolution: {integrity: sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==} + dependencies: + idb: 7.1.1 + workbox-core: 6.5.4 + dev: true + + /workbox-google-analytics/6.5.4: + resolution: {integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==} + dependencies: + workbox-background-sync: 6.5.4 + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-navigation-preload/6.5.4: + resolution: {integrity: sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-precaching/6.5.4: + resolution: {integrity: sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==} + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-range-requests/6.5.4: + resolution: {integrity: sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-recipes/6.5.4: + resolution: {integrity: sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==} + dependencies: + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-precaching: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-routing/6.5.4: + resolution: {integrity: sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-strategies/6.5.4: + resolution: {integrity: sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-streams/6.5.4: + resolution: {integrity: sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==} + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + dev: true + + /workbox-sw/6.5.4: + resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==} + dev: true + + /workbox-window/6.5.4: + resolution: {integrity: sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==} + dependencies: + '@types/trusted-types': 2.0.3 + workbox-core: 6.5.4 + dev: true + /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} diff --git a/frontend/public/pwa-192x192.png b/frontend/public/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..d481a157b7d2341343afc281fd67b15715b3c4b5 GIT binary patch literal 8122 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�F^` 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%0D^Y+ffu$xHz=>5mT)ypq^OM$_<}1gRMq0rz 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 literal 0 HcmV?d00001 diff --git a/frontend/public/pwa-512x512.png b/frontend/public/pwa-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..a676839cf58ec52e7cfbbccd88574e46749025ed GIT binary patch literal 26689 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 literal 0 HcmV?d00001