From 1101ac1633f3970ea3a1c66dcae05f57fcfaae0a Mon Sep 17 00:00:00 2001 From: Magic Date: Fri, 4 Oct 2024 15:25:09 -0700 Subject: [PATCH] Updated Web Extension Signed-off-by: Magic --- README.md | 2 - assets/preview.png | Bin 74809 -> 84453 bytes package.json | 44 +- pnpm-lock.yaml | 2007 ++++++++++++++----------------------- src/UserJS/main.js | 2 +- src/html/popup.html | 173 ++-- src/js/background.js | 152 +-- src/js/mu-common.js | 51 +- src/js/mu.js | 4 +- src/js/popup.js | 471 ++++++--- src/js/querySelector.js | 12 +- src/js/settings.js | 4 +- src/manifest/chrome.json | 4 +- src/manifest/firefox.json | 8 +- src/sass/web-ext.scss | 28 +- tools/web-ext.js | 4 +- 16 files changed, 1354 insertions(+), 1612 deletions(-) diff --git a/README.md b/README.md index 7511709..f695b96 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,6 @@ Finds available Userscripts for the current webpage, the power of [Greasy Fork]( **Web Extension:** -> Web Extension has not been updated for a long time, please use Userscript until this is resolved! - | Version | Install | Alternative | Notes | |:----------:|:----------:|:----------:|:----------:| | Chrome/Edge/Opera | [GitHub](https://github.com/magicoflolis/Userscript-Plus/releases) | *N/A* | Work in progress | diff --git a/assets/preview.png b/assets/preview.png index 79778338d07fcaf0268d0b58073fffd27c5782f1..14cfa87d67599c5115d196f15274401a0e332f83 100644 GIT binary patch literal 84453 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%0D>IdpKJo=;F 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 P>{BOwPt+Z|^vk~in`%Fz literal 74809 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 X2eQ74UFw)Lt1Ufk!|Ns2?mYQF1T&aQ diff --git a/package.json b/package.json index 9c1caa1..83150cb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "userscript-plus", "description": "Finds available userscripts for the current webpage.", "author": "Magic ", - "version": "4.0.0", + "version": "5.0.0", "license": "MIT", "homepage": "https://github.com/magicoflolis/Userscript-Plus", "bugs": { @@ -98,37 +98,37 @@ "web-run:firefox-android": "web-ext run --config=./tools/web-ext.js -t firefox-android --firefox-apk org.mozilla.firefox" }, "devDependencies": { - "@swc/cli": "^0.3.12", - "@swc/core": "^1.4.17", - "@types/chrome": "0.0.267", - "@types/firefox-webext-browser": "120.0.3", + "@swc/cli": "^0.4.0", + "@swc/core": "^1.7.26", + "@types/chrome": "0.0.277", + "@types/firefox-webext-browser": "120.0.4", "@types/greasemonkey": "4.0.7", - "@types/node": "^20.12.11", - "@types/tampermonkey": "^5.0.2", + "@types/node": "^22.7.4", + "@types/tampermonkey": "^5.0.3", "@violentmonkey/types": "0.1.7", - "browserslist": "^4.23.0", - "concurrently": "^8.2.2", + "browserslist": "^4.24.0", + "concurrently": "^9.0.1", "copy-webpack-plugin": "^12.0.2", "crx3": "^1.1.3", - "css-loader": "^7.1.1", + "css-loader": "^7.1.2", "dotenv": "^16.4.5", - "eslint": "^9.1.1", + "eslint": "^9.12.0", "eslint-config-prettier": "^9.1.0", - "globals": "^15.1.0", + "globals": "^15.10.0", "http-server": "^14.1.1", - "mini-css-extract-plugin": "^2.9.0", + "mini-css-extract-plugin": "^2.9.1", "node-watch": "^0.7.4", "path-browserify": "^1.0.1", - "prettier": "^3.2.5", - "sass": "^1.76.0", - "sass-loader": "^14.2.1", + "prettier": "^3.3.3", + "sass": "^1.79.4", + "sass-loader": "^16.0.2", "swc-loader": "^0.2.6", "terser-webpack-plugin": "^5.3.10", - "typescript": "^5.4.5", - "web-ext": "^7.11.0", - "webpack": "^5.91.0", + "typescript": "^5.6.2", + "web-ext": "^8.3.0", + "webpack": "^5.95.0", "webpack-cli": "^5.1.4", - "webpack-merge": "^5.10.0" + "webpack-merge": "^6.0.1" }, "repository": { "type": "git", @@ -145,8 +145,8 @@ "violentmonkey" ], "webExt": { - "sourceDir": "./dist/extension/", - "artifactsDir": "./build/" + "sourceDir": "./build/firefox/", + "artifactsDir": "./build" }, "engines": { "node": ">=20" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 674829e..5f5e78b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,62 +6,62 @@ settings: devDependencies: '@swc/cli': - specifier: ^0.3.12 - version: 0.3.12(@swc/core@1.4.17) + specifier: ^0.4.0 + version: 0.4.0(@swc/core@1.7.26) '@swc/core': - specifier: ^1.4.17 - version: 1.4.17 + specifier: ^1.7.26 + version: 1.7.26 '@types/chrome': - specifier: 0.0.267 - version: 0.0.267 + specifier: 0.0.277 + version: 0.0.277 '@types/firefox-webext-browser': - specifier: 120.0.3 - version: 120.0.3 + specifier: 120.0.4 + version: 120.0.4 '@types/greasemonkey': specifier: 4.0.7 version: 4.0.7 '@types/node': - specifier: ^20.12.11 - version: 20.12.11 + specifier: ^22.7.4 + version: 22.7.4 '@types/tampermonkey': - specifier: ^5.0.2 - version: 5.0.2 + specifier: ^5.0.3 + version: 5.0.3 '@violentmonkey/types': specifier: 0.1.7 version: 0.1.7 browserslist: - specifier: ^4.23.0 - version: 4.23.0 + specifier: ^4.24.0 + version: 4.24.0 concurrently: - specifier: ^8.2.2 - version: 8.2.2 + specifier: ^9.0.1 + version: 9.0.1 copy-webpack-plugin: specifier: ^12.0.2 - version: 12.0.2(webpack@5.91.0) + version: 12.0.2(webpack@5.95.0) crx3: specifier: ^1.1.3 version: 1.1.3 css-loader: - specifier: ^7.1.1 - version: 7.1.1(webpack@5.91.0) + specifier: ^7.1.2 + version: 7.1.2(webpack@5.95.0) dotenv: specifier: ^16.4.5 version: 16.4.5 eslint: - specifier: ^9.1.1 - version: 9.1.1 + specifier: ^9.12.0 + version: 9.12.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.1.1) + version: 9.1.0(eslint@9.12.0) globals: - specifier: ^15.1.0 - version: 15.1.0 + specifier: ^15.10.0 + version: 15.10.0 http-server: specifier: ^14.1.1 version: 14.1.1 mini-css-extract-plugin: - specifier: ^2.9.0 - version: 2.9.0(webpack@5.91.0) + specifier: ^2.9.1 + version: 2.9.1(webpack@5.95.0) node-watch: specifier: ^0.7.4 version: 0.7.4 @@ -69,35 +69,35 @@ devDependencies: specifier: ^1.0.1 version: 1.0.1 prettier: - specifier: ^3.2.5 - version: 3.2.5 + specifier: ^3.3.3 + version: 3.3.3 sass: - specifier: ^1.76.0 - version: 1.76.0 + specifier: ^1.79.4 + version: 1.79.4 sass-loader: - specifier: ^14.2.1 - version: 14.2.1(sass@1.76.0)(webpack@5.91.0) + specifier: ^16.0.2 + version: 16.0.2(sass@1.79.4)(webpack@5.95.0) swc-loader: specifier: ^0.2.6 - version: 0.2.6(@swc/core@1.4.17)(webpack@5.91.0) + version: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0) terser-webpack-plugin: specifier: ^5.3.10 - version: 5.3.10(@swc/core@1.4.17)(webpack@5.91.0) + version: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0) typescript: - specifier: ^5.4.5 - version: 5.4.5 + specifier: ^5.6.2 + version: 5.6.2 web-ext: - specifier: ^7.11.0 - version: 7.11.0 + specifier: ^8.3.0 + version: 8.3.0 webpack: - specifier: ^5.91.0 - version: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + specifier: ^5.95.0 + version: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack@5.91.0) + version: 5.1.4(webpack@5.95.0) webpack-merge: - specifier: ^5.10.0 - version: 5.10.0 + specifier: ^6.0.1 + version: 6.0.1 packages: @@ -106,32 +106,34 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@babel/code-frame@7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + /@babel/code-frame@7.25.7: + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.18.6 + '@babel/highlight': 7.25.7 + picocolors: 1.0.0 dev: true - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + /@babel/helper-validator-identifier@7.25.7: + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.25.7: + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.0 dev: true - /@babel/runtime@7.21.0: - resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + /@babel/runtime@7.25.6: + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.1 dev: true /@devicefarmer/adbkit-logcat@2.1.2: @@ -144,8 +146,8 @@ packages: engines: {node: '>= 0.10.4'} dev: true - /@devicefarmer/adbkit@3.2.3: - resolution: {integrity: sha512-wK9rVrabs4QU0oK8Jnwi+HRBEm+s1x/o63kgthUe0y7K1bfcYmgLuQf41/adsj/5enddlSxzkJavl2EwOu+r1g==} + /@devicefarmer/adbkit@3.2.6: + resolution: {integrity: sha512-8lO1hSeTgtxcOHhp4tTWq/JaOysp5KNbbyFoxNEBnwkCDZu/Bji3ZfOaG++Riv9jN6c9bgdLBOZqJTC5VJPRKQ==} engines: {node: '>= 0.10.4'} hasBin: true dependencies: @@ -165,31 +167,52 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.1): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@9.1.1): + /@eslint-community/eslint-utils@4.4.0(eslint@9.12.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 9.1.1 + eslint: 9.12.0 eslint-visitor-keys: 3.4.3 dev: true + /@eslint-community/regexpp@4.11.1: + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + /@eslint-community/regexpp@4.6.2: resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true + /@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} + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/core@0.6.0: + resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -207,13 +230,13 @@ packages: - supports-color dev: true - /@eslint/eslintrc@3.0.2: - resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + /@eslint/eslintrc@3.1.0: + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 10.0.1 + espree: 10.2.0 globals: 14.0.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -224,35 +247,50 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@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} dev: true - /@eslint/js@9.1.1: - resolution: {integrity: sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ==} + /@eslint/js@9.12.0: + resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /@eslint/object-schema@2.1.4: + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + + /@eslint/plugin-kit@0.2.0: + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + levn: 0.4.1 + dev: true + /@fluent/syntax@0.19.0: resolution: {integrity: sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==} engines: {node: '>=14.0.0', npm: '>=7.0.0'} dev: true - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + /@humanfs/core@0.19.0: + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + dev: true + + /@humanfs/node@0.16.5: + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 dev: true /@humanwhocodes/config-array@0.13.0: resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4 @@ -268,25 +306,14 @@ packages: /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead dev: true - /@humanwhocodes/retry@0.2.3: - resolution: {integrity: sha512-X38nUbachlb01YMlvPFojKoiXq+LzZvuSce70KPMPdeM1Rj03k4dR7lDslhbqXn3Ang4EU3+EAmwEAsbrjHW3g==} + /@humanwhocodes/retry@0.3.1: + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} dev: true - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.0.1 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} @@ -324,8 +351,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@mdn/browser-compat-data@5.5.7: - resolution: {integrity: sha512-DoHTZ/TjtNfUu9eiqJd+x3IcCQrhS+yOYU436TKUnlE36jZwNbK535D1CmTsSYdi/UcdCWNm5KRQZ9g1tlZCPw==} + /@mdn/browser-compat-data@5.6.0: + resolution: {integrity: sha512-xArvLyzuk0r2m6hFVjTMYoLvhWwys3h7W8pO15tjSAea+U39cErWDNfoUs4g2C08HVg6bDHyDMBc0LC6FKRpVw==} dev: true /@mole-inc/bin-wrapper@8.0.1: @@ -363,12 +390,10 @@ packages: fastq: 1.15.0 dev: true - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} dev: true - optional: true /@pnpm/network.ca-file@1.0.2: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} @@ -377,10 +402,11 @@ packages: graceful-fs: 4.2.10 dev: true - /@pnpm/npm-conf@1.0.5: - resolution: {integrity: sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==} + /@pnpm/npm-conf@2.3.1: + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} dependencies: + '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 dev: true @@ -390,18 +416,13 @@ packages: engines: {node: '>=10'} dev: true - /@sindresorhus/is@5.3.0: - resolution: {integrity: sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==} - engines: {node: '>=14.16'} - dev: true - /@sindresorhus/merge-streams@2.3.0: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} dev: true - /@swc/cli@0.3.12(@swc/core@1.4.17): - resolution: {integrity: sha512-h7bvxT+4+UDrLWJLFHt6V+vNAcUNii2G4aGSSotKz1ECEk4MyEh5CWxmeSscwuz5K3i+4DWTgm4+4EyMCQKn+g==} + /@swc/cli@0.4.0(@swc/core@1.7.26): + resolution: {integrity: sha512-4JdVrPtF/4rCMXp6Q1h5I6YkYZrCCcqod7Wk97ZQq7K8vNGzJUryBv4eHCvqx5sJOJBrbYm9fcswe1B0TygNoA==} engines: {node: '>= 16.14.0'} hasBin: true peerDependencies: @@ -412,7 +433,7 @@ packages: optional: true dependencies: '@mole-inc/bin-wrapper': 8.0.1 - '@swc/core': 1.4.17 + '@swc/core': 1.7.26 '@swc/counter': 0.1.3 commander: 8.3.0 fast-glob: 3.3.2 @@ -423,8 +444,8 @@ packages: source-map: 0.7.4 dev: true - /@swc/core-darwin-arm64@1.4.17: - resolution: {integrity: sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==} + /@swc/core-darwin-arm64@1.7.26: + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -432,8 +453,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64@1.4.17: - resolution: {integrity: sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==} + /@swc/core-darwin-x64@1.7.26: + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -441,8 +462,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf@1.4.17: - resolution: {integrity: sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==} + /@swc/core-linux-arm-gnueabihf@1.7.26: + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -450,8 +471,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu@1.4.17: - resolution: {integrity: sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==} + /@swc/core-linux-arm64-gnu@1.7.26: + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -459,8 +480,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl@1.4.17: - resolution: {integrity: sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==} + /@swc/core-linux-arm64-musl@1.7.26: + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -468,8 +489,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu@1.4.17: - resolution: {integrity: sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==} + /@swc/core-linux-x64-gnu@1.7.26: + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -477,8 +498,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl@1.4.17: - resolution: {integrity: sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==} + /@swc/core-linux-x64-musl@1.7.26: + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -486,8 +507,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc@1.4.17: - resolution: {integrity: sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==} + /@swc/core-win32-arm64-msvc@1.7.26: + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -495,8 +516,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc@1.4.17: - resolution: {integrity: sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==} + /@swc/core-win32-ia32-msvc@1.7.26: + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -504,8 +525,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc@1.4.17: - resolution: {integrity: sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==} + /@swc/core-win32-x64-msvc@1.7.26: + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -513,37 +534,39 @@ packages: dev: true optional: true - /@swc/core@1.4.17: - resolution: {integrity: sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==} + /@swc/core@1.7.26: + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} engines: {node: '>=10'} requiresBuild: true peerDependencies: - '@swc/helpers': ^0.5.0 + '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.5 + '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.4.17 - '@swc/core-darwin-x64': 1.4.17 - '@swc/core-linux-arm-gnueabihf': 1.4.17 - '@swc/core-linux-arm64-gnu': 1.4.17 - '@swc/core-linux-arm64-musl': 1.4.17 - '@swc/core-linux-x64-gnu': 1.4.17 - '@swc/core-linux-x64-musl': 1.4.17 - '@swc/core-win32-arm64-msvc': 1.4.17 - '@swc/core-win32-ia32-msvc': 1.4.17 - '@swc/core-win32-x64-msvc': 1.4.17 + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 dev: true /@swc/counter@0.1.3: resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} dev: true - /@swc/types@0.1.5: - resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + /@swc/types@0.1.12: + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + dependencies: + '@swc/counter': 0.1.3 dev: true /@szmarczak/http-timer@4.0.6: @@ -553,13 +576,6 @@ packages: defer-to-connect: 2.0.1 dev: true - /@szmarczak/http-timer@5.0.1: - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - dependencies: - defer-to-connect: 2.0.1 - dev: true - /@tokenizer/token@0.3.0: resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} dev: true @@ -569,35 +585,25 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 20.12.11 + '@types/node': 22.7.4 '@types/responselike': 1.0.3 dev: true - /@types/chrome@0.0.267: - resolution: {integrity: sha512-vnCWPpYjazSPRMNmybRH+0q4f738F+Pbbls4ZPFsPr9/4TTNJyK1OLZDpSnghnEWb4stfmIUtq/GegnlfD4sPA==} + /@types/chrome@0.0.277: + resolution: {integrity: sha512-qoTgBcDWblSsX+jvFnpUlLUE3LAuOhZfBh9MyMWMQHDsQiYVgBvdZWu9COrdB9+aNnInEyXcFgfc2HE16sdSYQ==} dependencies: '@types/filesystem': 0.0.32 '@types/har-format': 1.2.10 dev: true - /@types/eslint-scope@3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} - dependencies: - '@types/eslint': 8.4.10 - '@types/estree': 1.0.5 - dev: true - - /@types/eslint@8.4.10: - resolution: {integrity: sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==} - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.11 - dev: true - /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true + /@types/estree@1.0.6: + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + dev: true + /@types/filesystem@0.0.32: resolution: {integrity: sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==} dependencies: @@ -608,8 +614,8 @@ packages: resolution: {integrity: sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==} dev: true - /@types/firefox-webext-browser@120.0.3: - resolution: {integrity: sha512-APbBSxOvFMbKwXy/4YrEVa5Di6N0C9yl4w0WA0xzdkOrChAfPQ/KlcC8QLyhemHCHpF1CB/zHy52+oUQurViOg==} + /@types/firefox-webext-browser@120.0.4: + resolution: {integrity: sha512-lBrpf08xhiZBigrtdQfUaqX1UauwZ+skbFiL8u2Tdra/rklkKadYmIzTwkNZSWtuZ7OKpFqbE2HHfDoFqvZf6w==} dev: true /@types/greasemonkey@4.0.7: @@ -628,36 +634,40 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.12.11 + '@types/node': 22.7.4 dev: true /@types/minimatch@3.0.5: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: true - /@types/node@20.12.11: - resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==} + /@types/node@22.7.4: + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 dev: true /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 20.12.11 + '@types/node': 22.7.4 dev: true - /@types/tampermonkey@5.0.2: - resolution: {integrity: sha512-keKnYemqWts68wO2+TBdEg84iQd5vymK5SEQGxitI9uOfOnjm/ZskBoK9ZH3mnSYp79HidZMA/Y7ODQtiA/VIg==} + /@types/tampermonkey@5.0.3: + resolution: {integrity: sha512-i8+x8ipoib8xAfho25oNTbILgrO665oxq5tNr3LvH5DaW5UOPsc88Fe1mTVTDwsux5LYOcd8Syb6q+s95x878Q==} dev: true /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} dependencies: - '@types/node': 20.12.11 + '@types/node': 22.7.4 dev: true /@ungap/structured-clone@1.2.0: @@ -774,29 +784,29 @@ packages: '@xtuc/long': 4.2.2 dev: true - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.95.0): resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.91.0) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) dev: true - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.95.0): resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.91.0) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) dev: true - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.91.0): + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.95.0): resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} engines: {node: '>=14.15.0'} peerDependencies: @@ -807,8 +817,8 @@ packages: webpack-dev-server: optional: true dependencies: - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.91.0) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) dev: true /@xtuc/ieee754@1.2.0: @@ -826,12 +836,12 @@ packages: event-target-shim: 5.0.1 dev: true - /acorn-import-assertions@1.9.0(acorn@8.10.0): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + /acorn-import-attributes@1.9.5(acorn@8.11.3): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.10.0 + acorn: 8.11.3 dev: true /acorn-jsx@5.3.2(acorn@8.11.3): @@ -842,6 +852,14 @@ packages: acorn: 8.11.3 dev: true + /acorn-jsx@5.3.2(acorn@8.12.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.12.1 + dev: true + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -854,40 +872,41 @@ packages: hasBin: true dev: true - /addons-linter@6.21.0(node-fetch@3.3.1): - resolution: {integrity: sha512-4GBn14BR16FZE7dog6uz+1HO6V3B+mAVxmbwxRhed2y5eyrwIW832TmEpku+5A5bbovBZ4gilXEtBsl6A1AMmg==} - engines: {node: '>=16.0.0'} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /addons-linter@7.1.0: + resolution: {integrity: sha512-UmkUB3dZSpf8bqhlulGDbpoxBwcfOk8JvaJTRvJ+AAXKHvTjqeNlFC+GRMqa0EjJJh/0yqpBaJzyaUIx+fjl+A==} + engines: {node: '>=18.0.0'} hasBin: true dependencies: '@fluent/syntax': 0.19.0 - '@mdn/browser-compat-data': 5.5.7 + '@mdn/browser-compat-data': 5.6.0 addons-moz-compare: 1.3.0 - addons-scanner-utils: 9.9.0(node-fetch@3.3.1) - ajv: 8.12.0 + addons-scanner-utils: 9.11.0 + ajv: 8.17.1 chalk: 4.1.2 cheerio: 1.0.0-rc.12 columnify: 1.6.0 common-tags: 1.8.2 deepmerge: 4.3.1 - eslint: 8.56.0 - eslint-plugin-no-unsanitized: 4.0.2(eslint@8.56.0) - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint: 8.57.1 + eslint-plugin-no-unsanitized: 4.0.2(eslint@8.57.1) + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 esprima: 4.0.1 fast-json-patch: 3.1.1 - glob: 10.3.10 image-size: 1.1.1 - is-mergeable-object: 1.1.1 jed: 1.1.1 json-merge-patch: 1.0.2 os-locale: 5.0.0 - pino: 8.17.2 - postcss: 8.4.33 + pino: 8.20.0 relaxed-json: 1.0.3 - semver: 7.5.4 - sha.js: 2.4.11 + semver: 7.6.3 source-map-support: 0.5.21 - tosource: 1.0.0 upath: 2.0.1 yargs: 17.7.2 yauzl: 2.10.0 @@ -903,11 +922,11 @@ packages: resolution: {integrity: sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==} dev: true - /addons-scanner-utils@9.9.0(node-fetch@3.3.1): - resolution: {integrity: sha512-YDP10U3sEZMuIgnjXMiAYgUU64jTbxmhpUXMlhi1nKO4Etz+ctGWoTUst7IQRoLWaY9y2r1KZDG3jALxLA1n7Q==} + /addons-scanner-utils@9.11.0: + resolution: {integrity: sha512-X95V8ymnue9EHmOLz3zJTGHvHDFlWKiavlH+kJKOlv2sJDWFvD3TWeJMHJgxS9GKOqT/545mOXvX3vuuGGum+g==} peerDependencies: body-parser: 1.20.2 - express: 4.18.2 + express: 4.19.2 node-fetch: 2.6.11 safe-compare: 1.1.4 peerDependenciesMeta: @@ -923,7 +942,6 @@ packages: '@types/yauzl': 2.10.3 common-tags: 1.8.2 first-chunk-stream: 3.0.0 - node-fetch: 3.3.1 strip-bom-stream: 4.0.0 upath: 2.0.1 yauzl: 2.10.0 @@ -934,6 +952,15 @@ packages: engines: {node: '>=6.0'} dev: true + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -980,6 +1007,15 @@ packages: uri-js: 4.4.1 dev: true + /ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + dev: true + /ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: @@ -1015,18 +1051,6 @@ packages: engines: {node: '>=12'} dev: true - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - /arch@2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true @@ -1045,17 +1069,6 @@ packages: engines: {node: '>=12'} dev: true - /asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - dependencies: - safer-buffer: 2.1.2 - dev: true - - /assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - dev: true - /async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} dependencies: @@ -1066,26 +1079,16 @@ packages: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} dev: true - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true - - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true - /atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} dev: true - /aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - dev: true - - /aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + /atomically@2.0.3: + resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + dependencies: + stubborn-fs: 1.2.5 + when-exit: 2.1.3 dev: true /balanced-match@1.0.2: @@ -1103,10 +1106,9 @@ packages: safe-buffer: 5.1.2 dev: true - /bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - dependencies: - tweetnacl: 0.14.5 + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} dev: true /bin-check@4.1.0: @@ -1134,11 +1136,6 @@ packages: find-versions: 5.1.0 dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true @@ -1147,18 +1144,25 @@ packages: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true - /boxen@7.0.1: - resolution: {integrity: sha512-8k2eH6SRAK00NDl1iX5q17RJ8rfl53TajdYxE3ssMLehbg487dEVgsad4pIsZb/QqBgYWIl6JOauMTLGX2Kpkw==} - engines: {node: '>=14.16'} + /boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} dependencies: ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.2.0 + camelcase: 8.0.0 + chalk: 5.3.0 cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 + string-width: 7.2.0 + type-fest: 4.26.1 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 + dev: true + + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.52 dev: true /brace-expansion@1.1.11: @@ -1181,25 +1185,21 @@ packages: fill-range: 7.0.1 dev: true - /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 dependencies: - caniuse-lite: 1.0.30001589 - electron-to-chromium: 1.4.679 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) dev: true /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - dev: true - /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -1211,15 +1211,11 @@ packages: ieee754: 1.2.1 dev: true - /bunyan@1.8.15: - resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==} - engines: {'0': node >=0.10.0} - hasBin: true - optionalDependencies: - dtrace-provider: 0.8.8 - moment: 2.29.4 - mv: 2.1.1 - safe-json-stringify: 1.2.0 + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 dev: true /cacheable-lookup@5.0.4: @@ -1227,24 +1223,6 @@ packages: engines: {node: '>=10.6.0'} dev: true - /cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - dev: true - - /cacheable-request@10.2.5: - resolution: {integrity: sha512-5RwYYCfzjNPsyJxb/QpaM0bfzx+kw5/YpDhZPm9oMIDntHFQ9YXeyV47ZvzlTE0XrrrbyO2UITJH4GF9eRLdXQ==} - engines: {node: '>=14.16'} - dependencies: - '@types/http-cache-semantics': 4.0.1 - get-stream: 6.0.1 - http-cache-semantics: 4.1.0 - keyv: 4.5.4 - mimic-response: 4.0.0 - normalize-url: 8.0.0 - responselike: 3.0.0 - dev: true - /cacheable-request@7.0.4: resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} @@ -1270,17 +1248,13 @@ packages: engines: {node: '>=6'} dev: true - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: true - - /caniuse-lite@1.0.30001589: - resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==} + /camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} dev: true - /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + /caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} dev: true /chalk@2.4.2: @@ -1300,8 +1274,8 @@ packages: supports-color: 7.2.0 dev: true - /chalk@5.2.0: - resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true @@ -1329,30 +1303,22 @@ packages: parse5-htmlparser2-tree-adapter: 7.0.0 dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + /chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 + readdirp: 4.0.2 dev: true - /chrome-launcher@0.15.1: - resolution: {integrity: sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==} + /chrome-launcher@1.1.2: + resolution: {integrity: sha512-YclTJey34KUm5jB1aEJCq807bSievi7Nb/TU4Gu504fUYi3jw3KCIaH6L7nFWQhdEgH3V+wCh+kKD1P5cXnfxw==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@types/node': 20.12.11 + '@types/node': 22.7.4 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 - lighthouse-logger: 1.3.0 + lighthouse-logger: 2.0.1 transitivePeerDependencies: - supports-color dev: true @@ -1362,11 +1328,6 @@ packages: engines: {node: '>=6.0'} dev: true - /ci-info@3.7.1: - resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} - engines: {node: '>=8'} - dev: true - /cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -1434,13 +1395,6 @@ packages: wcwidth: 1.0.1 dev: true - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: true - /commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -1486,17 +1440,15 @@ packages: typedarray: 0.0.6 dev: true - /concurrently@8.2.2: - resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} - engines: {node: ^14.13.0 || >=16.0.0} + /concurrently@9.0.1: + resolution: {integrity: sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg==} + engines: {node: '>=18'} hasBin: true dependencies: chalk: 4.1.2 - date-fns: 2.30.0 lodash: 4.17.21 rxjs: 7.8.1 shell-quote: 1.8.1 - spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 yargs: 17.7.2 @@ -1509,14 +1461,13 @@ packages: proto-list: 1.2.4 dev: true - /configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} + /configstore@7.0.0: + resolution: {integrity: sha512-yk7/5PN5im4qwz0WFZW3PXnzHgPu9mX29Y8uZ3aefe2lBPC1FYttWZRcaW9fKkT0pBCJyuQ2HfbmPVaODi9jcQ==} + engines: {node: '>=18'} dependencies: - dot-prop: 6.0.1 + atomically: 2.0.3 + dot-prop: 9.0.0 graceful-fs: 4.2.11 - unique-string: 3.0.0 - write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 dev: true @@ -1527,7 +1478,7 @@ packages: safe-buffer: 5.2.1 dev: true - /copy-webpack-plugin@12.0.2(webpack@5.91.0): + /copy-webpack-plugin@12.0.2(webpack@5.95.0): resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} engines: {node: '>= 18.12.0'} peerDependencies: @@ -1539,16 +1490,7 @@ packages: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - dev: true - - /core-js@3.29.0: - resolution: {integrity: sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==} - requiresBuild: true - dev: true - - /core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) dev: true /core-util-is@1.0.3: @@ -1587,15 +1529,8 @@ packages: yazl: 2.5.1 dev: true - /crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - dependencies: - type-fest: 1.4.0 - dev: true - - /css-loader@7.1.1(webpack@5.91.0): - resolution: {integrity: sha512-OxIR5P2mjO1PSXk44bWuQ8XtMK4dpEqpIyERCx3ewOo3I8EmbcxMPUc5ScLtQfgXtOojoMv57So4V/C02HQLsw==} + /css-loader@7.1.2(webpack@5.95.0): + resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -1614,7 +1549,7 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.35) postcss-value-parser: 4.2.0 semver: 7.5.4 - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) dev: true /css-select@5.1.0: @@ -1638,25 +1573,6 @@ packages: hasBin: true dev: true - /dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - dependencies: - assert-plus: 1.0.0 - dev: true - - /data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - dev: true - - /date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - dependencies: - '@babel/runtime': 7.21.0 - dev: true - /debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} dev: true @@ -1716,17 +1632,29 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepcopy@2.1.0: - resolution: {integrity: sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==} - dependencies: - type-detect: 4.0.8 - dev: true - /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} dev: true + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: @@ -1738,14 +1666,9 @@ packages: engines: {node: '>=10'} dev: true - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: true - - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} dev: true /doctrine@3.0.0: @@ -1782,11 +1705,11 @@ packages: domhandler: 5.0.3 dev: true - /dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + /dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} dependencies: - is-obj: 2.0.0 + type-fest: 4.26.1 dev: true /dotenv@16.4.5: @@ -1794,52 +1717,26 @@ packages: engines: {node: '>=12'} dev: true - /dtrace-provider@0.8.8: - resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} - engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - nan: 2.17.0 - dev: true - optional: true - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: true - - /ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - dependencies: - safe-buffer: 5.2.1 + /electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} dev: true - /electron-to-chromium@1.4.679: - resolution: {integrity: sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g==} + /emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} dev: true /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: true - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + /enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -1871,13 +1768,13 @@ packages: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} dev: true - /es6-promisify@7.0.0: - resolution: {integrity: sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==} + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + /escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} dev: true @@ -1901,21 +1798,21 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-prettier@9.1.0(eslint@9.1.1): + /eslint-config-prettier@9.1.0(eslint@9.12.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 9.1.1 + eslint: 9.12.0 dev: true - /eslint-plugin-no-unsanitized@4.0.2(eslint@8.56.0): + /eslint-plugin-no-unsanitized@4.0.2(eslint@8.57.1): resolution: {integrity: sha512-Pry0S9YmHoz8NCEMRQh7N0Yexh2MYCNPIlrV52hTmS7qXnTghWsjXouF08bgsrrZqaW9tt1ZiK3j5NEmPE+EjQ==} peerDependencies: eslint: ^6 || ^7 || ^8 dependencies: - eslint: 8.56.0 + eslint: 8.57.1 dev: true /eslint-scope@5.1.1: @@ -1934,8 +1831,8 @@ packages: estraverse: 5.3.0 dev: true - /eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + /eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: esrecurse: 4.3.0 @@ -1952,16 +1849,21 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + + /eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -1999,27 +1901,36 @@ packages: - supports-color dev: true - /eslint@9.1.1: - resolution: {integrity: sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg==} + /eslint@9.12.0: + resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) - '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 3.0.2 - '@eslint/js': 9.1.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.12.0 + '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.5 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.2.3 - '@nodelib/fs.walk': 1.2.8 + '@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.4 escape-string-regexp: 4.0.0 - eslint-scope: 8.0.1 - eslint-visitor-keys: 4.0.0 - espree: 10.0.1 + 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 @@ -2029,28 +1940,34 @@ packages: ignore: 5.2.4 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.3 - strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + /espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 dev: true + /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} + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.1.0 + dev: true + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2152,6 +2069,21 @@ packages: strip-final-newline: 2.0.0 dev: true + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /executable@4.1.1: resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} engines: {node: '>=4'} @@ -2174,15 +2106,6 @@ packages: sort-keys-length: 1.0.1 dev: true - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: true - - /extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - dev: true - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -2215,6 +2138,10 @@ packages: engines: {node: '>=6'} dev: true + /fast-uri@3.0.2: + resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} + dev: true + /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -2232,14 +2159,6 @@ packages: pend: 1.2.0 dev: true - /fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 - dev: true - /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2307,15 +2226,16 @@ packages: semver-regex: 4.0.5 dev: true - /firefox-profile@4.3.2: - resolution: {integrity: sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==} + /firefox-profile@4.7.0: + resolution: {integrity: sha512-aGApEu5bfCNbA4PGUZiRJAIU6jKmghV2UVdklXAofnNtiDjqYw0czLS46W7IfFqVKgKhFB8Ao2YoNGHY4BoIMQ==} + engines: {node: '>=18'} hasBin: true dependencies: adm-zip: 0.5.10 - fs-extra: 9.0.1 - ini: 2.0.0 - minimist: 1.2.7 - xml2js: 0.5.0 + fs-extra: 11.2.0 + ini: 4.1.3 + minimist: 1.2.8 + xml2js: 0.6.2 dev: true /first-chunk-stream@3.0.0: @@ -2358,70 +2278,19 @@ packages: optional: true dev: true - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - - /forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - dev: true - - /form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - dev: true - - /form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - - /formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - dependencies: - fetch-blob: 3.2.0 - dev: true - - /fs-extra@11.1.0: - resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} dependencies: - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - - /fs-extra@9.0.1: - resolution: {integrity: sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==} - engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 1.0.0 + universalify: 2.0.0 dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true @@ -2443,6 +2312,11 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: true + /get-intrinsic@1.2.0: resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: @@ -2468,12 +2342,6 @@ packages: engines: {node: '>=10'} dev: true - /getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - dependencies: - assert-plus: 1.0.0 - dev: true - /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -2492,32 +2360,9 @@ packages: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 - dev: true - - /glob@6.0.4: - resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} - requiresBuild: true - dependencies: - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - optional: true - /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2527,11 +2372,11 @@ packages: path-is-absolute: 1.0.1 dev: true - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + /global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} dependencies: - ini: 2.0.0 + ini: 4.1.1 dev: true /globals@13.23.0: @@ -2546,8 +2391,8 @@ packages: engines: {node: '>=18'} dev: true - /globals@15.1.0: - resolution: {integrity: sha512-926gJqg+4mkxwYKiFvoomM4J0kWESfk3qfTvRL2/oc/tK/eTDBbrfcKnSa2KtfdxB5onoL7D3A3qIHQFpd4+UA==} + /globals@15.10.0: + resolution: {integrity: sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==} engines: {node: '>=18'} dev: true @@ -2580,23 +2425,6 @@ packages: responselike: 2.0.1 dev: true - /got@12.5.3: - resolution: {integrity: sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==} - engines: {node: '>=14.16'} - dependencies: - '@sindresorhus/is': 5.3.0 - '@szmarczak/http-timer': 5.0.1 - cacheable-lookup: 7.0.0 - cacheable-request: 10.2.5 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 - http2-wrapper: 2.2.0 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 - dev: true - /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true @@ -2617,20 +2445,6 @@ packages: resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} dev: true - /har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - dev: true - - /har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: true - /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -2646,11 +2460,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -2717,15 +2526,6 @@ packages: - supports-color dev: true - /http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.17.0 - dev: true - /http2-wrapper@1.0.3: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} @@ -2734,12 +2534,14 @@ packages: resolve-alpn: 1.2.1 dev: true - /http2-wrapper@2.2.0: - resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} - engines: {node: '>=10.19.0'} + /https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color dev: true /human-signals@1.1.1: @@ -2752,6 +2554,11 @@ packages: engines: {node: '>=10.17.0'} dev: true + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -2801,11 +2608,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: true - /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -2822,6 +2624,7 @@ packages: /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -2835,9 +2638,14 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} + /ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /interpret@3.1.1: @@ -2861,20 +2669,6 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - dependencies: - ci-info: 3.7.1 - dev: true - /is-core-module@2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: @@ -2887,6 +2681,12 @@ packages: hasBin: true dev: true + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -2904,16 +2704,26 @@ packages: is-extglob: 2.1.1 dev: true - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + /is-in-ci@1.0.0: + resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} + engines: {node: '>=18'} + hasBin: true + dev: true + + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 + is-docker: 3.0.0 dev: true - /is-mergeable-object@1.1.1: - resolution: {integrity: sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==} + /is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} + dependencies: + global-directory: 4.0.1 + is-path-inside: 4.0.0 dev: true /is-npm@6.0.0: @@ -2926,16 +2736,16 @@ packages: engines: {node: '>=0.12.0'} dev: true - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true - /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true + /is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + dev: true + /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} @@ -2963,8 +2773,9 @@ packages: engines: {node: '>=8'} dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /is-utf8@0.2.1: @@ -2978,11 +2789,6 @@ packages: is-docker: 2.2.1 dev: true - /is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - dev: true - /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true @@ -3000,19 +2806,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: true - - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jed@1.1.1: resolution: {integrity: sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==} dev: true @@ -3021,13 +2814,13 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.12.11 + '@types/node': 22.7.4 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jose@4.13.1: - resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==} + /jose@5.9.2: + resolution: {integrity: sha512-ILI2xx/I57b20sd7rHZvgiiQrmp2mcotwsAH+5ajbpFQbrYVQdNHYlQhoA5cFb78CgtBOxtC05TeA+mcgkuCqQ==} dev: true /js-tokens@4.0.0: @@ -3041,10 +2834,6 @@ packages: argparse: 2.0.1 dev: true - /jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - dev: true - /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true @@ -3059,6 +2848,11 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true + /json-parse-even-better-errors@3.0.2: + resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -3067,18 +2861,10 @@ packages: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true - /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true - /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true - /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -3087,26 +2873,6 @@ packages: graceful-fs: 4.2.11 dev: true - /jsonwebtoken@9.0.0: - resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} - engines: {node: '>=12', npm: '>=6'} - dependencies: - jws: 3.2.2 - lodash: 4.17.21 - ms: 2.1.3 - semver: 7.5.4 - dev: true - - /jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: true - /jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} dependencies: @@ -3116,21 +2882,6 @@ packages: setimmediate: 1.0.5 dev: true - /jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: true - - /jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - dev: true - /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -3142,11 +2893,16 @@ packages: engines: {node: '>=0.10.0'} dev: true - /latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} + /ky@1.7.2: + resolution: {integrity: sha512-OzIvbHKKDpi60TnF9t7UUVAF1B4mcqc02z5PIvrm08Wyb+yOcz63GRvEuVxNT18a9E1SrNouhB4W2NNLeD7Ykg==} + engines: {node: '>=18'} + dev: true + + /latest-version@9.0.0: + resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} + engines: {node: '>=18'} dependencies: - package-json: 8.1.0 + package-json: 10.0.1 dev: true /lcid@3.1.1: @@ -3170,8 +2926,8 @@ packages: immediate: 3.0.6 dev: true - /lighthouse-logger@1.3.0: - resolution: {integrity: sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==} + /lighthouse-logger@2.0.1: + resolution: {integrity: sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==} dependencies: debug: 2.6.9 marky: 1.2.5 @@ -3216,16 +2972,6 @@ packages: engines: {node: '>=8'} dev: true - /lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} - dev: true - /lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -3304,6 +3050,11 @@ packages: engines: {node: '>=6'} dev: true + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -3314,20 +3065,15 @@ packages: engines: {node: '>=10'} dev: true - /mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /mini-css-extract-plugin@2.9.0(webpack@5.91.0): - resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} + /mini-css-extract-plugin@2.9.1(webpack@5.95.0): + resolution: {integrity: sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) dev: true /minimatch@3.1.2: @@ -3347,9 +3093,8 @@ packages: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} dev: true - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true /mkdirp@0.5.6: @@ -3359,18 +3104,6 @@ packages: minimist: 1.2.7 dev: true - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /moment@2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - requiresBuild: true - dev: true - optional: true - /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -3398,31 +3131,6 @@ packages: minimatch: 3.1.2 dev: true - /mv@2.1.1: - resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} - engines: {node: '>=0.8.0'} - requiresBuild: true - dependencies: - mkdirp: 0.5.6 - ncp: 2.0.0 - rimraf: 2.4.5 - dev: true - optional: true - - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - - /nan@2.17.0: - resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} - requiresBuild: true - dev: true - optional: true - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3433,13 +3141,6 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /ncp@2.0.0: - resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} - hasBin: true - requiresBuild: true - dev: true - optional: true - /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true @@ -3460,20 +3161,6 @@ packages: dev: true optional: true - /node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: true - - /node-fetch@3.3.1: - resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - dev: true - /node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -3497,8 +3184,8 @@ packages: which: 2.0.2 dev: true - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + /node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} dev: true /node-watch@0.7.4: @@ -3516,11 +3203,6 @@ packages: engines: {node: '>=10'} dev: true - /normalize-url@8.0.0: - resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} - engines: {node: '>=14.16'} - dev: true - /npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -3535,21 +3217,19 @@ packages: path-key: 3.1.1 dev: true + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true - /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: true - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true - /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true @@ -3571,12 +3251,20 @@ packages: mimic-fn: 2.1.0 dev: true - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 + mimic-fn: 4.0.0 + dev: true + + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 is-wsl: 2.2.0 dev: true @@ -3623,11 +3311,6 @@ packages: engines: {node: '>=8'} dev: true - /p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - dev: true - /p-defer@1.0.0: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} @@ -3676,14 +3359,14 @@ packages: engines: {node: '>=6'} dev: true - /package-json@8.1.0: - resolution: {integrity: sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==} - engines: {node: '>=14.16'} + /package-json@10.0.1: + resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} + engines: {node: '>=18'} dependencies: - got: 12.5.3 - registry-auth-token: 5.0.1 + ky: 1.7.2 + registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.5.4 + semver: 7.6.3 dev: true /pako@1.0.11: @@ -3697,14 +3380,15 @@ packages: callsites: 3.1.0 dev: true - /parse-json@6.0.2: - resolution: {integrity: sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /parse-json@7.1.1: + resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} + engines: {node: '>=16'} dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 + json-parse-even-better-errors: 3.0.2 lines-and-columns: 2.0.3 + type-fest: 3.13.1 dev: true /parse5-htmlparser2-tree-adapter@7.0.0: @@ -3744,16 +3428,13 @@ packages: engines: {node: '>=8'} dev: true - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} dev: true - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 10.1.0 - minipass: 7.0.4 + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true /path-type@5.0.0: @@ -3778,14 +3459,14 @@ packages: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true - /performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: true - /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true + /picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + dev: true + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -3803,12 +3484,23 @@ packages: split2: 4.1.0 dev: true + /pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + dependencies: + readable-stream: 4.3.0 + split2: 4.1.0 + dev: true + /pino-std-serializers@6.1.0: resolution: {integrity: sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==} dev: true - /pino@8.17.2: - resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==} + /pino-std-serializers@7.0.0: + resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + dev: true + + /pino@8.20.0: + resolution: {integrity: sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==} hasBin: true dependencies: atomic-sleep: 1.0.0 @@ -3824,6 +3516,23 @@ packages: thread-stream: 2.3.0 dev: true + /pino@9.4.0: + resolution: {integrity: sha512-nbkQb5+9YPhQRz/BeQmrWpEknAaqjpAqRK8NwJpmrX/JHu7JuZC5G1CeAwJDJfGes4h+YihC6in3Q2nGb+Y09w==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.1.2 + on-exit-leak-free: 2.1.0 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 7.0.0 + process-warning: 4.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.2 + sonic-boom: 4.1.0 + thread-stream: 3.1.0 + dev: true + /piscina@4.3.2: resolution: {integrity: sha512-aXPak3A1LgbfDFrsmgYhQS4J7ElHRFL7iUkUqaiLNDRE69YQSFGqIZiHaXOH4NyC6EdD+awZVeE7MG0zVm9L4Q==} optionalDependencies: @@ -3901,15 +3610,6 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /postcss@8.4.35: resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} @@ -3924,8 +3624,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + /prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true dev: true @@ -3938,6 +3638,10 @@ packages: resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} dev: true + /process-warning@4.0.0: + resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} + dev: true + /process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -3962,10 +3666,6 @@ packages: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: true - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true - /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -3992,11 +3692,6 @@ packages: side-channel: 1.0.4 dev: true - /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - dev: true - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -4070,11 +3765,9 @@ packages: readable-stream: 3.6.2 dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 + /readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} dev: true /real-require@0.2.0: @@ -4089,15 +3782,15 @@ packages: resolve: 1.22.1 dev: true - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true - /registry-auth-token@5.0.1: - resolution: {integrity: sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==} + /registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} dependencies: - '@pnpm/npm-conf': 1.0.5 + '@pnpm/npm-conf': 2.3.1 dev: true /registry-url@6.0.1: @@ -4116,33 +3809,6 @@ packages: commander: 2.20.3 dev: true - /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: true - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -4199,34 +3865,26 @@ packages: lowercase-keys: 2.0.0 dev: true - /responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - dependencies: - lowercase-keys: 3.0.0 - dev: true - /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@2.4.5: - resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} - hasBin: true - requiresBuild: true - dependencies: - glob: 6.0.4 - dev: true - optional: true - /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 dev: true + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -4247,12 +3905,6 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-json-stringify@1.2.0: - resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} - requiresBuild: true - dev: true - optional: true - /safe-stable-stringify@2.4.2: resolution: {integrity: sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==} engines: {node: '>=10'} @@ -4262,8 +3914,8 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass-loader@14.2.1(sass@1.76.0)(webpack@5.91.0): - resolution: {integrity: sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==} + /sass-loader@16.0.2(sass@1.79.4)(webpack@5.95.0): + resolution: {integrity: sha512-Ll6iXZ1EYwYT19SqW4mSBb76vSSi8JgzElmzIerhEGgzB5hRjDQIWsPmuk1UrAXkR16KJHqVY0eH+5/uw9Tmfw==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -4284,16 +3936,16 @@ packages: optional: true dependencies: neo-async: 2.6.2 - sass: 1.76.0 - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + sass: 1.79.4 + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) dev: true - /sass@1.76.0: - resolution: {integrity: sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==} + /sass@1.79.4: + resolution: {integrity: sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.5.3 + chokidar: 4.0.1 immutable: 4.2.2 source-map-js: 1.0.2 dev: true @@ -4325,13 +3977,6 @@ packages: resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} dev: true - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} - dependencies: - semver: 7.5.4 - dev: true - /semver-regex@4.0.5: resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} engines: {node: '>=12'} @@ -4352,6 +3997,12 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + dev: true + /serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: @@ -4368,14 +4019,6 @@ packages: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: true - /sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: true - /shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -4427,30 +4070,10 @@ packages: object-inspect: 1.12.3 dev: true - /sign-addon@5.3.0: - resolution: {integrity: sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==} - dependencies: - common-tags: 1.8.2 - core-js: 3.29.0 - deepcopy: 2.1.0 - es6-error: 4.1.1 - es6-promisify: 7.0.0 - jsonwebtoken: 9.0.0 - mz: 2.7.0 - request: 2.88.2 - source-map-support: 0.5.21 - stream-to-promise: 3.0.0 - dev: true - /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true - /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4467,6 +4090,12 @@ packages: atomic-sleep: 1.0.0 dev: true + /sonic-boom@4.1.0: + resolution: {integrity: sha512-NGipjjRicyJJ03rPiZCJYjwlsuP2d1/5QUviozRXC7S3WdVWNK5e3Ojieb9CCyfhq2UC+3+SRd9nG3I2lPRvUw==} + dependencies: + atomic-sleep: 1.0.0 + dev: true + /sort-keys-length@1.0.1: resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} engines: {node: '>=0.10.0'} @@ -4503,10 +4132,6 @@ packages: engines: {node: '>= 8'} dev: true - /spawn-command@0.0.2: - resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} - dev: true - /spawn-sync@1.0.15: resolution: {integrity: sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==} requiresBuild: true @@ -4526,37 +4151,6 @@ packages: through: 2.3.8 dev: true - /sshpk@1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: true - - /stream-to-array@2.3.0: - resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==} - dependencies: - any-promise: 1.3.0 - dev: true - - /stream-to-promise@3.0.0: - resolution: {integrity: sha512-h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==} - engines: {node: '>= 10'} - dependencies: - any-promise: 1.3.0 - end-of-stream: 1.4.4 - stream-to-array: 2.3.0 - dev: true - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -4566,13 +4160,13 @@ packages: strip-ansi: 6.0.1 dev: true - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + /string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + emoji-regex: 10.4.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 dev: true /string_decoder@1.1.1: @@ -4588,8 +4182,8 @@ packages: ansi-regex: 5.0.1 dev: true - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 @@ -4625,6 +4219,11 @@ packages: engines: {node: '>=6'} dev: true + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -4635,8 +4234,8 @@ packages: engines: {node: '>=8'} dev: true - /strip-json-comments@5.0.0: - resolution: {integrity: sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==} + /strip-json-comments@5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} dev: true @@ -4653,6 +4252,10 @@ packages: peek-readable: 5.0.0 dev: true + /stubborn-fs@1.2.5: + resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -4679,15 +4282,15 @@ packages: engines: {node: '>= 0.4'} dev: true - /swc-loader@0.2.6(@swc/core@1.4.17)(webpack@5.91.0): + /swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0): resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} peerDependencies: '@swc/core': ^1.2.147 webpack: '>=2' dependencies: - '@swc/core': 1.4.17 + '@swc/core': 1.7.26 '@swc/counter': 0.1.3 - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) dev: true /tapable@2.2.1: @@ -4695,7 +4298,7 @@ packages: engines: {node: '>=6'} dev: true - /terser-webpack-plugin@5.3.10(@swc/core@1.4.17)(webpack@5.91.0): + /terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.95.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -4712,12 +4315,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.22 - '@swc/core': 1.4.17 + '@swc/core': 1.7.26 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.27.2 - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) dev: true /terser@5.27.2: @@ -4735,21 +4338,14 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + /thread-stream@2.3.0: + resolution: {integrity: sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==} dependencies: - any-promise: 1.3.0 + real-require: 0.2.0 dev: true - /thread-stream@2.3.0: - resolution: {integrity: sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==} + /thread-stream@3.1.0: + resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} dependencies: real-require: 0.2.0 dev: true @@ -4758,11 +4354,14 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} - dependencies: - rimraf: 3.0.2 + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} dev: true /to-regex-range@5.0.1: @@ -4780,19 +4379,6 @@ packages: ieee754: 1.2.1 dev: true - /tosource@1.0.0: - resolution: {integrity: sha512-N6g8eQ1eerw6Y1pBhdgkubWIiPFwXa2POSUrlL8jth5CyyEWNWzoGKRkO3CaO7Jx27hlJP54muB3btIAbx4MPg==} - engines: {node: '>=0.4.0'} - dev: true - - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - dependencies: - psl: 1.9.0 - punycode: 2.3.0 - dev: true - /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -4809,16 +4395,6 @@ packages: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} dev: true - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - dev: true - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -4826,44 +4402,33 @@ packages: prelude-ls: 1.2.1 dev: true - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true - - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} dev: true - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 + /type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + engines: {node: '>=16'} dev: true /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + /typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true dev: true - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + /undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} dev: true /unicorn-magic@0.1.0: @@ -4878,56 +4443,45 @@ packages: qs: 6.11.0 dev: true - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - dependencies: - crypto-random-string: 4.0.0 - dev: true - - /universalify@1.0.0: - resolution: {integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==} - engines: {node: '>= 10.0.0'} - dev: true - /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} dev: true + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + /upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.1.1(browserslist@4.24.0): + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 dev: true - /update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} + /update-notifier@7.3.1: + resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==} + engines: {node: '>=18'} dependencies: - boxen: 7.0.1 - chalk: 5.2.0 - configstore: 6.0.0 - has-yarn: 3.0.0 - import-lazy: 4.0.0 - is-ci: 3.0.1 - is-installed-globally: 0.4.0 + boxen: 8.0.1 + chalk: 5.3.0 + configstore: 7.0.0 + is-in-ci: 1.0.0 + is-installed-globally: 1.0.0 is-npm: 6.0.0 - is-yarn-global: 0.4.1 - latest-version: 7.0.0 + latest-version: 9.0.0 pupa: 3.1.0 - semver: 7.5.4 - semver-diff: 4.0.0 + semver: 7.6.3 xdg-basedir: 5.1.0 dev: true @@ -4945,36 +4499,21 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true - /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: true - /verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: true - - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: true - /watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + /watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 @@ -4987,58 +4526,50 @@ packages: defaults: 1.0.4 dev: true - /web-ext@7.11.0: - resolution: {integrity: sha512-EG6YXHITNDJB/h6Rc5FF08eMoN45sZPBBIIlEraBzxJ0RdJZ8Z3xvUUawbDwt+mowfv9X0XRWlLSwdWbRKgojg==} - engines: {node: '>=14.0.0', npm: '>=6.9.0'} + /web-ext@8.3.0: + resolution: {integrity: sha512-mXSOiDtmm3n0KNpSuQ65fJpypAoNLAmZv3QkdlVbJ6etn0BK+hl/k+tjHefSIKdbzGUIeFbhn2oxWMe9Tdyrdg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: - '@babel/runtime': 7.21.0 - '@devicefarmer/adbkit': 3.2.3 - addons-linter: 6.21.0(node-fetch@3.3.1) - bunyan: 1.8.15 - camelcase: 7.0.1 - chrome-launcher: 0.15.1 + '@babel/runtime': 7.25.6 + '@devicefarmer/adbkit': 3.2.6 + addons-linter: 7.1.0 + camelcase: 8.0.0 + chrome-launcher: 1.1.2 debounce: 1.2.1 decamelize: 6.0.0 es6-error: 4.1.1 - firefox-profile: 4.3.2 - fs-extra: 11.1.0 + firefox-profile: 4.7.0 fx-runner: 1.4.0 - import-fresh: 3.3.0 - jose: 4.13.1 - mkdirp: 1.0.4 + https-proxy-agent: 7.0.5 + jose: 5.9.2 + jszip: 3.10.1 multimatch: 6.0.0 - mz: 2.7.0 - node-fetch: 3.3.1 node-notifier: 10.0.1 - open: 8.4.2 - parse-json: 6.0.2 + open: 9.1.0 + parse-json: 7.1.1 + pino: 9.4.0 promise-toolbox: 0.21.0 - sign-addon: 5.3.0 source-map-support: 0.5.21 strip-bom: 5.0.0 - strip-json-comments: 5.0.0 - tmp: 0.2.1 - update-notifier: 6.0.2 - watchpack: 2.4.0 - ws: 8.13.0 - yargs: 17.7.1 + strip-json-comments: 5.0.1 + tmp: 0.2.3 + update-notifier: 7.3.1 + watchpack: 2.4.2 + ws: 8.18.0 + yargs: 17.7.2 zip-dir: 2.0.0 transitivePeerDependencies: - body-parser - bufferutil - express + - node-fetch - safe-compare - supports-color - utf-8-validate dev: true - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - dev: true - - /webpack-cli@5.1.4(webpack@5.91.0): + /webpack-cli@5.1.4(webpack@5.95.0): resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} engines: {node: '>=14.15.0'} hasBin: true @@ -5056,9 +4587,9 @@ packages: optional: true dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.91.0) + '@webpack-cli/configtest': 2.1.1(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-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.95.0) colorette: 2.0.19 commander: 10.0.1 cross-spawn: 7.0.3 @@ -5067,7 +4598,7 @@ packages: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4) webpack-merge: 5.10.0 dev: true @@ -5080,13 +4611,22 @@ packages: wildcard: 2.0.0 dev: true + /webpack-merge@6.0.1: + resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} + engines: {node: '>=18.0.0'} + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + dev: true + /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} dev: true - /webpack@5.91.0(@swc/core@1.4.17)(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + /webpack@5.95.0(@swc/core@1.7.26)(webpack-cli@5.1.4): + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -5095,16 +4635,15 @@ packages: webpack-cli: optional: true dependencies: - '@types/eslint-scope': 3.7.4 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.10.0 - acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.23.0 + acorn: 8.11.3 + acorn-import-attributes: 1.9.5(acorn@8.11.3) + browserslist: 4.24.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.3.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -5116,9 +4655,9 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.4.17)(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0) watchpack: 2.4.1 - webpack-cli: 5.1.4(webpack@5.91.0) + webpack-cli: 5.1.4(webpack@5.95.0) webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -5133,6 +4672,10 @@ packages: iconv-lite: 0.6.3 dev: true + /when-exit@2.1.3: + resolution: {integrity: sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==} + dev: true + /when@3.7.7: resolution: {integrity: sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==} dev: true @@ -5160,17 +4703,21 @@ packages: isexe: 2.0.0 dev: true - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + /widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} dependencies: - string-width: 5.1.2 + string-width: 7.2.0 dev: true /wildcard@2.0.0: resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} dev: true + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + dev: true + /winreg@0.0.12: resolution: {integrity: sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==} dev: true @@ -5184,30 +4731,21 @@ packages: strip-ansi: 6.0.1 dev: true - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + /wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} dependencies: ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.0.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - - /ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + /ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5224,8 +4762,8 @@ packages: engines: {node: '>=12'} dev: true - /xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + /xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} engines: {node: '>=4.0.0'} dependencies: sax: 1.2.4 @@ -5255,19 +4793,6 @@ packages: engines: {node: '>=12'} dev: true - /yargs@17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: true - /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} diff --git a/src/UserJS/main.js b/src/UserJS/main.js index 31d0819..e13b645 100644 --- a/src/UserJS/main.js +++ b/src/UserJS/main.js @@ -2643,7 +2643,7 @@ function primaryFN() { }; let netFN; if (engine.name.includes('fork')) { - netFN = Network.req(`${engine.url}/scripts/by-site/${host}.json`) + netFN = Network.req(`${engine.url}/scripts/by-site/${host}.json?language=all`) .then(forkFN) .catch(MUJS.showError); } else if (/github/gi.test(engine.name)) { diff --git a/src/html/popup.html b/src/html/popup.html index 13c0a51..49e8baa 100644 --- a/src/html/popup.html +++ b/src/html/popup.html @@ -11,57 +11,60 @@ - - 00 + + + + + 6 @@ -97,67 +122,19 @@ d="M3 16.5C2.44772 16.5 2 16.9477 2 17.5V18.5C2 19.0523 2.44772 19.5 3 19.5H21C21.5523 19.5 22 19.0523 22 18.5V17.5C22 16.9477 21.5523 16.5 21 16.5H3Z" fill="currentColor" > - - - - - - - - - - - - - - - + - - - - - - - + - + +
+ +
-
- - - - - + + + + diff --git a/src/js/background.js b/src/js/background.js index 1b53044..92efc61 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -11,7 +11,7 @@ const MUJS = { win.MUJS = MUJS; win.Config = Config; -const { hermes, reqCode, isNull, isEmpty } = userjs; +const { hermes, reqCode, isBlank, isNull, isEmpty, language } = userjs; const msgCache = {}; webext.runtime.onConnect.addListener((p) => { @@ -39,20 +39,6 @@ webext.runtime.onConnect.addListener((p) => { }); }); -const alang = []; -const clang = navigator.language.split('-')[0] ?? 'en'; -if (navigator.languages.length > 0) { - for (const nlang of navigator.languages) { - const lg = nlang.split('-')[0]; - if (alang.indexOf(lg) === -1) { - alang.push(lg); - } - } -} -if (!alang.includes(clang)) { - alang.push(clang); -} - // Unsupport webpages for each engine const unsupported = { greasyfork: ['pornhub.com'], @@ -69,9 +55,13 @@ const formatURL = (txt) => .replace(/\/|https:/g, ''); const webFetcher = async (loc) => { + if (isBlank(loc)) { + return []; + } const cfg = Config.cachedLocalStorage ?? {}; const sites = []; const host = formatURL(loc); + let isBlacklisted = false; for (const b of cfg.blacklist.filter((b) => b.enabled)) { if (b.regex === true) { @@ -119,64 +109,49 @@ const webFetcher = async (loc) => { info('Building list', { cache, engines, allCache: MUJS.cache }); for (const engine of engines) { - const forkFN = async (data) => { - if (!data) { + const forkFN = async (dataQ) => { + if (!dataQ) { + err('Invalid data received from the server, check internet connection'); + return; + } + const dq = Array.isArray(dataQ) ? dataQ : Array.isArray(dataQ.query) ? dataQ.query : []; + const data = dq.filter((d) => !d.deleted); + if (isBlank(data)) { return; } const hideData = []; - const filterLang = data.filter((d) => { - if (d.deleted) { - return false; + const inUserLanguage = (d) => { + const dlocal = d.locale.split('-')[0] ?? d.locale; + if (language.cache.includes(dlocal)) { + return true; } - if (cfg.filterlang) { - const dlocal = d.locale.split('-')[0] ?? d.locale; - if (alang.includes(dlocal)) { - return true; - } - hideData.push(d); + hideData.push(d); + return false; + }; + const filterLang = data.filter((d) => { + if (cfg.filterlang && !inUserLanguage(d)) { return false; } return true; }); - let finalList = filterLang; + let finalList = filterLang; const hds = []; - for (const h of hideData) { - const txt = await reqCode(h); - if (typeof txt !== 'string') { - continue; - } - const headers = txt.match(/\/\/\s*@[\w][\s\S]+/g); - if (isNull(headers)) { - continue; - } - for (const lng of alang) { - const findName = new RegExp(`//\\s*@name:${lng}\\s*(.*)`, 'gi').exec(headers[0]); - const findDesc = new RegExp(`//\\s*@description:${lng}\\s*(.*)`, 'gi').exec(headers[0]); - if (!isNull(findName)) { - Object.assign(h, { - name: findName[1], - translated: true - }); - } - if (!isNull(findDesc)) { - Object.assign(h, { - description: findDesc[1], - translated: true - }); - } + for (const ujs of hideData) { + await reqCode(ujs, true); + if (ujs.translated) { + hds.push(ujs); } } finalList = [...new Set([...hds, ...filterLang])]; - if (cfg.codePreview) { - for (const ujs of finalList) { - if (!ujs.code_data) { - await reqCode(ujs); - } - // createjs(ujs, false); - } - } + // if (cfg.codePreview) { + // for (const ujs of finalList) { + // if (!ujs.code_data) { + // await reqCode(ujs); + // } + // } + // } cache[engine.name].push(...finalList); // MUJS.addForkCnt(finalList.length); return finalList; @@ -192,7 +167,7 @@ const webFetcher = async (loc) => { continue; } if (engine.name.includes('fork')) { - const data = await userjs.req(`${eURL}/scripts/by-site/${host}.json`).then(forkFN).catch(err); + const data = await userjs.req(`${eURL}/scripts/by-site/${host}.json?language=all`).then(forkFN).catch(err); sites.push({ engine, data, @@ -217,39 +192,68 @@ webext.webRequest.onHeadersReceived.addListener( ] } ); - /** * [onMessage description] - * @param msg The message itself. This is a JSON-ifiable object. - * @param sender A brws.runtime.MessageSender object representing the sender of the message. - * @param callback A function to call, at most once, to send a response to the message. The function takes a single argument, which may be any JSON-ifiable object. This argument is passed back to the message sender. + * @param {*} message - The message itself. This is a JSON-ifiable object. + * @param {chrome.runtime.MessageSender} sender + * @param {(response: any) => void} sendResponse - A function to call, at most once, to send a response to the message. The function takes a single argument, which may be any JSON-ifiable object. This argument is passed back to the message sender. */ -function onMessage(msg, sender, callback) { +function onMessage(message, sender, sendResponse) { if (sender.url.includes('popup.html')) { - if (msg.location) { - webFetcher(msg.location).then((data) => callback(data)); + if (message.location) { + webFetcher(message.location).then((data) => sendResponse(data)); } else { webext.tabs.query({ currentWindow: true, active: true }).then((tabs) => { for (const tab of tabs) { const loc = new URL(tab.url); - webFetcher(loc.host).then((data) => callback(data)); + webFetcher(loc.host).then((data) => sendResponse(data)); } }); } } - if (msg.name) { + if (message.name) { if (sender.url.includes('settings.html')) { - Config.local.handler.set(msg.name, msg.value); - callback({ - name: msg.name, - value: msg.value + Config.local.handler.set(message.name, message.value); + sendResponse({ + name: message.name, + value: message.value }); } else { - callback({ value: Config.cachedLocalStorage[msg.name] }); + sendResponse({ value: Config.cachedLocalStorage[message.name] }); } } return true; } webext.runtime.onMessage.addListener(onMessage); + +const tc = (tab) => { + const loc = new URL(tab.url); + const host = formatURL(loc.host); + return { + loc, + host, + cache: MUJS.cache.get(host) + }; +} +const updateCount = (tab) => { + const { cache } = tc(tab); + let cnt = 0; + if (cache) { + for (const v of Object.values(cache)) { + cnt += v.length; + } + } + webext.browserAction.setBadgeText({ + text: `${cnt}` + }); +} + +webext.tabs.onActivated.addListener((activeInfo) => { + webext.tabs.get(activeInfo.tabId, updateCount); +}); + +webext.tabs.onUpdated.addListener((tabId) => { + webext.tabs.get(tabId, updateCount); +}); \ No newline at end of file diff --git a/src/js/mu-common.js b/src/js/mu-common.js index ca98fc4..d8f05bc 100644 --- a/src/js/mu-common.js +++ b/src/js/mu-common.js @@ -267,6 +267,33 @@ if (typeof userjs === 'object' && userjs.isNull instanceof Function === false) { } }; + class LanguageHandler { + constructor() { + this.current = (navigator.language ?? 'en').split('-')[0] ?? 'en'; + this.cache = []; + + const languages = navigator.languages ?? []; + for (const nlang of languages) { + const lg = nlang.split('-')[0]; + if (this.cache.indexOf(lg) === -1) { + this.cache.push(lg); + } + } + + if (!this.cache.includes(this.current)) { + this.cache.push(this.current); + } + } + } + const language = new LanguageHandler(); + // const i18n$ = (...args) => { + // const arr = []; + // for (const arg of args) { + // arr.push(webext.i18n.getMessage(arg)); + // } + // return arr.length !== 1 ? arr : arr[0]; + // }; + const META_START_COMMENT = '// ==UserScript=='; const META_END_COMMENT = '// ==/UserScript=='; const TLD_EXPANSION = ['com', 'net', 'org', 'de', 'co.uk']; @@ -447,6 +474,7 @@ if (typeof userjs === 'object' && userjs.isNull instanceof Function === false) { tld_extra: false }); } + // eslint-disable-next-line no-unused-vars } catch (error) { addObj({ text: original_pattern, domain: false, tld_extra: false }); } @@ -457,7 +485,7 @@ if (typeof userjs === 'object' && userjs.isNull instanceof Function === false) { } return [...name_set]; }; - const reqCode = async (obj = {}) => { + const reqCode = async (obj = {}, translate = false) => { if (obj.code_data) { return obj.code_data; } @@ -468,6 +496,7 @@ if (typeof userjs === 'object' && userjs.isNull instanceof Function === false) { } Object.assign(obj, { code_data: code, + code_meta: {}, code_size: [Network.format(code.length)], code_match: [], code_grant: [], @@ -477,6 +506,24 @@ if (typeof userjs === 'object' && userjs.isNull instanceof Function === false) { const afSet = new Set(); const meta = parse_meta(code); const applies_to_names = calculate_applies_to_names(code); + + if (translate) { + for (const lng of language.cache) { + if (meta[`name:${lng}`]) { + Object.assign(obj, { + name: meta[`name:${lng}`], + translated: true + }); + } + if (meta[`description:${lng}`]) { + Object.assign(obj, { + description: meta[`description:${lng}`], + translated: true + }); + } + } + } + for (const [key, value] of Object.entries(meta)) { if (/grant/.test(key)) { for (const v of normalizeTarget(value, false)) { @@ -495,6 +542,7 @@ if (typeof userjs === 'object' && userjs.isNull instanceof Function === false) { } } Object.assign(obj, { + code_meta: meta, code_match: applies_to_names, code_grant: [...grantSet], antifeatures: [...afSet] @@ -564,6 +612,7 @@ if (typeof userjs === 'object' && userjs.isNull instanceof Function === false) { userjs.calculate_applies_to_names = calculate_applies_to_names; userjs.reqCode = reqCode; userjs.normalizeTarget = normalizeTarget; + userjs.language = language; Object.assign(userjs, { makeImage(imgSrc = '', attrs = {}, cname) { diff --git a/src/js/mu.js b/src/js/mu.js index 71c0efe..495de43 100644 --- a/src/js/mu.js +++ b/src/js/mu.js @@ -1,7 +1,9 @@ +/* eslint-disable prefer-const, no-unused-vars */ 'use strict'; -// eslint-disable-next-line prefer-const, no-unused-vars +/** @type { import("../typings/WebExt.d.ts").webext } */ let webext = (self.webext = typeof browser == 'undefined' ? chrome : browser); +/** @type { import("../typings/WebExt.d.ts").userjs } */ let userjs = (self.userjs = {}); /** Skip text/plain documents */ diff --git a/src/js/popup.js b/src/js/popup.js index f31c9f7..06f2d82 100644 --- a/src/js/popup.js +++ b/src/js/popup.js @@ -1,10 +1,9 @@ 'use strict'; -// eslint-disable-next-line no-unused-vars import { err, log, info } from './logger.js'; import { dom, normalizeTarget, qs, qsA } from './querySelector.js'; let cfg = {}; -const { hermes, ael, make, isNull, isEmpty, isObj, reqCode, parse_meta } = userjs; +const { hermes, ael, make, isBlank, isNull, isEmpty, isObj, reqCode, parse_meta } = userjs; const hasOwn = Object.hasOwn || Object.prototype.hasOwnProperty.call; // Lets highlight me :) @@ -109,6 +108,11 @@ const iconSVG = { stroke: 'currentColor', html: '' }, + refresh: { + viewBox: '0 0 1024 1024', + fill: 'currentColor', + html: '' + }, load(type, container) { const xmlns = 'http://www.w3.org/2000/svg'; const svgElem = document.createElementNS(xmlns, 'svg'); @@ -130,7 +134,7 @@ const iconSVG = { }; const i18n$ = (txt) => webext.i18n.getMessage(txt); -const main = qs('mujs-root > .main'); +const main = qs('mujs-main'); const cfgpage = qs('.mujs-cfg'); // const tbody = qs('.mujs-body'); const footer = qs('.mujs-footer'); @@ -142,12 +146,19 @@ const table = qs('table'); const tabbody = qs('tbody'); const tabhead = qs('thead'); -const filterList = qs('.mujs-fltlist'); -filterList.placeholder = i18n$('search_placeholder'); +const urlBar = qs('.mujs-url-bar'); +urlBar.placeholder = i18n$('search_placeholder'); +const btncfg = qs('mujs-btn.settings'); const btngreasy = qs('mujs-btn.greasy'); const btnissue = qs('mujs-btn.issue'); const btnhome = qs('mujs-btn.github'); +// const header = qs('mujs-header'); +const toolbar = qs('mujs-toolbar'); + +const promptElem = make('mujs-row', 'mujs-prompt'); +main.append(promptElem); + const makeTHead = (rows) => { const tr = make('tr'); for (const r of normalizeTarget(rows)) { @@ -157,6 +168,25 @@ const makeTHead = (rows) => { tabhead.append(tr); table.append(tabhead, tabbody); }; +makeTHead([ + { + class: 'mujs-header-name', + textContent: i18n$('name') + }, + { + textContent: i18n$('createdby') + }, + { + textContent: i18n$('daily_installs') + }, + { + textContent: i18n$('updated') + }, + { + textContent: i18n$('install') + } +]); + const renderTheme = (theme) => { theme = theme || cfg.theme; if (isEmpty(theme)) { @@ -268,6 +298,46 @@ const ContainerHandler = class { updateCounters() { dom.text(sfcounter, this.customCount); dom.text(gfcounter, this.forkCount); + webext.browserAction.setBadgeText({ + text: `${this.forkCount + this.customCount}` + }); + } + + makePrompt(txt, dataset = {}, usePrompt = true) { + if (qs('.prompt', promptElem)) { + for (const elem of qsA('.prompt', promptElem)) { + if (elem.dataset.prompt) { + elem.remove(); + } + } + } + const el = make('mu-js', 'prompt', { + dataset: { + prompt: txt + } + }); + const elHead = make('mu-js', 'prompt-head', { + innerHTML: `${iconSVG.load('refresh')} ${txt}` + }); + el.append(elHead); + if (usePrompt) { + const elPrompt = make('mu-js', 'prompt-body', { dataset }); + const elYes = make('mujs-btn', 'prompt-confirm', { + innerHTML: 'Confirm', + dataset: { + command: 'prompt-confirm' + } + }); + const elNo = make('mujs-btn', 'prompt-deny', { + innerHTML: 'Deny', + dataset: { + command: 'prompt-deny' + } + }); + elPrompt.append(elYes, elNo); + el.append(elPrompt); + } + promptElem.append(el); } save() { @@ -288,6 +358,7 @@ const ContainerHandler = class { } refresh() { + urlBar.placeholder = i18n$('newTab'); this.forkCount = 0; this.customCount = 0; this.updateCounters(); @@ -296,78 +367,161 @@ const ContainerHandler = class { }; const MUJS = new ContainerHandler(); -const ntHead = qs('mujs-tabs'); -const activeTab = (tab) => { - dom.cl.remove(qsA('mujs-tab', ntHead), 'active'); - dom.cl.add(tab, 'active'); - if (tab.dataset.host === 'about:blank') { - MUJS.refresh(); - } else { - buildlist(tab.dataset.host); +class Tabs { + constructor() { + this.Tab = new Map(); + this.blank = 'about:blank'; + this.protocal = 'mujs:'; + this.protoReg = new RegExp(`${this.protocal}(.+)`); + this.el = { + add: make('mujs-addtab', '', { + textContent: '+', + dataset: { + command: 'new-tab' + } + }), + head: make('mujs-tabs') + }; + this.el.head.append(this.el.add); + toolbar.append(this.el.head); } -}; -/** @param { Element } tab */ -const closeTab = (tab) => { - if (MUJS.cache.has(tab.dataset.host)) { - MUJS.cache.delete(tab.dataset.host); + hasTab(...params) { + for (const p of params) { + if (!this.Tab.has(p)) { + return false; + } + const content = normalizeTarget(this.Tab.get(p)).filter((t) => p === t.dataset.host); + if (isBlank(content)) { + return false; + } + } + return true; } - if (dom.cl.has(tab, 'active')) { - MUJS.refresh(); + storeTab(host) { + const h = host ?? this.blank; + if (!this.Tab.has(h)) { + this.Tab.set(h, new Set()); + } + return this.Tab.get(h); } - const sibling = tab.previousElementSibling ?? tab.nextElementSibling; - if (sibling) { - if (sibling.dataset.command !== 'new-tab') { - activeTab(sibling); + cache(host, ...tabs) { + const h = host ?? this.blank; + const tabCache = this.storeTab(h); + for (const t of normalizeTarget(tabs)) { + if (tabCache.has(t)) { + continue; + } + tabCache.add(t); } + this.Tab.set(h, tabCache); + return tabCache; } - tab.remove(); -}; -const newTab = (host = undefined) => { - const tab = make('mujs-tab', '', { - dataset: { - command: 'switch-tab' - }, - style: `order: ${ntHead.childElementCount};` - }); - const tabClose = make('mu-js', '', { - dataset: { - command: 'close-tab' - }, - textContent: 'X' - }); - const tabHost = make('mujs-host'); - tab.append(tabHost, tabClose); - ntHead.append(tab); - dom.cl.remove(qsA('mujs-tab', ntHead), 'active'); - dom.cl.add(tab, 'active'); - - if (isNull(host)) { - MUJS.refresh(); - tab.dataset.host = 'about:blank'; - const siteSearcher = make('input', 'mujs-searcher', { - autocomplete: 'off', - spellcheck: false, - type: 'text', - placeholder: i18n$('newTab'), - onchange(evt) { - evt.preventDefault(); - const value = getHost(evt.target.value); - if (MUJS.checkBlacklist(value)) { - MUJS.showError(`Host blacklisted "${value}"`); - return; + mujs(host) { + if (!host.startsWith(this.protocal)) { + return; + } + const type = host.match(this.protoReg)[1]; + if (type === 'settings') { + dom.cl.remove([cfgpage], 'hidden'); + dom.cl.add(table, 'hidden'); + // if (!MUJS.supported) { + // dom.attr(MUJS.frame, 'style', 'height: 100%;'); + // } + } + } + active(tab, build = true) { + for (const t of normalizeTarget(tab, false)) { + dom.cl.add([cfgpage], 'hidden'); + dom.cl.remove(table, 'hidden'); + dom.cl.remove(qsA('mujs-tab', this.el.head), 'active'); + dom.cl.add(t, 'active'); + if (!build) { + continue; + } + const host = t.dataset.host ?? this.blank; + if (host === this.blank) { + MUJS.refresh(); + } else if (host.startsWith(this.protocal)) { + this.mujs(host); + } else { + buildlist(host); + } + } + } + /** @param { HTMLElement } tab */ + close(tab) { + for (const t of normalizeTarget(tab, false)) { + const host = t.dataset.host; + if (MUJS.cache.has(host)) { + MUJS.cache.delete(host); + } + if (dom.cl.has(t, 'active')) { + MUJS.refresh(); + } + const sibling = t.previousElementSibling ?? t.nextElementSibling; + if (sibling) { + if (sibling.dataset.command !== 'new-tab') { + this.active(sibling); } - tab.dataset.host = value; - tabHost.textContent = value; - buildlist(value); - siteSearcher.remove(); } + if (this.Tab.has(host)) { + this.Tab.delete(host); + } + t.remove(); + } + } + create(host = undefined) { + if (typeof host === 'string') { + if (host.startsWith(this.protocal) && this.hasTab(host)) { + this.active(this.Tab.get(host)); + return; + } + const content = normalizeTarget(this.storeTab(host)).filter((t) => host === t.dataset.host); + if (!isEmpty(content)) { + return; + } + } + const tab = make('mujs-tab', '', { + dataset: { + command: 'switch-tab' + }, + style: `order: ${this.el.head.childElementCount};` + }); + const tabClose = make('mu-js', '', { + dataset: { + command: 'close-tab' + }, + title: i18n$('close'), + textContent: 'X' }); - tabHost.append(siteSearcher); - } else { - tab.dataset.host = host || MUJS.host; - tabHost.textContent = host || MUJS.host; + const tabHost = make('mujs-host'); + tab.append(tabHost, tabClose); + this.el.head.append(tab); + this.active(tab, false); + this.cache(host, tab); + if (isNull(host)) { + MUJS.refresh(); + urlBar.placeholder = i18n$('newTab'); + tab.dataset.host = this.blank; + tabHost.title = i18n$('newTab'); + tabHost.textContent = i18n$('newTab'); + } else if (host.startsWith(this.protocal)) { + const type = host.match(this.protoReg)[1]; + tab.dataset.host = host || MUJS.host; + tabHost.title = type || tab.dataset.host; + tabHost.textContent = tabHost.title; + this.mujs(host); + } else { + tab.dataset.host = host || MUJS.host; + tabHost.title = host || MUJS.host; + tabHost.textContent = tabHost.title; + } + return tab; } -}; +} +const tab = new Tabs(); + +// const ntHead = qs('mujs-tabs'); const template = { id: 0, @@ -631,35 +785,51 @@ const createjs = (ujs, engine) => { }; // #endregion const doInstallProcess = async (installLink) => { - window.top.location.href = installLink.href; - installLink.remove(); - // await Setup(); + const jsStr = ` + var evt = document.createEvent('MouseEvents'); + evt.initEvent('click', true, true); + var link = document.createElement('a'); + link.href = '${installLink}'; + link.dispatchEvent(evt); + link.remove(); + `; + webext.tabs.executeScript(null, { code: jsStr }).catch((ex) => { + MUJS.showError(ex); + }); }; ael(main, 'click', async (evt) => { try { - /** @type { Element } */ + /** @type { HTMLElement } */ const target = evt.target.closest('[data-command]'); if (!target) { return; } - const dataset = target.dataset; - const cmd = dataset.command; + const prmpt = /prompt-/.test(target.dataset.command); + let dataset = target.dataset; + let cmd = dataset.command; + let prmptChoice = false; + if (prmpt) { + dataset = target.parentElement.dataset; + cmd = dataset.command; + prmptChoice = /confirm/.test(target.dataset.command); + target.parentElement.parentElement.remove(); + } if (cmd === 'install-script' && dataset.userjs) { - const dlBtn = make('a', '', { - onclick(evt) { - evt.preventDefault(); - doInstallProcess(evt.target); - } - }); - dlBtn.href = dataset.userjs; - dlBtn.click(); + let installCode = dataset.userjs; + if (!prmpt && dataset.userjs.endsWith('.user.css')) { + MUJS.makePrompt('Install as user style?', dataset); + return; + } else if (prmpt !== prmptChoice) { + installCode = dataset.userjs.replace(/\.user\.css$/, '.user.js'); + } + doInstallProcess(installCode); } else if (cmd === 'open-tab' && dataset.webpage) { userjs.openInTab(dataset.webpage); } else if (cmd === 'navigation') { if (dom.cl.has(btngreasy, 'hidden')) { - dom.cl.remove([btngreasy, btnhome, btnissue], 'hidden'); + dom.cl.remove([btncfg, btngreasy, btnhome, btnissue], 'hidden'); } else { - dom.cl.add([btngreasy, btnhome, btnissue], 'hidden'); + dom.cl.add([btncfg, btngreasy, btnhome, btnissue], 'hidden'); } } else if (cmd === 'list-description') { const arr = []; @@ -706,22 +876,25 @@ ael(main, 'click', async (evt) => { if (MUJS.unsaved) { MUJS.showError('Unsaved changes'); } - if (dom.cl.has(cfgpage, 'hidden')) { - dom.cl.remove(cfgpage, 'hidden'); - dom.cl.add(table, 'hidden'); - } else { - dom.cl.add(cfgpage, 'hidden'); - dom.cl.remove(table, 'hidden'); - } + tab.create('mujs:settings'); + // if (dom.cl.has(cfgpage, 'hidden')) { + // dom.cl.remove(cfgpage, 'hidden'); + // dom.cl.add(table, 'hidden'); + // } else { + // dom.cl.add(cfgpage, 'hidden'); + // dom.cl.remove(table, 'hidden'); + // } MUJS.rebuild = false; } else if (cmd === 'new-tab') { - newTab(); + // newTab(); + tab.create(); } else if (cmd === 'switch-tab') { - dom.cl.add(cfgpage, 'hidden'); - dom.cl.remove(table, 'hidden'); - activeTab(target); + tab.active(target); + // dom.cl.add(cfgpage, 'hidden'); + // dom.cl.remove(table, 'hidden'); + // activeTab(target); } else if (cmd === 'close-tab' && target.parentElement) { - closeTab(target.parentElement); + tab.close(target.parentElement); } else if (cmd === 'download-userjs') { if (!MUJS.userjsCache.has(+dataset.userjs)) { return; @@ -867,25 +1040,24 @@ ael(main, 'click', async (evt) => { MUJS.showError(ex); } }); -renderTheme(cfg.theme); -makeTHead([ - { - class: 'mujs-header-name', - textContent: i18n$('name') - }, - { - textContent: i18n$('createdby') - }, - { - textContent: i18n$('daily') - }, - { - textContent: i18n$('updated') - }, - { - textContent: i18n$('install') +ael(main, 'auxclick', (evt) => { + if (evt.button !== 1) { + return; } -]); + /** @type { HTMLElement } */ + const target = evt.target.closest('[data-command]'); + if (!target) { + return; + } + const dataset = target.dataset; + const cmd = dataset.command; + if (cmd === 'switch-tab' || cmd === 'close-tab') { + tab.close(target); + } else if (cmd === 'new-tab') { + tab.create(); + } +}); +renderTheme(cfg.theme); const getCellValue = (tr, idx) => tr.children[idx].innerText || tr.children[idx].textContent; const comparer = (idx, asc) => (a, b) => ((v1, v2) => @@ -897,23 +1069,23 @@ for (const th of tabhead.rows[0].cells) { if (dom.text(th) === i18n$('install')) continue; dom.cl.add(th, 'mujs-pointer'); ael(th, 'click', () => { - /** - * @link https://stackoverflow.com/questions/14267781/sorting-html-table-with-javascript/53880407#53880407 - */ - const table = th.closest('table'); - const tbody = table.querySelector('tbody'); - Array.from(tbody.querySelectorAll('tr')) + /** [Stack Overflow Reference](https://stackoverflow.com/questions/14267781/sorting-html-table-with-javascript/53880407#53880407) */ + Array.from(tabbody.querySelectorAll('tr')) .sort(comparer(Array.from(th.parentNode.children).indexOf(th), (this.asc = !this.asc))) - .forEach((tr) => tbody.appendChild(tr)); + .forEach((tr) => tabbody.appendChild(tr)); }); } -ael(filterList, 'input', (evt) => { +ael(urlBar, 'input', (evt) => { evt.preventDefault(); - if (isEmpty(evt.target.value)) { + if (urlBar.placeholder === i18n$('newTab')) { + return; + } + const val = evt.target.value; + if (isEmpty(val)) { dom.cl.remove(qsA('tr[data-engine]', tabbody), 'hidden'); return; } - const reg = new RegExp(evt.target.value, 'gi'); + const reg = new RegExp(val, 'gi'); const finds = new Set(); const userjsCache = MUJS.userjsCache; for (const [k, v] of userjsCache) { @@ -942,6 +1114,39 @@ ael(filterList, 'input', (evt) => { dom.cl.add(qsA('tr[data-engine]', tabbody), 'hidden'); dom.cl.remove([...finds], 'hidden'); }); +ael(urlBar, 'change', (evt) => { + evt.preventDefault(); + const val = evt.target.value; + if (urlBar.placeholder === i18n$('newTab') && qs('mujs-tab.active', toolbar)) { + const tabElem = qs('mujs-tab.active', toolbar); + const tabHost = qs('mujs-host', tabElem); + if (val.startsWith('mujs:')) { + tab.close(tabElem); + if (tab.hasTab(val)) { + tab.active(tab.Tab.get(val)); + } else { + tab.create(val); + } + return; + } else if (val === '*') { + tabElem.dataset.host = val; + tabHost.title = ''; + tabHost.textContent = ''; + buildlist(val); + return; + } + const value = getHost(val); + if (MUJS.checkBlacklist(value)) { + MUJS.showError(`Host blacklisted "${value}"`); + return; + } + tabElem.dataset.host = value; + tabHost.title = value; + tabHost.textContent = value; + buildlist(value); + return; + } +}); async function buildlist(host = undefined) { try { @@ -951,16 +1156,19 @@ async function buildlist(host = undefined) { if (MUJS.checkBlacklist(host)) { return; } - if (!qs(`mujs-tab[data-host="${host}"]`, ntHead)) { - newTab(host); - } + tab.create(host); + // if (!qs(`mujs-tab[data-host="${host}"]`, ntHead)) { + // tab.create(host); + // } MUJS.refresh(); const data = await webext.runtime.sendMessage({ location: host }); primaryFN(data); + urlBar.placeholder = i18n$('search_placeholder'); + urlBar.value = ''; } catch (ex) { - err(ex) + err(ex); } } @@ -971,9 +1179,10 @@ function primaryFN(data) { } for (const tabData of data) { const { engine, host } = tabData; - if (!qs(`mujs-tab[data-host="${host}"]`, ntHead)) { - newTab(host); - } + tab.create(host); + // if (!qs(`mujs-tab[data-host="${host}"]`, ntHead)) { + // tab.create(host); + // } if (engine.name.includes('fork')) { MUJS.addForkCnt(tabData.data.length); } else { diff --git a/src/js/querySelector.js b/src/js/querySelector.js index 731f9bf..0170fc3 100644 --- a/src/js/querySelector.js +++ b/src/js/querySelector.js @@ -256,11 +256,7 @@ dom.cl = class { /******************************************************************************/ /** - * Prefix for `document.querySelectorAll()` - * @template { Element } E - * @param { string } selectors - Elements for query selection - * @param { E } root - Root selector Element - * @returns { NodeListOf } + * @type { import("../typings/UserJS.d.ts").qsA } */ const qsA = (selectors, root) => { try { @@ -271,11 +267,7 @@ const qsA = (selectors, root) => { return []; }; /** - * Prefix for `document.querySelector()` - * @template { Element } E - * @param { string } selector - Element for query selection - * @param { E } root - Root selector Element - * @returns { E | null } + * @type { import("../typings/UserJS.d.ts").qs } */ const qs = (selector, root) => { try { diff --git a/src/js/settings.js b/src/js/settings.js index ac3e02b..adaf288 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -1,6 +1,6 @@ 'use strict'; import { err, log } from './logger.js'; -// eslint-disable-next-line no-unused-vars + import { dom, qs } from './querySelector.js'; let cfg = {}; @@ -364,7 +364,7 @@ const makecfg = () => { userjs.hermes.getPort().onMessage.addListener((root = {}) => { const m = root.msg; - log('Settings', root); + // log('Settings', root); if (root.channel === 'Config' && isEmpty(cfg)) { cfg = m.cfg || cfg; makecfg(); diff --git a/src/manifest/chrome.json b/src/manifest/chrome.json index 055a9ea..fcaf214 100644 --- a/src/manifest/chrome.json +++ b/src/manifest/chrome.json @@ -1,4 +1,5 @@ { + "$schema": "https://json.schemastore.org/chrome-manifest", "manifest_version": 3, "default_locale": "en", "name": "__MSG_extName__", @@ -31,6 +32,5 @@ "activeTab", "scripting", "storage" - ], - "web_accessible_resources": [] + ] } diff --git a/src/manifest/firefox.json b/src/manifest/firefox.json index 2714dc0..6a6137e 100644 --- a/src/manifest/firefox.json +++ b/src/manifest/firefox.json @@ -1,4 +1,5 @@ { + "$schema": "https://json.schemastore.org/webextension.json", "manifest_version": 2, "default_locale": "en", "name": "__MSG_extName__", @@ -16,7 +17,7 @@ "64": "img/icon_64.png" }, "default_popup": "popup.html", - "default_title": "UserJS - Popup" + "default_title": "UserJS" }, "options_ui": { "page": "settings.html", @@ -24,11 +25,10 @@ }, "permissions": [ "tabs", + "", "storage", "unlimitedStorage", - "webNavigation", - "webRequest", - "" + "webRequest" ], "browser_specific_settings": { "gecko": { diff --git a/src/sass/web-ext.scss b/src/sass/web-ext.scss index 9b6b94f..4960d7a 100644 --- a/src/sass/web-ext.scss +++ b/src/sass/web-ext.scss @@ -1,22 +1,5 @@ -// @font-face { -// font-family: Inter; -// font-style: normal; -// font-weight: normal; -// src: url('fonts/Inter-Regular.woff2') format('woff2'); -// } -// @font-face { -// font-family: Inter; -// font-style: normal; -// font-weight: 600; -// src: url('fonts/Inter-SemiBold.woff2') format('woff2'); -// } -// body.webext-page, -// .main { -// font-family: Inter, sans-serif !important; -// } - -body.webext-page { +:root body.webext-page { overflow-x: hidden; padding: 0; margin: 0; @@ -37,8 +20,11 @@ body.webext-page { width: -webkit-fill-available; } } - .main { - min-width: 50%; + mujs-main { height: 100%; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + min-width: 18em; } -} +} \ No newline at end of file diff --git a/tools/web-ext.js b/tools/web-ext.js index 39e0fc5..a36f36e 100644 --- a/tools/web-ext.js +++ b/tools/web-ext.js @@ -1,6 +1,6 @@ module.exports = { artifactsDir: './build', - sourceDir: './build/WebExtension/firefox', + sourceDir: './build/firefox', verbose: true, build: { asNeeded: false, @@ -11,7 +11,7 @@ module.exports = { firefox: 'firefox', firefoxProfile: 'debug', startUrl: ['https://www.google.com'], - watchFile: ['./build/WebExtension/firefox/*'] + watchFile: ['./build/firefox/*'] }, ignoreFiles: [ '*.web-extension-id',