From 761c7301295a3e5645326be804225431f823f808 Mon Sep 17 00:00:00 2001 From: MAZE Date: Tue, 25 Mar 2025 17:09:19 +0330 Subject: [PATCH] feat: add PWA --- .eslintrc.json | 3 +- astro.config.mjs | 31 +- package-lock.json | 1050 ++++++++++++++++++----- package.json | 1 + public/assets/pwa/128.png | Bin 0 -> 4016 bytes public/assets/pwa/144.png | Bin 0 -> 4466 bytes public/assets/pwa/152.png | Bin 0 -> 4718 bytes public/assets/pwa/192.png | Bin 0 -> 5806 bytes public/assets/pwa/256.png | Bin 0 -> 8270 bytes public/assets/pwa/512.png | Bin 0 -> 17730 bytes public/assets/pwa/72.png | Bin 0 -> 2182 bytes src/components/reload/index.ts | 1 + src/components/reload/reload-modal.tsx | 36 + src/components/reload/reload.module.css | 38 + src/components/reload/reload.tsx | 11 + src/layouts/layout.astro | 8 + tsconfig.json | 3 +- 17 files changed, 955 insertions(+), 227 deletions(-) create mode 100644 public/assets/pwa/128.png create mode 100644 public/assets/pwa/144.png create mode 100644 public/assets/pwa/152.png create mode 100644 public/assets/pwa/192.png create mode 100644 public/assets/pwa/256.png create mode 100644 public/assets/pwa/512.png create mode 100644 public/assets/pwa/72.png create mode 100644 src/components/reload/index.ts create mode 100644 src/components/reload/reload-modal.tsx create mode 100644 src/components/reload/reload.module.css create mode 100644 src/components/reload/reload.tsx diff --git a/.eslintrc.json b/.eslintrc.json index 16c6c45..8e8f753 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -78,7 +78,8 @@ "rules": { "prettier/prettier": "error", "react/no-unknown-property": "off", - "react/jsx-key": "off" + "react/jsx-key": "off", + "react/jsx-no-undef": "off" }, "globals": { "Astro": "readonly" diff --git a/astro.config.mjs b/astro.config.mjs index 1cacda3..82f6cc6 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,7 +1,36 @@ import { defineConfig } from 'astro/config'; import react from '@astrojs/react'; +import AstroPWA from '@vite-pwa/astro'; export default defineConfig({ - integrations: [react()], + integrations: [ + react(), + AstroPWA({ + manifest: { + background_color: '#09090b', + description: 'Ambient sounds for focus and calm.', + display: 'standalone', + icons: [ + ...[72, 128, 144, 152, 192, 256, 512].map(size => ({ + sizes: `${size}x${size}`, + src: `/assets/pwa/${size}.png`, + type: 'image/png', + })), + ], + name: 'Moodist', + orientation: 'any', + scope: '/', + short_name: 'Moodist', + start_url: '/', + theme_color: '#09090b', + }, + registerType: 'prompt', + workbox: { + globPatterns: ['**/*'], + maximumFileSizeToCacheInBytes: Number.MAX_SAFE_INTEGER, + navigateFallback: '/', + }, + }), + ], }); diff --git a/package-lock.json b/package-lock.json index 1d68ec4..812e72c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@types/howler": "2.2.10", "@types/react": "^18.2.25", "@types/react-dom": "^18.2.10", + "@vite-pwa/astro": "0.5.0", "astro": "4.10.3", "deepmerge": "4.3.1", "focus-trap-react": "10.2.3", @@ -288,7 +289,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -323,7 +323,6 @@ "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", - "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -346,7 +345,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -355,7 +353,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -372,7 +369,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -381,7 +377,6 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", - "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -431,7 +426,6 @@ "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, "dependencies": { "@babel/types": "^7.23.0" }, @@ -473,7 +467,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -493,7 +486,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -510,7 +502,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.23.0", @@ -539,7 +530,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -586,7 +576,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.15", @@ -637,7 +626,6 @@ "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0" @@ -653,7 +641,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -668,7 +655,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -685,7 +671,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0" @@ -701,7 +686,6 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, "engines": { "node": ">=6.9.0" }, @@ -713,7 +697,6 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -725,7 +708,6 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -737,7 +719,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -752,7 +733,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -764,7 +744,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -791,7 +770,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -806,7 +784,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -821,7 +798,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -833,7 +809,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -859,7 +834,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -871,7 +845,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -883,7 +856,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -895,7 +867,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -907,7 +878,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -919,7 +889,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -931,7 +900,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -946,7 +914,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -976,7 +943,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -992,7 +958,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1007,7 +972,6 @@ "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0", @@ -1025,7 +989,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", - "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0", @@ -1042,7 +1005,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1057,7 +1019,6 @@ "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1072,7 +1033,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", - "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0" @@ -1088,7 +1048,6 @@ "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", - "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.4", "@babel/helper-plugin-utils": "^7.24.0", @@ -1105,7 +1064,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", - "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1127,7 +1085,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/template": "^7.24.0" @@ -1143,7 +1100,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1158,7 +1114,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", - "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" @@ -1174,7 +1129,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1189,7 +1143,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1205,7 +1158,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", - "dev": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" @@ -1221,7 +1173,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1253,7 +1204,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1269,7 +1219,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", - "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-function-name": "^7.23.0", @@ -1286,7 +1235,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1302,7 +1250,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1317,7 +1264,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1333,7 +1279,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1348,7 +1293,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", - "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0" @@ -1364,7 +1308,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", - "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0", @@ -1381,7 +1324,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", - "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", @@ -1399,7 +1341,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", - "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0" @@ -1415,7 +1356,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1431,7 +1371,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1446,7 +1385,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1462,7 +1400,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1478,7 +1415,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", - "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.0", @@ -1496,7 +1432,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-replace-supers": "^7.24.1" @@ -1512,7 +1447,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1528,7 +1462,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1545,7 +1478,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1560,7 +1492,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", - "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0" @@ -1576,7 +1507,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", - "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.24.1", @@ -1594,7 +1524,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1655,7 +1584,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "regenerator-transform": "^0.15.2" @@ -1671,7 +1599,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1686,7 +1613,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1701,7 +1627,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1717,7 +1642,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1732,7 +1656,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1747,7 +1670,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1780,7 +1702,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, @@ -1795,7 +1716,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", - "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" @@ -1811,7 +1731,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", - "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" @@ -1827,7 +1746,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", - "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" @@ -1843,7 +1761,6 @@ "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", @@ -1938,7 +1855,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -1964,7 +1880,6 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -2124,8 +2039,7 @@ "node_modules/@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { "version": "7.23.1", @@ -4195,6 +4109,16 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -5383,11 +5307,62 @@ "@babel/runtime": "^7.13.10" } }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/pluginutils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -5408,8 +5383,7 @@ "node_modules/@rollup/pluginutils/node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.18.0", @@ -7899,6 +7873,27 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/@testing-library/dom": { "version": "9.3.4", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", @@ -8517,6 +8512,12 @@ "@types/send": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, "node_modules/@types/unist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", @@ -8863,6 +8864,28 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, + "node_modules/@vite-pwa/astro": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@vite-pwa/astro/-/astro-0.5.0.tgz", + "integrity": "sha512-Yd3Pug/c1EUQJXWvzYh6eTtoqzmSKcdCqWCcNquZeaD13tLWpBb2FIPJ4HMULVY6+GfxMvrT+OBuMrbHQCvftw==", + "license": "MIT", + "dependencies": { + "vite-plugin-pwa": ">=0.21.1 <1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vite-pwa/assets-generator": "^0.2.6", + "astro": "^1.6.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "vite-plugin-pwa": ">=0.21.1 <1" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } + } + }, "node_modules/@vitejs/plugin-react": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", @@ -9370,7 +9393,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -9500,7 +9522,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -10148,8 +10169,7 @@ "node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, "node_modules/asynciterator.prototype": { "version": "1.0.0", @@ -10164,7 +10184,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, "engines": { "node": ">= 4.0.0" } @@ -10210,7 +10229,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -10252,7 +10270,6 @@ "version": "0.4.11", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.6.2", @@ -10266,7 +10283,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -10275,7 +10291,6 @@ "version": "0.10.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", - "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.1", "core-js-compat": "^3.36.1" @@ -10288,7 +10303,6 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", - "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.2" }, @@ -10308,8 +10322,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base-64": { "version": "1.0.0", @@ -10541,7 +10554,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10607,8 +10619,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/bundle-name": { "version": "3.0.0", @@ -10656,7 +10667,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -11404,6 +11414,15 @@ "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -11483,8 +11502,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concat-stream": { "version": "2.0.0", @@ -13046,7 +13064,6 @@ "version": "3.37.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz", "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==", - "dev": true, "dependencies": { "browserslist": "^4.23.0" }, @@ -13125,7 +13142,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, "engines": { "node": ">=8" } @@ -13456,7 +13472,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -13485,7 +13500,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -14040,7 +14054,6 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, "dependencies": { "jake": "^10.8.5" }, @@ -14134,7 +14147,6 @@ "version": "1.22.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -14187,7 +14199,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -14199,7 +14210,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -14255,7 +14265,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -14278,7 +14287,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -15266,7 +15274,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15430,8 +15437,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-diff": { "version": "1.3.0", @@ -15457,8 +15463,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -15466,6 +15471,22 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -15530,7 +15551,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, "dependencies": { "minimatch": "^5.0.1" } @@ -15539,7 +15559,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -15548,7 +15567,6 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -15744,7 +15762,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, "dependencies": { "is-callable": "^1.1.3" } @@ -15872,8 +15889,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -15892,7 +15908,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -15901,7 +15916,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -15919,7 +15933,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -15965,7 +15978,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -15997,6 +16009,12 @@ "node": ">=12.17" } }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, "node_modules/get-pkg-repo": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", @@ -16205,7 +16223,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -16838,7 +16855,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -16952,7 +16968,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, "dependencies": { "define-properties": "^1.1.3" }, @@ -16993,7 +17008,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -17151,7 +17165,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17168,7 +17181,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -17180,7 +17192,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -17192,7 +17203,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -17204,7 +17214,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "dependencies": { "has-symbols": "^1.0.3" }, @@ -17219,7 +17228,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -17574,6 +17582,12 @@ "node": ">=0.10.0" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -17662,7 +17676,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -17671,8 +17684,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", @@ -18015,7 +18027,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -18080,7 +18091,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -18115,7 +18125,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, @@ -18138,7 +18147,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -18176,7 +18184,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -18199,7 +18206,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -18338,6 +18344,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -18358,7 +18370,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -18378,7 +18389,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -18440,7 +18450,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -18452,6 +18461,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -18465,7 +18483,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -18488,7 +18505,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -18503,7 +18519,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -18530,7 +18545,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, "dependencies": { "which-typed-array": "^1.1.11" }, @@ -18571,7 +18585,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -18618,8 +18631,7 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", @@ -18670,7 +18682,6 @@ "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", - "dev": true, "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -18688,7 +18699,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -18703,7 +18713,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18719,7 +18728,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -18730,14 +18738,12 @@ "node_modules/jake/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -18746,7 +18752,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -18933,8 +18938,7 @@ "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -18969,7 +18973,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -18986,6 +18989,15 @@ "node >= 0.2.0" ] }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -19081,7 +19093,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, "engines": { "node": ">=6" } @@ -19349,8 +19360,7 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.camelcase": { "version": "4.3.0", @@ -19361,8 +19371,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.isfunction": { "version": "3.0.9", @@ -19412,6 +19421,12 @@ "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", "dev": true }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" + }, "node_modules/lodash.startcase": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", @@ -20592,7 +20607,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -20917,7 +20931,6 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20942,7 +20955,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -20951,7 +20963,6 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -21069,7 +21080,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -21385,7 +21395,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -21645,7 +21654,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -21847,6 +21855,18 @@ "integrity": "sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==", "dev": true }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -22007,7 +22027,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, "engines": { "node": ">=6" } @@ -22078,6 +22097,15 @@ "url": "https://opencollective.com/ramda" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -22454,14 +22482,12 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "node_modules/regenerate-unicode-properties": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, "dependencies": { "regenerate": "^1.4.2" }, @@ -22478,7 +22504,6 @@ "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" } @@ -22487,7 +22512,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -22504,7 +22528,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -22521,7 +22544,6 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, "dependencies": { "jsesc": "~0.5.0" }, @@ -22533,7 +22555,6 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, "bin": { "jsesc": "bin/jsesc" } @@ -22718,7 +22739,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -23461,7 +23481,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -23479,7 +23498,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -23499,7 +23517,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -23634,6 +23651,15 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -23653,7 +23679,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -23670,7 +23695,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -23781,7 +23805,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -23885,11 +23908,16 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "license": "MIT" + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -23906,12 +23934,18 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", @@ -24303,7 +24337,6 @@ "version": "4.0.10", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -24323,7 +24356,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -24340,7 +24372,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -24354,7 +24385,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -24377,6 +24407,29 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stringify-object/node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stringify-package": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", @@ -24437,6 +24490,15 @@ "node": ">=0.10.0" } }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -24931,7 +24993,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true, "engines": { "node": ">=8" } @@ -24991,6 +25052,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/terser": { + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -25033,6 +25118,48 @@ "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", "dev": true }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tinypool": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", @@ -25357,7 +25484,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -25371,7 +25497,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -25389,7 +25514,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -25408,7 +25532,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -25465,7 +25588,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -25495,7 +25617,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, "engines": { "node": ">=4" } @@ -25504,7 +25625,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -25517,7 +25637,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, "engines": { "node": ">=4" } @@ -25526,7 +25645,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, "engines": { "node": ">=4" } @@ -25553,7 +25671,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -25689,7 +25806,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, "engines": { "node": ">= 10.0.0" } @@ -25727,6 +25843,16 @@ "node": ">=8" } }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -25995,6 +26121,59 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-plugin-pwa": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.21.2.tgz", + "integrity": "sha512-vFhH6Waw8itNu37hWUJxL50q+CBbNcMVzsKaYHQVrfxTt3ihk3PeLO22SbiP1UNWzcEPaTQv+YVxe4G0KOjAkg==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.6", + "pretty-bytes": "^6.1.1", + "tinyglobby": "^0.2.10", + "workbox-build": "^7.3.0", + "workbox-window": "^7.3.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vite-pwa/assets-generator": "^0.2.6", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "workbox-build": "^7.3.0", + "workbox-window": "^7.3.0" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } + } + }, + "node_modules/vite-plugin-pwa/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-plugin-pwa/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/vite/node_modules/@esbuild/android-arm": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", @@ -26534,7 +26713,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -26611,7 +26789,6 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -26692,6 +26869,432 @@ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, + "node_modules/workbox-background-sync": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz", + "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz", + "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-build": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz", + "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==", + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^2.4.1", + "@rollup/plugin-terser": "^0.4.3", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.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": "7.3.0", + "workbox-broadcast-update": "7.3.0", + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-google-analytics": "7.3.0", + "workbox-navigation-preload": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-range-requests": "7.3.0", + "workbox-recipes": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0", + "workbox-streams": "7.3.0", + "workbox-sw": "7.3.0", + "workbox-window": "7.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "license": "MIT", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "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 + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "license": "BSD-2-Clause" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz", + "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-core": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz", + "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz", + "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz", + "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==", + "license": "MIT", + "dependencies": { + "workbox-background-sync": "7.3.0", + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz", + "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-precaching": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz", + "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz", + "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-recipes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz", + "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==", + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "7.3.0", + "workbox-core": "7.3.0", + "workbox-expiration": "7.3.0", + "workbox-precaching": "7.3.0", + "workbox-routing": "7.3.0", + "workbox-strategies": "7.3.0" + } + }, + "node_modules/workbox-routing": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz", + "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-strategies": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz", + "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0" + } + }, + "node_modules/workbox-streams": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz", + "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==", + "license": "MIT", + "dependencies": { + "workbox-core": "7.3.0", + "workbox-routing": "7.3.0" + } + }, + "node_modules/workbox-sw": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz", + "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==", + "license": "MIT" + }, + "node_modules/workbox-window": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz", + "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==", + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "7.3.0" + } + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -26835,8 +27438,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "5.0.1", diff --git a/package.json b/package.json index 2f13c33..90af42f 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "@types/howler": "2.2.10", "@types/react": "^18.2.25", "@types/react-dom": "^18.2.10", + "@vite-pwa/astro": "0.5.0", "astro": "4.10.3", "deepmerge": "4.3.1", "focus-trap-react": "10.2.3", diff --git a/public/assets/pwa/128.png b/public/assets/pwa/128.png new file mode 100644 index 0000000000000000000000000000000000000000..80a8ef01538ad04e30cd23701417f6b5d5e64073 GIT binary patch literal 4016 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 EKRz;x@&Et; literal 0 HcmV?d00001 diff --git a/public/assets/pwa/144.png b/public/assets/pwa/144.png new file mode 100644 index 0000000000000000000000000000000000000000..fdbc932be961abcc56687f94df7ef4f70cae8ed9 GIT binary patch literal 4466 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 literal 0 HcmV?d00001 diff --git a/public/assets/pwa/192.png b/public/assets/pwa/192.png new file mode 100644 index 0000000000000000000000000000000000000000..e89099a8c0a24d266ab7677c740f66d46dbd7901 GIT binary patch literal 5806 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 { + setNeedRefresh(false); + }; + + return ( + +

