From f9fc9f688d3a99853271c1c869aa44812562b977 Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sat, 19 Oct 2024 20:49:21 +1100 Subject: [PATCH 1/8] Pad the eventuate report a little --- style/eventuate.css | 1 + 1 file changed, 1 insertion(+) diff --git a/style/eventuate.css b/style/eventuate.css index 6301f3a..b6fdd49 100644 --- a/style/eventuate.css +++ b/style/eventuate.css @@ -7,6 +7,7 @@ #eventuate { background: lightgoldenrodyellow; + padding: 12px; } #eventuate #volunteers span:after { From e6bdd76d1d6c94ed3248d76d8925287f6d050d73 Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sun, 20 Oct 2024 07:19:05 +1100 Subject: [PATCH 2/8] Linting and refactoring --- crackle.config.ts | 2 +- eslint.config.mjs | 12 + package.json | 9 +- pnpm-lock.yaml | 401 +++++++++++++++++- src/dom/upsertParagraph.ts | 18 + src/extractors/ResultsPageExtractor.ts | 78 +--- src/index.ts | 27 +- src/presenters/MilestonePresenter.ts | 4 +- .../fiveKFinishersToMilestones.ts | 33 +- src/types/Finisher.ts | 70 +++ src/types/Volunteer.ts | 7 + .../fiveKFinishersToMilestones.test.ts | 11 +- 12 files changed, 534 insertions(+), 138 deletions(-) create mode 100644 eslint.config.mjs create mode 100644 src/dom/upsertParagraph.ts create mode 100644 src/types/Finisher.ts create mode 100644 src/types/Volunteer.ts diff --git a/crackle.config.ts b/crackle.config.ts index 064fded..1889f3a 100644 --- a/crackle.config.ts +++ b/crackle.config.ts @@ -3,5 +3,5 @@ import { defineConfig } from '@crackle/cli/config'; export default defineConfig({ package: { mode: 'bundle', - }, + } }); diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..3b4767a --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,12 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; + + +export default [ + {files: ["**/*.{js,mjs,cjs,ts}"]}, + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + ...tseslint.configs.strict, + ...tseslint.configs.stylistic, +]; diff --git a/package.json b/package.json index 6fececb..ebc6bad 100644 --- a/package.json +++ b/package.json @@ -36,24 +36,31 @@ "dist" ], "scripts": { - "build": "pnpm crackle:package ; pnpm rename && pnpm web-ext:build && pnpm repack-for-chromium", + "build": "pnpm clean ; pnpm lint ; pnpm crackle:package ; pnpm rename && pnpm web-ext:build && pnpm repack-for-chromium", "crackle:package": "crackle package", + "clean": "rm -r ./chromium/ ./dist/ ./eventuate-chromium.zip ./web-ext-artifacts/", "rename": "bash -c 'mv ./dist/index.cjs ./dist/index.js'", "repack-for-chromium": "bash './script/repack-for-chromium'", "test": "jest", + "lint": "eslint .", "web-ext:build": "web-ext build -o", "web-ext:lint": "web-ext lint", "start": "web-ext run -v -u https://www.parkrun.com.au/coburg/results/latestresults/" }, "devDependencies": { "@crackle/cli": "^0.15.5", + "@eslint/js": "^9.13.0", + "@types/eslint__js": "^8.42.3", "@types/jest": "^29.5.13", "@types/node": "^22.7.5", + "eslint": "^9.13.0", + "globals": "^15.11.0", "jest": "^29.7.0", "prettier": "^3.3.3", "ts-jest": "^29.2.5", "ts-node-dev": "^2.0.0", "typescript": "^5.6.2", + "typescript-eslint": "^8.10.0", "web-ext": "^8.3.0" }, "packageManager": "pnpm@9.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ea34bb..dfabcc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,12 +11,24 @@ importers: '@crackle/cli': specifier: ^0.15.5 version: 0.15.5(@types/node@22.7.5)(terser@5.31.1)(typescript@5.6.2)(webpack@5.91.0(@swc/core@1.5.25)) + '@eslint/js': + specifier: ^9.13.0 + version: 9.13.0 + '@types/eslint__js': + specifier: ^8.42.3 + version: 8.42.3 '@types/jest': specifier: ^29.5.13 version: 29.5.13 '@types/node': specifier: ^22.7.5 version: 22.7.5 + eslint: + specifier: ^9.13.0 + version: 9.13.0(jiti@1.21.3) + globals: + specifier: ^15.11.0 + version: 15.11.0 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) @@ -32,6 +44,9 @@ importers: typescript: specifier: ^5.6.2 version: 5.6.2 + typescript-eslint: + specifier: ^8.10.0 + version: 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) web-ext: specifier: ^8.3.0 version: 8.3.0(body-parser@1.20.2)(express@4.19.2) @@ -681,14 +696,42 @@ packages: resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.7.0': + resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@8.57.1': resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.13.0': + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.1': + resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@fluent/syntax@0.19.0': resolution: {integrity: sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==} engines: {node: '>=14.0.0', npm: '>=7.0.0'} @@ -708,6 +751,14 @@ packages: '@formatjs/intl-localematcher@0.5.4': resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} + '@humanfs/core@0.19.0': + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.5': + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -721,6 +772,10 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -1044,6 +1099,9 @@ packages: '@types/eslint@8.56.10': resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint__js@8.42.3': + resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -1071,9 +1129,6 @@ packages: '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/node@22.7.4': - resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} - '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -1095,6 +1150,63 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@typescript-eslint/eslint-plugin@8.10.0': + resolution: {integrity: sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.10.0': + resolution: {integrity: sha512-E24l90SxuJhytWJ0pTQydFT46Nk0Z+bsLKo/L8rtQSL93rQ6byd1V/QbDpHUTdLPOMsBCcYXZweADNCfOCmOAg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@8.10.0': + resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.10.0': + resolution: {integrity: sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.10.0': + resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.10.0': + resolution: {integrity: sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.10.0': + resolution: {integrity: sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.10.0': + resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -1878,6 +1990,10 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1886,16 +2002,34 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true + eslint@9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + espree@10.1.0: resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2011,6 +2145,10 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -2043,6 +2181,10 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -2149,6 +2291,14 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + engines: {node: '>=18'} + globby@10.0.0: resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} engines: {node: '>=8'} @@ -2780,6 +2930,10 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -3593,6 +3747,12 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + ts-jest@29.2.5: resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} @@ -3684,6 +3844,15 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.10.0: + resolution: {integrity: sha512-YIu230PeN7z9zpu/EtqCIuRVHPs4iSlqW6TEvjbyDAE3MZsSl2RXBo+5ag+lbABCG8sFM1WVKEXhlQ8Ml8A3Fw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + typescript@5.6.2: resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} @@ -4466,8 +4635,25 @@ snapshots: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.3))': + dependencies: + eslint: 9.13.0(jiti@1.21.3) + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.10.1': {} + '@eslint-community/regexpp@4.11.1': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.7.0': {} + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -4482,8 +4668,30 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.5 + espree: 10.2.0 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + '@eslint/js@8.57.1': {} + '@eslint/js@9.13.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.1': + dependencies: + levn: 0.4.1 + '@fluent/syntax@0.19.0': {} '@formatjs/ecma402-abstract@2.0.0': @@ -4510,6 +4718,13 @@ snapshots: dependencies: tslib: 2.6.3 + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -4522,6 +4737,8 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 @@ -4902,6 +5119,10 @@ snapshots: '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 + '@types/eslint__js@8.42.3': + dependencies: + '@types/eslint': 8.56.10 + '@types/estree@1.0.6': {} '@types/glob@7.2.0': @@ -4932,10 +5153,6 @@ snapshots: '@types/minimatch@3.0.5': {} - '@types/node@22.7.4': - dependencies: - undici-types: 6.19.8 - '@types/node@22.7.5': dependencies: undici-types: 6.19.8 @@ -4956,6 +5173,87 @@ snapshots: dependencies: '@types/node': 22.7.5 + '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2))(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + dependencies: + '@eslint-community/regexpp': 4.10.1 + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.10.0 + eslint: 9.13.0(jiti@1.21.3) + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.10.0 + debug: 4.3.5 + eslint: 9.13.0(jiti@1.21.3) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.10.0': + dependencies: + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 + + '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + debug: 4.3.5 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.10.0': {} + + '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.2)': + dependencies: + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 + debug: 4.3.5 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.3)) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) + eslint: 9.13.0(jiti@1.21.3) + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.10.0': + dependencies: + '@typescript-eslint/types': 8.10.0 + eslint-visitor-keys: 3.4.3 + '@ungap/structured-clone@1.2.0': {} '@vanilla-extract/babel-plugin-debug-ids@1.0.6': @@ -5906,10 +6204,17 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@8.1.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.0.0: {} + eslint-visitor-keys@4.1.0: {} + eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) @@ -5953,12 +6258,60 @@ snapshots: transitivePeerDependencies: - supports-color + eslint@9.13.0(jiti@1.21.3): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.3)) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.7.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.13.0 + '@eslint/plugin-kit': 0.2.1 + '@humanfs/node': 0.16.5 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.5 + escape-string-regexp: 4.0.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.3 + transitivePeerDependencies: + - supports-color + espree@10.1.0: dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 + espree@10.2.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.1.0 + espree@9.6.1: dependencies: acorn: 8.12.1 @@ -6128,6 +6481,10 @@ snapshots: dependencies: flat-cache: 3.2.0 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + filelist@1.0.4: dependencies: minimatch: 5.1.6 @@ -6174,6 +6531,11 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + flatted@3.3.1: {} forwarded@0.2.0: {} @@ -6280,6 +6642,10 @@ snapshots: dependencies: type-fest: 0.20.2 + globals@14.0.0: {} + + globals@15.11.0: {} + globby@10.0.0: dependencies: '@types/glob': 7.2.0 @@ -6816,7 +7182,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.7.4 + '@types/node': 22.7.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7040,6 +7406,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} minipass@3.3.6: @@ -7856,6 +8226,10 @@ snapshots: tree-kill@1.2.2: {} + ts-api-utils@1.3.0(typescript@5.6.2): + dependencies: + typescript: 5.6.2 + ts-jest@29.2.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(jest@29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)))(typescript@5.6.2): dependencies: bs-logger: 0.2.6 @@ -7952,6 +8326,17 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2))(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint + - supports-color + typescript@5.6.2: {} ufo@1.5.3: {} diff --git a/src/dom/upsertParagraph.ts b/src/dom/upsertParagraph.ts new file mode 100644 index 0000000..cd82a32 --- /dev/null +++ b/src/dom/upsertParagraph.ts @@ -0,0 +1,18 @@ +export function upsertParagraph( + div: HTMLElement, + id: string, + content: string): HTMLParagraphElement { + const existingParagraph = Array.from(div.children).find( + (element) => element.id === id + ); + + if (existingParagraph) { + existingParagraph.remove(); + } + + const paragraph = document.createElement("p"); + paragraph.id = id; + paragraph.innerText = content; + div.appendChild(paragraph); + return paragraph; +} diff --git a/src/extractors/ResultsPageExtractor.ts b/src/extractors/ResultsPageExtractor.ts index e9270ac..464df2e 100644 --- a/src/extractors/ResultsPageExtractor.ts +++ b/src/extractors/ResultsPageExtractor.ts @@ -1,80 +1,10 @@ -interface IFinisher { - name: string; - agegroup?: string; - club?: string; - gender?: string; - position?: string; - runs: string; - vols?: string; - agegrade?: string; - achievement?: string; - time?: string; - athleteID?: number; -} - -export class Finisher implements IFinisher { - name: string; - agegroup?: string; - club?: string; - gender?: string; - position?: string; - runs: string; - vols?: string; - agegrade?: string; - achievement?: string; - time?: string; - athleteID?: number; - - constructor( - name: string | undefined, - agegroup: string | undefined, - club: string | undefined, - gender: string | undefined, - position: string | undefined, - runs: string | undefined, - vols: string | undefined, - agegrade: string | undefined, - achievement: string | undefined, - time: string | undefined, - athleteID: number | undefined, - ) { - this.name = name ?? "a parkrunner"; - this.agegroup = agegroup; - this.club = club; - this.gender = gender; - this.position = position; - this.runs = runs ?? "0"; - this.vols = vols; - this.agegrade = agegrade; - this.achievement = achievement; - this.time = time; - this.athleteID = athleteID; - } - - isUnknown(): boolean { - return this.runs === "0"; - } -} +import { Finisher, IFinisher } from "../types/Finisher" +import { Volunteer } from "../types/Volunteer"; function athleteIDFromURI(uri: string): number { return Number(uri?.split("/")?.slice(-1)); } -type FactType = { - finishers: number; - finishes: number; - pbs: number; - volunteers: number; -}; - -type VolunteerType = { - name: string; - link: string; - athleteID: number; - vols: string | undefined; - agegroup: string | undefined; -}; - export class ResultsPageExtractor { eventName?: string; courseLength: number; @@ -134,7 +64,7 @@ export class ResultsPageExtractor { this.unknowns = this.finishers .filter((p) => Number(p.runs) === 0) - .map((_) => "Unknown"); + .map(() => "Unknown"); this.newestParkrunners = this.finishers .filter((p) => Number(p.runs) === 1) @@ -210,7 +140,7 @@ export class ResultsPageExtractor { }); } - volunteersList(): VolunteerType[] { + volunteersList(): Volunteer[] { return Array.from(this.volunteerElements()).map((v) => { return { name: v.innerText, diff --git a/src/index.ts b/src/index.ts index 64fd552..7c9ea0c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,28 +1,9 @@ -import { VolunteerType } from "extractors/ResultsPageExtractor"; import { ResultsPageExtractor } from "./extractors/ResultsPageExtractor"; import { MilestonePresenter } from "./presenters/MilestonePresenter"; import { conjoin, pluralize, sortAndConjoin } from "./stringFunctions"; import { fiveKFinishersToMilestones } from "./transformers/fiveKFinishersToMilestones"; - -function upsertParagraph( - div: HTMLElement, - id: string, - content: string -): HTMLParagraphElement { - const existingParagraph = Array.from(div.children).find( - (element) => element.id === id - ); - - if (existingParagraph) { - existingParagraph.remove(); - } - - const paragraph = document.createElement("p"); - paragraph.id = id; - paragraph.innerText = content; - div.appendChild(paragraph); - return paragraph; -} +import { Volunteer } from "./types/Volunteer"; +import { upsertParagraph } from "./dom/upsertParagraph"; const rpe = new ResultsPageExtractor(document); @@ -54,7 +35,7 @@ const runningWalkingGroupsTitle = `We were pleased to see ${pluralize( rpe.runningWalkingGroups.length )} represented at this event: `; -var volunteerList = rpe.volunteersList(); +const volunteerList = rpe.volunteersList(); const volunteersTitle = `${rpe.eventName} are very grateful to the ${volunteerList.length} amazing volunteers who made this event happen: `; const eventuateDiv: HTMLDivElement = @@ -153,7 +134,7 @@ if (insertionPoint) { ); } -function sourceVolunteerCount(v: VolunteerType, update: HTMLSpanElement) { +function sourceVolunteerCount(v: Volunteer, update: HTMLSpanElement) { const timeout = v.athleteID % 1000; const volunteerUrl = new URL( `/parkrunner/${v.athleteID}/`, diff --git a/src/presenters/MilestonePresenter.ts b/src/presenters/MilestonePresenter.ts index acb5948..99c3dac 100644 --- a/src/presenters/MilestonePresenter.ts +++ b/src/presenters/MilestonePresenter.ts @@ -1,10 +1,10 @@ import { pluralize, sortAndConjoin } from "../stringFunctions"; -type MilestoneCelebrations = { +interface MilestoneCelebrations { finished: number; icon: string; names: string[]; -}; +} export class MilestonePresenter { _milestoneCelebrations: MilestoneCelebrations[]; diff --git a/src/transformers/fiveKFinishersToMilestones.ts b/src/transformers/fiveKFinishersToMilestones.ts index 028a00b..29b718f 100644 --- a/src/transformers/fiveKFinishersToMilestones.ts +++ b/src/transformers/fiveKFinishersToMilestones.ts @@ -1,30 +1,19 @@ -export interface IFinisher { - name: string; - agegroup?: string; - club?: string; - gender?: string; - position?: string; - runs: string; - vols?: string; - agegrade?: string; - achievement?: string; - time?: string; -} +import { IFinisher } from "../types/Finisher" -type MilestoneCelebrations = { +interface MilestoneCelebrations { finished: number; icon: string; names: string[]; -}; +} + +interface MilestoneDefinition { + restricted_age?: string; + icon: string; +} export function fiveKFinishersToMilestones( - finishers: IFinisher[], + finishers: IFinisher[] ): MilestoneCelebrations[] { - type MilestoneDefinition = { - restricted_age?: string; - icon: string; - }; - const milestones: Record = { 10: { icon: "⚪︎", restricted_age: "J" }, 25: { icon: "🟣" }, @@ -35,7 +24,7 @@ export function fiveKFinishersToMilestones( 1000: { icon: "🟡" }, }; - let milestoneCelebrations: MilestoneCelebrations[] = []; + const milestoneCelebrations: MilestoneCelebrations[] = []; for (const n in milestones) { const milestone: MilestoneDefinition = milestones[n]; @@ -44,7 +33,7 @@ export function fiveKFinishersToMilestones( (f) => Number(f.runs) === Number(n) && (!milestone.restricted_age || - f.agegroup?.startsWith(milestone.restricted_age)), + f.agegroup?.startsWith(milestone.restricted_age)) ) .map((f) => f.name); diff --git a/src/types/Finisher.ts b/src/types/Finisher.ts new file mode 100644 index 0000000..f7ca6ef --- /dev/null +++ b/src/types/Finisher.ts @@ -0,0 +1,70 @@ +import { IFinisher } from "./IFinisher"; + +export interface IFinisher { + name: string; + agegroup?: string; + club?: string; + gender?: string; + position?: string; + runs: string; + vols?: string; + agegrade?: string; + achievement?: string; + time?: string; +}export interface IFinisher { + name: string; + agegroup?: string; + club?: string; + gender?: string; + position?: string; + runs: string; + vols?: string; + agegrade?: string; + achievement?: string; + time?: string; + athleteID?: number; +} +export class Finisher implements IFinisher { + name: string; + agegroup?: string; + club?: string; + gender?: string; + position?: string; + runs: string; + vols?: string; + agegrade?: string; + achievement?: string; + time?: string; + athleteID?: number; + + constructor( + name?: string, + agegroup?: string, + club?: string, + gender?: string, + position?: string, + runs?: string, + vols?: string, + agegrade?: string, + achievement?: string, + time?: string, + athleteID?: number + ) { + this.name = name ?? "a parkrunner"; + this.agegroup = agegroup; + this.club = club; + this.gender = gender; + this.position = position; + this.runs = runs ?? "0"; + this.vols = vols; + this.agegrade = agegrade; + this.achievement = achievement; + this.time = time; + this.athleteID = athleteID; + } + + isUnknown(): boolean { + return this.runs === "0"; + } +} + diff --git a/src/types/Volunteer.ts b/src/types/Volunteer.ts new file mode 100644 index 0000000..0e03340 --- /dev/null +++ b/src/types/Volunteer.ts @@ -0,0 +1,7 @@ +export interface Volunteer { + name: string; + link: string; + athleteID: number; + vols?: string; + agegroup?: string; +} diff --git a/test/transformers/fiveKFinishersToMilestones.test.ts b/test/transformers/fiveKFinishersToMilestones.test.ts index 97b94fe..85bf770 100644 --- a/test/transformers/fiveKFinishersToMilestones.test.ts +++ b/test/transformers/fiveKFinishersToMilestones.test.ts @@ -1,11 +1,8 @@ -import { - IFinisher, - fiveKFinishersToMilestones, -} from "../../src/transformers/fiveKFinishersToMilestones"; -import { Finisher } from "../../src/extractors/ResultsPageExtractor"; +import { fiveKFinishersToMilestones } from "../../src/transformers/fiveKFinishersToMilestones"; +import { Finisher } from "../../src/types/Finisher"; describe(fiveKFinishersToMilestones, () => { - var mickey: IFinisher; + let mickey: Finisher; beforeEach(() => { mickey = new Finisher( @@ -19,7 +16,7 @@ describe(fiveKFinishersToMilestones, () => { "agegrade", "achievement", "59:59", - 9999999, + 9999999 ); }); From 9e4baf6aa0667e5d49ec382a4a42f3c1eb706d55 Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sun, 20 Oct 2024 13:40:31 +1100 Subject: [PATCH 3/8] s/crackle/webpack/g --- .gitignore | 5 +- Dockerfile | 6 +- assets/eventuate-128.png | Bin 1846 -> 0 bytes assets/eventuate-300.png | Bin 67709 -> 0 bytes assets/eventuate-64.png | Bin 4740 -> 0 bytes crackle.config.ts | 7 - eslint.config.mjs | 5 +- icons/eventuate-128.png | Bin 2833 -> 1090 bytes icons/eventuate-24.png | Bin 1300 -> 313 bytes icons/eventuate-64.png | Bin 1557 -> 607 bytes manifest.json | 4 +- package.json | 41 +- pnpm-lock.yaml | 3972 +++++------------------- src/extractors/sourceVolunteerCount.ts | 46 + src/index.ts | 72 +- src/presenters/presentVolunteerName.ts | 23 + src/types/Finisher.ts | 20 +- tsconfig.json | 6 +- webpack.config.js | 25 + 19 files changed, 963 insertions(+), 3269 deletions(-) delete mode 100644 assets/eventuate-128.png delete mode 100644 assets/eventuate-300.png delete mode 100644 assets/eventuate-64.png delete mode 100644 crackle.config.ts create mode 100644 src/extractors/sourceVolunteerCount.ts create mode 100644 src/presenters/presentVolunteerName.ts create mode 100644 webpack.config.js diff --git a/.gitignore b/.gitignore index 834984e..3f51a76 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,8 @@ /.amo-upload-uuid /.web-extension-id /chromium* +/dist/ /eventuate* /node_modules /target /web-ext-artifacts - -# managed by crackle -/dist -# end managed by crackle diff --git a/Dockerfile b/Dockerfile index f0717c8..a23318e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,10 +5,8 @@ RUN corepack enable RUN apt-get update && apt-get -y install jq zip COPY . /eventuate WORKDIR /eventuate -RUN pnpm i -RUN pnpm t -RUN pnpm build -RUN pnpm web-ext:lint +RUN pnpm it +RUN pnpm package FROM scratch AS export-stage COPY --from=build-stage /eventuate/chromium/ /chromium diff --git a/assets/eventuate-128.png b/assets/eventuate-128.png deleted file mode 100644 index dc5b2d3ec197a98fc45bf49a8783cc4b5655e986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1846 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&DI|LY`7$t6sR6}X7#MzmnTu$sZZAYL$MSD+081LKYg=M(U+LgbWoK7r zYg=Y-Utw=w?%)8Ft+2Bzv9&F>wyw0d2g+93+7>xEmD<`C+S}(D7{mn!XFEIBT3hE? zTbEc__1fA3)mPctmfG0V*xLh*s?^tyb9Sx++5)x+WFs*Ms2Jir{EC6@#IFD@ON?p2 zaDc0aFo1!8CPK)ZGBou_T!`W5Rv;-rw+p|NwKY*j{r~^}_nsbeV0DV&%bpO`zr9u>S9b!P$e85q?y~s!t@lzu4tt5GuPgft zHZB%f9`(2D5*QemOFdm2Ln>~)o%u8PvV%n1?ez=8UezicjozT)<=Cjjw8){m>yCng zMpMGmkUZCSo9}$rO!^-by!7UjWxg*qwHEICe*8?%y!1|CAbr%D;TJD><{hDuGzPKSs;n0f(C-?ro!Zb02>7ts517lXBg!`KRl^-TV zDd^c9d{ZxH>$gPo0z>W#7O+WcC89qnX1HiHFx}|dD4P6l^A0sr@g=q#e+1?Js%Tn1 z&3v_)Ia1EX zQhnb$r}0zRoClBnsv0H*t#q8WX?uZ>n?s^51BO%DOWOBV^BE_>^7Kvw6u0PK}(STQ4zLN$yitj&yS<)c&VZ zs%+YD^4aH;wd*De-f-6bCR5uq`LT7*mc4hw{jv^*yq|sl0>|6R^%PKM3VJJ{cobiMoBoYrk+jUl%$-u!yDIsXi+#qo~wbKBo%D%F`cv^z4M z=TAGjpTWM0B`7R^d-2RSMjEHm!+XDqFI+$W1AE23&vS36&SO8?`sRlKQ?ql6z0IfT zEEhDjRF~@foSsn9^Wk{xpLcyc53^i3t@rt{f8*TrPmObb*p8^ka}(sbzG)tsFZN?^ zOZ?dh>&+bQ_OR5aD0F{V-EcEqP$HqM@56KPm_Lb!)~{re1-hyA;2Wif>D+$`&FyxJ z8?bw}hAK8Lo!i2aYZ4p6~l(t?z-2wju&7Nz$=@R1f9nH=b6X@yV6xS^b}_Myn6}zsWXd zp43Kh#(Dd_e%P*DkoxQQZtfgQ?Gw+e9)ADdq#Yjlx%0rc_qv;R7A|&t!2k8&*4Jl# zE(+c7_D_QH-{c&DJcIgwTJPmI3okC1eD&XAmxNP%iff+l*Kd@xzQc9l;F=`|Vq{-1 zl^W=%Zm{59*f^u!n#qlGpJGByXY<*qDh4bc0&acID3?6M^z(Sb5lJ)g319o6x#Q;a zKa4t#o3BMWCoBc#N!1e9h?11Vl2ohYqEsNoU}RuqqHAELYiJN+U}9xtZe?hpZD3$! zU~ry$b1903-29Zxv`TahCRQd!5Dhy&K70VwpaHj`Br`X)xFj*R09}uzl_6A5@GsZb PKs^keu6{1-oD!M<;$P!V diff --git a/assets/eventuate-300.png b/assets/eventuate-300.png deleted file mode 100644 index 97131dbece8b59bac7eeb7541f421fab84049206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67709 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≫QM=PmzftC$?Bj`P*h{A`TRU~mW=}eZj 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 c4^J~E*Z=o9o2dg-uyf#)gqz2Xwlh- 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 Qd4mDyYUyiMsKcZF4=fb>1^@s6 diff --git a/crackle.config.ts b/crackle.config.ts deleted file mode 100644 index 1889f3a..0000000 --- a/crackle.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from '@crackle/cli/config'; - -export default defineConfig({ - package: { - mode: 'bundle', - } -}); diff --git a/eslint.config.mjs b/eslint.config.mjs index 3b4767a..41d1737 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -2,11 +2,12 @@ import globals from "globals"; import pluginJs from "@eslint/js"; import tseslint from "typescript-eslint"; - export default [ {files: ["**/*.{js,mjs,cjs,ts}"]}, {languageOptions: { globals: globals.browser }}, + {ignores: ["webpack.config.js", "dist/*.js"]}, pluginJs.configs.recommended, ...tseslint.configs.strict, ...tseslint.configs.stylistic, -]; +] + diff --git a/icons/eventuate-128.png b/icons/eventuate-128.png index 8c81d1a2761e76bba955e30d2acef39686cc94fd..1ecef0b11c9d65318c5889f546430510db0713e6 100644 GIT binary patch delta 1081 zcmV-91jhT37QzUS7=H)`0002PK4HrM00aq1L_t(|0qokbIR!x!$I;#0Oe&=hn3)E| z(1pwtq6eTPfHr^&A-wqAbH49i!Tct>1HSNs zvGYW`h#kjPhs;Xp^Y`PwCER0dT>$YTk_K=aTN8i)vJ!v*1b-j^0SMqU_7;0iwAa{m z`T%M@8e8j|v4hxNqV30aVk-jx00000z>;zmoSds*SHZ4=1>hnmF98TZ0GSCu00PL& zRj{jISHX(|004m2`a65);3P*7M)BCTZIlsC$1cQ9im|bXZ6}4;w(a~SNg=k*`&Myw z<_o5`civR}&VRS~ey{JQwNnf<2R*?+&;`^7`B|OR7GD&M1lPe6kPb4zXYddl0`0l* zBsJw%2D?F;&2aN`;8!Y8m{m(1`8B{=00XO>iMD z)uj+{Rd9I1DoNyDjLUQ{1Y8w-7_>C05G`0MyqO*NDFF_|=?im34v;7M$Jinu$fClvpfQ|f1E;ex(o6zYuupPK$CtR zG5Oa(j(;Xjfr2!lM}9qUU8DT>pchSeQ+}8YO0o6pkY5|z5OmY7fEWK*{xMLFHuT89 zCK#_@j#gS6??;2z|49A`P>D8@U;YZnFC3i|iu9JofY;uU&z2AQu|pmL$~RPg8d$7U zpwO>wD;9#$e{fE47F3}P_vJSbob7)C3qZldw}0s?EjWn`b5bdPRoZZ0ej{*4Ab*Z! z1q#^QW^u3qq&d9ZHX8`M&TDp!Fbw|MQbueq*8hAaEjoolt&d+R!8a zoXA?RO~8G@IJ^%n+ll3@QmJq_|HzbSa&P|`avy=`0DmR|&{6v#gf-0te}Xx%yx9+=rCkUveSKt3D!g~4*l zPpwxveG8^omd}a&WdiwUl3zXp@CHnFAioe;Dj4KBYsM>$G60J#E08y_{6N9*&k5w8 zGebTDkZHH7SSh)Dv#vD401U8^ztDs78GnHAtRGkaK0B0u9@H?eN(?~1U$p!J`1(A7 z{0nBvX8^Lm7BCbHk1-6a1D_nqzXWQs+UE8GvO(4lu_Wc3-!3I#5)im^I-`<}a#SL literal 2833 zcma)8cTm&Y68?eoB6yJw(xgKOO$>T5luPfSg8@Mh zg9rqOAP6Lspj3eXFTOwC%zHDwxo75_o!Oml_w1Q(_Iyd#ER9&1_?Q3yU^Ow;x2D** z-O~ zM--xYLD2Y-Jo`Vpp(ba7_dOXJB$KX+CMWeDD?NIv2Vj3d8HD+obpEI3u}KWUm8IQ! zjmUdD_!MuA?3 z5|cJBM=Blag2Q>zI#MA`_9q|759~hnSk>Z^@g?fe6JUofUNVdxj~;RB57Fe z7tvEIP|vKLD!LZxxaY|dv#x4KxUDXwk?ouj4bw$moe@tZNJjiw)3%g=KDP^Qzu*5rk(XVu$tW31XDp8 z;H#LzPaBre-k1TyB{DH|e=GKjNaI|@Bd_QiZuUY3#b>F3z-;*2y4o^C{Afu7SqBY| ztlt=JS=`ULUZ%6H1*Do!qGh%HOoPC4n%BUElHX5O`C{NfY;Ub%YaFn~Z=9TbS~!Df z<0c*5PbI5})n_@34hg4D1CqDY=*BS`TvTy$j*aa&ToLgTJCF0cWrRYX@=k){tsj~9 z21J4Gmb!)I!v3v?#kv8s0|b(RKzT(r68wPzw0c+&|4m}U4das<+%JRHXcdTB)OT;W zp%)bK%_wwV^z7A=J%M5m(bE>0v zG3NAbgXIgbZm!3daXy?+Sa(r~orlp08}|%j-&nhj&l1msJ*=?0`yyK9VVvcmzC5m>i&fa3;?U@%4b%ENT;6UxSyu9_KefO z76lx30A2IixFNb}K)w=fpYWxJifowMP4;rPWR|A0D3ZbEWj z(%yjo%5y)zTiH+x8kgZAYX$s(MVKFR2Xxk|!+vA0h^v`M2X7!re`G%?^5Q$~o)^cx zE718?gFIGp=sbYPD{5~<^52Q?FEIa{LGKuAk`{wsE~+QFb_pRwFupdA$%WP!)K6w| zQM2?=b2{Gttr&&0dO&{`OUhpyRVDD=*>CFn~mt?j5mxqe>>x^BU8>(X|x=yxt zQt(=qq=BYs0b(T&HQ2DI&55m4VNYtt6Dk)!w;Y^XAL0BtS8r`w7;0$S*KcE@bER>tY!NX8WOmGr1ax{7hP^j$P&_5Rp&mnbY1Uu%->oAi*Sw#P>>{A6?+-pme|V@eSj-y*4n>wK zc)mWrBt=5!aCA7Zo{c>6Sbq}(x|xg74;kXpL~_1e6n*&x?oV4o%Xce7jG1k6W9uxN zm5d_F+N-^~eY>Um5Fzavklv66OSI)MfRy(f6-NXzYTzm$s3(W5ju4*DJxQSqNQBu+ z(;b`5^dMRu)eJYL3t#eX2q7l)mbI7Eg0!s;GLOzUC7_wTt4BPeUsIgi;@hg_Q zHzM9J{+&CmVPiTX;l$M%ecx12Jj7<=SJ)`G1n4g7gkw>#ooe1;?#`TXOCHnk0Pe}QQD-oG7xR6BSP;hSJV5nq@GzgU`-IMZD z&ego3wYfGlei`Lo%R6)DdUL z;(%1$=|NxTIyoV2^XJQ3D0I`7nI~Gxs8L`&Xgx(m^ZUq0a@aiCW$zkG_5~19+r?|U z7ve@z?qDN2rAPE=b@M>W_WS00SyY*qV8bJY?I%mgPq-0FnL=_FACs5oND+dms4bG+ z{(gSLf$KAzCP#+=`sTthJ5bnYxi*Wf)+|Qg4pNTsnpfb$NYh5S{u2>DA@2GEi72;| zL>^op*W+uI?Vz+6w#BxX^tx${Nc?(?DJma=m^1a`DPboy6qe=J1k&^{kulB}Df;uAdqV2sTf~xPu0i&6Hg7NRQU@1ViT{t4Jmq1Jk-E8^tNlLhq`;P2gLwNU?mlK zFhpJn0tG|Vl@!&%mu10VbujqBhRc5g`~z?Mct-viuv;_rTbxS$r$VTYzeh-@tAEg+ UF@?nk;uH*EVqmFXrRS3HFKk{LAOHXW diff --git a/icons/eventuate-24.png b/icons/eventuate-24.png index ca118a3245c2ab185199ef25d82cb79f9616549e..f8f678eae1046cb095ed5b065641e62cabf99461 100644 GIT binary patch literal 313 zcmV-90mlA`P)15+f>u6$bU7>9xS!M9C|YSkI-Sh zTg5F7c|Td~6lI+fJ{!U&zVIgw7|}r41yt1vd%lIAXt=mx6tl%%6*A{Z)3Spn9OGWX zzp>8ueP!HP)`*0^VTPQ2%qgqL4n9+y(Y$4*&uo@b{m5k6Q}V5j{9^yMt1BA+C000000 LNkvXXu0mjfrWuCE literal 1300 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(;}uz(rC1}R)=9Ph`#z*6Vw;uuoF z`1Y2szp$eO`-kO6vo^}rbk{NF%h?oMVo}-GAm(TobU{MM|5&rReM9`g*=laWep{4I zbSq>ThzRQy8D7kP;G1kB62S5L^M-Y~+vnbV=N*3I-}g&*XWpE7^ZsV*yK`febOah0 zSQHo-IUE?6urOU>6`uWOxLwrt-s;dAh4~-r&oF*7mrICUajKbt=>eneiCBRK1ykEA ztqc_o+(qIn3Ld`vrHTx47n<&{GI9h7mpY;vyTb9n|2r1<*smN|qt~RKxYbv~lEXpc z%quqm2Api(BB=XHML*b!hg^S`yZO}ZO_^Os^Cmi~??`w5`Ca*F=EPYq7|*8et9Yr) z6wn=YdNIq=Z}w_kyjorV9~_8T{&SzC>pmk%#(+zI&fYj=KjG=xxb{V_Wfm}=`rd0b zMfEp$_UmB!VuGpD$Ixu$^U(dvuRiJZ>2J0Ld(rgwZi@mMABazTdS-p* zowC9c$LE|t8;S5uLR=b7l3@_?g#o)csBUKbGkp-l|=b zx!7=B!?cro&zK)PzWSK?i(J-y9J*i5f0|kl9wsYx{YOyz7iNVYE3b0Sn{BzAvF7mN zTK}6f^F`lDczqN#NXXTyvwi3t>)XY(cw){Y|4#?!T$Q;HYS+Qw_x?|~<8Spmo4?_~dbQ<0Ufj}7 z=;pjU%SG$)ow9UO#wz!;if>`~WeVld6gyPd& z&+b&bD_o>-*zXE+Kvm7s*U3He10RV`bN`vzlb57dQ1dcIWPL->mq%3(tLsB+D%o}N z4}E#h{HjTRZuT4oox9J@yXJI%Ws3VRwJGn%rP;?g8_v%2srmWN{X5gXbw4gGeQ}rd z=EBvv`L%f-hvzK){bJR-AD6biuY*`_BiR_iZ(=>3_)p;Ex_k*9)}m{`>vX_EogXNrW5hU2{l(@6an53_z(S1w*7kPnr~F00JgSL_t(|0qxiWj2&SV1>lF;w&OZj@0*!2 zY=c@s9o34R2DKH`ifz@lZG^RPl9V^Mc>J;FB;Q)+j&3%_Fbu;m48t&gPY}#+55r&t z3@@M&FbL|J9>6eo2OkUUGu#e>d7VrTU<7=GF9zJh06Lo8vW3p8`Cd>HEG;VhJj^1a}g^X0{nU$2xu10~{Xd%zKG*>S48C^Z<~i9)BL zSSf!{DZkCRYhDx^A&&l4rF=Iyq?F&`WO-3;xVY=@E-PCQ7v=YB<;A1Up8-@>&P%H0 zl_T%t084JbCfEq4l=8d8k@sx?>94o`4?rAwp9k<+`2Mlo(9+lc@OFU-Fi|lH#^tU& g!!QiPFbu~T0c&5 zmhIe+(|ML9stKEui%bomz2XQ3sN%P4C7&R@1{c>g_=X#roKp-}9vBfl63Pgm)jI!) zxUlst5^52lQrP`Hmar}%@w&V~U@DIi)yav}T%MaHWqrWTZS^5KNkVrl60=;>@$Alv z9Xi5Y{XIS>xTfcAd&5ZgWp6h+ElhW8oqWsBRJgy4Q1l*%_#0>AHFoO zC8voI!yYW*>80|A^)GCAALL-c7~Z}ak4&!*+pCvS@UC@_$G%7C)s+T43DF@()VEVq z(X6;xvPSSI!O%9gUC4Fz(zBN3QYSvhjo-EEs5)tBls?rrAZcrKsmnNZ!x)A*K%Eer zjt(@-7`(8^%DU0lT5mJ@DYuwYi;(q)*|1eir!#_w0w3NTf4UNVriyB`|K-br)@eHP z7~3Y_qUH|Uo$7pdam>h)ug$SV@pO&Ypkl%^%8QU*xRj{;UO{#DgSMur^srfSdwTUk za<%48&0*09xBgBf#og~6?r~B+mMhE;e@Wfu!0V|f6@TnJ?8Wsd+5^RPP5OR}H0$x* zu@W%+bgcHqsdz?;tFf>MPjhYPs7oskaa>i}kl!0S>~w9d4%Vja(!Ds!69Qc058X&k zW_LWai-fPLe;vAf+vw;TI!^;uUs6%5wCRLM&41%9(!(oj-p86WPIYZ#xI8Wpz%l50 zWK^e5?uisq6eY3%IT_-cYdx#F)JcueV5C5Z^RrdX(Ix~6?}6B-gb!tzJxT3~$nRyH zgvek%H}PFkPpX$H6syfyN+utQwdbzy8xv{5c5CwUJT~J3l)1TK&u>{#iZ|vZv8F3y zZvW}FR3mS{oe@aYpo|gjXU8*OZoe+g&9I}E1FjmiT8CL}#_Tyonb&?{MJ)fNnZA?4 z@#cJj@Z9wO8fHe3{hqwdosf`)3rVdDRKNorb%g$(vtKa89mP8f((jtEDp&e`}mwEsZPr{Ws_$U1X D4~wq8 diff --git a/manifest.json b/manifest.json index 282dc9f..fca6770 100644 --- a/manifest.json +++ b/manifest.json @@ -42,8 +42,8 @@ "*://www.parkrun.us/*/results/latestresults/" ], "js": [ - "./dist/index.js" - ], + "./dist/eventuate.js" + ], "css": ["./style/eventuate.css"], "run_at": "document_end" } diff --git a/package.json b/package.json index ebc6bad..cad3572 100644 --- a/package.json +++ b/package.json @@ -18,50 +18,34 @@ }, "license": "MIT", "author": "Pete Johns", - "exports": { - ".": { - "types": { - "import": "./dist/index.d.mts", - "require": "./dist/index.d.ts" - }, - "import": "./dist/index.mjs", - "require": "./dist/index.cjs" - }, - "./package.json": "./package.json" - }, - "main": "./dist/index.cjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "files": [ - "dist" - ], "scripts": { - "build": "pnpm clean ; pnpm lint ; pnpm crackle:package ; pnpm rename && pnpm web-ext:build && pnpm repack-for-chromium", - "crackle:package": "crackle package", - "clean": "rm -r ./chromium/ ./dist/ ./eventuate-chromium.zip ./web-ext-artifacts/", - "rename": "bash -c 'mv ./dist/index.cjs ./dist/index.js'", + "build": "webpack", + "package": "pnpm lint && pnpm build && pnpm web-ext:lint && pnpm web-ext:build && pnpm repack-for-chromium", "repack-for-chromium": "bash './script/repack-for-chromium'", + "start": "web-ext run -v -u https://www.parkrun.com.au/brimbank/results/latestresults/", "test": "jest", "lint": "eslint .", "web-ext:build": "web-ext build -o", - "web-ext:lint": "web-ext lint", - "start": "web-ext run -v -u https://www.parkrun.com.au/coburg/results/latestresults/" + "web-ext:lint": "web-ext lint" }, "devDependencies": { - "@crackle/cli": "^0.15.5", "@eslint/js": "^9.13.0", "@types/eslint__js": "^8.42.3", "@types/jest": "^29.5.13", - "@types/node": "^22.7.5", + "@types/node": "^22.7.7", + "copy-webpack-plugin": "^12.0.2", "eslint": "^9.13.0", "globals": "^15.11.0", "jest": "^29.7.0", "prettier": "^3.3.3", "ts-jest": "^29.2.5", + "ts-loader": "^9.5.1", "ts-node-dev": "^2.0.0", - "typescript": "^5.6.2", + "typescript": "^5.6.3", "typescript-eslint": "^8.10.0", - "web-ext": "^8.3.0" + "web-ext": "^8.3.0", + "webpack": "^5.95.0", + "webpack-cli": "^5.1.4" }, "packageManager": "pnpm@9.2.0", "webExt": { @@ -73,9 +57,6 @@ "LICENSE.txt", "README.md", "chromium*", - "crackle.config.ts", - "dist/index.mjs", - "dist/index.d.*", "jest.config.ts", "package.json", "pnpm-lock.yaml", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfabcc6..3d4098c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,6 @@ importers: .: devDependencies: - '@crackle/cli': - specifier: ^0.15.5 - version: 0.15.5(@types/node@22.7.5)(terser@5.31.1)(typescript@5.6.2)(webpack@5.91.0(@swc/core@1.5.25)) '@eslint/js': specifier: ^9.13.0 version: 9.13.0 @@ -21,35 +18,47 @@ importers: specifier: ^29.5.13 version: 29.5.13 '@types/node': - specifier: ^22.7.5 - version: 22.7.5 + specifier: ^22.7.7 + version: 22.7.7 + copy-webpack-plugin: + specifier: ^12.0.2 + version: 12.0.2(webpack@5.95.0(webpack-cli@5.1.4)) eslint: specifier: ^9.13.0 - version: 9.13.0(jiti@1.21.3) + version: 9.13.0 globals: specifier: ^15.11.0 version: 15.11.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + version: 29.7.0(@types/node@22.7.7)(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) prettier: specifier: ^3.3.3 version: 3.3.3 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(jest@29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)))(typescript@5.6.2) + version: 29.2.5(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(jest@29.7.0(@types/node@22.7.7)(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)))(typescript@5.6.3) + ts-loader: + specifier: ^9.5.1 + version: 9.5.1(typescript@5.6.3)(webpack@5.95.0(webpack-cli@5.1.4)) ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.5.25)(@types/node@22.7.5)(node-notifier@10.0.1)(typescript@5.6.2) + version: 2.0.0(@types/node@22.7.7)(node-notifier@10.0.1)(typescript@5.6.3) typescript: - specifier: ^5.6.2 - version: 5.6.2 + specifier: ^5.6.3 + version: 5.6.3 typescript-eslint: specifier: ^8.10.0 - version: 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + version: 8.10.0(eslint@9.13.0)(typescript@5.6.3) web-ext: specifier: ^8.3.0 - version: 8.3.0(body-parser@1.20.2)(express@4.19.2) + version: 8.3.0 + webpack: + specifier: ^5.95.0 + version: 5.95.0(webpack-cli@5.1.4) + webpack-cli: + specifier: ^5.1.4 + version: 5.1.4(webpack@5.95.0) packages: @@ -57,82 +66,66 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + '@babel/compat-data@7.25.8': + resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==} engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + '@babel/core@7.25.8': + resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.24.7': - resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + '@babel/parser@7.25.8': + resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -151,6 +144,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.25.7': + resolution: {integrity: sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -161,8 +166,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.7': + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -197,14 +202,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-top-level-await@7.14.5': resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + '@babel/plugin-syntax-typescript@7.25.7': + resolution: {integrity: sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -213,39 +224,21 @@ packages: resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + '@babel/types@7.25.8': + resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@crackle/babel-plugin-remove-exports@0.3.0': - resolution: {integrity: sha512-BMWSuQcRq873HWR+mReVqmerZVrA9Wz5lcrafYb8k0GpfAy6Fe9V5pGAY3AhQ1R3KCemMu2NIEnrQQICI0OQUg==} - - '@crackle/cli@0.15.5': - resolution: {integrity: sha512-tDbXn/DViw8sf7oBNs/C2QAwH5Rlc2VLVZzE1ccS7+1WRfFaZ08HNwuKbsvc9oqx8ili+WnVEyTe3C6CV/wc/g==} - hasBin: true - - '@crackle/core@0.33.4': - resolution: {integrity: sha512-iPe3UgFHHFG1CiCWFWUcu7q4low0w3KKDbZSPLvuAzS/nfUtXSl9mMEyNbJxUlN23yqTDKrx7+qaeBpmDakGzg==} - peerDependencies: - typescript: '>=5.2.2' - - '@crackle/router@0.4.1': - resolution: {integrity: sha512-OzNGV90yzXoWomv3xuKTmG7DKgTbT3PIjVIqoS066UYZucRWvQ4Ek+v8XV8sriXkWXmN1CltCYWu7/XrQznuGg==} - peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 - '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -263,428 +256,9 @@ packages: engines: {node: '>= 0.10.4'} hasBin: true - '@emotion/hash@0.9.1': - resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -692,10 +266,6 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.11.1': resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -736,21 +306,6 @@ packages: resolution: {integrity: sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==} engines: {node: '>=14.0.0', npm: '>=7.0.0'} - '@formatjs/ecma402-abstract@2.0.0': - resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==} - - '@formatjs/fast-memoize@2.2.0': - resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} - - '@formatjs/icu-messageformat-parser@2.7.8': - resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==} - - '@formatjs/icu-skeleton-parser@1.8.2': - resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==} - - '@formatjs/intl-localematcher@0.5.4': - resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} - '@humanfs/core@0.19.0': resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} engines: {node: '>=18.18.0'} @@ -865,8 +420,8 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -897,178 +452,23 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@2.2.2': - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@remix-run/router@1.16.1': - resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==} - engines: {node: '>=14.0.0'} - - '@rollup/rollup-android-arm-eabi@4.22.5': - resolution: {integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.22.5': - resolution: {integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.22.5': - resolution: {integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.22.5': - resolution: {integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.22.5': - resolution: {integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.22.5': - resolution: {integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.22.5': - resolution: {integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.22.5': - resolution: {integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': - resolution: {integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.22.5': - resolution: {integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.22.5': - resolution: {integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.22.5': - resolution: {integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.22.5': - resolution: {integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.22.5': - resolution: {integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.22.5': - resolution: {integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.22.5': - resolution: {integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==} - cpu: [x64] - os: [win32] - '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@swc/core-darwin-arm64@1.5.25': - resolution: {integrity: sha512-YbD0SBgVJS2DM0vwJTU5m7+wOyCjHPBDMf3nCBJQzFZzOLzK11eRW7SzU2jhJHr9HI9sKcNFfN4lIC2Sj+4inA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.5.25': - resolution: {integrity: sha512-OhP4TROT6gQuozn+ah0Y4UidSdgDmxwtQq3lgCUIAxJYErJAQ82/Y0kve2UaNmkSGjOHU+/b4siHPrYTkXOk0Q==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.5.25': - resolution: {integrity: sha512-tNmUfrAHxN2gvYPyYNnHx2CYlPO7DGAUuK/bZrqawu++djcg+atAV3eI3XYJgmHId7/sYAlDQ9wjkrOLofFjVg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.5.25': - resolution: {integrity: sha512-stzpke+bRaNFM/HrZPRjX0aQZ86S/2DChVCwb8NAV1n5lu9mz1CS750y7WbbtX/KZjk92FsCeRy2qwkvjI0gWw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-arm64-musl@1.5.25': - resolution: {integrity: sha512-UckUfDYedish/bj2V1jgQDGgouLhyRpG7jgF3mp8jHir11V2K6JiTyjFoz99eOiclS3+hNdr4QLJ+ifrQMJNZw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-x64-gnu@1.5.25': - resolution: {integrity: sha512-LwbJEgNT3lXbvz4WFzVNXNvs8DvxpoXjMZk9K9Hig8tmZQJKHC2qZTGomcyK5EFzfj2HBuBXZnAEW8ZT9PcEaA==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-linux-x64-musl@1.5.25': - resolution: {integrity: sha512-rsepMTgml0EkswWkBpg3Wrjj5eqjwTzZN5omAn1klzXSZnClTrfeHvBuoIJYVr1yx+jmBkqySgME2p7+magUAw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-win32-arm64-msvc@1.5.25': - resolution: {integrity: sha512-DJDsLBsRBV3uQBShRK2x6fqzABp9RLNVxDUpTTvUjc7qywJ8vS/yn+POK/zCyVEqLagf1z/8D5CEQ+RAIJq1NA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.5.25': - resolution: {integrity: sha512-BARL1ulHol53MEKC1ZVWM3A3FP757UUgG5Q8v97za+4a1SaIgbwvAQyHDxMYWi9+ij+OapK8YnWjJcFa17g8dw==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.5.25': - resolution: {integrity: sha512-o+MHUWrQI9iR6EusEV8eNU2Ezi3KtlhUR4gfptQN5MbVzlgjTvQbhiKpE1GYOxp+0BLBbKRwITKOcdhxfEJ2Uw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.5.25': - resolution: {integrity: sha512-qdGEIdLVoTjEQ7w72UyyQ0wLFY4XbHfZiidmPHKJQsvSXzdpHXxPdlTCea/mY4AhMqo/M+pvkJSXJAxZnFl7qw==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': '*' - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/types@0.1.7': - resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==} - '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -1093,11 +493,8 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/eslint__js@8.42.3': resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} @@ -1105,9 +502,6 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -1129,8 +523,8 @@ packages: '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/node@22.7.5': - resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + '@types/node@22.7.7': + resolution: {integrity: sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1144,8 +538,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -1210,36 +604,6 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vanilla-extract/babel-plugin-debug-ids@1.0.6': - resolution: {integrity: sha512-C188vUEYmw41yxg3QooTs8r1IdbDQQ2mH7L5RkORBnHx74QlmsNfqVmKwAVTgrlYt8JoRaWMtPfGm/Ql0BNQrA==} - - '@vanilla-extract/css@1.15.2': - resolution: {integrity: sha512-Bi61iCAtojCuqvV+FYaF5i69vBjuMQJpHPdpgKYyQvx+e2Hp79V0ELglyYOdcyg9Wh0k0MFwgCDipVd7EloTXQ==} - - '@vanilla-extract/integration@7.1.5': - resolution: {integrity: sha512-UwwafgdaqDhF2n6ZvX6akNvSot1iiiCss/c+r6ofjnaJSzrI/3WUYhy7qX7NZsWdmG2omcajuPlqFZdo0pwzLA==} - - '@vanilla-extract/private@1.0.5': - resolution: {integrity: sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==} - - '@vanilla-extract/vite-plugin@4.0.10': - resolution: {integrity: sha512-bjX5ioQeBTKuV/MOweeSCrGU5m7z4a76yf8J/r4gC5MGJrEvYu0YHaQIiiL7o2wlFSc929JUEUO1ahnVXUET6A==} - peerDependencies: - vite: ^4.0.3 || ^5.0.0 - - '@vitejs/plugin-react-swc@3.7.0': - resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} - peerDependencies: - vite: ^4 || ^5 - - '@vocab/core@1.6.2': - resolution: {integrity: sha512-IkMim1fTeUuOwPG0+wUnxrjis7peha2wHv74GjNw2hR4CFs9sYsdbueAuD+Z2n4zU0rqCqbpt1o4zJeqXXZf6A==} - - '@vocab/webpack@1.2.9': - resolution: {integrity: sha512-ZhTjpNWHKlAbVFASy7NTiaVBNyLZW8RSnTJ0ZdjE681qBDKbE0YVgdew0tf2irvxgcSXp3jEOEYMNuTJyvEGhw==} - peerDependencies: - webpack: ^5.37.0 - '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -1285,6 +649,31 @@ packages: '@webassemblyjs/wast-printer@1.12.1': resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webpack-cli/configtest@2.1.1': + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/info@2.0.2': + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/serve@2.0.5': + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -1295,12 +684,8 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 @@ -1309,17 +694,12 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} engines: {node: '>=0.4.0'} hasBin: true @@ -1348,19 +728,32 @@ packages: safe-compare: optional: true - adm-zip@0.5.14: - resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} + adm-zip@0.5.16: + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} engines: {node: '>=12.0'} agent-base@7.1.1: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: ajv: ^6.9.1 + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1378,8 +771,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@3.2.1: @@ -1415,19 +808,12 @@ packages: resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - array-union@3.0.1: resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} engines: {node: '>=12'} - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} @@ -1450,8 +836,8 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + babel-preset-current-node-syntax@1.1.0: + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} peerDependencies: '@babel/core': ^7.0.0 @@ -1471,9 +857,6 @@ packages: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -1481,10 +864,6 @@ packages: bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -1506,8 +885,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1527,33 +906,10 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - bundle-name@3.0.0: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - c12@1.10.0: - resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1570,8 +926,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001629: - resolution: {integrity: sha512-c3dl911slnQhmxUIT4HhYzT7wnBK/XYpGnYLOj4nJBaRiw52Ibe7YxlDaAeRECvA786zCuExhxIUJ2K7nHMrBw==} + caniuse-lite@1.0.30001669: + resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1600,10 +956,6 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - chrome-launcher@1.1.2: resolution: {integrity: sha512-YclTJey34KUm5jB1aEJCq807bSievi7Nb/TU4Gu504fUYi3jw3KCIaH6L7nFWQhdEgH3V+wCh+kKD1P5cXnfxw==} engines: {node: '>=12.13.0'} @@ -1617,11 +969,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - - cjs-module-lexer@1.3.1: - resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + cjs-module-lexer@1.4.1: + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} @@ -1631,6 +980,10 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -1655,10 +1008,17 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -1681,9 +1041,6 @@ packages: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -1691,40 +1048,18 @@ packages: resolution: {integrity: sha512-yk7/5PN5im4qwz0WFZW3PXnzHgPu9mX29Y8uZ3aefe2lBPC1FYttWZRcaW9fKkT0pBCJyuQ2HfbmPVaODi9jcQ==} engines: {node: '>=18'} - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - - content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + copy-webpack-plugin@12.0.2: + resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.1.0 core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1744,14 +1079,6 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -1763,8 +1090,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1791,9 +1118,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deep-object-diff@1.1.9: - resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} - deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -1809,32 +1133,10 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -1847,10 +1149,6 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -1872,23 +1170,16 @@ packages: resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} engines: {node: '>=18'} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - dynamic-dedupe@0.3.0: resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.4.791: - resolution: {integrity: sha512-6FlqP0NSWvxFf1v+gHu+LCn5wjr1pmkj5nPr7BsxPnj41EDR4EWhK/KmQN0ytHUqgTR1lkpHRYxvHBLZFQtkKw==} + electron-to-chromium@1.5.41: + resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -1900,71 +1191,39 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - ensure-gitignore@1.2.0: - resolution: {integrity: sha512-CfkUKQsT1/2BdpF1XXGs8/8CZQK2JMAIsl3bHUwFS/fsBU58Mn+iZ6qd2vFxupWJTZA0Din0USWdu6UbojV3sQ==} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} + engines: {node: '>=4'} + hasBin: true + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-goat@4.0.0: resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} engines: {node: '>=12'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2039,8 +1298,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -2059,14 +1318,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} - event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -2087,10 +1338,6 @@ packages: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -2099,10 +1346,6 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2123,14 +1366,12 @@ packages: resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} engines: {node: '>=6'} - fast-uri@3.0.2: - resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} - fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - - fastest-validator@1.18.0: - resolution: {integrity: sha512-3v6UJF1U/b56GqzDZqEtgPi2g261eGI9zQWDUrmOVKHiAktFIsHklp4XViX+a4yF7S5JjPm4KKmkgCsaara03g==} + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -2156,10 +1397,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2185,25 +1422,17 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -2215,9 +1444,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function-double@1.0.4: - resolution: {integrity: sha512-J+vMIwmWx/uY3Fc4TNeyPyQOjSbaWpHO/xj+tv8RbViLfPipFGohgOWN+kSkuWTwSZPZxMfYopECUA/9Tq8YJA==} - fx-runner@1.4.0: resolution: {integrity: sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==} hasBin: true @@ -2230,14 +1456,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} engines: {node: '>=18'} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -2250,20 +1472,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} - - giget@1.2.3: - resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} - hasBin: true - - git-hooks-list@1.0.3: - resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -2299,12 +1507,9 @@ packages: resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} engines: {node: '>=18'} - globby@10.0.0: - resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} - engines: {node: '>=8'} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -2329,17 +1534,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -2350,12 +1544,8 @@ packages: htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} human-signals@1.1.1: @@ -2370,19 +1560,11 @@ packages: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} image-size@1.1.1: @@ -2397,8 +1579,8 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} hasBin: true @@ -2424,17 +1606,14 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - intl-messageformat@10.5.14: - resolution: {integrity: sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==} + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} invert-kv@3.0.1: resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} engines: {node: '>=8'} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - is-absolute@0.1.7: resolution: {integrity: sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==} engines: {node: '>=0.10.0'} @@ -2446,8 +1625,9 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} @@ -2505,9 +1685,9 @@ packages: resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} engines: {node: '>=12'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} is-relative@0.1.3: resolution: {integrity: sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==} @@ -2537,6 +1717,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -2545,8 +1729,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} - istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} istanbul-lib-report@3.0.1: @@ -2566,9 +1750,6 @@ packages: engines: {node: '>=10'} hasBin: true - javascript-stringify@2.1.0: - resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - jed@1.1.1: resolution: {integrity: sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==} @@ -2705,10 +1886,6 @@ packages: node-notifier: optional: true - jiti@1.21.3: - resolution: {integrity: sha512-uy2bNX5zQ+tESe+TiC7ilGRz8AtRGmnJH55NC5S0nSUjvvvM2hJHmefHErugGXN4pNv4Qx7vLsnNw9qJ9mtIsw==} - hasBin: true - jose@5.9.2: resolution: {integrity: sha512-ILI2xx/I57b20sd7rHZvgiiQrmp2mcotwsAH+5ajbpFQbrYVQdNHYlQhoA5cFb78CgtBOxtC05TeA+mcgkuCqQ==} @@ -2723,9 +1900,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true json-buffer@3.0.1: @@ -2761,13 +1938,13 @@ packages: jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - kashe@1.2.0: - resolution: {integrity: sha512-XqrR1dQrNV5mxEvB3tAxOBpI49T1A6Kqs2tn4V6Hunv0CtwZKTgr97yVHxj54Bad6HZR9gLlMC+R2TYNf9wXMA==} - engines: {node: '>=8.5.0'} - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -2809,10 +1986,6 @@ packages: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -2827,16 +2000,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -2854,27 +2020,10 @@ packages: marky@1.2.5: resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} - media-query-parser@2.0.2: - resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - mem@5.1.1: resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} engines: {node: '>=8'} - memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - - memoize@10.0.0: - resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==} - engines: {node: '>=18'} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2882,35 +2031,18 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} - mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -2919,10 +2051,6 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2937,35 +2065,14 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - - modern-ahocorasick@1.0.1: - resolution: {integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==} - ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2973,24 +2080,12 @@ packages: resolution: {integrity: sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-fetch-native@1.6.4: - resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} - node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -3001,8 +2096,8 @@ packages: node-notifier@10.0.1: resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -3019,25 +2114,10 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nypm@0.3.8: - resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -3112,19 +2192,11 @@ packages: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} - parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} - - parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -3134,9 +2206,6 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -3148,30 +2217,15 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -3202,26 +2256,10 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} - prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - prettier@3.3.3: resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} @@ -3231,10 +2269,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -3259,15 +2293,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -3280,10 +2307,6 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -3296,50 +2319,13 @@ packages: randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - - rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} - rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-router-dom@6.23.1: - resolution: {integrity: sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router@6.23.1: - resolution: {integrity: sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -3355,6 +2341,10 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -3379,12 +2369,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - - reselect@4.1.8: - resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} - resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -3397,9 +2381,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve.exports@2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} @@ -3422,24 +2403,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-dts@6.1.1: - resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} - engines: {node: '>=16'} - peerDependencies: - rollup: ^3.29.4 || ^4 - typescript: ^4.5 || ^5.0 - - rollup-plugin-node-externals@7.1.3: - resolution: {integrity: sha512-RM+7tJAejAoRsCf93TptTSdqUhRA8S78DleihMiu54Kac+uLkd9VIegLPhGnaW3ehZTXh56+R301mFH6j2A7vw==} - engines: {node: '>= 21 || ^20.6.0 || ^18.19.0'} - peerDependencies: - rollup: ^3.0.0 || ^4.0.0 - - rollup@4.22.5: - resolution: {integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -3453,26 +2416,21 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - scan-directory@1.0.0: - resolution: {integrity: sha512-StSp3ahu7EE1oqVfemF9nV7DVusIaVRuZVa4CZX5rzCUwspqO21wWdNshxZuFIQD7zj/HvvglBoycIizZbTBdw==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} + schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -3482,29 +2440,15 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-handler@6.1.5: - resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} - - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -3520,17 +2464,9 @@ packages: shellwords@0.1.1: resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -3538,26 +2474,15 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + sonic-boom@3.8.1: resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} - sonic-boom@4.1.0: - resolution: {integrity: sha512-NGipjjRicyJJ03rPiZCJYjwlsuP2d1/5QUviozRXC7S3WdVWNK5e3Ojieb9CCyfhq2UC+3+SRd9nG3I2lPRvUw==} - - sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - - sort-package-json@1.57.0: - resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} - hasBin: true - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + sonic-boom@4.2.0: + resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} @@ -3569,6 +2494,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + spawn-sync@1.0.15: resolution: {integrity: sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==} @@ -3586,10 +2515,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -3679,10 +2604,6 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -3699,8 +2620,8 @@ packages: uglify-js: optional: true - terser@5.31.1: - resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} engines: {node: '>=10'} hasBin: true @@ -3739,10 +2660,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -3777,6 +2694,13 @@ packages: esbuild: optional: true + ts-loader@9.5.1: + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + ts-node-dev@2.0.0: resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==} engines: {node: '>=0.8.0'} @@ -3805,14 +2729,6 @@ packages: tsconfig@7.0.0: resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - tsx@4.19.1: - resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} - engines: {node: '>=18.0.0'} - hasBin: true - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -3837,10 +2753,6 @@ packages: resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} @@ -3853,25 +2765,22 @@ packages: typescript: optional: true - typescript@5.6.2: - resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -3880,8 +2789,8 @@ packages: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -3893,20 +2802,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - used-styles@2.6.5: - resolution: {integrity: sha512-Lhrvvv25QY9l2kNpauYwZA/ejGki7QatWNh6D/wWgRwlLQUjms7VMOj/z+IcBVlpbCPUR1P2enpr+F8r5alDiA==} - engines: {node: '>=11'} - - util-arity@1.1.0: - resolution: {integrity: sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==} - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -3914,53 +2812,10 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - virtual-resource-loader@1.0.1: - resolution: {integrity: sha512-LAsQQv2oI9hOjSlwfZj5UzY3AmR05GNd+hhWi8Yg+wvISMDH4JEr69mCP2IQckl2hBGm0KA2Tq2pOPAa0nQJCA==} - - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite@5.4.8: - resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -3976,12 +2831,33 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + webpack-cli@5.1.4: + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -4009,6 +2885,9 @@ packages: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + winreg@0.0.12: resolution: {integrity: sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==} @@ -4066,9 +2945,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -4098,556 +2974,249 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.25.7': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + '@babel/highlight': 7.25.7 + picocolors: 1.1.1 - '@babel/compat-data@7.24.7': {} + '@babel/compat-data@7.25.8': {} - '@babel/core@7.24.7': + '@babel/core@7.25.8': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.7': + '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.25.8 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.24.7': + '@babel/helper-compilation-targets@7.25.7': dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.0 + '@babel/compat-data': 7.25.8 + '@babel/helper-validator-option': 7.25.7 + browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.25.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/core': 7.25.8 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.24.7': {} + '@babel/helper-plugin-utils@7.25.7': {} - '@babel/helper-simple-access@7.24.7': + '@babel/helper-simple-access@7.25.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-validator-option@7.25.7': {} - '@babel/helpers@7.24.7': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 - '@babel/highlight@7.24.7': + '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@babel/parser@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + picocolors: 1.1.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)': + '@babel/parser@7.25.8': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/types': 7.25.8 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/runtime@7.25.6': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/traverse@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.24.7': - dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - - '@bcoe/v8-coverage@0.2.3': {} - - '@crackle/babel-plugin-remove-exports@0.3.0': - dependencies: - '@babel/core': 7.24.7 - '@babel/traverse': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@crackle/cli@0.15.5(@types/node@22.7.5)(terser@5.31.1)(typescript@5.6.2)(webpack@5.91.0(@swc/core@1.5.25))': - dependencies: - '@crackle/core': 0.33.4(@types/node@22.7.5)(terser@5.31.1)(typescript@5.6.2)(webpack@5.91.0(@swc/core@1.5.25)) - yargs: 17.7.2 - transitivePeerDependencies: - - '@swc/helpers' - - '@types/node' - - babel-plugin-macros - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - typescript - - webpack - - '@crackle/core@0.33.4(@types/node@22.7.5)(terser@5.31.1)(typescript@5.6.2)(webpack@5.91.0(@swc/core@1.5.25))': - dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) - '@crackle/babel-plugin-remove-exports': 0.3.0 - '@crackle/router': 0.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ungap/structured-clone': 1.2.0 - '@vanilla-extract/css': 1.15.2 - '@vanilla-extract/integration': 7.1.5(@types/node@22.7.5)(terser@5.31.1) - '@vanilla-extract/vite-plugin': 4.0.10(@types/node@22.7.5)(terser@5.31.1)(vite@5.4.8(@types/node@22.7.5)(terser@5.31.1)) - '@vitejs/plugin-react-swc': 3.7.0(vite@5.4.8(@types/node@22.7.5)(terser@5.31.1)) - '@vocab/webpack': 1.2.9(webpack@5.91.0(@swc/core@1.5.25)) - builtin-modules: 3.3.0 - c12: 1.10.0 - consola: 3.2.3 - dedent: 1.5.3 - defu: 6.1.4 - ensure-gitignore: 1.2.0 - esbuild: 0.21.5 - eval: 0.1.8 - express: 4.19.2 - fast-glob: 3.3.2 - fs-extra: 11.2.0 - glob-to-regexp: 0.4.1 - memoize: 10.0.0 - mlly: 1.7.1 - pretty-ms: 7.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - resolve-from: 5.0.0 - rollup: 4.22.5 - rollup-plugin-dts: 6.1.1(rollup@4.22.5)(typescript@5.6.2) - rollup-plugin-node-externals: 7.1.3(rollup@4.22.5) - semver: 7.6.3 - serialize-javascript: 6.0.2 - serve-handler: 6.1.5 - sort-package-json: 1.57.0 - tsx: 4.19.1 - type-fest: 3.13.1 - typescript: 5.6.2 - used-styles: 2.6.5 - vite: 5.4.8(@types/node@22.7.5)(terser@5.31.1) - transitivePeerDependencies: - - '@swc/helpers' - - '@types/node' - - babel-plugin-macros - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - webpack - - '@crackle/router@0.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router-dom: 6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@devicefarmer/adbkit-logcat@2.1.3': {} - - '@devicefarmer/adbkit-monkey@1.2.1': {} - - '@devicefarmer/adbkit@3.2.6': - dependencies: - '@devicefarmer/adbkit-logcat': 2.1.3 - '@devicefarmer/adbkit-monkey': 1.2.1 - bluebird: 3.7.2 - commander: 9.5.0 - debug: 4.3.5 - node-forge: 1.3.1 - split: 1.0.1 - transitivePeerDependencies: - - supports-color - - '@emotion/hash@0.9.1': {} - - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.23.1': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.23.1': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-arm@0.23.1': - optional: true - - '@esbuild/android-x64@0.19.12': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/android-x64@0.23.1': - optional: true - - '@esbuild/darwin-arm64@0.19.12': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.23.1': - optional: true - - '@esbuild/darwin-x64@0.19.12': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.23.1': - optional: true - - '@esbuild/freebsd-arm64@0.19.12': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.23.1': - optional: true - - '@esbuild/freebsd-x64@0.19.12': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.23.1': - optional: true - - '@esbuild/linux-arm64@0.19.12': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.23.1': - optional: true - - '@esbuild/linux-arm@0.19.12': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-arm@0.23.1': - optional: true - - '@esbuild/linux-ia32@0.19.12': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.23.1': - optional: true - - '@esbuild/linux-loong64@0.19.12': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.23.1': - optional: true - - '@esbuild/linux-mips64el@0.19.12': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.23.1': - optional: true - - '@esbuild/linux-ppc64@0.19.12': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.23.1': - optional: true - - '@esbuild/linux-riscv64@0.19.12': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.23.1': - optional: true - - '@esbuild/linux-s390x@0.19.12': - optional: true + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/linux-s390x@0.21.5': - optional: true + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/linux-s390x@0.23.1': - optional: true + '@babel/plugin-syntax-import-attributes@7.25.7(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/linux-x64@0.19.12': - optional: true + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/linux-x64@0.21.5': - optional: true + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/linux-x64@0.23.1': - optional: true + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/netbsd-x64@0.19.12': - optional: true + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/netbsd-x64@0.21.5': - optional: true + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/netbsd-x64@0.23.1': - optional: true + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/openbsd-arm64@0.23.1': - optional: true + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/openbsd-x64@0.19.12': - optional: true + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/openbsd-x64@0.21.5': - optional: true + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/openbsd-x64@0.23.1': - optional: true + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/sunos-x64@0.19.12': - optional: true + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/sunos-x64@0.21.5': - optional: true + '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@esbuild/sunos-x64@0.23.1': - optional: true + '@babel/runtime@7.25.6': + dependencies: + regenerator-runtime: 0.14.1 - '@esbuild/win32-arm64@0.19.12': - optional: true + '@babel/template@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 - '@esbuild/win32-arm64@0.21.5': - optional: true + '@babel/traverse@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color - '@esbuild/win32-arm64@0.23.1': - optional: true + '@babel/types@7.25.8': + dependencies: + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + to-fast-properties: 2.0.0 - '@esbuild/win32-ia32@0.19.12': - optional: true + '@bcoe/v8-coverage@0.2.3': {} - '@esbuild/win32-ia32@0.21.5': - optional: true + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 - '@esbuild/win32-ia32@0.23.1': - optional: true + '@devicefarmer/adbkit-logcat@2.1.3': {} - '@esbuild/win32-x64@0.19.12': - optional: true + '@devicefarmer/adbkit-monkey@1.2.1': {} - '@esbuild/win32-x64@0.21.5': - optional: true + '@devicefarmer/adbkit@3.2.6': + dependencies: + '@devicefarmer/adbkit-logcat': 2.1.3 + '@devicefarmer/adbkit-monkey': 1.2.1 + bluebird: 3.7.2 + commander: 9.5.0 + debug: 4.3.7 + node-forge: 1.3.1 + split: 1.0.1 + transitivePeerDependencies: + - supports-color - '@esbuild/win32-x64@0.23.1': - optional: true + '@discoveryjs/json-ext@0.5.7': {} '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': dependencies: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.3))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0)': dependencies: - eslint: 9.13.0(jiti@1.21.3) + eslint: 9.13.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.1': {} - '@eslint-community/regexpp@4.11.1': {} '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -4657,10 +3226,10 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.7 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -4671,10 +3240,10 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.7 espree: 10.2.0 globals: 14.0.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -4694,30 +3263,6 @@ snapshots: '@fluent/syntax@0.19.0': {} - '@formatjs/ecma402-abstract@2.0.0': - dependencies: - '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.6.3 - - '@formatjs/fast-memoize@2.2.0': - dependencies: - tslib: 2.6.3 - - '@formatjs/icu-messageformat-parser@2.7.8': - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/icu-skeleton-parser': 1.8.2 - tslib: 2.6.3 - - '@formatjs/icu-skeleton-parser@1.8.2': - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - tslib: 2.6.3 - - '@formatjs/intl-localematcher@0.5.4': - dependencies: - tslib: 2.6.3 - '@humanfs/core@0.19.0': {} '@humanfs/node@0.16.5': @@ -4728,7 +3273,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -4752,27 +3297,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2))': + '@jest/core@29.7.0(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@10.0.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + jest-config: 29.7.0(@types/node@22.7.7)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -4799,7 +3344,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -4817,7 +3362,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.7.5 + '@types/node': 22.7.7 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -4839,14 +3384,14 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.7.5 + '@types/node': 22.7.7 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.2 + istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.7 @@ -4856,7 +3401,7 @@ snapshots: slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 + v8-to-istanbul: 9.3.0 optionalDependencies: node-notifier: 10.0.1 transitivePeerDependencies: @@ -4888,7 +3433,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.25.8 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -4911,14 +3456,14 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.7.5 - '@types/yargs': 17.0.32 + '@types/node': 22.7.7 + '@types/yargs': 17.0.33 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -4930,17 +3475,17 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@mdn/browser-compat-data@5.6.0': {} @@ -4962,64 +3507,16 @@ snapshots: dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@2.2.2': + '@pnpm/npm-conf@2.3.1': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@remix-run/router@1.16.1': {} - - '@rollup/rollup-android-arm-eabi@4.22.5': - optional: true - - '@rollup/rollup-android-arm64@4.22.5': - optional: true - - '@rollup/rollup-darwin-arm64@4.22.5': - optional: true - - '@rollup/rollup-darwin-x64@4.22.5': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.22.5': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.22.5': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.22.5': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.22.5': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.22.5': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.22.5': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.22.5': - optional: true - - '@rollup/rollup-linux-x64-musl@4.22.5': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.22.5': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.22.5': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.22.5': - optional: true - '@sinclair/typebox@0.27.8': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 @@ -5028,58 +3525,6 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@swc/core-darwin-arm64@1.5.25': - optional: true - - '@swc/core-darwin-x64@1.5.25': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.5.25': - optional: true - - '@swc/core-linux-arm64-gnu@1.5.25': - optional: true - - '@swc/core-linux-arm64-musl@1.5.25': - optional: true - - '@swc/core-linux-x64-gnu@1.5.25': - optional: true - - '@swc/core-linux-x64-musl@1.5.25': - optional: true - - '@swc/core-win32-arm64-msvc@1.5.25': - optional: true - - '@swc/core-win32-ia32-msvc@1.5.25': - optional: true - - '@swc/core-win32-x64-msvc@1.5.25': - optional: true - - '@swc/core@1.5.25': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.7 - optionalDependencies: - '@swc/core-darwin-arm64': 1.5.25 - '@swc/core-darwin-x64': 1.5.25 - '@swc/core-linux-arm-gnueabihf': 1.5.25 - '@swc/core-linux-arm64-gnu': 1.5.25 - '@swc/core-linux-arm64-musl': 1.5.25 - '@swc/core-linux-x64-gnu': 1.5.25 - '@swc/core-linux-x64-musl': 1.5.25 - '@swc/core-win32-arm64-msvc': 1.5.25 - '@swc/core-win32-ia32-msvc': 1.5.25 - '@swc/core-win32-x64-msvc': 1.5.25 - - '@swc/counter@0.1.3': {} - - '@swc/types@0.1.7': - dependencies: - '@swc/counter': 0.1.3 - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -5090,49 +3535,39 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.25.8 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.24.7 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.6 + '@babel/types': 7.25.8 - '@types/eslint@8.56.10': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 '@types/eslint__js@8.42.3': dependencies: - '@types/eslint': 8.56.10 + '@types/eslint': 9.6.1 '@types/estree@1.0.6': {} - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 3.0.5 - '@types/node': 22.7.5 - '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.7 '@types/istanbul-lib-coverage@2.0.6': {} @@ -5153,7 +3588,7 @@ snapshots: '@types/minimatch@3.0.5': {} - '@types/node@22.7.5': + '@types/node@22.7.7': dependencies: undici-types: 6.19.8 @@ -5165,42 +3600,42 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.32': + '@types/yargs@17.0.33': dependencies: '@types/yargs-parser': 21.0.3 '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.7 - '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2))(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0)(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.10.0 - '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) - '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.10.0 - eslint: 9.13.0(jiti@1.21.3) + eslint: 9.13.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + '@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.10.0 '@typescript-eslint/types': 8.10.0 - '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.10.0 - debug: 4.3.5 - eslint: 9.13.0(jiti@1.21.3) + debug: 4.3.7 + eslint: 9.13.0 optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -5209,42 +3644,42 @@ snapshots: '@typescript-eslint/types': 8.10.0 '@typescript-eslint/visitor-keys': 8.10.0 - '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) - debug: 4.3.5 - ts-api-utils: 1.3.0(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color '@typescript-eslint/types@8.10.0': {} - '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.10.0 '@typescript-eslint/visitor-keys': 8.10.0 - debug: 4.3.5 + debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2)': + '@typescript-eslint/utils@8.10.0(eslint@9.13.0)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.3)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) '@typescript-eslint/scope-manager': 8.10.0 '@typescript-eslint/types': 8.10.0 - '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) - eslint: 9.13.0(jiti@1.21.3) + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) + eslint: 9.13.0 transitivePeerDependencies: - supports-color - typescript @@ -5256,105 +3691,6 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vanilla-extract/babel-plugin-debug-ids@1.0.6': - dependencies: - '@babel/core': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@vanilla-extract/css@1.15.2': - dependencies: - '@emotion/hash': 0.9.1 - '@vanilla-extract/private': 1.0.5 - css-what: 6.1.0 - cssesc: 3.0.0 - csstype: 3.1.3 - dedent: 1.5.3 - deep-object-diff: 1.1.9 - deepmerge: 4.3.1 - media-query-parser: 2.0.2 - modern-ahocorasick: 1.0.1 - picocolors: 1.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - '@vanilla-extract/integration@7.1.5(@types/node@22.7.5)(terser@5.31.1)': - dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) - '@vanilla-extract/babel-plugin-debug-ids': 1.0.6 - '@vanilla-extract/css': 1.15.2 - dedent: 1.5.3 - esbuild: 0.19.12 - eval: 0.1.8 - find-up: 5.0.0 - javascript-stringify: 2.1.0 - mlly: 1.7.1 - vite: 5.4.8(@types/node@22.7.5)(terser@5.31.1) - vite-node: 1.6.0(@types/node@22.7.5)(terser@5.31.1) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - '@vanilla-extract/private@1.0.5': {} - - '@vanilla-extract/vite-plugin@4.0.10(@types/node@22.7.5)(terser@5.31.1)(vite@5.4.8(@types/node@22.7.5)(terser@5.31.1))': - dependencies: - '@vanilla-extract/integration': 7.1.5(@types/node@22.7.5)(terser@5.31.1) - vite: 5.4.8(@types/node@22.7.5)(terser@5.31.1) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - '@vitejs/plugin-react-swc@3.7.0(vite@5.4.8(@types/node@22.7.5)(terser@5.31.1))': - dependencies: - '@swc/core': 1.5.25 - vite: 5.4.8(@types/node@22.7.5)(terser@5.31.1) - transitivePeerDependencies: - - '@swc/helpers' - - '@vocab/core@1.6.2': - dependencies: - '@formatjs/icu-messageformat-parser': 2.7.8 - chokidar: 3.6.0 - debug: 4.3.5 - fast-glob: 3.3.2 - fastest-validator: 1.18.0 - find-up: 5.0.0 - intl-messageformat: 10.5.14 - picocolors: 1.0.1 - prettier: 2.8.8 - transitivePeerDependencies: - - supports-color - - '@vocab/webpack@1.2.9(webpack@5.91.0(@swc/core@1.5.25))': - dependencies: - '@vocab/core': 1.6.2 - cjs-module-lexer: 1.3.1 - debug: 4.3.5 - es-module-lexer: 1.5.3 - picocolors: 1.0.1 - virtual-resource-loader: 1.0.1 - webpack: 5.91.0(@swc/core@1.5.25) - transitivePeerDependencies: - - supports-color - '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 @@ -5431,6 +3767,21 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4))': + dependencies: + webpack: 5.95.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) + + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4))': + dependencies: + webpack: 5.95.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) + + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4))': + dependencies: + webpack: 5.95.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) + '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} @@ -5439,31 +3790,26 @@ snapshots: dependencies: event-target-shim: 5.0.1 - accepts@1.3.8: + acorn-import-attributes@1.9.5(acorn@8.13.0): dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 + acorn: 8.13.0 - acorn-import-assertions@1.9.0(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.13.0): dependencies: - acorn: 8.12.1 + acorn: 8.13.0 - acorn-jsx@5.3.2(acorn@8.12.1): + acorn-walk@8.3.4: dependencies: - acorn: 8.12.1 - - acorn-walk@8.3.2: {} + acorn: 8.13.0 - acorn@8.11.3: {} + acorn@8.13.0: {} - acorn@8.12.1: {} - - addons-linter@7.1.0(body-parser@1.20.2)(express@4.19.2): + addons-linter@7.1.0: dependencies: '@fluent/syntax': 0.19.0 '@mdn/browser-compat-data': 5.6.0 addons-moz-compare: 1.3.0 - addons-scanner-utils: 9.11.0(body-parser@1.20.2)(express@4.19.2) + addons-scanner-utils: 9.11.0 ajv: 8.17.1 chalk: 4.1.2 cheerio: 1.0.0-rc.12 @@ -5496,7 +3842,7 @@ snapshots: addons-moz-compare@1.3.0: {} - addons-scanner-utils@9.11.0(body-parser@1.20.2)(express@4.19.2): + addons-scanner-utils@9.11.0: dependencies: '@types/yauzl': 2.10.3 common-tags: 1.8.2 @@ -5504,22 +3850,28 @@ snapshots: strip-bom-stream: 4.0.0 upath: 2.0.1 yauzl: 2.10.0 - optionalDependencies: - body-parser: 1.20.2 - express: 4.19.2 - adm-zip@0.5.14: {} + adm-zip@0.5.16: {} agent-base@7.1.1: dependencies: - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -5530,7 +3882,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.2 + fast-uri: 3.0.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -5544,7 +3896,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} + ansi-regex@6.1.0: {} ansi-styles@3.2.1: dependencies: @@ -5573,13 +3925,9 @@ snapshots: array-differ@4.0.0: {} - array-flatten@1.1.1: {} - - array-union@2.1.0: {} - array-union@3.0.1: {} - async@3.2.5: {} + async@3.2.6: {} atomic-sleep@1.0.0: {} @@ -5588,13 +3936,13 @@ snapshots: stubborn-fs: 1.2.5 when-exit: 2.1.3 - babel-jest@29.7.0(@babel/core@7.24.7): + babel-jest@29.7.0(@babel/core@7.25.8): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.25.8 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.7) + babel-preset-jest: 29.6.3(@babel/core@7.25.8) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -5603,7 +3951,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.25.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -5613,32 +3961,35 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) - - babel-preset-jest@29.6.3(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 + babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.8): + dependencies: + '@babel/core': 7.25.8 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.8) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.8) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.8) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.8) + '@babel/plugin-syntax-import-attributes': 7.25.7(@babel/core@7.25.8) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.8) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.8) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.8) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.8) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.8) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.8) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.8) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.8) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.8) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.8) + + babel-preset-jest@29.6.3(@babel/core@7.25.8): + dependencies: + '@babel/core': 7.25.8 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.8) balanced-match@1.0.2: {} @@ -5646,29 +3997,10 @@ snapshots: big-integer@1.6.52: {} - big.js@5.2.2: {} - binary-extensions@2.3.0: {} bluebird@3.7.2: {} - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - boolbase@1.0.0: {} boxen@8.0.1: @@ -5699,12 +4031,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.0: + browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001629 - electron-to-chromium: 1.4.791 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) + caniuse-lite: 1.0.30001669 + electron-to-chromium: 1.5.41 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) bs-logger@0.2.6: dependencies: @@ -5723,41 +4055,10 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} - bundle-name@3.0.0: dependencies: run-applescript: 5.0.0 - bytes@3.0.0: {} - - bytes@3.1.2: {} - - c12@1.10.0: - dependencies: - chokidar: 3.6.0 - confbox: 0.1.7 - defu: 6.1.4 - dotenv: 16.4.5 - giget: 1.2.3 - jiti: 1.21.3 - mlly: 1.7.1 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.1.1 - rc9: 2.1.2 - - cac@6.7.14: {} - - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - callsites@3.1.0: {} camelcase@5.3.1: {} @@ -5766,7 +4067,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001629: {} + caniuse-lite@1.0.30001669: {} chalk@2.4.2: dependencies: @@ -5799,8 +4100,8 @@ snapshots: domhandler: 5.0.3 domutils: 3.1.0 htmlparser2: 8.0.2 - parse5: 7.1.2 - parse5-htmlparser2-tree-adapter: 7.0.0 + parse5: 7.2.0 + parse5-htmlparser2-tree-adapter: 7.1.0 chokidar@3.6.0: dependencies: @@ -5814,11 +4115,9 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chownr@2.0.0: {} - chrome-launcher@1.1.2: dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.7 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.1 @@ -5829,11 +4128,7 @@ snapshots: ci-info@3.9.0: {} - citty@0.1.6: - dependencies: - consola: 3.2.3 - - cjs-module-lexer@1.3.1: {} + cjs-module-lexer@1.4.1: {} cli-boxes@3.0.0: {} @@ -5843,6 +4138,12 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + clone@1.0.4: {} co@4.6.0: {} @@ -5861,11 +4162,15 @@ snapshots: color-name@1.1.4: {} + colorette@2.0.20: {} + columnify@1.6.0: dependencies: strip-ansi: 6.0.1 wcwidth: 1.0.1 + commander@10.0.1: {} + commander@2.20.3: {} commander@2.9.0: @@ -5885,8 +4190,6 @@ snapshots: readable-stream: 2.3.8 typedarray: 0.0.6 - confbox@0.1.7: {} - config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -5899,33 +4202,27 @@ snapshots: graceful-fs: 4.2.11 xdg-basedir: 5.1.0 - consola@3.2.3: {} - - content-disposition@0.5.2: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie@0.6.0: {} + copy-webpack-plugin@12.0.2(webpack@5.95.0(webpack-cli@5.1.4)): + dependencies: + fast-glob: 3.3.2 + glob-parent: 6.0.2 + globby: 14.0.2 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.95.0(webpack-cli@5.1.4) core-util-is@1.0.3: {} - crc-32@1.2.2: {} - - create-jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)): + create-jest@29.7.0(@types/node@22.7.7)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + jest-config: 29.7.0(@types/node@22.7.7)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -5952,19 +4249,15 @@ snapshots: css-what@6.1.0: {} - cssesc@3.0.0: {} - - csstype@3.1.3: {} - debounce@1.2.1: {} debug@2.6.9: dependencies: ms: 2.0.0 - debug@4.3.5: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 decamelize@6.0.0: {} @@ -5974,8 +4267,6 @@ snapshots: deep-is@0.1.4: {} - deep-object-diff@1.1.9: {} - deepmerge@4.3.1: {} default-browser-id@3.0.0: @@ -5994,34 +4285,14 @@ snapshots: dependencies: clone: 1.0.4 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - define-lazy-prop@3.0.0: {} - defu@6.1.4: {} - - depd@2.0.0: {} - - destr@2.0.3: {} - - destroy@1.2.0: {} - - detect-indent@6.1.0: {} - detect-newline@3.1.0: {} diff-sequences@29.6.3: {} diff@4.0.2: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -6048,19 +4319,15 @@ snapshots: dependencies: type-fest: 4.26.1 - dotenv@16.4.5: {} - dynamic-dedupe@0.3.0: dependencies: xtend: 4.0.2 - ee-first@1.1.1: {} - ejs@3.1.10: dependencies: jake: 10.9.2 - electron-to-chromium@1.4.791: {} + electron-to-chromium@1.5.41: {} emittery@0.13.1: {} @@ -6068,122 +4335,31 @@ snapshots: emoji-regex@8.0.0: {} - emojis-list@3.0.0: {} - - encodeurl@1.0.2: {} - end-of-stream@1.4.4: dependencies: once: 1.4.0 - enhanced-resolve@5.17.0: + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - ensure-gitignore@1.2.0: {} - entities@4.5.0: {} + envinfo@7.14.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - - es-errors@1.3.0: {} - - es-module-lexer@1.5.3: {} + es-module-lexer@1.5.4: {} es6-error@4.1.1: {} - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - esbuild@0.23.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - - escalade@3.1.2: {} + escalade@3.2.0: {} escape-goat@4.0.0: {} - escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@2.0.0: {} @@ -6218,7 +4394,7 @@ snapshots: eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.10.1 + '@eslint-community/regexpp': 4.11.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 '@humanwhocodes/config-array': 0.13.0 @@ -6228,13 +4404,13 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -6242,7 +4418,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -6258,9 +4434,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.13.0(jiti@1.21.3): + eslint@9.13.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.3)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.7.0 @@ -6275,18 +4451,18 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.1.0 eslint-visitor-keys: 4.1.0 espree: 10.2.0 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 @@ -6295,32 +4471,30 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 text-table: 0.2.0 - optionalDependencies: - jiti: 1.21.3 transitivePeerDependencies: - supports-color espree@10.1.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.13.0 + acorn-jsx: 5.3.2(acorn@8.13.0) eslint-visitor-keys: 4.0.0 espree@10.2.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.13.0 + acorn-jsx: 5.3.2(acorn@8.13.0) eslint-visitor-keys: 4.1.0 espree@9.6.1: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.13.0 + acorn-jsx: 5.3.2(acorn@8.13.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -6334,13 +4508,6 @@ snapshots: esutils@2.0.3: {} - etag@1.8.1: {} - - eval@0.1.8: - dependencies: - '@types/node': 22.7.5 - require-like: 0.1.2 - event-target-shim@5.0.1: {} events@3.3.0: {} @@ -6381,18 +4548,6 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 3.0.0 - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - exit@0.1.2: {} expect@29.7.0: @@ -6403,42 +4558,6 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - express@4.19.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - fast-deep-equal@3.1.3: {} fast-glob@3.3.2: @@ -6457,13 +4576,9 @@ snapshots: fast-redact@3.5.0: {} - fast-uri@3.0.2: {} - - fast-url-parser@1.1.3: - dependencies: - punycode: 1.4.1 + fast-uri@3.0.3: {} - fastest-validator@1.18.0: {} + fastest-levenshtein@1.0.16: {} fastq@1.17.1: dependencies: @@ -6493,18 +4608,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -6517,7 +4620,7 @@ snapshots: firefox-profile@4.7.0: dependencies: - adm-zip: 0.5.14 + adm-zip: 0.5.16 fs-extra: 11.2.0 ini: 4.1.3 minimist: 1.2.8 @@ -6536,11 +4639,9 @@ snapshots: flatted: 3.3.1 keyv: 4.5.4 - flatted@3.3.1: {} - - forwarded@0.2.0: {} + flat@5.0.2: {} - fresh@0.5.2: {} + flatted@3.3.1: {} fs-extra@11.2.0: dependencies: @@ -6548,10 +4649,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -6559,10 +4656,6 @@ snapshots: function-bind@1.1.2: {} - function-double@1.0.4: - dependencies: - util-arity: 1.1.0 - fx-runner@1.4.0: dependencies: commander: 2.9.0 @@ -6576,43 +4669,16 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.2.0: {} - - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 + get-east-asian-width@1.3.0: {} get-package-type@0.1.0: {} get-stream@5.2.0: dependencies: - pump: 3.0.0 + pump: 3.0.2 get-stream@6.0.1: {} - get-stream@8.0.1: {} - - get-tsconfig@4.7.5: - dependencies: - resolve-pkg-maps: 1.0.0 - - giget@1.2.3: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - defu: 6.1.4 - node-fetch-native: 1.6.4 - nypm: 0.3.8 - ohash: 1.1.3 - pathe: 1.1.2 - tar: 6.2.1 - - git-hooks-list@1.0.3: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -6646,20 +4712,14 @@ snapshots: globals@15.11.0: {} - globby@10.0.0: + globby@14.0.2: dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 + '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - glob: 7.2.3 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 graceful-fs@4.2.10: {} @@ -6675,14 +4735,6 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.0 - - has-proto@1.0.3: {} - - has-symbols@1.0.3: {} - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -6696,18 +4748,10 @@ snapshots: domutils: 3.1.0 entities: 4.5.0 - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - https-proxy-agent@7.0.4: + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -6717,15 +4761,9 @@ snapshots: human-signals@4.3.1: {} - human-signals@5.0.0: {} - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - ieee754@1.2.1: {} - ignore@5.3.1: {} + ignore@5.3.2: {} image-size@1.1.1: dependencies: @@ -6738,7 +4776,7 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.1.0: + import-local@3.2.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 @@ -6758,17 +4796,10 @@ snapshots: ini@4.1.3: {} - intl-messageformat@10.5.14: - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/fast-memoize': 2.2.0 - '@formatjs/icu-messageformat-parser': 2.7.8 - tslib: 2.6.3 + interpret@3.1.1: {} invert-kv@3.0.1: {} - ipaddr.js@1.9.1: {} - is-absolute@0.1.7: dependencies: is-relative: 0.1.3 @@ -6779,7 +4810,7 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-core-module@2.13.1: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -6816,7 +4847,9 @@ snapshots: is-path-inside@4.0.0: {} - is-plain-obj@2.1.0: {} + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 is-relative@0.1.3: {} @@ -6836,22 +4869,24 @@ snapshots: isexe@2.0.0: {} + isobject@3.0.1: {} + istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/core': 7.25.8 + '@babel/parser': 7.25.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color - istanbul-lib-instrument@6.0.2: + istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/core': 7.25.8 + '@babel/parser': 7.25.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -6866,7 +4901,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.5 + debug: 4.3.7 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -6879,13 +4914,11 @@ snapshots: jake@10.9.2: dependencies: - async: 3.2.5 + async: 3.2.6 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - javascript-stringify@2.1.0: {} - jed@1.1.1: {} jest-changed-files@29.7.0: @@ -6900,7 +4933,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -6920,16 +4953,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)): + jest-cli@29.7.0(@types/node@22.7.7)(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + '@jest/core': 29.7.0(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + create-jest: 29.7.0(@types/node@22.7.7)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@22.7.7)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -6941,12 +4974,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)): + jest-config@29.7.0(@types/node@22.7.7)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) + babel-jest: 29.7.0(@babel/core@7.25.8) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -6966,8 +4999,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.7.5 - ts-node: 10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2) + '@types/node': 22.7.7 + ts-node: 10.9.2(@types/node@22.7.7)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -6996,7 +5029,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -7006,7 +5039,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.7.5 + '@types/node': 22.7.7 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -7032,7 +5065,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -7045,7 +5078,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -7080,7 +5113,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -7108,9 +5141,9 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 chalk: 4.1.2 - cjs-module-lexer: 1.3.1 + cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -7128,15 +5161,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/core': 7.25.8 + '@babel/generator': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) + '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.8) + '@babel/types': 7.25.8 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.8) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -7154,7 +5187,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -7173,7 +5206,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.5 + '@types/node': 22.7.7 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -7182,23 +5215,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.7 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.7 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)): + jest@29.7.0(@types/node@22.7.7)(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + '@jest/core': 29.7.0(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@22.7.7)(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) optionalDependencies: node-notifier: 10.0.1 transitivePeerDependencies: @@ -7207,8 +5240,6 @@ snapshots: - supports-color - ts-node - jiti@1.21.3: {} - jose@5.9.2: {} js-tokens@4.0.0: {} @@ -7222,7 +5253,7 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@2.5.2: {} + jsesc@3.0.2: {} json-buffer@3.0.1: {} @@ -7255,16 +5286,12 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 - kashe@1.2.0: - dependencies: - function-double: 1.0.4 - reselect: 4.1.8 - tslib: 2.6.3 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 + kind-of@6.0.3: {} + kleur@3.0.3: {} ky@1.7.2: {} @@ -7301,12 +5328,6 @@ snapshots: loader-runner@4.3.0: {} - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -7319,18 +5340,10 @@ snapshots: lodash.merge@4.6.2: {} - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - make-dir@4.0.0: dependencies: semver: 7.6.3 @@ -7347,57 +5360,31 @@ snapshots: marky@1.2.5: {} - media-query-parser@2.0.2: - dependencies: - '@babel/runtime': 7.25.6 - - media-typer@0.3.0: {} - mem@5.1.1: dependencies: map-age-cleaner: 0.1.3 mimic-fn: 2.1.0 p-is-promise: 2.1.0 - memoize-one@5.2.1: {} - - memoize@10.0.0: - dependencies: - mimic-function: 5.0.1 - - merge-descriptors@1.0.1: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} - methods@1.1.2: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 - mime-db@1.33.0: {} - mime-db@1.52.0: {} - mime-types@2.1.18: - dependencies: - mime-db: 1.33.0 - mime-types@2.1.35: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} - mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} - mimic-function@5.0.1: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -7412,32 +5399,10 @@ snapshots: minimist@1.2.8: {} - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - mkdirp@1.0.4: {} - mlly@1.7.1: - dependencies: - acorn: 8.12.1 - pathe: 1.1.2 - pkg-types: 1.1.1 - ufo: 1.5.3 - - modern-ahocorasick@1.0.1: {} - ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} multimatch@6.0.0: @@ -7447,16 +5412,10 @@ snapshots: array-union: 3.0.1 minimatch: 3.1.2 - nanoid@3.3.7: {} - natural-compare@1.4.0: {} - negotiator@0.6.3: {} - neo-async@2.6.2: {} - node-fetch-native@1.6.4: {} - node-forge@1.3.1: {} node-int64@0.4.0: {} @@ -7470,7 +5429,7 @@ snapshots: uuid: 8.3.2 which: 2.0.2 - node-releases@2.0.14: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -7486,24 +5445,8 @@ snapshots: dependencies: boolbase: 1.0.0 - nypm@0.3.8: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - execa: 8.0.1 - pathe: 1.1.2 - ufo: 1.5.3 - - object-inspect@1.13.1: {} - - ohash@1.1.3: {} - on-exit-leak-free@2.1.2: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -7577,59 +5520,43 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@7.1.1: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.2 lines-and-columns: 2.0.4 type-fest: 3.13.1 - parse-ms@2.1.0: {} - - parse5-htmlparser2-tree-adapter@7.0.0: + parse5-htmlparser2-tree-adapter@7.1.0: dependencies: domhandler: 5.0.3 - parse5: 7.1.2 + parse5: 7.2.0 - parse5@7.1.2: + parse5@7.2.0: dependencies: entities: 4.5.0 - parseurl@1.3.3: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} - path-is-inside@1.0.2: {} - path-key@3.1.1: {} path-key@4.0.0: {} path-parse@1.0.7: {} - path-to-regexp@0.1.7: {} - - path-to-regexp@2.2.1: {} - - path-type@4.0.0: {} - - pathe@1.1.2: {} + path-type@5.0.0: {} pend@1.2.0: {} - perfect-debounce@1.0.0: {} - - picocolors@1.0.1: {} - - picocolors@1.1.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -7652,7 +5579,7 @@ snapshots: process-warning: 3.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 - safe-stable-stringify: 2.4.3 + safe-stable-stringify: 2.5.0 sonic-boom: 3.8.1 thread-stream: 2.7.0 @@ -7666,8 +5593,8 @@ snapshots: process-warning: 4.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 4.1.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.0 thread-stream: 3.1.0 pirates@4.0.6: {} @@ -7676,28 +5603,8 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.1.1: - dependencies: - confbox: 0.1.7 - mlly: 1.7.1 - pathe: 1.1.2 - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - postcss@8.4.47: - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.0 - source-map-js: 1.2.1 - prelude-ls@1.2.1: {} - prettier@2.8.8: {} - prettier@3.3.3: {} pretty-format@29.7.0: @@ -7706,10 +5613,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-ms@7.0.1: - dependencies: - parse-ms: 2.1.0 - process-nextick-args@2.0.1: {} process-warning@3.0.0: {} @@ -7729,18 +5632,11 @@ snapshots: proto-list@1.2.4: {} - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - - pump@3.0.0: + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - punycode@1.4.1: {} - punycode@2.3.1: {} pupa@3.1.0: @@ -7749,10 +5645,6 @@ snapshots: pure-rand@6.1.0: {} - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - queue-microtask@1.2.3: {} queue@6.0.2: @@ -7765,22 +5657,6 @@ snapshots: dependencies: safe-buffer: 5.2.1 - range-parser@1.2.0: {} - - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - - rc9@2.1.2: - dependencies: - defu: 6.1.4 - destr: 2.0.3 - rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -7788,30 +5664,8 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - react-is@18.3.1: {} - react-router-dom@6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@remix-run/router': 1.16.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.23.1(react@18.3.1) - - react-router@6.23.1(react@18.3.1): - dependencies: - '@remix-run/router': 1.16.1 - react: 18.3.1 - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -7836,11 +5690,15 @@ snapshots: real-require@0.2.0: {} + rechoir@0.8.0: + dependencies: + resolve: 1.22.8 + regenerator-runtime@0.14.1: {} registry-auth-token@5.0.2: dependencies: - '@pnpm/npm-conf': 2.2.2 + '@pnpm/npm-conf': 2.3.1 registry-url@6.0.1: dependencies: @@ -7855,10 +5713,6 @@ snapshots: require-from-string@2.0.2: {} - require-like@0.1.2: {} - - reselect@4.1.8: {} - resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -7867,13 +5721,11 @@ snapshots: resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: {} - resolve.exports@2.0.2: {} resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -7887,40 +5739,6 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-dts@6.1.1(rollup@4.22.5)(typescript@5.6.2): - dependencies: - magic-string: 0.30.10 - rollup: 4.22.5 - typescript: 5.6.2 - optionalDependencies: - '@babel/code-frame': 7.24.7 - - rollup-plugin-node-externals@7.1.3(rollup@4.22.5): - dependencies: - rollup: 4.22.5 - - rollup@4.22.5: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.22.5 - '@rollup/rollup-android-arm64': 4.22.5 - '@rollup/rollup-darwin-arm64': 4.22.5 - '@rollup/rollup-darwin-x64': 4.22.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.22.5 - '@rollup/rollup-linux-arm-musleabihf': 4.22.5 - '@rollup/rollup-linux-arm64-gnu': 4.22.5 - '@rollup/rollup-linux-arm64-musl': 4.22.5 - '@rollup/rollup-linux-powerpc64le-gnu': 4.22.5 - '@rollup/rollup-linux-riscv64-gnu': 4.22.5 - '@rollup/rollup-linux-s390x-gnu': 4.22.5 - '@rollup/rollup-linux-x64-gnu': 4.22.5 - '@rollup/rollup-linux-x64-musl': 4.22.5 - '@rollup/rollup-win32-arm64-msvc': 4.22.5 - '@rollup/rollup-win32-ia32-msvc': 4.22.5 - '@rollup/rollup-win32-x64-msvc': 4.22.5 - fsevents: 2.3.3 - run-applescript@5.0.0: dependencies: execa: 5.1.1 @@ -7933,82 +5751,36 @@ snapshots: safe-buffer@5.2.1: {} - safe-stable-stringify@2.4.3: {} - - safer-buffer@2.1.2: {} + safe-stable-stringify@2.5.0: {} sax@1.4.1: {} - scan-directory@1.0.0: {} - - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + schema-utils@4.2.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + semver@6.3.1: {} semver@7.6.3: {} - send@0.18.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - serve-handler@6.1.5: - dependencies: - bytes: 3.0.0 - content-disposition: 0.5.2 - fast-url-parser: 1.1.3 - mime-types: 2.1.18 - minimatch: 3.1.2 - path-is-inside: 1.0.2 - path-to-regexp: 2.2.1 - range-parser: 1.2.0 - - serve-static@1.15.0: - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - setimmediate@1.0.5: {} - setprototypeof@1.2.0: {} + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 shebang-command@2.0.0: dependencies: @@ -8020,44 +5792,22 @@ snapshots: shellwords@0.1.1: {} - side-channel@1.0.6: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.1 - signal-exit@3.0.7: {} - signal-exit@4.1.0: {} - sisteransi@1.0.5: {} slash@3.0.0: {} + slash@5.1.0: {} + sonic-boom@3.8.1: dependencies: atomic-sleep: 1.0.0 - sonic-boom@4.1.0: + sonic-boom@4.2.0: dependencies: atomic-sleep: 1.0.0 - sort-object-keys@1.1.3: {} - - sort-package-json@1.57.0: - dependencies: - detect-indent: 6.1.0 - detect-newline: 3.1.0 - git-hooks-list: 1.0.3 - globby: 10.0.0 - is-plain-obj: 2.1.0 - sort-object-keys: 1.1.3 - - source-map-js@1.2.0: {} - - source-map-js@1.2.1: {} - source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 @@ -8070,6 +5820,8 @@ snapshots: source-map@0.6.1: {} + source-map@0.7.4: {} + spawn-sync@1.0.15: dependencies: concat-stream: 1.6.2 @@ -8087,8 +5839,6 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - statuses@2.0.1: {} - string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -8103,7 +5853,7 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.4.0 - get-east-asian-width: 1.2.0 + get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 string_decoder@1.1.1: @@ -8120,7 +5870,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom-buf@2.0.0: dependencies: @@ -8165,30 +5915,19 @@ snapshots: tapable@2.2.1: {} - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - terser-webpack-plugin@5.3.10(@swc/core@1.5.25)(webpack@5.91.0(@swc/core@1.5.25)): + terser-webpack-plugin@5.3.10(webpack@5.95.0(webpack-cli@5.1.4)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.1 - webpack: 5.91.0(@swc/core@1.5.25) - optionalDependencies: - '@swc/core': 1.5.25 + terser: 5.36.0 + webpack: 5.95.0(webpack-cli@5.1.4) - terser@5.31.1: + terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.13.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -8222,34 +5961,42 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - tree-kill@1.2.2: {} - ts-api-utils@1.3.0(typescript@5.6.2): + ts-api-utils@1.3.0(typescript@5.6.3): dependencies: - typescript: 5.6.2 + typescript: 5.6.3 - ts-jest@29.2.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(jest@29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)))(typescript@5.6.2): + ts-jest@29.2.5(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(jest@29.7.0(@types/node@22.7.7)(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.7.5)(node-notifier@10.0.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2)) + jest: 29.7.0(@types/node@22.7.7)(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.6.2 + typescript: 5.6.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.25.8 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) + babel-jest: 29.7.0(@babel/core@7.25.8) + + ts-loader@9.5.1(typescript@5.6.3)(webpack@5.95.0(webpack-cli@5.1.4)): + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.17.1 + micromatch: 4.0.8 + semver: 7.6.3 + source-map: 0.7.4 + typescript: 5.6.3 + webpack: 5.95.0(webpack-cli@5.1.4) - ts-node-dev@2.0.0(@swc/core@1.5.25)(@types/node@22.7.5)(node-notifier@10.0.1)(typescript@5.6.2): + ts-node-dev@2.0.0(@types/node@22.7.7)(node-notifier@10.0.1)(typescript@5.6.3): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -8257,11 +6004,11 @@ snapshots: mkdirp: 1.0.4 resolve: 1.22.8 rimraf: 2.7.1 - source-map-support: 0.5.13 + source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2) + ts-node: 10.9.2(@types/node@22.7.7)(typescript@5.6.3) tsconfig: 7.0.0 - typescript: 5.6.2 + typescript: 5.6.3 optionalDependencies: node-notifier: 10.0.1 transitivePeerDependencies: @@ -8269,25 +6016,23 @@ snapshots: - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.5.25)(@types/node@22.7.5)(typescript@5.6.2): + ts-node@10.9.2(@types/node@22.7.7)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.7.5 - acorn: 8.11.3 - acorn-walk: 8.3.2 + '@types/node': 22.7.7 + acorn: 8.13.0 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.2 + typescript: 5.6.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.5.25 tsconfig@7.0.0: dependencies: @@ -8296,15 +6041,6 @@ snapshots: strip-bom: 3.0.0 strip-json-comments: 2.0.1 - tslib@2.6.3: {} - - tsx@4.19.1: - dependencies: - esbuild: 0.23.1 - get-tsconfig: 4.7.5 - optionalDependencies: - fsevents: 2.3.3 - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -8319,43 +6055,36 @@ snapshots: type-fest@4.26.1: {} - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - typedarray@0.0.6: {} - typescript-eslint@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2): + typescript-eslint@8.10.0(eslint@9.13.0)(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2))(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) - '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) - '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@1.21.3))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color - typescript@5.6.2: {} - - ufo@1.5.3: {} + typescript@5.6.3: {} undici-types@6.19.8: {} - universalify@2.0.1: {} + unicorn-magic@0.1.0: {} - unpipe@1.0.0: {} + universalify@2.0.1: {} untildify@4.0.0: {} upath@2.0.1: {} - update-browserslist-db@1.0.16(browserslist@4.23.0): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.1 update-notifier@7.3.1: dependencies: @@ -8374,65 +6103,18 @@ snapshots: dependencies: punycode: 2.3.1 - used-styles@2.6.5: - dependencies: - crc-32: 1.2.2 - kashe: 1.2.0 - memoize-one: 5.2.1 - postcss: 8.4.38 - scan-directory: 1.0.0 - tslib: 2.6.3 - - util-arity@1.1.0: {} - util-deprecate@1.0.2: {} - utils-merge@1.0.1: {} - uuid@8.3.2: {} v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.2.0: + v8-to-istanbul@9.3.0: dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vary@1.1.2: {} - - virtual-resource-loader@1.0.1: - dependencies: - loader-utils: 2.0.4 - - vite-node@1.6.0(@types/node@22.7.5)(terser@5.31.1): - dependencies: - cac: 6.7.14 - debug: 4.3.5 - pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.4.8(@types/node@22.7.5)(terser@5.31.1) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vite@5.4.8(@types/node@22.7.5)(terser@5.31.1): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.22.5 - optionalDependencies: - '@types/node': 22.7.5 - fsevents: 2.3.3 - terser: 5.31.1 - walker@1.0.8: dependencies: makeerror: 1.0.12 @@ -8446,11 +6128,11 @@ snapshots: dependencies: defaults: 1.0.4 - web-ext@8.3.0(body-parser@1.20.2)(express@4.19.2): + web-ext@8.3.0: dependencies: '@babel/runtime': 7.25.6 '@devicefarmer/adbkit': 3.2.6 - addons-linter: 7.1.0(body-parser@1.20.2)(express@4.19.2) + addons-linter: 7.1.0 camelcase: 8.0.0 chrome-launcher: 1.1.2 debounce: 1.2.1 @@ -8458,7 +6140,7 @@ snapshots: es6-error: 4.1.1 firefox-profile: 4.7.0 fx-runner: 1.4.0 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 jose: 5.9.2 jszip: 3.10.1 multimatch: 6.0.0 @@ -8485,21 +6167,43 @@ snapshots: - supports-color - utf-8-validate + webpack-cli@5.1.4(webpack@5.95.0): + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4)) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4)) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4)) + colorette: 2.0.20 + commander: 10.0.1 + cross-spawn: 7.0.3 + envinfo: 7.14.0 + fastest-levenshtein: 1.0.16 + import-local: 3.2.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack: 5.95.0(webpack-cli@5.1.4) + webpack-merge: 5.10.0 + + webpack-merge@5.10.0: + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + webpack-sources@3.2.3: {} - webpack@5.91.0(@swc/core@1.5.25): + webpack@5.95.0(webpack-cli@5.1.4): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-assertions: 1.9.0(acorn@8.12.1) - browserslist: 4.23.0 + acorn: 8.13.0 + acorn-import-attributes: 1.9.5(acorn@8.13.0) + browserslist: 4.24.0 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.0 - es-module-lexer: 1.5.3 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -8510,9 +6214,11 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.5.25)(webpack@5.91.0(@swc/core@1.5.25)) + terser-webpack-plugin: 5.3.10(webpack@5.95.0(webpack-cli@5.1.4)) watchpack: 2.4.2 webpack-sources: 3.2.3 + optionalDependencies: + webpack-cli: 5.1.4(webpack@5.95.0) transitivePeerDependencies: - '@swc/core' - esbuild @@ -8535,6 +6241,8 @@ snapshots: dependencies: string-width: 7.2.0 + wildcard@2.0.1: {} + winreg@0.0.12: {} word-wrap@1.2.5: {} @@ -8575,14 +6283,12 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} - yargs-parser@21.1.1: {} yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -8600,5 +6306,5 @@ snapshots: zip-dir@2.0.0: dependencies: - async: 3.2.5 + async: 3.2.6 jszip: 3.10.1 diff --git a/src/extractors/sourceVolunteerCount.ts b/src/extractors/sourceVolunteerCount.ts new file mode 100644 index 0000000..484f6eb --- /dev/null +++ b/src/extractors/sourceVolunteerCount.ts @@ -0,0 +1,46 @@ +import { presentVolunteerName } from "../presenters/presentVolunteerName"; +import { Volunteer } from "../types/Volunteer"; + +export function sourceVolunteerCount(v: Volunteer, update: HTMLSpanElement): void { + const timeout = v.athleteID % 1000; + const volunteerUrl = new URL( + `/parkrunner/${v.athleteID}/`, + window.location.origin + ).toString(); + + setTimeout(() => { + fetch(volunteerUrl) + .then((r) => r.text()) + .then((html) => new DOMParser().parseFromString(html, "text/html")) + .then((doc) => { + return { + vols: doc.querySelector( + "h3#volunteer-summary + table tfoot td:last-child" + ), + agegroup: doc.querySelector("h3 + p") as HTMLParagraphElement, + }; + }) + .then((e) => { + v.vols = e.vols?.textContent ?? ""; + v.agegroup = + e.agegroup?.textContent?.trim().split(" ").slice(-1)[0] ?? ""; + + update.innerText = presentVolunteerName( + v.name, + Number(v.vols), + v.agegroup + ); + update.dataset.vols = v.vols; + update.dataset.agegroup = v.agegroup; + update.dataset.vols_source = volunteerUrl; + const a: HTMLAnchorElement | null = document.querySelector( + `a[data-athleteid="${v.athleteID}"]` + ); + if (a) { + a.dataset.vols = v.vols; + a.dataset.agegroup = v.agegroup; + a.dataset.vols_source = volunteerUrl; + } + }); + }, timeout); +} diff --git a/src/index.ts b/src/index.ts index 7c9ea0c..d7d65fe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,9 +2,11 @@ import { ResultsPageExtractor } from "./extractors/ResultsPageExtractor"; import { MilestonePresenter } from "./presenters/MilestonePresenter"; import { conjoin, pluralize, sortAndConjoin } from "./stringFunctions"; import { fiveKFinishersToMilestones } from "./transformers/fiveKFinishersToMilestones"; -import { Volunteer } from "./types/Volunteer"; import { upsertParagraph } from "./dom/upsertParagraph"; +import { presentVolunteerName } from "./presenters/presentVolunteerName"; +import { sourceVolunteerCount } from "./extractors/sourceVolunteerCount"; +function eventuate(): void { const rpe = new ResultsPageExtractor(document); const milestoneCelebrations = fiveKFinishersToMilestones(rpe.finishers); @@ -133,72 +135,6 @@ if (insertionPoint) { `We shall always be grateful to each of our ${rpe.facts.volunteers.toLocaleString()} wonderful volunteers for their contributions.` ); } - -function sourceVolunteerCount(v: Volunteer, update: HTMLSpanElement) { - const timeout = v.athleteID % 1000; - const volunteerUrl = new URL( - `/parkrunner/${v.athleteID}/`, - window.location.origin - ).toString(); - - setTimeout(() => { - fetch(volunteerUrl) - .then((r) => r.text()) - .then((html) => new DOMParser().parseFromString(html, "text/html")) - .then((doc) => { - return { - vols: doc.querySelector( - "h3#volunteer-summary + table tfoot td:last-child" - ), - agegroup: doc.querySelector("h3 + p") as HTMLParagraphElement, - }; - }) - .then((e) => { - v.vols = e.vols?.textContent ?? ""; - v.agegroup = - e.agegroup?.textContent?.trim().split(" ").slice(-1)[0] ?? ""; - - update.innerText = presentVolunteerName( - v.name, - Number(v.vols), - v.agegroup - ); - update.dataset.vols = v.vols; - update.dataset.agegroup = v.agegroup; - update.dataset.vols_source = volunteerUrl; - const a: HTMLAnchorElement | null = document.querySelector( - `a[data-athleteid="${v.athleteID}"]` - ); - if (a) { - a.dataset.vols = v.vols; - a.dataset.agegroup = v.agegroup; - a.dataset.vols_source = volunteerUrl; - } - }); - }, timeout); } -function presentVolunteerName( - name: string, - vols: number, - agegroup: string -): string { - const milestones: Record = { - 10: "J", - 25: "", - 50: "", - 100: "", - 250: "", - 500: "", - 1000: "", - }; - - for (const n in milestones) { - const restricted_age: string = milestones[Number(n)]; - if (vols === Number(n) && agegroup.startsWith(restricted_age)) { - return `${name} (congratulations on joining the v${n}-club)`; - } - } - - return name; -} +eventuate(); diff --git a/src/presenters/presentVolunteerName.ts b/src/presenters/presentVolunteerName.ts new file mode 100644 index 0000000..1be6e94 --- /dev/null +++ b/src/presenters/presentVolunteerName.ts @@ -0,0 +1,23 @@ +export function presentVolunteerName( + name: string, + vols: number, + agegroup: string): string { + const milestones: Record = { + 10: "J", + 25: "", + 50: "", + 100: "", + 250: "", + 500: "", + 1000: "", + }; + + for (const n in milestones) { + const restricted_age: string = milestones[Number(n)]; + if (vols === Number(n) && agegroup.startsWith(restricted_age)) { + return `${name} (congratulations on joining the v${n}-club)`; + } + } + + return name; +} diff --git a/src/types/Finisher.ts b/src/types/Finisher.ts index f7ca6ef..d541669 100644 --- a/src/types/Finisher.ts +++ b/src/types/Finisher.ts @@ -1,29 +1,17 @@ -import { IFinisher } from "./IFinisher"; - export interface IFinisher { name: string; - agegroup?: string; - club?: string; - gender?: string; - position?: string; - runs: string; - vols?: string; - agegrade?: string; achievement?: string; - time?: string; -}export interface IFinisher { - name: string; + agegrade?: string; agegroup?: string; + athleteID?: number; club?: string; gender?: string; position?: string; runs: string; - vols?: string; - agegrade?: string; - achievement?: string; time?: string; - athleteID?: number; + vols?: string; } + export class Finisher implements IFinisher { name: string; agegroup?: string; diff --git a/tsconfig.json b/tsconfig.json index 5adf867..3cc2ece 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,13 @@ { "compilerOptions": { "target": "ESNext", - "module": "System", + "module": "CommonJS", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true, - "rootDir": "src", - "outFile": "./dist/eventuate.js" + "rootDir": "./src", + "outDir": "./dist" }, "exclude": ["*.config.ts", "test"] } diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..ead0992 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,25 @@ +const path = require('path'); + +module.exports = { + mode: 'production', + entry: './src/index.ts', + module: { + rules: [ + { + test: /\.tsx?$/, + use: 'ts-loader', + exclude: /node_modules/, + }, + ], + }, + resolve: { + extensions: ['.ts', '.js'], + }, + output: { + filename: 'eventuate.js', + path: path.resolve(__dirname, 'dist'), + }, + optimization: { + minimize: false + } +}; \ No newline at end of file From 4e7989fb457fdb53ca426303ad1ef76cdb48449a Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sun, 20 Oct 2024 13:41:49 +1100 Subject: [PATCH 4/8] Whitespace --- manifest.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index fca6770..e5bc5fa 100644 --- a/manifest.json +++ b/manifest.json @@ -43,9 +43,11 @@ ], "js": [ "./dist/eventuate.js" - ], - "css": ["./style/eventuate.css"], + ], + "css": [ + "./style/eventuate.css" + ], "run_at": "document_end" } ] -} +} \ No newline at end of file From d4a22cbb7178b9f8115577d4788d403929728433 Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sun, 20 Oct 2024 20:06:35 +1100 Subject: [PATCH 5/8] Volunteers own shirts, too! --- src/dom/upsertParagraph.ts | 5 +- src/extractors/ResultsPageExtractor.ts | 9 +- src/extractors/VolunteerPageExtractor.ts | 16 ++ src/extractors/sourceVolunteerCount.ts | 46 ---- src/index.ts | 253 +++++++++--------- src/presenters/MilestonePresenter.ts | 11 +- src/presenters/presentVolunteerName.ts | 23 -- .../fiveKFinishersToMilestones.ts | 23 +- .../fiveKVolunteersToMilestones.ts | 42 +++ src/types/Finisher.ts | 3 +- src/types/Milestones.ts | 10 + src/types/Volunteer.ts | 58 +++- style/eventuate.css | 32 --- 13 files changed, 266 insertions(+), 265 deletions(-) create mode 100644 src/extractors/VolunteerPageExtractor.ts delete mode 100644 src/extractors/sourceVolunteerCount.ts delete mode 100644 src/presenters/presentVolunteerName.ts create mode 100644 src/transformers/fiveKVolunteersToMilestones.ts create mode 100644 src/types/Milestones.ts diff --git a/src/dom/upsertParagraph.ts b/src/dom/upsertParagraph.ts index cd82a32..90f1a4e 100644 --- a/src/dom/upsertParagraph.ts +++ b/src/dom/upsertParagraph.ts @@ -1,9 +1,10 @@ export function upsertParagraph( div: HTMLElement, id: string, - content: string): HTMLParagraphElement { + content: string, +): HTMLParagraphElement { const existingParagraph = Array.from(div.children).find( - (element) => element.id === id + (element) => element.id === id, ); if (existingParagraph) { diff --git a/src/extractors/ResultsPageExtractor.ts b/src/extractors/ResultsPageExtractor.ts index 464df2e..2a378c3 100644 --- a/src/extractors/ResultsPageExtractor.ts +++ b/src/extractors/ResultsPageExtractor.ts @@ -1,4 +1,4 @@ -import { Finisher, IFinisher } from "../types/Finisher" +import { Finisher, IFinisher } from "../types/Finisher"; import { Volunteer } from "../types/Volunteer"; function athleteIDFromURI(uri: string): number { @@ -115,9 +115,8 @@ export class ResultsPageExtractor { } private volunteerElements(): NodeListOf | [] { - return ( - this.resultsPageDocument - .querySelectorAll(".Results + div h3:first-of-type + p:first-of-type a") + return this.resultsPageDocument.querySelectorAll( + ".Results + div h3:first-of-type + p:first-of-type a", ); } @@ -147,7 +146,7 @@ export class ResultsPageExtractor { link: v.href, athleteID: Number(v.dataset.athleteid), agegroup: v.dataset.agegroup, - vols: v.dataset.vols, + vols: Number(v.dataset.vols), }; }); } diff --git a/src/extractors/VolunteerPageExtractor.ts b/src/extractors/VolunteerPageExtractor.ts new file mode 100644 index 0000000..606168f --- /dev/null +++ b/src/extractors/VolunteerPageExtractor.ts @@ -0,0 +1,16 @@ +export class VolunteerPageExtractor { + vols: number; + agegroup: string; + + constructor(doc: Document) { + const ageGroupData: string = doc.querySelector("h3 + p")?.textContent ?? ""; + + this.vols = Number( + doc.querySelector("h3#volunteer-summary + table tfoot td:last-child") + ?.textContent, + ); + + this.agegroup = + ageGroupData.trim().split(" ").slice(-1)[0] ?? "Not found on page"; + } +} diff --git a/src/extractors/sourceVolunteerCount.ts b/src/extractors/sourceVolunteerCount.ts deleted file mode 100644 index 484f6eb..0000000 --- a/src/extractors/sourceVolunteerCount.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { presentVolunteerName } from "../presenters/presentVolunteerName"; -import { Volunteer } from "../types/Volunteer"; - -export function sourceVolunteerCount(v: Volunteer, update: HTMLSpanElement): void { - const timeout = v.athleteID % 1000; - const volunteerUrl = new URL( - `/parkrunner/${v.athleteID}/`, - window.location.origin - ).toString(); - - setTimeout(() => { - fetch(volunteerUrl) - .then((r) => r.text()) - .then((html) => new DOMParser().parseFromString(html, "text/html")) - .then((doc) => { - return { - vols: doc.querySelector( - "h3#volunteer-summary + table tfoot td:last-child" - ), - agegroup: doc.querySelector("h3 + p") as HTMLParagraphElement, - }; - }) - .then((e) => { - v.vols = e.vols?.textContent ?? ""; - v.agegroup = - e.agegroup?.textContent?.trim().split(" ").slice(-1)[0] ?? ""; - - update.innerText = presentVolunteerName( - v.name, - Number(v.vols), - v.agegroup - ); - update.dataset.vols = v.vols; - update.dataset.agegroup = v.agegroup; - update.dataset.vols_source = volunteerUrl; - const a: HTMLAnchorElement | null = document.querySelector( - `a[data-athleteid="${v.athleteID}"]` - ); - if (a) { - a.dataset.vols = v.vols; - a.dataset.agegroup = v.agegroup; - a.dataset.vols_source = volunteerUrl; - } - }); - }, timeout); -} diff --git a/src/index.ts b/src/index.ts index d7d65fe..22958e7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,140 +1,131 @@ -import { ResultsPageExtractor } from "./extractors/ResultsPageExtractor"; -import { MilestonePresenter } from "./presenters/MilestonePresenter"; import { conjoin, pluralize, sortAndConjoin } from "./stringFunctions"; import { fiveKFinishersToMilestones } from "./transformers/fiveKFinishersToMilestones"; +import { fiveKVolunteersToMilestones } from "./transformers/fiveKVolunteersToMilestones"; +import { MilestonePresenter } from "./presenters/MilestonePresenter"; +import { ResultsPageExtractor } from "./extractors/ResultsPageExtractor"; import { upsertParagraph } from "./dom/upsertParagraph"; -import { presentVolunteerName } from "./presenters/presentVolunteerName"; -import { sourceVolunteerCount } from "./extractors/sourceVolunteerCount"; - -function eventuate(): void { -const rpe = new ResultsPageExtractor(document); - -const milestoneCelebrations = fiveKFinishersToMilestones(rpe.finishers); -const milestonePresenter = new MilestonePresenter(milestoneCelebrations); -const introduction = `On parkrunday, ${rpe.finishers.length} parkrunners joined us for event ${rpe.eventNumber} and completed the ${rpe.courseLength}km ${rpe.eventName} course.`; - -const newestParkrunnersTitle = `Congratulations to our ${pluralize( - "newest parkrunner", - "newest parkrunners", - rpe.newestParkrunners.length -)}: `; - -const firstTimersTitle = `Welcome to the ${pluralize( - "parkrunner", - "parkrunners", - rpe.firstTimers.length -)} who joined us at ${rpe.eventName ?? "parkrun"} for the first time: `; - -const finishersWithNewPBsTitle = `Very well done to the ${pluralize( - "parkrunner", - "parkrunners", - rpe.finishersWithNewPBs.length -)} who improved their personal best this week: `; - -const runningWalkingGroupsTitle = `We were pleased to see ${pluralize( - "active group", - "walking and running groups", - rpe.runningWalkingGroups.length -)} represented at this event: `; - -const volunteerList = rpe.volunteersList(); -const volunteersTitle = `${rpe.eventName} are very grateful to the ${volunteerList.length} amazing volunteers who made this event happen: `; - -const eventuateDiv: HTMLDivElement = - (document.getElementById("eventuate") as HTMLDivElement) || - document.createElement("div"); -eventuateDiv.id = "eventuate"; - -const reportDetails = { - milestoneCelebrations: { - title: milestonePresenter.title(), - details: milestonePresenter.details(), - }, - newestParkrunners: { - title: newestParkrunnersTitle, - details: conjoin(rpe.newestParkrunners), - }, - firstTimers: { - title: firstTimersTitle, - details: sortAndConjoin(rpe.firstTimers), - }, - newPBs: { - title: finishersWithNewPBsTitle, - details: sortAndConjoin(rpe.finishersWithNewPBs), - }, - groups: { - title: runningWalkingGroupsTitle, - details: sortAndConjoin(rpe.runningWalkingGroups), - }, -}; - -const insertionPoint: HTMLDivElement | null = - document.querySelector(".Results-header"); -if (insertionPoint) { - insertionPoint.insertAdjacentElement("afterend", eventuateDiv); - - upsertParagraph(eventuateDiv, "introduction", introduction); - - for (const [section, content] of Object.entries(reportDetails)) { - if (content.details) { - const paragraphText = `${content.title} ${content.details}.`; - upsertParagraph(eventuateDiv, section, paragraphText); +import { VolunteerWithCount } from "./types/Volunteer"; + +function populate( + rpe: ResultsPageExtractor, + volunteerWithCountList: VolunteerWithCount[], +): void { + console.debug( + `⏱︎ Eventuating with ${JSON.stringify(volunteerWithCountList)}`, + ); + const introduction = `On parkrunday, ${rpe.finishers.length} parkrunners joined us for event ${rpe.eventNumber} and completed the ${rpe.courseLength}km ${rpe.eventName} course`; + + const newestParkrunnersTitle = `Congratulations to our ${pluralize( + "newest parkrunner", + "newest parkrunners", + rpe.newestParkrunners.length, + )}: `; + + const firstTimersTitle = `Welcome to the ${pluralize( + "parkrunner", + "parkrunners", + rpe.firstTimers.length, + )} who joined us at ${rpe.eventName ?? "parkrun"} for the first time: `; + + const finishersWithNewPBsTitle = `Very well done to the ${pluralize( + "parkrunner", + "parkrunners", + rpe.finishersWithNewPBs.length, + )} who improved their personal best this week: `; + + const runningWalkingGroupsTitle = `We were pleased to see ${pluralize( + "active group", + "walking and running groups", + rpe.runningWalkingGroups.length, + )} represented at this event: `; + + const volunteersTitle = `${rpe.eventName} are very grateful to the ${volunteerWithCountList.length} amazing volunteers who made this event happen: `; + + const milestoneCelebrations = [ + ...fiveKVolunteersToMilestones(volunteerWithCountList), + ...fiveKFinishersToMilestones(rpe.finishers), + ]; + + const milestonePresenter = new MilestonePresenter(milestoneCelebrations); + + const facts = + `Since ${rpe.eventName} started ` + + `${rpe.facts?.finishers?.toLocaleString()} brilliant parkrunners have had their barcodes scanned, ` + + `and a grand total of ${rpe.facts.finishes.toLocaleString()} finishers ` + + `have covered a total distance of ${( + rpe.facts.finishes * rpe.courseLength + ).toLocaleString()}km, ` + + `while celebrating ${rpe.facts.pbs.toLocaleString()} personal bests. ` + + `We shall always be grateful to each of our ${rpe.facts.volunteers.toLocaleString()} wonderful volunteers for their contributions`; + + const eventuateDiv: HTMLDivElement = + (document.getElementById("eventuate") as HTMLDivElement) || + document.createElement("div"); + eventuateDiv.id = "eventuate"; + + const reportDetails = { + introduction: { title: "", details: introduction }, + + milestoneCelebrations: { + title: milestonePresenter.title(), + details: milestonePresenter.details(), + }, + newestParkrunners: { + title: newestParkrunnersTitle, + details: conjoin(rpe.newestParkrunners), + }, + firstTimers: { + title: firstTimersTitle, + details: sortAndConjoin(rpe.firstTimers), + }, + newPBs: { + title: finishersWithNewPBsTitle, + details: sortAndConjoin(rpe.finishersWithNewPBs), + }, + groups: { + title: runningWalkingGroupsTitle, + details: sortAndConjoin(rpe.runningWalkingGroups), + }, + volunteers: { + title: volunteersTitle, + details: sortAndConjoin(volunteerWithCountList.map((v) => v.name)), + }, + unknowns: { + title: "", + details: + rpe.unknowns.length > 0 + ? `Please don't forget to bring a scannable copy of your barcode with you to ${rpe.eventName} if you'd like to have your time recorded` + : undefined, + }, + facts: { + title: "", + details: facts, + }, + }; + + const insertionPoint: HTMLDivElement | null = + document.querySelector(".Results-header"); + if (insertionPoint) { + insertionPoint.insertAdjacentElement("afterend", eventuateDiv); + + for (const [section, content] of Object.entries(reportDetails)) { + if (content.details) { + const paragraphText = `${content.title} ${content.details}.`; + upsertParagraph(eventuateDiv, section, paragraphText); + } } } +} - if (rpe.unknowns.length > 0) { - upsertParagraph( - eventuateDiv, - "unknowns", - `Please don't forget to bring a scannable copy of your barcode with you to ${rpe.eventName} if you'd like to have your time recorded.` - ); - } - const p = upsertParagraph(eventuateDiv, "volunteers", volunteersTitle); - - volunteerList - .sort((v1, v2) => v1.name.localeCompare(v2.name)) - .forEach((v, i) => { - const span = document.createElement("span"); - const punctuation = - i < volunteerList.length - 1 - ? i === volunteerList.length - 2 - ? document.createTextNode(", and ") - : document.createTextNode(", ") - : document.createTextNode("."); - span.id = v.athleteID.toString(); - if (v.vols) { - span.title = v.vols; - span.dataset.vols = v.vols; - span.dataset.agegroup = v.agegroup; - span.dataset.vols_source = "finisher"; - - span.innerText = presentVolunteerName( - v.name, - Number(v.vols), - v.agegroup ?? "None" - ); - } else { - span.innerText = v.name; - sourceVolunteerCount(v, span); - } - - p.insertAdjacentElement("beforeend", span); - p.appendChild(punctuation); - }); +function gather() { + const rpe = new ResultsPageExtractor(document); + const volunteerWithCountList = rpe + .volunteersList() + .map((vol) => new VolunteerWithCount(vol)); - upsertParagraph( - eventuateDiv, - "facts", - `Since ${rpe.eventName} started ` + - `${rpe.facts?.finishers?.toLocaleString()} brilliant parkrunners have had their barcodes scanned, ` + - `and a grand total of ${rpe.facts.finishes.toLocaleString()} finishers ` + - `have covered a total distance of ${( - rpe.facts.finishes * rpe.courseLength - ).toLocaleString()}km, ` + - `while celebrating ${rpe.facts.pbs.toLocaleString()} personal bests. ` + - `We shall always be grateful to each of our ${rpe.facts.volunteers.toLocaleString()} wonderful volunteers for their contributions.` - ); -} + Promise.all( + volunteerWithCountList.map((v) => v.promisedVols).filter((v) => !!v), + ).then(() => populate(rpe, volunteerWithCountList)); } -eventuate(); +gather(); diff --git a/src/presenters/MilestonePresenter.ts b/src/presenters/MilestonePresenter.ts index 99c3dac..3446119 100644 --- a/src/presenters/MilestonePresenter.ts +++ b/src/presenters/MilestonePresenter.ts @@ -1,10 +1,5 @@ import { pluralize, sortAndConjoin } from "../stringFunctions"; - -interface MilestoneCelebrations { - finished: number; - icon: string; - names: string[]; -} +import { MilestoneCelebrations } from "../types/Milestones"; export class MilestonePresenter { _milestoneCelebrations: MilestoneCelebrations[]; @@ -25,12 +20,12 @@ export class MilestonePresenter { )} who earned themselves a new parkrun club shirt this weekend:\n`; } - details() { + details(): string { return this._milestoneCelebrations .map( (mc) => `${mc.icon} ${sortAndConjoin(mc.names)} joined the ${ - mc.finished + mc.clubName }-club`, ) .join("\n"); diff --git a/src/presenters/presentVolunteerName.ts b/src/presenters/presentVolunteerName.ts deleted file mode 100644 index 1be6e94..0000000 --- a/src/presenters/presentVolunteerName.ts +++ /dev/null @@ -1,23 +0,0 @@ -export function presentVolunteerName( - name: string, - vols: number, - agegroup: string): string { - const milestones: Record = { - 10: "J", - 25: "", - 50: "", - 100: "", - 250: "", - 500: "", - 1000: "", - }; - - for (const n in milestones) { - const restricted_age: string = milestones[Number(n)]; - if (vols === Number(n) && agegroup.startsWith(restricted_age)) { - return `${name} (congratulations on joining the v${n}-club)`; - } - } - - return name; -} diff --git a/src/transformers/fiveKFinishersToMilestones.ts b/src/transformers/fiveKFinishersToMilestones.ts index 29b718f..f5c9463 100644 --- a/src/transformers/fiveKFinishersToMilestones.ts +++ b/src/transformers/fiveKFinishersToMilestones.ts @@ -1,18 +1,11 @@ -import { IFinisher } from "../types/Finisher" - -interface MilestoneCelebrations { - finished: number; - icon: string; - names: string[]; -} - -interface MilestoneDefinition { - restricted_age?: string; - icon: string; -} +import { IFinisher } from "../types/Finisher"; +import { + MilestoneCelebrations, + MilestoneDefinition, +} from "../types/Milestones"; export function fiveKFinishersToMilestones( - finishers: IFinisher[] + finishers: IFinisher[], ): MilestoneCelebrations[] { const milestones: Record = { 10: { icon: "⚪︎", restricted_age: "J" }, @@ -33,13 +26,13 @@ export function fiveKFinishersToMilestones( (f) => Number(f.runs) === Number(n) && (!milestone.restricted_age || - f.agegroup?.startsWith(milestone.restricted_age)) + f.agegroup?.startsWith(milestone.restricted_age)), ) .map((f) => f.name); if (names.length > 0) { milestoneCelebrations.push({ - finished: Number(n), + clubName: n, icon: milestone.icon, names, }); diff --git a/src/transformers/fiveKVolunteersToMilestones.ts b/src/transformers/fiveKVolunteersToMilestones.ts new file mode 100644 index 0000000..659a9a7 --- /dev/null +++ b/src/transformers/fiveKVolunteersToMilestones.ts @@ -0,0 +1,42 @@ +import { + MilestoneCelebrations, + MilestoneDefinition, +} from "../types/Milestones"; +import { VolunteerWithCount } from "../types/Volunteer"; + +export function fiveKVolunteersToMilestones( + volunteers: VolunteerWithCount[], +): MilestoneCelebrations[] { + const milestones: Record = { + 10: { icon: "🤍", restricted_age: "J" }, + 25: { icon: "💜" }, + 50: { icon: "❤️" }, + 100: { icon: "🖤" }, + 250: { icon: "💚" }, + 500: { icon: "💙" }, + 1000: { icon: "💛" }, + }; + + const milestoneCelebrations: MilestoneCelebrations[] = []; + + for (const n in milestones) { + const milestone: MilestoneDefinition = milestones[n]; + const names: string[] = volunteers + .filter( + (v) => + Number(v.vols) === Number(n) && + (!milestone.restricted_age || + v.agegroup?.startsWith(milestone.restricted_age)), + ) + .map((v) => v.name); + + if (names.length > 0) { + milestoneCelebrations.push({ + clubName: `v${n}`, + icon: milestone.icon, + names, + }); + } + } + return milestoneCelebrations; +} diff --git a/src/types/Finisher.ts b/src/types/Finisher.ts index d541669..0f7668a 100644 --- a/src/types/Finisher.ts +++ b/src/types/Finisher.ts @@ -36,7 +36,7 @@ export class Finisher implements IFinisher { agegrade?: string, achievement?: string, time?: string, - athleteID?: number + athleteID?: number, ) { this.name = name ?? "a parkrunner"; this.agegroup = agegroup; @@ -55,4 +55,3 @@ export class Finisher implements IFinisher { return this.runs === "0"; } } - diff --git a/src/types/Milestones.ts b/src/types/Milestones.ts new file mode 100644 index 0000000..8eb51bd --- /dev/null +++ b/src/types/Milestones.ts @@ -0,0 +1,10 @@ +export interface MilestoneCelebrations { + clubName: string; + icon: string; + names: string[]; +} + +export interface MilestoneDefinition { + restricted_age?: string; + icon: string; +} diff --git a/src/types/Volunteer.ts b/src/types/Volunteer.ts index 0e03340..5bc13fa 100644 --- a/src/types/Volunteer.ts +++ b/src/types/Volunteer.ts @@ -1,7 +1,63 @@ +import { VolunteerPageExtractor } from "../extractors/VolunteerPageExtractor"; + export interface Volunteer { name: string; link: string; athleteID: number; - vols?: string; + vols?: number; agegroup?: string; } + +export class VolunteerWithCount implements Volunteer { + name: string; + link: string; + athleteID: number; + vols: number; + agegroup: string; + volunteerDataSource: URL; + promisedVols?: Promise; + + constructor(volunteer: Volunteer) { + this.name = volunteer.name; + this.link = volunteer.link; + const url = new URL(volunteer.link); + this.volunteerDataSource = new URL( + url.pathname.split("/").slice(2).join("/"), + url.origin, + ); + + this.athleteID = volunteer.athleteID; + this.vols = volunteer.vols ?? 0; + this.agegroup = volunteer.agegroup ?? ""; + if (!this.vols) { + this.promisedVols = this.fetchdata(); + } + } + + fetchdata(): Promise | undefined { + const cached = sessionStorage.getItem(this.athleteID.toString()); + if (cached) { + const data = JSON.parse(cached); + this.vols = Number(data.vols); + this.agegroup = data.agegroup; + } else { + return fetch(this.volunteerDataSource) + .then((r) => r.text()) + .then((doc) => this.volsFromHtml(doc)); + } + return undefined; + } + + private volsFromHtml(html: string): VolunteerPageExtractor { + const vpe = new VolunteerPageExtractor( + new DOMParser().parseFromString(html, "text/html"), + ); + + this.vols = vpe.vols; + this.agegroup = vpe.agegroup; + + sessionStorage.setItem(this.athleteID.toString(), JSON.stringify(vpe)); + + return vpe; + } +} diff --git a/style/eventuate.css b/style/eventuate.css index b6fdd49..3e18ca4 100644 --- a/style/eventuate.css +++ b/style/eventuate.css @@ -9,35 +9,3 @@ background: lightgoldenrodyellow; padding: 12px; } - -#eventuate #volunteers span:after { - color: orange; -} - -#eventuate #volunteers span[data-vols]::after { - content: " (v" attr(data-vols) ")"; -} - -#eventuate #volunteers span:not([data-vols]):after { - content: " (⏳︎)"; -} - -.Results+div h3:first-of-type+p:first-of-type a[data-vols]::after { - content: " (v" attr(data-vols) ")"; -} - -.Results+div h3:first-of-type+p:first-of-type a:not([data-vols]):after { - content: " (fetching)"; -} - -.Results+div h3:first-of-type+p:first-of-type a[data-vols_source="finisher"]::before { - content: "👟"; -} - -#eventuate #volunteers span[data-vols]::after { - content: " (v" attr(data-vols) ")"; -} - -#eventuate #volunteers span:not([data-vols]):after { - content: " (⏳︎)"; -} \ No newline at end of file From b36b03cee5b957f94223e18f3bce359d04f8349d Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sun, 20 Oct 2024 20:49:26 +1100 Subject: [PATCH 6/8] Draw and Refresh --- src/index.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/index.ts b/src/index.ts index 22958e7..ef0ef88 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,9 +10,6 @@ function populate( rpe: ResultsPageExtractor, volunteerWithCountList: VolunteerWithCount[], ): void { - console.debug( - `⏱︎ Eventuating with ${JSON.stringify(volunteerWithCountList)}`, - ); const introduction = `On parkrunday, ${rpe.finishers.length} parkrunners joined us for event ${rpe.eventNumber} and completed the ${rpe.courseLength}km ${rpe.eventName} course`; const newestParkrunnersTitle = `Congratulations to our ${pluralize( @@ -117,15 +114,17 @@ function populate( } } -function gather() { +function eventuate() { const rpe = new ResultsPageExtractor(document); const volunteerWithCountList = rpe .volunteersList() .map((vol) => new VolunteerWithCount(vol)); + populate(rpe, volunteerWithCountList); // Initial draw + Promise.all( volunteerWithCountList.map((v) => v.promisedVols).filter((v) => !!v), - ).then(() => populate(rpe, volunteerWithCountList)); + ).then(() => populate(rpe, volunteerWithCountList)); // Refresh with volunteer counts } -gather(); +eventuate(); From 3f684e22626938d7467feac0c5a2b327524cf1f2 Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sun, 20 Oct 2024 20:53:45 +1100 Subject: [PATCH 7/8] Run yer tests, Johns! --- test/transformers/fiveKFinishersToMilestones.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/transformers/fiveKFinishersToMilestones.test.ts b/test/transformers/fiveKFinishersToMilestones.test.ts index 85bf770..c563fe7 100644 --- a/test/transformers/fiveKFinishersToMilestones.test.ts +++ b/test/transformers/fiveKFinishersToMilestones.test.ts @@ -33,7 +33,7 @@ describe(fiveKFinishersToMilestones, () => { mickey.agegroup = "JM10"; mickey.runs = "10"; expect(fiveKFinishersToMilestones([mickey])).toEqual([ - { finished: 10, icon: "⚪︎", names: ["Just right!"] }, + { clubName: "10", icon: "⚪︎", names: ["Just right!"] }, ]); }); @@ -45,7 +45,7 @@ describe(fiveKFinishersToMilestones, () => { test("50", () => { mickey.runs = "50"; expect(fiveKFinishersToMilestones([mickey])).toEqual([ - { finished: 50, icon: "🔴", names: ["Mickey"] }, + { clubName: "50", icon: "🔴", names: ["Mickey"] }, ]); }); From 2b7e95a8f89d6d31d9d4400512e8d8972ac326dd Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Sun, 20 Oct 2024 21:11:16 +1100 Subject: [PATCH 8/8] Bump version --- amo.json | 2 +- manifest.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/amo.json b/amo.json index bde510c..ade91a3 100644 --- a/amo.json +++ b/amo.json @@ -16,7 +16,7 @@ ], "version": { "license": "MIT", - "version": "0.0.11" + "version": "0.0.12" }, "homepage": { "en-US": "https://johnsy.com/eventuate/" diff --git a/manifest.json b/manifest.json index e5bc5fa..ace69ee 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Eventuate", - "version": "0.0.11", + "version": "0.0.12", "author": "Pete Johns", "homepage_url": "https://github.com/johnsyweb/eventuate/", "description": "Extracts information from parkrun results pages for inclusion in reports.", diff --git a/package.json b/package.json index cad3572..e07ac61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eventuate", - "version": "0.0.11", + "version": "0.0.12", "description": "Extracts information from parkrun results pages for inclusion in reports.", "keywords": [ "parkrun",