From 5c2b5fe67325ab91e862bd1264aa8648dd81f84e Mon Sep 17 00:00:00 2001 From: Ashhhleyyy Date: Thu, 10 Nov 2022 11:00:40 +0000 Subject: [PATCH] feat: initial commit --- .gitignore | 24 + index.html | 22 + package.json | 24 + pnpm-lock.yaml | 3188 +++++++++++++++++++++++++++++++++++ public/apple-touch-icon.png | Bin 0 -> 13342 bytes public/favicon-192.png | Bin 0 -> 14175 bytes public/favicon.png | Bin 0 -> 14237 bytes public/vite.svg | 1 + src/app.css | 188 +++ src/app.tsx | 24 + src/index.css | 0 src/main.tsx | 5 + src/pages/DrawName.tsx | 50 + src/pages/EnterNames.tsx | 52 + src/shuffle.ts | 56 + src/util.ts | 8 + src/vite-env.d.ts | 1 + test/shuffle.test.ts | 12 + tsconfig.json | 22 + tsconfig.node.json | 9 + vite.config.ts | 37 + 21 files changed, 3723 insertions(+) create mode 100644 .gitignore create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-192.png create mode 100644 public/favicon.png create mode 100644 public/vite.svg create mode 100644 src/app.css create mode 100644 src/app.tsx create mode 100644 src/index.css create mode 100644 src/main.tsx create mode 100644 src/pages/DrawName.tsx create mode 100644 src/pages/EnterNames.tsx create mode 100644 src/shuffle.ts create mode 100644 src/util.ts create mode 100644 src/vite-env.d.ts create mode 100644 test/shuffle.test.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/index.html b/index.html new file mode 100644 index 0000000..a3fb8c9 --- /dev/null +++ b/index.html @@ -0,0 +1,22 @@ + + + + + + + SecSan + + + + + + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..0d55a9f --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "secsan", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "test": "vitest" + }, + "dependencies": { + "@preact/signals": "^1.1.2", + "preact": "^10.11.2" + }, + "devDependencies": { + "@preact/preset-vite": "^2.4.0", + "@types/node": "^18.11.9", + "typescript": "^4.6.4", + "vite": "^3.2.3", + "vite-plugin-pwa": "^0.13.3", + "vitest": "^0.25.1" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..ea46fee --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3188 @@ +lockfileVersion: 5.4 + +specifiers: + '@preact/preset-vite': ^2.4.0 + '@preact/signals': ^1.1.2 + '@types/node': ^18.11.9 + preact: ^10.11.2 + typescript: ^4.6.4 + vite: ^3.2.3 + vite-plugin-pwa: ^0.13.3 + vitest: ^0.25.1 + +dependencies: + '@preact/signals': 1.1.2_preact@10.11.2 + preact: 10.11.2 + +devDependencies: + '@preact/preset-vite': 2.4.0_preact@10.11.2+vite@3.2.3 + '@types/node': 18.11.9 + typescript: 4.8.4 + vite: 3.2.3_@types+node@18.11.9 + vite-plugin-pwa: 0.13.3_vite@3.2.3 + vitest: 0.25.1 + +packages: + + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@apideck/better-ajv-errors/0.3.6_ajv@8.11.0: + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: 8.11.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.20.1: + resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.20.2: + resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.4 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helpers': 7.20.1 + '@babel/parser': 7.20.3 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.20.4: + resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: + resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-explode-assignable-expression': 7.18.6 + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2: + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.20.1 + '@babel/core': 7.20.2 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin/7.19.0_@babel+core@7.20.2: + resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.1 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.2: + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-explode-assignable-expression/7.18.6: + resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-member-expression-to-functions/7.18.9: + resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-module-transforms/7.20.2: + resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression/7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-wrap-function': 7.19.0 + '@babel/types': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers/7.19.1: + resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function/7.19.0: + resolution: {integrity: sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.19.0 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers/7.20.1: + resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.20.3: + resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.20.2 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-async-generator-functions/7.20.1_@babel+core@7.20.2: + resolution: {integrity: sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-object-rest-spread/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.20.1 + '@babel/core': 7.20.2 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-transform-parameters': 7.20.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.2: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.2: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.2: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.2: + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-jsx/7.18.6: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.2: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.2: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.2: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.2: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-block-scoping/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-classes/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-destructuring/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.2: + resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-modules-amd/7.19.6_@babel+core@7.20.2: + resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.19.6_@babel+core@7.20.2: + resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.19.6_@babel+core@7.20.2: + resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.20.2: + resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.20.2: + resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-development/7.18.6: + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/plugin-transform-react-jsx': 7.19.0 + dev: true + + /@babel/plugin-transform-react-jsx/7.19.0: + resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-jsx': 7.18.6 + '@babel/types': 7.20.2 + dev: true + + /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + regenerator-transform: 0.15.0 + dev: true + + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-spread/7.19.0_@babel+core@7.20.2: + resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.2: + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/preset-env/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.20.1 + '@babel/core': 7.20.2 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.18.6 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-async-generator-functions': 7.20.1_@babel+core@7.20.2 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.20.2 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.2 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2 + '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-block-scoping': 7.20.2_@babel+core@7.20.2 + '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.20.2 + '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.20.2 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.2 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-modules-amd': 7.19.6_@babel+core@7.20.2 + '@babel/plugin-transform-modules-commonjs': 7.19.6_@babel+core@7.20.2 + '@babel/plugin-transform-modules-systemjs': 7.19.6_@babel+core@7.20.2 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-named-capturing-groups-regex': 7.19.1_@babel+core@7.20.2 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-parameters': 7.20.3_@babel+core@7.20.2 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.20.2 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.2 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.2 + '@babel/preset-modules': 0.1.5_@babel+core@7.20.2 + '@babel/types': 7.20.2 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.2 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.2 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.2 + core-js-compat: 3.26.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.20.2: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.2 + '@babel/types': 7.20.2 + esutils: 2.0.3 + dev: true + + /@babel/runtime/7.20.1: + resolution: {integrity: sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.10 + dev: true + + /@babel/template/7.18.10: + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 + dev: true + + /@babel/traverse/7.20.1: + resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.4 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.20.2: + resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@esbuild/android-arm/0.15.13: + resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.15.13: + resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@preact/preset-vite/2.4.0_preact@10.11.2+vite@3.2.3: + resolution: {integrity: sha512-EiUMHuiCThuTuK+eH2r5uDg+CJbbt4aWJGePuszrHuXUpRv6WAeO4S+/DTJsEHtPtGmPRR3cLQ68N5097eOSRA==} + peerDependencies: + '@babel/core': 7.x + vite: 2.x || 3.x + dependencies: + '@babel/plugin-transform-react-jsx': 7.19.0 + '@babel/plugin-transform-react-jsx-development': 7.18.6 + '@prefresh/vite': 2.2.9_preact@10.11.2+vite@3.2.3 + '@rollup/pluginutils': 4.2.1 + babel-plugin-transform-hook-names: 1.0.2 + debug: 4.3.4 + kolorist: 1.6.0 + resolve: 1.22.1 + vite: 3.2.3_@types+node@18.11.9 + transitivePeerDependencies: + - preact + - supports-color + dev: true + + /@preact/signals-core/1.2.2: + resolution: {integrity: sha512-z3/bCj7rRA21RJb4FeJ4guCrD1CQbaURHkCTunUWQpxUMAFOPXCD8tSFqERyGrrcSb4T3Hrmdc1OAl0LXBHwiw==} + dev: false + + /@preact/signals/1.1.2_preact@10.11.2: + resolution: {integrity: sha512-MLNNrICSllHBhpXBvXbl7K5L1HmIjuTzgBw+zdODqjM/cLGPXdYiAWt4lqXlrxNavYdoU4eljb+TLE+DRL+6yw==} + peerDependencies: + preact: 10.x + dependencies: + '@preact/signals-core': 1.2.2 + preact: 10.11.2 + dev: false + + /@prefresh/babel-plugin/0.4.4: + resolution: {integrity: sha512-/EvgIFMDL+nd20WNvMO0JQnzIl1EJPgmSaSYrZUww7A+aSdKsi37aL07TljrZR1cBMuzFxcr4xvqsUQLFJEukw==} + dev: true + + /@prefresh/core/1.4.1_preact@10.11.2: + resolution: {integrity: sha512-og1vaBj3LMJagVncNrDb37Gqc0cWaUcDbpVt5hZtsN4i2Iwzd/5hyTsDHvlMirhSym3wL9ihU0Xa2VhSaOue7g==} + peerDependencies: + preact: ^10.0.0 + dependencies: + preact: 10.11.2 + dev: true + + /@prefresh/utils/1.1.3: + resolution: {integrity: sha512-Mb9abhJTOV4yCfkXrMrcgFiFT7MfNOw8sDa+XyZBdq/Ai2p4Zyxqsb3EgHLOEdHpMj6J9aiZ54W8H6FTam1u+A==} + dev: true + + /@prefresh/vite/2.2.9_preact@10.11.2+vite@3.2.3: + resolution: {integrity: sha512-1ERBF85Ja9/lkrfaltmo4Gca7R2ClQPSHHDDysFgfvPzHmLUeyB0x9WHwhwov/AA1DnyPhsfYT54z3yQd8XrgA==} + peerDependencies: + preact: ^10.4.0 + vite: '>=2.0.0-beta.3' + dependencies: + '@babel/core': 7.20.2 + '@prefresh/babel-plugin': 0.4.4 + '@prefresh/core': 1.4.1_preact@10.11.2 + '@prefresh/utils': 1.1.3 + '@rollup/pluginutils': 4.2.1 + preact: 10.11.2 + vite: 3.2.3_@types+node@18.11.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@rollup/plugin-babel/5.3.1_rw3hudt2pmn5afxog7l3b6qtze: + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-imports': 7.18.6 + '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.1: + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.2.2 + is-module: 1.0.0 + resolve: 1.22.1 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace/2.4.2_rollup@2.79.1: + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + magic-string: 0.25.9 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace/4.0.0_rollup@2.79.1: + resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.79.1 + magic-string: 0.25.9 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils/3.1.0_rollup@2.79.1: + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@surma/rollup-plugin-off-main-thread/2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + dependencies: + ejs: 3.1.8 + json5: 2.2.1 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.8 + dev: true + + /@types/chai-subset/1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.4 + dev: true + + /@types/chai/4.3.4: + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} + dev: true + + /@types/estree/0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + + /@types/node/18.11.9: + resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} + dev: true + + /@types/resolve/1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 18.11.9 + dev: true + + /@types/trusted-types/2.0.2: + resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} + dev: true + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv/8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /assertion-error/1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /async/3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.2: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.20.1 + '@babel/core': 7.20.2 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.2 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.2: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.2 + core-js-compat: 3.26.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.2: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-transform-hook-names/1.0.2: + resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} + peerDependencies: + '@babel/core': ^7.12.10 + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001431 + electron-to-chromium: 1.4.284 + node-releases: 2.0.6 + update-browserslist-db: 1.0.10_browserslist@4.21.4 + dev: true + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /builtin-modules/3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.3 + dev: true + + /caniuse-lite/1.0.30001431: + resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==} + dev: true + + /chai/4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.2 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /check-error/1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /common-tags/1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /core-js-compat/3.26.0: + resolution: {integrity: sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==} + dependencies: + browserslist: 4.21.4 + dev: true + + /crypto-random-string/2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-eql/4.1.2: + resolution: {integrity: sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + dev: true + + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /ejs/3.1.8: + resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.5 + dev: true + + /electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + dev: true + + /es-abstract/1.20.4: + resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.3 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + unbox-primitive: 1.0.2 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild-android-64/0.15.13: + resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.15.13: + resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.15.13: + resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.15.13: + resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.15.13: + resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.15.13: + resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.15.13: + resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.15.13: + resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.15.13: + resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.15.13: + resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.15.13: + resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.15.13: + resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.15.13: + resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.15.13: + resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.15.13: + resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.15.13: + resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.15.13: + resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.15.13: + resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.15.13: + resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.15.13: + resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.15.13: + resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.13 + '@esbuild/linux-loong64': 0.15.13 + esbuild-android-64: 0.15.13 + esbuild-android-arm64: 0.15.13 + esbuild-darwin-64: 0.15.13 + esbuild-darwin-arm64: 0.15.13 + esbuild-freebsd-64: 0.15.13 + esbuild-freebsd-arm64: 0.15.13 + esbuild-linux-32: 0.15.13 + esbuild-linux-64: 0.15.13 + esbuild-linux-arm: 0.15.13 + esbuild-linux-arm64: 0.15.13 + esbuild-linux-mips64le: 0.15.13 + esbuild-linux-ppc64le: 0.15.13 + esbuild-linux-riscv64: 0.15.13 + esbuild-linux-s390x: 0.15.13 + esbuild-netbsd-64: 0.15.13 + esbuild-openbsd-64: 0.15.13 + esbuild-sunos-64: 0.15.13 + esbuild-windows-32: 0.15.13 + esbuild-windows-64: 0.15.13 + esbuild-windows-arm64: 0.15.13 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /estree-walker/1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + dev: true + + /filelist/1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.0 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-func-name/2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + + /get-intrinsic/1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-own-enumerable-property-symbols/3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: true + + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.3 + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /idb/7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.3 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + dev: true + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-module/1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj/1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp/1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /jake/10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-worker/26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.11.9 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /jsesc/0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonpointer/5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + + /kolorist/1.6.0: + resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==} + dev: true + + /leven/3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /local-pkg/0.4.2: + resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} + engines: {node: '>=14'} + dev: true + + /lodash.debounce/4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.sortby/4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /loupe/2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + + /magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/5.1.0: + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + dev: true + + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /pathval/1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preact/10.11.2: + resolution: {integrity: sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==} + + /pretty-bytes/5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + + /pretty-bytes/6.0.0: + resolution: {integrity: sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==} + engines: {node: ^14.13.1 || >=16.0.0} + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /regenerate-unicode-properties/10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate/1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime/0.13.10: + resolution: {integrity: sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==} + dev: true + + /regenerator-transform/0.15.0: + resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} + dependencies: + '@babel/runtime': 7.20.1 + dev: true + + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + + /regexpu-core/5.2.1: + resolution: {integrity: sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsgen: 0.7.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.0.0 + dev: true + + /regjsgen/0.7.1: + resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} + dev: true + + /regjsparser/0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rollup-plugin-terser/7.0.2_rollup@2.79.1: + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.18.6 + jest-worker: 26.6.2 + rollup: 2.79.1 + serialize-javascript: 4.0.0 + terser: 5.15.1 + dev: true + + /rollup/2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test/1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + is-regex: 1.1.4 + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /serialize-javascript/4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + object-inspect: 1.12.2 + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + dev: true + + /string.prototype.matchall/4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + get-intrinsic: 1.1.3 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + + /string.prototype.trimend/1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: true + + /string.prototype.trimstart/1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: true + + /stringify-object/3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-comments/2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + dev: true + + /strip-literal/0.4.2: + resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} + dependencies: + acorn: 8.8.1 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /temp-dir/2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy/0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + + /terser/5.15.1: + resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.1 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /tinybench/2.3.1: + resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} + dev: true + + /tinypool/0.3.0: + resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy/1.0.2: + resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} + engines: {node: '>=14.0.0'} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tr46/1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.1.1 + dev: true + + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest/0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + dev: true + + /typescript/4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript/2.0.0: + resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript/2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unique-string/2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /upath/1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.4 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /vite-plugin-pwa/0.13.3_vite@3.2.3: + resolution: {integrity: sha512-cjWXpZ7slAY14OKz7M8XdgTIi9wjf6OD6NkhiMAc+ogxnbUrecUwLdRtfGPCPsN2ftut5gaN1jTghb11p6IQAA==} + peerDependencies: + vite: ^3.1.0 + dependencies: + '@rollup/plugin-replace': 4.0.0_rollup@2.79.1 + debug: 4.3.4 + fast-glob: 3.2.12 + pretty-bytes: 6.0.0 + rollup: 2.79.1 + vite: 3.2.3_@types+node@18.11.9 + workbox-build: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /vite/3.2.3_@types+node@18.11.9: + resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.11.9 + esbuild: 0.15.13 + postcss: 8.4.18 + resolve: 1.22.1 + rollup: 2.79.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitest/0.25.1: + resolution: {integrity: sha512-eH74h6MkuEgsqR4mAQZeMK9O0PROiKY+i+1GMz/fBi5A3L2ml5U7JQs7LfPU7+uWUziZyLHagl+rkyfR8SLhlA==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 18.11.9 + acorn: 8.8.1 + acorn-walk: 8.2.0 + chai: 4.3.7 + debug: 4.3.4 + local-pkg: 0.4.2 + source-map: 0.6.1 + strip-literal: 0.4.2 + tinybench: 2.3.1 + tinypool: 0.3.0 + tinyspy: 1.0.2 + vite: 3.2.3_@types+node@18.11.9 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /webidl-conversions/4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /whatwg-url/7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /workbox-background-sync/6.5.4: + resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==} + dependencies: + idb: 7.1.1 + workbox-core: 6.5.4 + dev: true + + /workbox-broadcast-update/6.5.4: + resolution: {integrity: sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-build/6.5.4: + resolution: {integrity: sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==} + engines: {node: '>=10.0.0'} + dependencies: + '@apideck/better-ajv-errors': 0.3.6_ajv@8.11.0 + '@babel/core': 7.20.2 + '@babel/preset-env': 7.20.2_@babel+core@7.20.2 + '@babel/runtime': 7.20.1 + '@rollup/plugin-babel': 5.3.1_rw3hudt2pmn5afxog7l3b6qtze + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.79.1 + '@rollup/plugin-replace': 2.4.2_rollup@2.79.1 + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.11.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: 2.79.1 + rollup-plugin-terser: 7.0.2_rollup@2.79.1 + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 6.5.4 + workbox-broadcast-update: 6.5.4 + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-google-analytics: 6.5.4 + workbox-navigation-preload: 6.5.4 + workbox-precaching: 6.5.4 + workbox-range-requests: 6.5.4 + workbox-recipes: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + workbox-streams: 6.5.4 + workbox-sw: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /workbox-cacheable-response/6.5.4: + resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-core/6.5.4: + resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==} + dev: true + + /workbox-expiration/6.5.4: + resolution: {integrity: sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==} + dependencies: + idb: 7.1.1 + workbox-core: 6.5.4 + dev: true + + /workbox-google-analytics/6.5.4: + resolution: {integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==} + dependencies: + workbox-background-sync: 6.5.4 + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-navigation-preload/6.5.4: + resolution: {integrity: sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-precaching/6.5.4: + resolution: {integrity: sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==} + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-range-requests/6.5.4: + resolution: {integrity: sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-recipes/6.5.4: + resolution: {integrity: sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==} + dependencies: + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-precaching: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-routing/6.5.4: + resolution: {integrity: sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-strategies/6.5.4: + resolution: {integrity: sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-streams/6.5.4: + resolution: {integrity: sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==} + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + dev: true + + /workbox-sw/6.5.4: + resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==} + dev: true + + /workbox-window/6.5.4: + resolution: {integrity: sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==} + dependencies: + '@types/trusted-types': 2.0.2 + workbox-core: 6.5.4 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c995475afd7622db2b578efa9bdb03f477895203 GIT binary patch literal 13342 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 literal 0 HcmV?d00001 diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..186110e4a894b5553d8ab2c8d03d5ce34459e12c GIT binary patch literal 14237 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

4#*g8EmXn?&YLRxq;S%;gWg0AyC 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 literal 0 HcmV?d00001 diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..3d21a7b --- /dev/null +++ b/src/app.css @@ -0,0 +1,188 @@ +:root { + --background: #13092b; + --background-transparent: #13092baa; + --background-2: #090f2b; + --foreground: #ddd; + --foreground-bright: #fff; + --foreground-dim: #aaa; + --error: orange; + --accent: #f9027a; + --accent-dim: hsl(331, 50%, 49%); + --primary: #8da1ee; + --confirm: #82f1b1; + --warning: #fb7185; +} + +body { + font-family: 'Ubuntu', 'Noto Sans', sans-serif; + font-size: 24px; + background-color: var(--background); + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg'); + color: var(--foreground); + margin: 0; + box-sizing: border-box; + display: flex; + align-items: center; + flex-direction: column; + min-height: 100vh; + max-width: 100vw; +} + +* { + box-sizing: inherit; +} + +@media (prefers-reduced-motion: no-preference) { + html { + scroll-behavior: smooth; + } +} + +main { + margin: 16px; + padding: 8px; + width: calc(100vw - 32px); + max-width: 720px; + flex: 1; + background-color: var(--background-transparent); +} + +a { + color: inherit; + font-family: inherit; +} + +h1 { + margin: 0; + display: flex; + flex-direction: row; + align-items: center; +} + +h1::before { + content: '# '; + margin-right: 16px; + color: var(--foreground-dim); + font-family: 'JetBrains Mono', 'Oxygen Mono', monospace; +} + +h2::before { + content: '## '; + color: var(--foreground-dim); + font-family: 'JetBrains Mono', 'Oxygen Mono', monospace; +} + +h3::before { + content: '### '; + color: var(--foreground-dim); + font-family: 'JetBrains Mono', 'Oxygen Mono', monospace; +} + +h4::before { + content: '#### '; + color: var(--foreground-dim); + font-family: 'JetBrains Mono', 'Oxygen Mono', monospace; +} + +h5::before { + content: '##### '; + color: var(--foreground-dim); + font-family: 'JetBrains Mono', 'Oxygen Mono', monospace; +} + +h6::before { + content: '###### '; + color: var(--foreground-dim); + font-family: 'JetBrains Mono', 'Oxygen Mono', monospace; +} + +button { + border: none; + padding: 8px; + border-radius: 8px; + cursor: pointer; + text-decoration: none; + font-size: initial; + color: black; + transition: filter 200ms ease; + vertical-align: middle; + font-family: inherit; +} + +button:hover { + filter: brightness(.8); +} + +button.primary { + background-color: var(--primary); +} + +button.confirm { + background-color: var(--confirm); +} + +button.warning { + background-color: var(--warning); +} + +button:disabled { + filter: saturate(25%) brightness(.85); + cursor: not-allowed; +} + +a.primary { + color: var(--primary); +} + +a.confirm { + color: var(--confirm); +} + +a.warning { + color: var(--warning); +} + +input { + margin: 8px 0; + background-color: rgba(128, 128, 128, .25); + color: white; + border: #888 2px solid; + padding: 8px; + border-radius: 8px; + font-family: inherit; + font-size: medium; +} + +input[type="text"]:focus-visible, +input[type="password"]:focus-visible { + outline: none; + border-color: var(--accent); +} + +.button-row { + display: flex; + width: 100%; + flex-direction: row; + flex-wrap: wrap; + gap: 8px; + margin: 8px 0; +} + +.button-row button { + flex: 1; +} + +.button-group { + display: flex; + width: 100%; + flex-direction: column; + gap: 8px; + margin: 8px 0; +} + +.drawn-name { + font-size: 72px; + width: 100%; + display: grid; + place-content: center; +} diff --git a/src/app.tsx b/src/app.tsx new file mode 100644 index 0000000..747d25f --- /dev/null +++ b/src/app.tsx @@ -0,0 +1,24 @@ +import { signal } from '@preact/signals'; +import { useState } from 'preact/hooks'; +import './app.css'; +import DrawName from './pages/DrawName'; +import EnterNames from './pages/EnterNames'; +import { buildNameMap } from './shuffle'; + +const names = signal([]); + +export function App() { + const [shuffled, setShuffled] = useState<[string, string][] | null>(null); + + function start() { + setShuffled(buildNameMap(names.value)); + } + + return ( +

+

Secret Santa

+ + {shuffled ? : } +
+ ) +} diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..e0ce3e9 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,5 @@ +import { render } from 'preact' +import { App } from './app' +import './index.css' + +render(, document.getElementById('app') as HTMLElement) diff --git a/src/pages/DrawName.tsx b/src/pages/DrawName.tsx new file mode 100644 index 0000000..806fa69 --- /dev/null +++ b/src/pages/DrawName.tsx @@ -0,0 +1,50 @@ +import { FunctionComponent } from "preact"; +import { useState } from "preact/hooks"; +import { useWindowEvent } from "../util"; + +interface Props { + names: [string, string][]; +} + +const DrawName: FunctionComponent = ({ names }) => { + const [currentPerson, setCurrentPerson] = useState(null); + const [completed, setCompleted] = useState([]); + + useWindowEvent('click', (e) => { + if (e.button !== 0) return; + + if (currentPerson !== null) { + setCompleted(completed => [...completed, currentPerson]) + setCurrentPerson(null); + } + }); + + if (currentPerson === null) { + if (completed.length === names.length) { + return <> +

+ All done! +

+ + } + return <> +
+ {names.map(([name, _], i) => { + if (completed.includes(i)) { + return null; + } else { + return ; + } + })} +
+ + } + + return <> +
+ {names[currentPerson][1]} +
+ +} + +export default DrawName; diff --git a/src/pages/EnterNames.tsx b/src/pages/EnterNames.tsx new file mode 100644 index 0000000..6902b68 --- /dev/null +++ b/src/pages/EnterNames.tsx @@ -0,0 +1,52 @@ +import { Signal } from "@preact/signals"; +import { FunctionComponent } from "preact"; +import { useState } from "preact/hooks"; + +interface Props { + names: Signal; + start: () => void; +} + +const EnterNames: FunctionComponent = ({ names, start }) => { + const [name, setName] = useState(''); + + function addName() { + if (name === '') return; + if (names.value.includes(name)) { + alert(`${name} has already been added!`); + return; + } + names.value = [...names.value, name]; + setName(''); + } + + return <> +
    + {names.value.map((name, i) =>
  • + {name} +
  • )} +
+ +
+ setName((e.target! as HTMLInputElement).value)} + onKeyPress={(e) => { + if (e.key === 'Enter') { + addName(); + e.preventDefault(); + } + }} + /> + +
+ + +
+
+ +} + +export default EnterNames; diff --git a/src/shuffle.ts b/src/shuffle.ts new file mode 100644 index 0000000..23c35e2 --- /dev/null +++ b/src/shuffle.ts @@ -0,0 +1,56 @@ +// https://stackoverflow.com/a/2450976 +function shuffle(array: T[]) { + let currentIndex = array.length, randomIndex; + + // While there remain elements to shuffle. + while (currentIndex != 0) { + // Pick a remaining element. + randomIndex = Math.floor(Math.random() * currentIndex); + currentIndex--; + + // And swap it with the current element. + [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]]; + } + + return array; +} + +function checkShuffled(old: T[], nw: T[]): boolean { + if (old.length !== nw.length) { + throw new Error('cannot compare arrays of non-equal length'); + } + + if (old.length <= 1) { + return true; + } + + for (let i = 0; i < old.length; i++) { + if (old[i] === nw[i]) { + return false; + } + } + + return true; +} + +function nonEqualShuffle(input: T[]): T[] { + const nw = input.slice(); + + shuffle(nw); + while (!checkShuffled(input, nw)) { + shuffle(nw); + } + + return nw; +} + +export function buildNameMap(names: string[]): [person: string, target: string][] { + const ret: [string, string][] = []; + + const shuffled = nonEqualShuffle(names); + for (let i = 0; i < shuffled.length; i++) { + ret.push([names[i], shuffled[i]]); + } + + return ret; +} diff --git a/src/util.ts b/src/util.ts new file mode 100644 index 0000000..7192cd0 --- /dev/null +++ b/src/util.ts @@ -0,0 +1,8 @@ +import { useEffect } from "preact/hooks"; + +export function useWindowEvent(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void { + useEffect(() => { + window.addEventListener(type, listener, options); + return () => window.removeEventListener(type, listener); + }); +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/test/shuffle.test.ts b/test/shuffle.test.ts new file mode 100644 index 0000000..52bd999 --- /dev/null +++ b/test/shuffle.test.ts @@ -0,0 +1,12 @@ +import { expect, test } from 'vitest'; +import { buildNameMap } from '../src/shuffle'; + +test('shuffle does not include matching pairs', () => { + const names = Array(10).fill(null).map((_, i) => "Test " + i); + for (let i = 0; i < 50000; i++) { + const shuffled = buildNameMap(names); + for (const pair of shuffled) { + expect(pair[0]).not.toBe(pair[1]); + } + } +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9c1b1e0 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "jsxImportSource": "preact" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..9d31e2a --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..8bc5e43 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,37 @@ +import { defineConfig } from 'vite'; +import preact from '@preact/preset-vite'; +import { VitePWA } from 'vite-plugin-pwa'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + preact(), + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['favicon.png', 'apple-touch-icon.png'], + manifest: { + name: 'SecSan', + short_name: 'SecSan', + description: 'Secret santa name drawing', + theme_color: '#ffffff', + icons: [ + { + src: 'favicon.png', + sizes: '256x256', + type: 'image/png', + }, + { + src: 'favicon-192.png', + sizes: '192x192', + type: 'image/png', + }, + ], + }, + }), + ], + server: { + hmr: { + clientPort: parseInt(process.env.CLIENT_PORT || '5173'), + }, + }, +});