New Content

+

+ New content available, click on reload button to update. +

+ +
+ + + +
+
+ ); +} diff --git a/src/components/reload/reload.module.css b/src/components/reload/reload.module.css new file mode 100644 index 0000000..0972059 --- /dev/null +++ b/src/components/reload/reload.module.css @@ -0,0 +1,38 @@ +.title { + font-family: var(--font-heading); + font-size: var(--font-md); + font-weight: 600; +} + +.desc { + margin-top: 8px; + color: var(--color-foreground-subtle); +} + +.buttons { + display: flex; + column-gap: 8px; + align-items: center; + justify-content: flex-end; + margin-top: 20px; + + & button { + display: flex; + align-items: center; + justify-content: center; + height: 40px; + padding: 0 12px; + font-size: var(--font-sm); + font-weight: 500; + color: var(--color-foreground-subtle); + cursor: pointer; + background-color: var(--color-neutral-200); + border: none; + border-radius: 8px; + + &.primary { + color: var(--color-neutral-50); + background-color: var(--color-neutral-950); + } + } +} diff --git a/src/components/reload/reload.tsx b/src/components/reload/reload.tsx new file mode 100644 index 0000000..c8dbc4b --- /dev/null +++ b/src/components/reload/reload.tsx @@ -0,0 +1,11 @@ +import { useEffect, useState } from 'react'; + +import { ReloadModal } from './reload-modal'; + +export function Reload() { + const [isBrowser, setIsBrowser] = useState(false); + + useEffect(() => setIsBrowser(true), []); + + return isBrowser ? : null; +} diff --git a/src/layouts/layout.astro b/src/layouts/layout.astro index 03b3898..bbc64e6 100644 --- a/src/layouts/layout.astro +++ b/src/layouts/layout.astro @@ -1,4 +1,8 @@ --- +import { pwaInfo } from 'virtual:pwa-info'; // eslint-disable-line + +import { Reload } from '@/components/reload'; + import { count } from '@/lib/sounds'; import '@/styles/global.css'; @@ -35,8 +39,12 @@ const description = + + {pwaInfo && } + + diff --git a/tsconfig.json b/tsconfig.json index 66f8915..66d31aa 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "baseUrl": "./src", "paths": { "@/*": ["./*"] - } + }, + "types": ["vite-plugin-pwa/react", "vite-plugin-pwa/info"] } }