From e786c3d07c1707ae8c11dbd7baf4104b251737c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:01:26 +0000 Subject: [PATCH 001/121] build(deps-dev): bump eslint-plugin-perfectionist from 2.10.0 to 2.11.0 Bumps [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) from 2.10.0 to 2.11.0. - [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases) - [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md) - [Commits](https://github.com/azat-io/eslint-plugin-perfectionist/compare/v2.10.0...v2.11.0) --- updated-dependencies: - dependency-name: eslint-plugin-perfectionist dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f624e43..e177bea5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "license": "MIT", "dependencies": { "@formkit/auto-animate": "^0.8.1", @@ -4885,9 +4885,9 @@ } }, "node_modules/eslint-plugin-perfectionist": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.10.0.tgz", - "integrity": "sha512-P+tdrkHeMWBc55+DZsoDOAftV1WCsEoHaKm6JC7zajFus/syfT4vUPBFb3atGFSuyaVnGQGHlcKpP9X3Q0gH/w==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.11.0.tgz", + "integrity": "sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^6.13.0 || ^7.0.0", @@ -4895,10 +4895,10 @@ "natural-compare-lite": "^1.4.0" }, "peerDependencies": { - "astro-eslint-parser": "^0.16.0", + "astro-eslint-parser": "^1.0.2", "eslint": ">=8.0.0", "svelte": ">=3.0.0", - "svelte-eslint-parser": "^0.33.0", + "svelte-eslint-parser": "^0.37.0", "vue-eslint-parser": ">=9.0.0" }, "peerDependenciesMeta": { From e1b3e76000b98f9d02de30d28202e5db5b28f344 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:01:37 +0000 Subject: [PATCH 002/121] build(deps-dev): bump eslint-plugin-tailwindcss from 3.17.0 to 3.17.4 Bumps [eslint-plugin-tailwindcss](https://github.com/francoismassart/eslint-plugin-tailwindcss) from 3.17.0 to 3.17.4. - [Release notes](https://github.com/francoismassart/eslint-plugin-tailwindcss/releases) - [Commits](https://github.com/francoismassart/eslint-plugin-tailwindcss/compare/v3.17.0...v3.17.4) --- updated-dependencies: - dependency-name: eslint-plugin-tailwindcss dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f624e43..7e494200 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "license": "MIT", "dependencies": { "@formkit/auto-animate": "^0.8.1", @@ -5066,16 +5066,16 @@ } }, "node_modules/eslint-plugin-tailwindcss": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.17.0.tgz", - "integrity": "sha512-Ofl7tNh57a3W8BKHstKZSkD2gSCEkw54ycwZ958IK9zUR8TiNYdp8b0WGoLWLeyOAbeF1VPVJFBnlkJeIM2kVg==", + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.17.4.tgz", + "integrity": "sha512-gJAEHmCq2XFfUP/+vwEfEJ9igrPeZFg+skeMtsxquSQdxba9XRk5bn0Bp9jxG1VV9/wwPKi1g3ZjItu6MIjhNg==", "dev": true, "dependencies": { "fast-glob": "^3.2.5", "postcss": "^8.4.4" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.12.0" }, "peerDependencies": { "tailwindcss": "^3.4.0" From 304f2d1ccf8845a7b81b920baba586792c250ab9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:01:46 +0000 Subject: [PATCH 003/121] build(deps): bump webextension-polyfill from 0.11.0 to 0.12.0 Bumps [webextension-polyfill](https://github.com/mozilla/webextension-polyfill) from 0.11.0 to 0.12.0. - [Release notes](https://github.com/mozilla/webextension-polyfill/releases) - [Commits](https://github.com/mozilla/webextension-polyfill/compare/0.11.0...0.12.0) --- updated-dependencies: - dependency-name: webextension-polyfill dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 825 +++++----------------------------------------- package.json | 2 +- 2 files changed, 80 insertions(+), 747 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f624e43..ddbba18a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "license": "MIT", "dependencies": { "@formkit/auto-animate": "^0.8.1", @@ -23,7 +23,7 @@ "tailwindcss-multi": "^0.4.0", "use-debouncy": "^5.0.1", "vite-plugin-css-injected-by-js": "^3.3.0", - "webextension-polyfill": "^0.11.0" + "webextension-polyfill": "^0.12.0" }, "devDependencies": { "@semantic-release/changelog": "^6.0.3", @@ -254,14 +254,6 @@ "integrity": "sha512-QDlMJqwcE4eVCvxxQXp8nh7Nw9m5VQHPCAiyTD+W86Tl89VGhVJRb//RJRZKpn5A/Bq3EQNYDYlepurQ805MOQ==", "dev": true }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -793,6 +785,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "devOptional": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -806,6 +799,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "devOptional": true, "engines": { "node": ">=6.0.0" } @@ -814,6 +808,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "devOptional": true, "engines": { "node": ">=6.0.0" } @@ -822,6 +817,8 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "optional": true, + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -830,12 +827,14 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "devOptional": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "devOptional": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1977,20 +1976,14 @@ "version": "8.56.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -2020,7 +2013,10 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/json5": { "version": "0.0.29", @@ -2477,188 +2473,6 @@ "vite": "^4 || ^5" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -2681,6 +2495,7 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "devOptional": true, "bin": { "acorn": "bin/acorn" }, @@ -2688,14 +2503,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -2743,6 +2550,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2754,14 +2562,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/ansi-escapes": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", @@ -3227,6 +3027,7 @@ "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -3290,7 +3091,9 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "optional": true, + "peer": true }, "node_modules/call-bind": { "version": "1.0.7", @@ -3333,6 +3136,7 @@ "version": "1.0.30001612", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", + "dev": true, "funding": [ { "type": "opencollective", @@ -3421,14 +3225,6 @@ "node": ">= 6" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -3620,19 +3416,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -3660,11 +3443,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" - }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -3877,6 +3655,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4201,7 +3980,8 @@ "node_modules/electron-to-chromium": { "version": "1.4.748", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.748.tgz", - "integrity": "sha512-VWqjOlPZn70UZ8FTKUOkUvBLeTQ0xpty66qV0yJcAGY2/CthI4xyW9aEozRVtuwv3Kpf5xTesmJUcPwuJmgP4A==" + "integrity": "sha512-VWqjOlPZn70UZ8FTKUOkUvBLeTQ0xpty66qV0yJcAGY2/CthI4xyW9aEozRVtuwv3Kpf5xTesmJUcPwuJmgP4A==", + "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -4215,18 +3995,6 @@ "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", "dev": true }, - "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/env-ci": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.0.0.tgz", @@ -4383,17 +4151,6 @@ "node": ">=6" } }, - "node_modules/envinfo": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz", - "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==", - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -4509,11 +4266,6 @@ "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" - }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", @@ -4607,6 +4359,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, "engines": { "node": ">=6" } @@ -5164,6 +4917,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -5175,6 +4929,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { "node": ">=4.0" } @@ -5201,6 +4956,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, "engines": { "node": ">=0.8.x" } @@ -5231,7 +4987,8 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-diff": { "version": "1.3.0", @@ -5276,7 +5033,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -5284,14 +5042,6 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "engines": { - "node": ">= 4.9.1" - } - }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -5384,14 +5134,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", @@ -5545,6 +5287,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5714,11 +5457,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, "node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -5784,7 +5522,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -5826,6 +5565,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -5885,6 +5625,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -6046,24 +5787,6 @@ "node": ">=16.20" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/import-meta-resolve": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", @@ -6140,14 +5863,6 @@ "node": ">= 0.4" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/into-stream": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", @@ -6257,6 +5972,7 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -6429,17 +6145,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -6625,15 +6330,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/issue-parser": { "version": "7.0.0", @@ -6691,19 +6389,6 @@ "node": ">= 0.6.0" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", @@ -6745,12 +6430,14 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -6806,14 +6493,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", @@ -6936,14 +6615,6 @@ "node": ">=4" } }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7092,7 +6763,8 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", @@ -7131,25 +6803,6 @@ "node": ">=16" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -7246,7 +6899,8 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node_modules/nerf-dart": { "version": "1.0.0", @@ -7272,7 +6926,8 @@ "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true }, "node_modules/nodemon": { "version": "3.1.4", @@ -10556,6 +10211,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "engines": { "node": ">=8" } @@ -10573,6 +10229,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "engines": { "node": ">=8" } @@ -10580,7 +10237,8 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-scurry": { "version": "1.10.2", @@ -10713,73 +10371,6 @@ "node": ">=4" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -11030,6 +10621,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -11060,14 +10652,6 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -11312,17 +10896,6 @@ "node": ">=8.10.0" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", @@ -11392,6 +10965,7 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -11404,25 +10978,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -11599,6 +11154,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -11644,23 +11200,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/semantic-release": { "version": "24.0.0", "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.0.0.tgz", @@ -11969,14 +11508,6 @@ "node": ">=10" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -12009,21 +11540,11 @@ "node": ">= 0.4" } }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12035,6 +11556,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { "node": ">=8" } @@ -12206,6 +11728,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -12222,6 +11745,8 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "optional": true, + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -12607,6 +12132,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12646,6 +12172,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -12727,14 +12254,6 @@ "@types/node": "^20.4.1" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/tar-stream": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", @@ -12801,6 +12320,8 @@ "version": "5.30.4", "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.4.tgz", "integrity": "sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==", + "optional": true, + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -12814,43 +12335,12 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "optional": true, + "peer": true }, "node_modules/text-table": { "version": "0.2.0", @@ -13329,6 +12819,7 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -13358,6 +12849,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -13463,170 +12955,16 @@ "vite": ">2.0.0-0" } }, - "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/webextension-polyfill": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.11.0.tgz", - "integrity": "sha512-YUBSKQA0iCx2YtM75VFgvvcx1hLKaGGiph6a6UaUdSgk32VT9SzrcDAKBjeGHXoAZTnNBqS5skA4VfoKMXhEBA==", - "dependencies": { - "webpack": "^5.91.0", - "webpack-cli": "^5.1.4" - } - }, - "node_modules/webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.12.0.tgz", + "integrity": "sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -13716,11 +13054,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" - }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", diff --git a/package.json b/package.json index 443c1326..2364b7bc 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "tailwindcss-multi": "^0.4.0", "use-debouncy": "^5.0.1", "vite-plugin-css-injected-by-js": "^3.3.0", - "webextension-polyfill": "^0.11.0" + "webextension-polyfill": "^0.12.0" }, "devDependencies": { "@semantic-release/changelog": "^6.0.3", From df7eab4c1170d712a063277946c3ccd70160fa20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:01:58 +0000 Subject: [PATCH 004/121] build(deps): bump monaco-editor from 0.49.0 to 0.50.0 Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.49.0 to 0.50.0. - [Release notes](https://github.com/microsoft/monaco-editor/releases) - [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/monaco-editor/compare/v0.49.0...v0.50.0) --- updated-dependencies: - dependency-name: monaco-editor dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f624e43..7046fa76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "license": "MIT", "dependencies": { "@formkit/auto-animate": "^0.8.1", @@ -14,7 +14,7 @@ "@tanstack/react-query": "^5.18.0", "dotenv": "^16.3.1", "i18next": "^23.7.3", - "monaco-editor": "^0.49.0", + "monaco-editor": "^0.50.0", "react": "^18.2.0", "react-colorful": "^5.6.1", "react-dom": "^18.2.0", @@ -7193,9 +7193,9 @@ } }, "node_modules/monaco-editor": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.49.0.tgz", - "integrity": "sha512-2I8/T3X/hLxB2oPHgqcNYUVdA/ZEFShT7IAujifIPMfKkNbLOqY8XCoyHCXrsdjb36dW9MwoTwBCFpXKMwNwaQ==" + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.50.0.tgz", + "integrity": "sha512-8CclLCmrRRh+sul7C08BmPBP3P8wVWfBHomsTcndxg5NRCEPfu/mc2AGU8k37ajjDVXcXFc12ORAMUkmk+lkFA==" }, "node_modules/ms": { "version": "2.1.2", diff --git a/package.json b/package.json index 443c1326..057dd2b4 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@tanstack/react-query": "^5.18.0", "dotenv": "^16.3.1", "i18next": "^23.7.3", - "monaco-editor": "^0.49.0", + "monaco-editor": "^0.50.0", "react": "^18.2.0", "react-colorful": "^5.6.1", "react-dom": "^18.2.0", From c67f81ba062b3af41fd7f80b84ae1c95e81f5905 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:02:08 +0000 Subject: [PATCH 005/121] build(deps-dev): bump @types/node from 20.14.8 to 20.14.9 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.8 to 20.14.9. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f624e43..b8897997 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "youtube-enhancer", - "version": "1.25.0", + "version": "1.26.0", "license": "MIT", "dependencies": { "@formkit/auto-animate": "^0.8.1", @@ -2029,9 +2029,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz", - "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==", + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", "dependencies": { "undici-types": "~5.26.4" } From e4e6b8e4db472c4dd7cbcb1c002b203705e1a899 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Tue, 2 Jul 2024 02:21:50 -0400 Subject: [PATCH 006/121] chore: use ternary instead of logical AND --- src/components/Settings/components/Setting.tsx | 6 ++---- src/components/Settings/components/SettingSection.tsx | 6 ++---- src/components/Settings/components/SettingTitle.tsx | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/components/Settings/components/Setting.tsx b/src/components/Settings/components/Setting.tsx index 97ce0dd5..4eddb331 100644 --- a/src/components/Settings/components/Setting.tsx +++ b/src/components/Settings/components/Setting.tsx @@ -86,11 +86,9 @@ export default function Setting(settingProps: Settin (settingProps.title !== undefined && settingProps.title.toLowerCase().includes(filter.toLowerCase())) || (settingProps.label !== undefined && settingProps.label.toLowerCase().includes(filter.toLowerCase())) ); - return ( - shouldSettingBeVisible && ( + return shouldSettingBeVisible ?
- ) - ); + : null; } diff --git a/src/components/Settings/components/SettingSection.tsx b/src/components/Settings/components/SettingSection.tsx index d0fd0daa..0458e29f 100644 --- a/src/components/Settings/components/SettingSection.tsx +++ b/src/components/Settings/components/SettingSection.tsx @@ -25,11 +25,9 @@ export default function SettingSection({ children, className = "", title: sectio (child.props.title !== undefined && child.props.title.toLowerCase().includes(filter.toLowerCase())) ); }).length > 0; - return ( - shouldSectionBeVisible && ( + return shouldSectionBeVisible ? {children} - ) - ); + : null; } diff --git a/src/components/Settings/components/SettingTitle.tsx b/src/components/Settings/components/SettingTitle.tsx index 58ac1d0c..77422c6f 100644 --- a/src/components/Settings/components/SettingTitle.tsx +++ b/src/components/Settings/components/SettingTitle.tsx @@ -5,5 +5,5 @@ export default function SettingTitle() { const { filter } = useSettingsFilter(); const { title } = useSectionTitle(); const shouldSettingTitleBeVisible = filter === "" ? true : title.toLowerCase().includes(filter.toLowerCase()); - return shouldSettingTitleBeVisible && {title}; + return shouldSettingTitleBeVisible ? {title} : null; } From 8f1a026e105ef745189ef4abfe7caa160d421ae8 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Tue, 2 Jul 2024 02:22:48 -0400 Subject: [PATCH 007/121] build: update typescript to version 5.5 --- package-lock.json | 9 +++++---- package.json | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index c39f99ca..2fa05610 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,7 @@ "tailwindcss": "^3.3.6", "ts-json-as-const": "^1.0.7", "ts-node": "^10.9.1", - "typescript": "^5.2.2", + "typescript": "5.5", "vite": "^5.0.12", "zod": "^3.22.4", "zod-error": "^1.5.0" @@ -12713,10 +12713,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index 07620093..a276f39f 100644 --- a/package.json +++ b/package.json @@ -81,9 +81,9 @@ "tailwindcss": "^3.3.6", "ts-json-as-const": "^1.0.7", "ts-node": "^10.9.1", - "typescript": "^5.2.2", + "typescript": "5.5", "vite": "^5.0.12", "zod": "^3.22.4", "zod-error": "^1.5.0" } -} \ No newline at end of file +} From a88d29d1c3fdcb81f6b12b6a1cec531f4abb8b88 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Wed, 3 Jul 2024 21:54:57 -0400 Subject: [PATCH 008/121] fix(playback speed buttons): label not updating when player speed changes --- src/features/playbackSpeedButtons/index.ts | 75 ++++++++++++++-------- src/pages/embedded/index.ts | 28 +++++++- 2 files changed, 77 insertions(+), 26 deletions(-) diff --git a/src/features/playbackSpeedButtons/index.ts b/src/features/playbackSpeedButtons/index.ts index c45e9d42..5ab12b26 100644 --- a/src/features/playbackSpeedButtons/index.ts +++ b/src/features/playbackSpeedButtons/index.ts @@ -10,8 +10,15 @@ import { createTooltip, isShortsPage, isWatchPage, waitForSpecificMessage } from import type { AddButtonFunction, RemoveButtonFunction } from "../index"; let currentPlaybackSpeed = 1; - -async function updateTooltip( +export function calculatePlaybackButtonSpeed(speed: number, playbackSpeedPerClick: number, direction: "decrease" | "increase") { + const calculatedSpeed = + speed == 4 && direction == "increase" ? 4 + : speed == 0.25 && direction == "decrease" ? 0.25 + : direction == "decrease" ? speed - playbackSpeedPerClick + : speed + playbackSpeedPerClick; + return calculatedSpeed; +} +export async function updatePlaybackSpeedButtonTooltip( buttonName: ButtonName, speed: number ) { @@ -22,8 +29,7 @@ async function updateTooltip void { +function playbackSpeedButtonClickListener(speedPerClick: number, direction: "decrease" | "increase"): () => void { return () => { void (async () => { const videoElement = document.querySelector("video"); if (!videoElement) return; + const adjustmentAmount = direction === "increase" ? speedPerClick : -speedPerClick; try { - const { playbackRate: playbackRate } = videoElement; - currentPlaybackSpeed = playbackRate; - if (currentPlaybackSpeed + amount <= 0) return; - if (currentPlaybackSpeed + amount > 4) return; + ({ playbackRate: currentPlaybackSpeed } = videoElement); + if (currentPlaybackSpeed + adjustmentAmount <= 0) return; + if (currentPlaybackSpeed + adjustmentAmount > 4) return; const playerContainer = isWatchPage() ? document.querySelector("div#movie_player") : isShortsPage() ? document.querySelector("div#shorts-player") @@ -87,13 +90,19 @@ function playbackSpeedButtonClickListener(amount: number): () => void { { max: 4, type: "speed", - value: currentPlaybackSpeed + amount + value: currentPlaybackSpeed + adjustmentAmount } ); - const speed = currentPlaybackSpeed + amount; + const speed = currentPlaybackSpeed + adjustmentAmount; await setPlayerSpeed(speed); - await updateTooltip("increasePlaybackSpeedButton", speed); - await updateTooltip("decreasePlaybackSpeedButton", speed); + await updatePlaybackSpeedButtonTooltip( + "increasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(currentPlaybackSpeed, speedPerClick, "increase") + ); + await updatePlaybackSpeedButtonTooltip( + "decreasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(currentPlaybackSpeed, speedPerClick, "decrease") + ); } catch (error) { console.error(error); } @@ -113,14 +122,22 @@ export const addIncreasePlaybackSpeedButton: AddButtonFunction = async () => { } } = optionsData; if (!enable_playback_speed_buttons) return; + const videoElement = document.querySelector("video"); + if (!videoElement) return; + ({ playbackRate: currentPlaybackSpeed } = videoElement); await addFeatureButton( "increasePlaybackSpeedButton", increasePlaybackSpeedButtonPlacement, - window.i18nextInstance.t("pages.content.features.playbackSpeedButtons.buttons.increasePlaybackSpeedButton.label", { - SPEED: currentPlaybackSpeed + playbackSpeedPerClick - }), + window.i18nextInstance.t( + currentPlaybackSpeed == 4 ? + `pages.content.features.playbackSpeedButtons.increaseLimit` + : "pages.content.features.playbackSpeedButtons.buttons.increasePlaybackSpeedButton.label", + { + SPEED: calculatePlaybackButtonSpeed(currentPlaybackSpeed, playbackSpeedPerClick, "increase") + } + ), getFeatureIcon("increasePlaybackSpeedButton", increasePlaybackSpeedButtonPlacement), - playbackSpeedButtonClickListener(playbackSpeedPerClick), + playbackSpeedButtonClickListener(playbackSpeedPerClick, "increase"), false ); }; @@ -137,14 +154,22 @@ export const addDecreasePlaybackSpeedButton: AddButtonFunction = async () => { } } = optionsData; if (!enable_playback_speed_buttons) return; + const videoElement = document.querySelector("video"); + if (!videoElement) return; + ({ playbackRate: currentPlaybackSpeed } = videoElement); await addFeatureButton( "decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement, - window.i18nextInstance.t("pages.content.features.playbackSpeedButtons.buttons.decreasePlaybackSpeedButton.label", { - SPEED: currentPlaybackSpeed - playbackSpeedPerClick - }), + window.i18nextInstance.t( + currentPlaybackSpeed == 0.25 ? + `pages.content.features.playbackSpeedButtons.decreaseLimit` + : "pages.content.features.playbackSpeedButtons.buttons.decreasePlaybackSpeedButton.label", + { + SPEED: calculatePlaybackButtonSpeed(currentPlaybackSpeed, playbackSpeedPerClick, "decrease") + } + ), getFeatureIcon("decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement), - playbackSpeedButtonClickListener(-playbackSpeedPerClick), + playbackSpeedButtonClickListener(-playbackSpeedPerClick, "decrease"), false ); }; diff --git a/src/pages/embedded/index.ts b/src/pages/embedded/index.ts index 0b5b8642..8f0f73e4 100644 --- a/src/pages/embedded/index.ts +++ b/src/pages/embedded/index.ts @@ -34,8 +34,10 @@ import { disablePauseBackgroundPlayers, enablePauseBackgroundPlayers } from "@/s import { addDecreasePlaybackSpeedButton, addIncreasePlaybackSpeedButton, + calculatePlaybackButtonSpeed, removeDecreasePlaybackSpeedButton, - removeIncreasePlaybackSpeedButton + removeIncreasePlaybackSpeedButton, + updatePlaybackSpeedButtonTooltip } from "@/src/features/playbackSpeedButtons"; import setPlayerQuality from "@/src/features/playerQuality"; import { restorePlayerSpeed, setPlayerSpeed, setupPlaybackSpeedChangeListener } from "@/src/features/playerSpeed"; @@ -326,10 +328,34 @@ window.addEventListener("DOMContentLoaded", function () { const { data: { enableForcedPlaybackSpeed, playerSpeed } } = message; + const { + data: { + options: { playback_buttons_speed: playbackSpeedPerClick } + } + } = await waitForSpecificMessage("options", "request_data", "content"); if (enableForcedPlaybackSpeed && playerSpeed) { + await updatePlaybackSpeedButtonTooltip( + "increasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(playerSpeed, playbackSpeedPerClick, "increase") + ); + await updatePlaybackSpeedButtonTooltip( + "decreasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(playerSpeed, playbackSpeedPerClick, "decrease") + ); await setPlayerSpeed(Number(playerSpeed)); } else if (!enableForcedPlaybackSpeed) { restorePlayerSpeed(); + const videoElement = document.querySelector("video"); + if (!videoElement) return; + const { playbackRate: currentSpeed } = videoElement; + await updatePlaybackSpeedButtonTooltip( + "increasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(currentSpeed, playbackSpeedPerClick, "increase") + ); + await updatePlaybackSpeedButtonTooltip( + "decreasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(currentSpeed, playbackSpeedPerClick, "decrease") + ); } break; } From fb3fdfd11e080e5bc5905f410fac97fc42dfb713 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Wed, 3 Jul 2024 22:57:33 -0400 Subject: [PATCH 009/121] fix: add missing function call --- src/pages/embedded/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/embedded/index.ts b/src/pages/embedded/index.ts index 8f0f73e4..3d803020 100644 --- a/src/pages/embedded/index.ts +++ b/src/pages/embedded/index.ts @@ -261,7 +261,7 @@ window.addEventListener("DOMContentLoaded", function () { enableFeatures(); handleSoftNavigate(); } else if (!isFirstLoad) { - handleSoftNavigate; + handleSoftNavigate(); } isFirstLoad = false; /** From a16cd44d86424920ff8446960964087f959735a9 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Wed, 3 Jul 2024 23:03:48 -0400 Subject: [PATCH 010/121] fix(playback speed buttons): label not updating when adjusting speed with scroll wheel --- src/features/scrollWheelSpeedControl/index.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/features/scrollWheelSpeedControl/index.ts b/src/features/scrollWheelSpeedControl/index.ts index 3070b500..6f8d413e 100644 --- a/src/features/scrollWheelSpeedControl/index.ts +++ b/src/features/scrollWheelSpeedControl/index.ts @@ -1,5 +1,6 @@ import type { YouTubePlayerDiv } from "@/src/types"; +import { calculatePlaybackButtonSpeed, updatePlaybackSpeedButtonTooltip } from "@/src/features/playbackSpeedButtons"; import { setupScrollListeners } from "@/src/features/scrollWheelVolumeControl/utils"; import OnScreenDisplayManager from "@/src/utils/OnScreenDisplayManager"; import { isShortsPage, isWatchPage, preventScroll, waitForAllElements, waitForSpecificMessage } from "@/src/utils/utilities"; @@ -48,6 +49,7 @@ export default async function adjustSpeedOnScrollWheel() { osd_display_padding, osd_display_position, osd_display_type, + playback_buttons_speed, scroll_wheel_speed_control_modifier_key, speed_adjustment_steps } @@ -76,6 +78,14 @@ export default async function adjustSpeedOnScrollWheel() { const scrollDelta = wheelEvent.deltaY < 0 ? 1 : -1; // Adjust the speed based on the scroll direction and options const { newSpeed } = await adjustSpeed(playerContainer, scrollDelta, speed_adjustment_steps); + await updatePlaybackSpeedButtonTooltip( + "increasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(newSpeed, playback_buttons_speed, "increase") + ); + await updatePlaybackSpeedButtonTooltip( + "decreasePlaybackSpeedButton", + calculatePlaybackButtonSpeed(newSpeed, playback_buttons_speed, "decrease") + ); new OnScreenDisplayManager( { displayColor: osd_display_color, From d741b3f4622082a8020a113116bbeea6eb9da95d Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Wed, 3 Jul 2024 23:57:44 -0400 Subject: [PATCH 011/121] chore: Add timestamp to logs --- src/utils/log.ts | 4 +++- src/utils/utilities.ts | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/utils/log.ts b/src/utils/log.ts index 3395d9a2..9059bb5f 100644 --- a/src/utils/log.ts +++ b/src/utils/log.ts @@ -1,3 +1,5 @@ +import { getFormattedTimestamp } from "./utilities"; + type ColorType = "error" | "info" | "success" | "warning" | keyof typeof TerminalColors; function getColor(type: ColorType) { switch (type) { @@ -18,7 +20,7 @@ export function colorizeTerminalLog(message: string, type: ColorType = "FgBlack" return `${color}${message}${TerminalColors.Reset}`; } export default function terminalColorLog(message: string, type?: ColorType) { - console.log(colorizeTerminalLog(`[YouTube Enhancer]`, "FgCyan"), colorizeTerminalLog(message, type)); + console.log(colorizeTerminalLog(`[${getFormattedTimestamp()}] [YouTube Enhancer]`, "FgCyan"), colorizeTerminalLog(message, type)); } const TerminalColors = { diff --git a/src/utils/utilities.ts b/src/utils/utilities.ts index b0b70ab6..a2a7c196 100644 --- a/src/utils/utilities.ts +++ b/src/utils/utilities.ts @@ -178,7 +178,7 @@ function groupMessages(messages: { message: string; styling: string[] }[]): Arra * @returns The colorized log message. */ export function browserColorLog(message: string, type?: ColorType) { - const prependLog = colorizeLog(`[YouTube Enhancer]`, "FgCyan"); + const prependLog = colorizeLog(`[${getFormattedTimestamp()}] [YouTube Enhancer]`, "FgCyan"); const colorizedMessage = colorizeLog(message, type); console.log(...groupMessages([prependLog, colorizedMessage])); } @@ -766,3 +766,19 @@ export function isNewYouTubeVideoLayout(): boolean { return false; // It's the old layout } } +export function getFormattedTimestamp() { + const now = new Date(); + + const month = (now.getMonth() + 1).toString().padStart(2, "0"); + const day = now.getDate().toString().padStart(2, "0"); + const year = now.getFullYear().toString().substr(-2); + const hours = now.getHours(); + const minutes = now.getMinutes().toString().padStart(2, "0"); + const seconds = now.getSeconds().toString().padStart(2, "0"); + const milliseconds = now.getMilliseconds().toString().padStart(3, "0"); + + const period = hours >= 12 ? "PM" : "AM"; + const paddedHours = (hours % 12 || 12).toString().padStart(2, "0"); // Convert to 12-hour format and handle midnight (0 hours) + + return `${month}/${day}/${year} ${paddedHours}:${minutes}:${seconds}:${milliseconds} ${period}`; +} From a045698e521a6f6c59ba01fcd4c9a84b80f0613a Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Thu, 4 Jul 2024 00:44:48 -0400 Subject: [PATCH 012/121] chore: remove duplicate enableRememberVolume call --- src/pages/embedded/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/embedded/index.ts b/src/pages/embedded/index.ts index 3d803020..cdf606b1 100644 --- a/src/pages/embedded/index.ts +++ b/src/pages/embedded/index.ts @@ -155,7 +155,6 @@ const enableFeatures = () => { enableShareShortener(), enableSkipContinueWatching(), enablePauseBackgroundPlayers(), - enableRememberVolume(), enableHideScrollBar(), enableCustomCSS(), enableDeepDarkCSS() From f75818486332d9266e97ddc2d05f1c1cbddf0b5f Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Thu, 4 Jul 2024 01:20:00 -0400 Subject: [PATCH 013/121] fix: Features being enabled multiple times --- src/pages/embedded/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/embedded/index.ts b/src/pages/embedded/index.ts index cdf606b1..8583822b 100644 --- a/src/pages/embedded/index.ts +++ b/src/pages/embedded/index.ts @@ -243,7 +243,10 @@ const getFeatureFunctions = (featureName: AllButtonNames, oldPlacement: ButtonPl }; }; function handleSoftNavigate() { - // Listen to YouTube's soft navigate event + // Remove existing listeners + document.removeEventListener("yt-navigate-finish", enableFeatures); + document.removeEventListener("yt-player-updated", enableFeatures); + // Add listeners document.addEventListener("yt-navigate-finish", enableFeatures); document.addEventListener("yt-player-updated", enableFeatures); } From e166355e32e81792fff6a8ac18a2bb00e5aaf151 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Thu, 4 Jul 2024 17:50:41 -0400 Subject: [PATCH 014/121] chore: Move volume boost call to the bottom --- src/pages/embedded/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/embedded/index.ts b/src/pages/embedded/index.ts index 8583822b..650f971d 100644 --- a/src/pages/embedded/index.ts +++ b/src/pages/embedded/index.ts @@ -172,7 +172,6 @@ const enableFeatures = () => { enableRememberVolume(), enableAutomaticTheaterMode(), enableRemainingTime(), - volumeBoost(), setPlayerQuality(), setPlayerSpeed(), adjustVolumeOnScrollWheel(), @@ -225,6 +224,7 @@ const enableFeatures = () => { await openTranscriptButton(); await addMaximizePlayerButton(); await addLoopButton(); + await volumeBoost(); })(); }; const getFeatureFunctions = (featureName: AllButtonNames, oldPlacement: ButtonPlacement) => { From 80c7685c27fad2c54d23f030ccff58b14f3bb48a Mon Sep 17 00:00:00 2001 From: livingflore Date: Sat, 6 Jul 2024 03:01:56 +0500 Subject: [PATCH 015/121] feat: copyTimestampUrlButton --- public/locales/en-US.json | 11 ++++ public/locales/en-US.json.d.ts | 6 +++ src/components/Settings/Settings.tsx | 21 +++++--- src/features/copyTimestampUrlButton/index.ts | 57 ++++++++++++++++++++ src/features/index.ts | 5 ++ src/icons.ts | 16 ++++++ src/pages/content/index.ts | 5 ++ src/pages/embedded/index.ts | 13 +++++ src/types/index.ts | 4 ++ src/utils/EventManager.ts | 1 + src/utils/constants.ts | 3 ++ 11 files changed, 136 insertions(+), 6 deletions(-) create mode 100644 src/features/copyTimestampUrlButton/index.ts diff --git a/public/locales/en-US.json b/public/locales/en-US.json index 62fe0511..13b225fe 100644 --- a/public/locales/en-US.json +++ b/public/locales/en-US.json @@ -55,6 +55,12 @@ "label": "Open transcript" } }, + "copyTimestampUrlButton": { + "button": { + "label": "Copy video URL with timestamp", + "copied": "Copied!" + } + }, "playbackSpeedButtons": { "buttons": { "decreasePlaybackSpeedButton": { @@ -161,6 +167,7 @@ "hideEndScreenCardsButton": "Hide end screen cards button", "increasePlaybackSpeedButton": "Increase Speed button", "loopButton": "Loop button", + "copyTimestampUrlButton": "Copy video URL with timestamp button", "maximizePlayerButton": "Maximize button", "openTranscriptButton": "Open Transcript button", "rewindButton": "Rewind button", @@ -286,6 +293,10 @@ "label": "Loop button", "title": "Adds a button to the feature menu to loop the video you're watching" }, + "copyTimestampUrlButton": { + "label": "Copy video URL with timestamp button", + "title": "Copies video URL with timestamp (?t=123)" + }, "maximizePlayerButton": { "label": "Maximize player button", "title": "Adds a button to the feature menu to maximize the player" diff --git a/public/locales/en-US.json.d.ts b/public/locales/en-US.json.d.ts index 24cf94ef..ad1aeb1f 100644 --- a/public/locales/en-US.json.d.ts +++ b/public/locales/en-US.json.d.ts @@ -8,6 +8,7 @@ interface EnUS { pages: { content: { features: { + copyTimestampUrlButton: { button: { copied: "Copied!"; label: "Copy video URL with timestamp" } }; featureMenu: { button: { label: "Feature menu" } }; forwardRewindButtons: { buttons: { @@ -98,6 +99,7 @@ interface EnUS { buttonPlacement: { select: { buttonNames: { + copyTimestampUrlButton: "Copy video URL with timestamp button"; decreasePlaybackSpeedButton: "Decrease Speed button"; forwardButton: "Fast Forward button"; hideEndScreenCardsButton: "Hide end screen cards button"; @@ -178,6 +180,10 @@ interface EnUS { label: "Automatic theater mode"; title: "Automatically enables theater mode when you load a video"; }; + copyTimestampUrlButton: { + label: "Copy video URL with timestamp button"; + title: "Copies video URL with timestamp (?t=123)"; + }; hideEndScreenCards: { label: "Hide end screen cards"; title: "Hides the cards at the end of the video"; diff --git a/src/components/Settings/Settings.tsx b/src/components/Settings/Settings.tsx index e780dfae..5c0a19c5 100644 --- a/src/components/Settings/Settings.tsx +++ b/src/components/Settings/Settings.tsx @@ -369,6 +369,7 @@ export default function Settings() { } ]; const buttonPlacementOptions: SelectOption< + | "button_placements.copyTimestampUrlButton" | "button_placements.decreasePlaybackSpeedButton" | "button_placements.forwardButton" | "button_placements.hideEndScreenCardsButton" @@ -620,6 +621,14 @@ export default function Settings() { title={t("settings.sections.miscellaneous.features.loopButton.title")} type="checkbox" /> +
{isPopup && ( )} {notifications.filter((n) => n.action === "reset_settings").length > 0 ? { const notificationToRemove = notifications.find((n) => n.action === "reset_settings"); @@ -1252,7 +1261,7 @@ export default function Settings() { value={t("settings.sections.bottomButtons.confirm.value")} /> : { + const { + data: { + options: { + button_placements: { copyTimestampUrlButton: copyTimestampUrlButtonPlacement }, + enable_copy_timestamp_url_button: enableCopyTimestampUrlButton + } + } + } = await waitForSpecificMessage("options", "request_data", "content"); + if (!enableCopyTimestampUrlButton) return; + function copyTimestampUrlButtonClickListener() { + void (() => { + const videoElement = document.querySelector("video"); + const watchGrid = document.querySelector("ytd-watch-grid"); + if (!videoElement || !watchGrid) return; + const videoId = watchGrid.getAttribute("video-id"); + const timestampUrl = `https://youtu.be/${videoId}?t=${videoElement.currentTime.toFixed()}`; + void navigator.clipboard.writeText(timestampUrl); + const button = getFeatureButton("copyTimestampUrlButton"); + if (!button) return; + const { remove, update } = createTooltip({ + direction: copyTimestampUrlButtonPlacement === "below_player" ? "down" : "up", + element: button, + featureName: "copyTimestampUrlButton", + id: "yte-feature-copyTimestampUrlButton-tooltip" + }); + button.dataset.title = window.i18nextInstance.t("pages.content.features.copyTimestampUrlButton.button.copied"); + update(); + setTimeout(() => { + remove(); + button.dataset.title = window.i18nextInstance.t("pages.content.features.copyTimestampUrlButton.button.label"); + update(); + }, 1000); + })(); + } + await addFeatureButton( + "copyTimestampUrlButton", + copyTimestampUrlButtonPlacement, + window.i18nextInstance.t("pages.content.features.copyTimestampUrlButton.button.label"), + getFeatureIcon("copyTimestampUrlButton", copyTimestampUrlButtonPlacement), + copyTimestampUrlButtonClickListener, + false + ); +}; + +export const removeCopyTimestampUrlButton: RemoveButtonFunction = async (placement) => { + await removeFeatureButton("copyTimestampUrlButton", placement); + eventManager.removeEventListeners("copyTimestampUrlButton"); +}; diff --git a/src/features/index.ts b/src/features/index.ts index 7e39448d..64a34664 100644 --- a/src/features/index.ts +++ b/src/features/index.ts @@ -1,5 +1,6 @@ import type { AllButtonNames, ButtonPlacement } from "@/src/types"; +import { addCopyTimestampUrlButton, removeCopyTimestampUrlButton } from "@/src/features/copyTimestampUrlButton"; import { addForwardButton, addRewindButton, removeForwardButton, removeRewindButton } from "@/src/features/forwardRewindButtons"; import { addHideEndScreenCardsButton, removeHideEndScreenCardsButton } from "@/src/features/hideEndScreenCards"; import { addLoopButton, removeLoopButton } from "@/src/features/loopButton"; @@ -20,6 +21,10 @@ export type FeatureFuncRecord = { }; export const featureButtonFunctions = { + copyTimestampUrlButton: { + add: addCopyTimestampUrlButton, + remove: removeCopyTimestampUrlButton + }, decreasePlaybackSpeedButton: { add: addDecreasePlaybackSpeedButton, remove: removeDecreasePlaybackSpeedButton diff --git a/src/icons.ts b/src/icons.ts index 2cc7fec9..f714b68a 100644 --- a/src/icons.ts +++ b/src/icons.ts @@ -286,7 +286,23 @@ const rewindButtonSVG = createSVGElement( d: "M 11.685714,19.542856 V 4.4571438 L 1.000001,12 Z M 12.314285,12 22.999999,19.542856 V 4.4571438 Z" }) ); +const copyURLWithTimestampSVG = createSVGElement( + "svg", + { + fill: "white", + height: "23px", + viewBox: "0 0 21.443 23.000378", + width: "21.442648" + }, + createSVGElement("path", { + d: "m 15.231937,11.02203 c -3.168022,0 -5.7334298,2.571146 -5.7334298,5.739168 0,3.168023 2.5654078,5.739172 5.7334298,5.739172 3.17376,0 5.74491,-2.571149 5.74491,-5.739172 0,-3.168022 -2.57115,-5.739168 -5.74491,-5.739168 z m 0.0057,10.330505 c -2.536712,0 -4.591336,-2.054622 -4.591336,-4.591337 0,-2.536712 2.054624,-4.591335 4.591336,-4.591335 2.536713,0 4.591336,2.054623 4.591336,4.591335 0,2.536715 -2.054623,4.591337 -4.591336,4.591337 z m 0.286972,-7.460921 h -0.860876 v 3.443503 l 3.013064,1.807837 0.430438,-0.705918 -2.582626,-1.532357 z M 6.4145673,0.50020216 C 5.3380684,0.52772093 4.4660134,1.4182478 4.4660134,2.5010665 V 16.499645 c 0,1.100008 0.9008568,2.000863 2.0008639,2.000863 h 2.7892545 c -0.00367,-0.0126 -0.0076,-0.02471 -0.011238,-0.03738 -0.013947,-0.04919 -0.026468,-0.09981 -0.039218,-0.149459 -0.012751,-0.04966 -0.025827,-0.09933 -0.037381,-0.149458 -0.011555,-0.05014 -0.021442,-0.100746 -0.031723,-0.151322 -0.010367,-0.05062 -0.020801,-0.100308 -0.029895,-0.151323 -0.00909,-0.05102 -0.018332,-0.101758 -0.026143,-0.153195 -0.00786,-0.05142 -0.013947,-0.103218 -0.020562,-0.155063 -0.00658,-0.05182 -0.013392,-0.104699 -0.018648,-0.156925 -0.0053,-0.05221 -0.00909,-0.104327 -0.013076,-0.156928 -0.00402,-0.05261 -0.00858,-0.105839 -0.011238,-0.1588 -0.00265,-0.05292 -0.00428,-0.105496 -0.00564,-0.158798 -0.00137,-0.05333 -0.00188,-0.107037 -0.00188,-0.160659 0,-0.05364 5.187e-4,-0.107362 0.00188,-0.160665 8.547e-4,-0.03388 0.00231,-0.06711 0.00376,-0.100881 H 6.4668773 V 2.5010665 H 17.466961 v 8.4611715 c 0.01179,0.0045 0.02376,0.0084 0.03547,0.01308 0.04711,0.01858 0.09544,0.03826 0.14199,0.05796 0.04655,0.01969 0.0923,0.03905 0.13825,0.05978 0.04591,0.02073 0.09103,0.04168 0.136377,0.06353 0.04536,0.02185 0.09165,0.0444 0.136376,0.06727 0.04472,0.02288 0.08855,0.04703 0.132647,0.07102 0.04409,0.02391 0.08733,0.04791 0.130773,0.07286 0.04344,0.02495 0.08613,0.05063 0.128909,0.0766 0.0428,0.02599 0.08496,0.0534 0.127043,0.08034 0.04209,0.02694 0.08378,0.05428 0.12517,0.0822 0.04138,0.02798 0.08263,0.05515 0.123305,0.08407 0.04065,0.02894 0.0815,0.05796 0.121431,0.08781 0.03993,0.02981 0.08038,0.06074 0.119566,0.09154 0.03922,0.03077 0.0774,0.0617 0.115826,0.09341 0.03841,0.03173 0.07635,0.06456 0.113963,0.09715 0.03762,0.03261 0.07525,0.06552 0.112098,0.09901 0.02041,0.01849 0.03961,0.03723 0.05978,0.05603 V 2.5010665 c 2e-5,-1.1000068 -0.898969,-2.00086434 -1.998976,-2.00086434 H 6.4668773 c -0.017186,0 -0.035224,-4.3671e-4 -0.05231,0 z M 10.257499,20.499504 H 2.4651491 V 6.5009267 H 0.46615326 V 20.499504 c 0,1.100008 0.89898954,2.000866 1.99899584,2.000866 H 12.830037 c -0.0093,-0.0038 -0.01881,-0.0073 -0.02805,-0.01124 -0.04648,-0.01969 -0.09238,-0.03906 -0.138251,-0.05978 -0.04584,-0.02073 -0.09112,-0.04169 -0.136377,-0.06353 -0.04528,-0.02185 -0.08987,-0.0444 -0.134512,-0.06727 -0.04464,-0.02288 -0.08864,-0.04703 -0.132647,-0.07102 -0.04399,-0.02391 -0.08929,-0.04791 -0.132646,-0.07286 -0.04336,-0.02495 -0.08622,-0.05062 -0.128909,-0.0766 -0.04272,-0.02599 -0.08503,-0.0534 -0.127042,-0.08033 -0.042,-0.02695 -0.08386,-0.05428 -0.12517,-0.08219 -0.04128,-0.02798 -0.08084,-0.05515 -0.121432,-0.08407 -0.04057,-0.02894 -0.08158,-0.05796 -0.121431,-0.08781 -0.03986,-0.0298 -0.0786,-0.06074 -0.117701,-0.09154 -0.03914,-0.03076 -0.07748,-0.0617 -0.115827,-0.09341 -0.03834,-0.03164 -0.07636,-0.06456 -0.113963,-0.09715 -0.03754,-0.03261 -0.07533,-0.06552 -0.112089,-0.09902 -0.03675,-0.03348 -0.07238,-0.06656 -0.108359,-0.100882 -0.03596,-0.03436 -0.07326,-0.06942 -0.108359,-0.10462 -0.03515,-0.03515 -0.06848,-0.07047 -0.102755,-0.106486 -0.03428,-0.03603 -0.06935,-0.07341 -0.102755,-0.110225 -0.0334,-0.03683 -0.06648,-0.07262 -0.09902,-0.110223 -0.03252,-0.03762 -0.06361,-0.07556 -0.09528,-0.113963 -0.03164,-0.03843 -0.06265,-0.07852 -0.09341,-0.1177 -0.02583,-0.03285 -0.05149,-0.0656 -0.0766,-0.09902 z" + }) +); export const featureIcons = { + copyTimestampUrlButton: { + feature_menu: copyURLWithTimestampSVG, + shared_icon_position: copyURLWithTimestampSVG + }, decreasePlaybackSpeedButton: { feature_menu: decreasePlaybackSpeedButtonSVG, shared_icon_position: decreasePlaybackSpeedButtonSVG diff --git a/src/pages/content/index.ts b/src/pages/content/index.ts index 2f7d7776..1003bb55 100644 --- a/src/pages/content/index.ts +++ b/src/pages/content/index.ts @@ -281,6 +281,11 @@ const storageChangeHandler = async (changes: StorageChanges, areaName: string) = automaticTheaterModeEnabled: newValue }); }, + enable_copy_timestamp_url_button: (__oldValue, newValue) => { + sendExtensionOnlyMessage("copyTimestampUrlButtonChange", { + copyTimestampUrlButtonEnabled: newValue + }); + }, enable_custom_css: (__oldValue, newValue) => { sendExtensionOnlyMessage("customCSSChange", { customCSSCode: options.custom_css_code, customCSSEnabled: newValue }); }, diff --git a/src/pages/embedded/index.ts b/src/pages/embedded/index.ts index 650f971d..e2c57943 100644 --- a/src/pages/embedded/index.ts +++ b/src/pages/embedded/index.ts @@ -4,6 +4,7 @@ import { type FeatureFuncRecord, featureButtonFunctions } from "@/src/features"; import { enableAutomaticTheaterMode } from "@/src/features/automaticTheaterMode"; import { featuresInControls } from "@/src/features/buttonPlacement"; import { getFeatureButton, updateFeatureButtonIcon, updateFeatureButtonTitle } from "@/src/features/buttonPlacement/utils"; +import { addCopyTimestampUrlButton, removeCopyTimestampUrlButton } from "@/src/features/copyTimestampUrlButton"; import { disableCustomCSS, enableCustomCSS } from "@/src/features/customCSS"; import { customCSSExists, updateCustomCSS } from "@/src/features/customCSS/utils"; import { disableDeepDarkCSS, enableDeepDarkCSS } from "@/src/features/deepDarkCSS"; @@ -224,6 +225,7 @@ const enableFeatures = () => { await openTranscriptButton(); await addMaximizePlayerButton(); await addLoopButton(); + await addCopyTimestampUrlButton(); await volumeBoost(); })(); }; @@ -459,6 +461,17 @@ window.addEventListener("DOMContentLoaded", function () { } break; } + case "copyTimestampUrlButtonChange": { + const { + data: { copyTimestampUrlButtonEnabled } + } = message; + if (copyTimestampUrlButtonEnabled) { + await addCopyTimestampUrlButton(); + } else { + await removeCopyTimestampUrlButton(); + } + break; + } case "forwardRewindButtonsChange": { const { data: { forwardRewindButtonsEnabled } diff --git a/src/types/index.ts b/src/types/index.ts index d7762413..30e626cb 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -185,6 +185,7 @@ export type FeatureMenuItemIconId = `yte-${AllButtonNames}-icon`; export type FeatureMenuItemId = `yte-feature-${AllButtonNames}-menuitem`; export type FeatureMenuItemLabelId = `yte-${AllButtonNames}-label`; export const buttonNames = Object.keys({ + copyTimestampUrlButton: "", decreasePlaybackSpeedButton: "", forwardButton: "", hideEndScreenCardsButton: "", @@ -197,6 +198,7 @@ export const buttonNames = Object.keys({ volumeBoostButton: "" } satisfies Record); export const buttonNameToSettingName = { + copyTimestampUrlButton: "enable_copy_timestamp_url_button", decreasePlaybackSpeedButton: "enable_playback_speed_buttons", forwardButton: "enable_forward_rewind_buttons", hideEndScreenCardsButton: "enable_hide_end_screen_cards_button", @@ -318,6 +320,7 @@ export type ContentToBackgroundSendOnlyMessageMappings = { export type ExtensionSendOnlyMessageMappings = { automaticTheaterModeChange: DataResponseMessage<"automaticTheaterModeChange", { automaticTheaterModeEnabled: boolean }>; buttonPlacementChange: DataResponseMessage<"buttonPlacementChange", ButtonPlacementChange>; + copyTimestampUrlButtonChange: DataResponseMessage<"copyTimestampUrlButtonChange", { copyTimestampUrlButtonEnabled: boolean }>; customCSSChange: DataResponseMessage<"customCSSChange", { customCSSCode: string; customCSSEnabled: boolean }>; deepDarkThemeChange: DataResponseMessage< "deepDarkThemeChange", @@ -409,6 +412,7 @@ export type configuration = { deep_dark_preset: DeepDarkPreset; enable_automatic_theater_mode: boolean; enable_automatically_set_quality: boolean; + enable_copy_timestamp_url_button: boolean; enable_custom_css: boolean; enable_deep_dark_theme: boolean; enable_forced_playback_speed: boolean; diff --git a/src/utils/EventManager.ts b/src/utils/EventManager.ts index 96d47845..fe9407ec 100644 --- a/src/utils/EventManager.ts +++ b/src/utils/EventManager.ts @@ -1,5 +1,6 @@ export type FeatureName = | "automaticTheaterMode" + | "copyTimestampUrlButton" | "featureMenu" | "forwardRewindButtons" | "hideEndScreenCardsButton" diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 53a543fe..63aef939 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -23,6 +23,7 @@ import { export const outputFolderName = "dist"; export const defaultConfiguration = { button_placements: { + copyTimestampUrlButton: "player_controls_right", decreasePlaybackSpeedButton: "player_controls_left", forwardButton: "player_controls_right", hideEndScreenCardsButton: "player_controls_right", @@ -47,6 +48,7 @@ export const defaultConfiguration = { deep_dark_preset: "Deep-Dark", enable_automatic_theater_mode: false, enable_automatically_set_quality: false, + enable_copy_timestamp_url_button: false, enable_custom_css: false, enable_deep_dark_theme: false, enable_forced_playback_speed: false, @@ -135,6 +137,7 @@ export const configurationImportSchema: TypeToPartialZodSchema< deep_dark_preset: z.enum(deepDarkPreset).optional(), enable_automatic_theater_mode: z.boolean().optional(), enable_automatically_set_quality: z.boolean().optional(), + enable_copy_timestamp_url_button: z.boolean().optional(), enable_custom_css: z.boolean().optional(), enable_deep_dark_theme: z.boolean().optional(), enable_forced_playback_speed: z.boolean().optional(), From 98417a58bed4aa02ca36a146ebc05eb8c30693dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 01:32:55 +0000 Subject: [PATCH 016/121] build(deps-dev): bump @typescript-eslint/eslint-plugin Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.13.0 to 7.15.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.15.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 118 +++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fa05610..dbeab1ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2091,16 +2091,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.0.tgz", - "integrity": "sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", + "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/type-utils": "7.13.0", - "@typescript-eslint/utils": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/type-utils": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2124,13 +2124,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz", - "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0" + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2141,9 +2141,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", - "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2154,12 +2154,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz", - "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/types": "7.15.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2216,13 +2216,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz", - "integrity": "sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", + "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.13.0", - "@typescript-eslint/utils": "7.13.0", + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/utils": "7.15.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -2243,9 +2243,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", - "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2256,13 +2256,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz", - "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2284,12 +2284,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz", - "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/types": "7.15.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2342,15 +2342,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.0.tgz", - "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", + "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/typescript-estree": "7.13.0" + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2364,13 +2364,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz", - "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0" + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2381,9 +2381,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", - "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2394,13 +2394,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz", - "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2422,12 +2422,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz", - "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/types": "7.15.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { From 1156db7c33d48fecc44b10401267cd0b2968c2d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 01:33:13 +0000 Subject: [PATCH 017/121] build(deps-dev): bump vite from 5.3.1 to 5.3.3 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.1 to 5.3.3. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.3.3/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fa05610..c73a1cdb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10266,9 +10266,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -10381,9 +10381,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "funding": [ { "type": "opencollective", @@ -10400,7 +10400,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -12895,12 +12895,12 @@ } }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "rollup": "^4.13.0" }, "bin": { From 54f95967bf37c83c661430fc1cedf842a0a4ed16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 01:33:25 +0000 Subject: [PATCH 018/121] build(deps): bump @tanstack/react-query from 5.34.2 to 5.50.1 Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.34.2 to 5.50.1. - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.50.1/packages/react-query) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fa05610..513ec50c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1888,20 +1888,20 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.34.2", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.34.2.tgz", - "integrity": "sha512-FM1UXldYcoMiWmVbpewV14EVpnr/ETBbdF84tmCktx29e2bXBFhGtAfyDHUD4X1FehaV5tC9GkXZUMZRQV3lcA==", + "version": "5.50.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.50.1.tgz", + "integrity": "sha512-lpfhKPrJlyV2DSVcQb/HuozH3Av3kws4ge22agx+lNGpFkS4vLZ7St0l3GLwlAD+bqB+qXGex3JdRKUNtMviEQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "5.34.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.34.2.tgz", - "integrity": "sha512-5L9W9XQ/lRcyhlVN0xrOkPZE9PJxZWw7BdJR244j3G7sxMfSreZWvxx13DJt08M5DWn9B5VstpKgqpIIQOIJKA==", + "version": "5.50.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.50.1.tgz", + "integrity": "sha512-s0DW3rVBDPReDDovUjVqItVa3R2nPfUANK9nqGvarO2DwTiY9U4EBTsqizMxItRCoGgK5apeM7D3mxlHrSKpdQ==", "dependencies": { - "@tanstack/query-core": "5.34.2" + "@tanstack/query-core": "5.50.1" }, "funding": { "type": "github", From 17e33a38564e9eaebc9714896e799e2062f94f05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 01:33:37 +0000 Subject: [PATCH 019/121] build(deps-dev): bump eslint-plugin-jsx-a11y from 6.8.0 to 6.9.0 Bumps [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) from 6.8.0 to 6.9.0. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.8.0...v6.9.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsx-a11y dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 161 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 129 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fa05610..2c707182 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2672,12 +2672,12 @@ "dev": true }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, "dependencies": { - "dequal": "^2.0.3" + "deep-equal": "^2.0.5" } }, "node_modules/array-buffer-byte-length": { @@ -2922,21 +2922,21 @@ } }, "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", + "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", "dev": true, "dependencies": { - "dequal": "^2.0.3" + "deep-equal": "^2.0.5" } }, "node_modules/b4a": { @@ -3800,6 +3800,38 @@ } } }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -3849,15 +3881,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -4241,6 +4264,26 @@ "node": ">= 0.4" } }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-iterator-helpers": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", @@ -4573,27 +4616,27 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", + "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", "dev": true, "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", + "aria-query": "~5.1.3", + "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", + "axe-core": "^4.9.1", + "axobject-query": "~3.1.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", + "es-iterator-helpers": "^1.0.19", + "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.0" }, "engines": { "node": ">=4.0" @@ -5879,6 +5922,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -9900,6 +9959,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -11801,6 +11876,18 @@ "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", @@ -11934,6 +12021,16 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/string.prototype.includes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", + "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", From 5a553a581604d702ab24b87b0fe9f83831d75c65 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 01:33:48 +0000 Subject: [PATCH 020/121] build(deps-dev): bump @vitejs/plugin-react-swc from 3.6.0 to 3.7.0 Bumps [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) from 3.6.0 to 3.7.0. - [Release notes](https://github.com/vitejs/vite-plugin-react-swc/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react-swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react-swc/compare/v3.6.0...v3.7.0) --- updated-dependencies: - dependency-name: "@vitejs/plugin-react-swc" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 196 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 170 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fa05610..9a2d22dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1819,14 +1819,14 @@ } }, "node_modules/@swc/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.0.tgz", - "integrity": "sha512-fjADAC5gOOX54Rpcr1lF9DHLD+nPD5H/zXLtEgK2Ez3esmogT+LfHzCZtUxqetjvaMChKhQ0Pp0ZB6Hpz/tCbw==", + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.6.13.tgz", + "integrity": "sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.9" }, "engines": { "node": ">=10" @@ -1836,19 +1836,19 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.5.0", - "@swc/core-darwin-x64": "1.5.0", - "@swc/core-linux-arm-gnueabihf": "1.5.0", - "@swc/core-linux-arm64-gnu": "1.5.0", - "@swc/core-linux-arm64-musl": "1.5.0", - "@swc/core-linux-x64-gnu": "1.5.0", - "@swc/core-linux-x64-musl": "1.5.0", - "@swc/core-win32-arm64-msvc": "1.5.0", - "@swc/core-win32-ia32-msvc": "1.5.0", - "@swc/core-win32-x64-msvc": "1.5.0" + "@swc/core-darwin-arm64": "1.6.13", + "@swc/core-darwin-x64": "1.6.13", + "@swc/core-linux-arm-gnueabihf": "1.6.13", + "@swc/core-linux-arm64-gnu": "1.6.13", + "@swc/core-linux-arm64-musl": "1.6.13", + "@swc/core-linux-x64-gnu": "1.6.13", + "@swc/core-linux-x64-musl": "1.6.13", + "@swc/core-win32-arm64-msvc": "1.6.13", + "@swc/core-win32-ia32-msvc": "1.6.13", + "@swc/core-win32-x64-msvc": "1.6.13" }, "peerDependencies": { - "@swc/helpers": "^0.5.0" + "@swc/helpers": "*" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -1856,10 +1856,154 @@ } } }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.6.13.tgz", + "integrity": "sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.6.13.tgz", + "integrity": "sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.6.13.tgz", + "integrity": "sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.6.13.tgz", + "integrity": "sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.6.13.tgz", + "integrity": "sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.6.13.tgz", + "integrity": "sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.6.13.tgz", + "integrity": "sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.6.13.tgz", + "integrity": "sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.6.13.tgz", + "integrity": "sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.0.tgz", - "integrity": "sha512-ZairtCwJsaxnUH85DcYCyGpNb9bUoIm9QXYW+VaEoXwbcB95dTIiJwN0aRxPT8B0B2MNw/CXLqjoPo6sDwz5iw==", + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.6.13.tgz", + "integrity": "sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==", "cpu": [ "x64" ], @@ -1879,9 +2023,9 @@ "dev": true }, "node_modules/@swc/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.9.tgz", + "integrity": "sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==", "dev": true, "dependencies": { "@swc/counter": "^0.1.3" @@ -2462,12 +2606,12 @@ "dev": true }, "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", "dev": true, "dependencies": { - "@swc/core": "^1.3.107" + "@swc/core": "^1.5.7" }, "peerDependencies": { "vite": "^4 || ^5" From 279f6f18b5fa9416b0c8edc47e5189abc0eae251 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:59:23 +0000 Subject: [PATCH 021/121] docs: update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf5c7cbf..a3aa8225 100755 --- a/README.md +++ b/README.md @@ -291,7 +291,7 @@ Contributions to the YouTube Enhancer Extension are welcome! If you'd like to co mist8kengas
mist8kengas

🌍 💻 🐛 Nathan
Nathan

🎨 💻 🌍 Commonly
Commonly

🐛 - Eduardo Aznar
Eduardo Aznar

🌍 💻 + Eduardo Aznar
Eduardo Aznar

🌍 Lamyergeier
Lamyergeier

🤔 Jackal Chan
Jackal Chan

🌍 livingflore
livingflore

🌍 💻 @@ -308,8 +308,10 @@ Contributions to the YouTube Enhancer Extension are welcome! If you'd like to co Marcos C.R.
Marcos C.R.

🤔 Carlos Ramos Luna
Carlos Ramos Luna

🤔 - Mabra51
Mabra51

🤔 앙시모사우루스
앙시모사우루스

🌍 + Mabra51
Mabra51

🤔 + Eduardo Aznar
Eduardo Aznar

🌍 💻 + pyrix
pyrix

🤔 From 6bff33a632b07fe82885c4149ddf7f3588e93a04 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:59:24 +0000 Subject: [PATCH 022/121] docs: update .all-contributorsrc --- .all-contributorsrc | 320 +++++++++++++++++++++++++------------------- 1 file changed, 186 insertions(+), 134 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index b3c71be9..b59bf6d0 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,137 +1,180 @@ { - "projectName": "extension", - "projectOwner": "YouTube-Enhancer", - "files": ["README.md"], - "commitType": "docs", - "commitConvention": "angular", - "contributorsPerLine": 7, - "contributors": [ - { - "login": "mist8kengas", - "name": "mist8kengas", - "avatar_url": "https://avatars.githubusercontent.com/u/46955469?v=4", - "profile": "https://hioctane.org", - "contributions": ["translation", "code", "bug"] - }, - { - "login": "VampireChicken12", - "name": "Nathan", - "avatar_url": "https://avatars.githubusercontent.com/u/45531575?v=4", - "profile": "https://hikari-bot.com", - "contributions": ["design", "code", "translation"] - }, - { - "login": "commonly-ts", - "name": "Commonly", - "avatar_url": "https://avatars.githubusercontent.com/u/51011212?v=4", - "profile": "https://github.com/commonly-ts", - "contributions": ["bug"] - }, - { - "login": "eduardozgz", - "name": "Eduardo Aznar", - "avatar_url": "https://avatars.githubusercontent.com/u/30407412?v=4", - "profile": "https://eduardozgz.com", - "contributions": ["translation"] - }, - { - "login": "lamyergeier", - "name": "Lamyergeier", - "avatar_url": "https://avatars.githubusercontent.com/u/42092626?v=4", - "profile": "https://github.com/lamyergeier", - "contributions": ["ideas"] - }, - { - "login": "SleepyPrince", - "name": "Jackal Chan", - "avatar_url": "https://avatars.githubusercontent.com/u/670216?v=4", - "profile": "https://github.com/SleepyPrince", - "contributions": ["translation"] - }, - { - "login": "livingflore", - "name": "livingflore", - "avatar_url": "https://avatars.githubusercontent.com/u/63370734?v=4", - "profile": "http://livingflore.me", - "contributions": ["translation", "code"] - }, - { - "login": "crvt7", - "name": "Patryk Popardowski", - "avatar_url": "https://avatars.githubusercontent.com/u/79649679?v=4", - "profile": "https://github.com/crvt7", - "contributions": ["translation"] - }, - { - "login": "luisaosan", - "name": "Luis Felipe", - "avatar_url": "https://avatars.githubusercontent.com/u/48157083?v=4", - "profile": "https://github.com/luisaosan", - "contributions": ["translation"] - }, - { - "login": "v1ctorio", - "name": "Vic", - "avatar_url": "https://avatars.githubusercontent.com/u/74506415?v=4", - "profile": "http://nosesisaid.com", - "contributions": ["translation"] - }, - { - "login": "rado84-github", - "name": "rado84", - "avatar_url": "https://avatars.githubusercontent.com/u/41172201?v=4", - "profile": "https://github.com/rado84-github", - "contributions": ["bug"] - }, - { - "login": "pulsar2105", - "name": "pulsar2105", - "avatar_url": "https://avatars.githubusercontent.com/u/54115653?v=4", - "profile": "https://github.com/pulsar2105", - "contributions": ["translation"] - }, - { - "login": "G-Ran-Berg", - "name": "Granberg", - "avatar_url": "https://avatars.githubusercontent.com/u/12037193?v=4", - "profile": "https://github.com/G-Ran-Berg", - "contributions": ["translation"] - }, - { - "login": "Secret-Peter", - "name": "Secret-Peter", - "avatar_url": "https://avatars.githubusercontent.com/u/166921574?v=4", - "profile": "https://github.com/Secret-Peter", - "contributions": ["translation"] - }, - { - "login": "szaumoor", - "name": "Marcos C.R.", - "avatar_url": "https://avatars.githubusercontent.com/u/78204388?v=4", - "profile": "https://github.com/szaumoor", - "contributions": ["ideas"] - }, - { - "login": "charlymoon741", - "name": "Carlos Ramos Luna", - "avatar_url": "https://avatars.githubusercontent.com/u/62484941?v=4", - "profile": "https://github.com/charlymoon741", - "contributions": ["ideas"] - }, - { - "login": "Angsimosaurus", - "name": "앙시모사우루스", - "avatar_url": "https://avatars.githubusercontent.com/u/79510039?v=4", - "profile": "https://github.com/Angsimosaurus", - "contributions": ["translation"] - }, - { - "login": "Mabra51", - "name": "Mabra51", - "avatar_url": "https://avatars.githubusercontent.com/u/12016338?v=4", - "profile": "https://github.com/Mabra51", - "contributions": ["ideas"] - }, + "projectName": "extension", + "projectOwner": "YouTube-Enhancer", + "files": [ + "README.md" + ], + "commitType": "docs", + "commitConvention": "angular", + "contributorsPerLine": 7, + "contributors": [ + { + "login": "mist8kengas", + "name": "mist8kengas", + "avatar_url": "https://avatars.githubusercontent.com/u/46955469?v=4", + "profile": "https://hioctane.org", + "contributions": [ + "translation", + "code", + "bug" + ] + }, + { + "login": "VampireChicken12", + "name": "Nathan", + "avatar_url": "https://avatars.githubusercontent.com/u/45531575?v=4", + "profile": "https://hikari-bot.com", + "contributions": [ + "design", + "code", + "translation" + ] + }, + { + "login": "commonly-ts", + "name": "Commonly", + "avatar_url": "https://avatars.githubusercontent.com/u/51011212?v=4", + "profile": "https://github.com/commonly-ts", + "contributions": [ + "bug" + ] + }, + { + "login": "eduardozgz", + "name": "Eduardo Aznar", + "avatar_url": "https://avatars.githubusercontent.com/u/30407412?v=4", + "profile": "https://eduardozgz.com", + "contributions": [ + "translation" + ] + }, + { + "login": "lamyergeier", + "name": "Lamyergeier", + "avatar_url": "https://avatars.githubusercontent.com/u/42092626?v=4", + "profile": "https://github.com/lamyergeier", + "contributions": [ + "ideas" + ] + }, + { + "login": "SleepyPrince", + "name": "Jackal Chan", + "avatar_url": "https://avatars.githubusercontent.com/u/670216?v=4", + "profile": "https://github.com/SleepyPrince", + "contributions": [ + "translation" + ] + }, + { + "login": "livingflore", + "name": "livingflore", + "avatar_url": "https://avatars.githubusercontent.com/u/63370734?v=4", + "profile": "http://livingflore.me", + "contributions": [ + "translation", + "code" + ] + }, + { + "login": "crvt7", + "name": "Patryk Popardowski", + "avatar_url": "https://avatars.githubusercontent.com/u/79649679?v=4", + "profile": "https://github.com/crvt7", + "contributions": [ + "translation" + ] + }, + { + "login": "luisaosan", + "name": "Luis Felipe", + "avatar_url": "https://avatars.githubusercontent.com/u/48157083?v=4", + "profile": "https://github.com/luisaosan", + "contributions": [ + "translation" + ] + }, + { + "login": "v1ctorio", + "name": "Vic", + "avatar_url": "https://avatars.githubusercontent.com/u/74506415?v=4", + "profile": "http://nosesisaid.com", + "contributions": [ + "translation" + ] + }, + { + "login": "rado84-github", + "name": "rado84", + "avatar_url": "https://avatars.githubusercontent.com/u/41172201?v=4", + "profile": "https://github.com/rado84-github", + "contributions": [ + "bug" + ] + }, + { + "login": "pulsar2105", + "name": "pulsar2105", + "avatar_url": "https://avatars.githubusercontent.com/u/54115653?v=4", + "profile": "https://github.com/pulsar2105", + "contributions": [ + "translation" + ] + }, + { + "login": "G-Ran-Berg", + "name": "Granberg", + "avatar_url": "https://avatars.githubusercontent.com/u/12037193?v=4", + "profile": "https://github.com/G-Ran-Berg", + "contributions": [ + "translation" + ] + }, + { + "login": "Secret-Peter", + "name": "Secret-Peter", + "avatar_url": "https://avatars.githubusercontent.com/u/166921574?v=4", + "profile": "https://github.com/Secret-Peter", + "contributions": [ + "translation" + ] + }, + { + "login": "szaumoor", + "name": "Marcos C.R.", + "avatar_url": "https://avatars.githubusercontent.com/u/78204388?v=4", + "profile": "https://github.com/szaumoor", + "contributions": [ + "ideas" + ] + }, + { + "login": "charlymoon741", + "name": "Carlos Ramos Luna", + "avatar_url": "https://avatars.githubusercontent.com/u/62484941?v=4", + "profile": "https://github.com/charlymoon741", + "contributions": [ + "ideas" + ] + }, + { + "login": "Angsimosaurus", + "name": "앙시모사우루스", + "avatar_url": "https://avatars.githubusercontent.com/u/79510039?v=4", + "profile": "https://github.com/Angsimosaurus", + "contributions": [ + "translation" + ] + }, + { + "login": "Mabra51", + "name": "Mabra51", + "avatar_url": "https://avatars.githubusercontent.com/u/12016338?v=4", + "profile": "https://github.com/Mabra51", + "contributions": [ + "ideas" + ] + }, { "login": "eduardozgz", "name": "Eduardo Aznar", @@ -141,6 +184,15 @@ "translation", "code" ] + }, + { + "login": "at-pyrix", + "name": "pyrix", + "avatar_url": "https://avatars.githubusercontent.com/u/90166733?v=4", + "profile": "https://notyasho.netlify.app/blogs", + "contributions": [ + "ideas" + ] } - ] + ] } From b2b732ed0b45032ad00e74298809f1d6aa059261 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 04:32:54 +0000 Subject: [PATCH 023/121] docs: update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a3aa8225..16fa12e9 100755 --- a/README.md +++ b/README.md @@ -311,7 +311,7 @@ Contributions to the YouTube Enhancer Extension are welcome! If you'd like to co 앙시모사우루스
앙시모사우루스

🌍 Mabra51
Mabra51

🤔 Eduardo Aznar
Eduardo Aznar

🌍 💻 - pyrix
pyrix

🤔 + pyrix
pyrix

🤔 🎨 From 4c49833c878679c269194fdf463bfc08890062f6 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 04:32:55 +0000 Subject: [PATCH 024/121] docs: update .all-contributorsrc --- .all-contributorsrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index b59bf6d0..a1167b73 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -191,7 +191,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/90166733?v=4", "profile": "https://notyasho.netlify.app/blogs", "contributions": [ - "ideas" + "ideas", + "design" ] } ] From 8884b3e63eab9ba2361039cdffe16a1967a1a751 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Tue, 9 Jul 2024 17:04:57 -0400 Subject: [PATCH 025/121] style search bar without css file --- src/components/Settings/Settings.css | 2 -- src/components/Settings/components/SettingSearch.tsx | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/components/Settings/Settings.css b/src/components/Settings/Settings.css index a23089f3..df91a208 100644 --- a/src/components/Settings/Settings.css +++ b/src/components/Settings/Settings.css @@ -185,7 +185,6 @@ hr { } /* inputs */ -input[type="text"], input[type="button"], button[id="openinnewtab_button"], select { @@ -194,7 +193,6 @@ select { font-size: 12px; } -input[type="text"], button[id="openinnewtab_button"], select { border: 0; diff --git a/src/components/Settings/components/SettingSearch.tsx b/src/components/Settings/components/SettingSearch.tsx index a4da0fd9..5a3fd9d9 100644 --- a/src/components/Settings/components/SettingSearch.tsx +++ b/src/components/Settings/components/SettingSearch.tsx @@ -13,7 +13,7 @@ export default function SettingSearch({ i18nInstance }: { i18nInstance: i18nInst return (
) => setFilter(e.target.value)} placeholder={t("settings.sections.settingSearch.placeholder")} ref={inputRef} From 5269f33e700134c1753999b0e0151f4dcc83617c Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Tue, 9 Jul 2024 17:07:50 -0400 Subject: [PATCH 026/121] fix(playback speed buttons): decrease increasing speed --- src/features/playbackSpeedButtons/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/features/playbackSpeedButtons/index.ts b/src/features/playbackSpeedButtons/index.ts index 5ab12b26..bd806880 100644 --- a/src/features/playbackSpeedButtons/index.ts +++ b/src/features/playbackSpeedButtons/index.ts @@ -169,7 +169,7 @@ export const addDecreasePlaybackSpeedButton: AddButtonFunction = async () => { } ), getFeatureIcon("decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement), - playbackSpeedButtonClickListener(-playbackSpeedPerClick, "decrease"), + playbackSpeedButtonClickListener(playbackSpeedPerClick, "decrease"), false ); }; From bdff27da70d174d3b55275ca20e3a3d7f2b8db0a Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Sat, 13 Jul 2024 17:11:07 -0400 Subject: [PATCH 027/121] chore: fix lint, format issue --- src/components/Settings/Settings.css | 10 ++++---- src/components/Settings/Settings.tsx | 24 +++++++++---------- .../hidePaidPromotionBanner/index.css | 2 +- src/utils/utilities.ts | 4 ++-- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/components/Settings/Settings.css b/src/components/Settings/Settings.css index df91a208..38e84711 100644 --- a/src/components/Settings/Settings.css +++ b/src/components/Settings/Settings.css @@ -74,7 +74,7 @@ html { } /* https://stackoverflow.com/questions/11243337/a-taller-than-its-img-child */ -a>img { +a > img { display: block; } @@ -94,11 +94,11 @@ fieldset { padding-left: 0 !important; } -fieldset>p:first-of-type { +fieldset > p:first-of-type { margin-top: 0 !important; } -fieldset>p:last-of-type { +fieldset > p:last-of-type { margin-bottom: 0 !important; } @@ -357,7 +357,7 @@ button[id="openinnewtab_button"] { z-index: 100; } -#notifications>.notification { +#notifications > .notification { border-radius: var(--border-radius-md); padding: 10px 14px; -} \ No newline at end of file +} diff --git a/src/components/Settings/Settings.tsx b/src/components/Settings/Settings.tsx index 5c0a19c5..f5f66d57 100644 --- a/src/components/Settings/Settings.tsx +++ b/src/components/Settings/Settings.tsx @@ -122,8 +122,8 @@ async function setSettings(settings: configuration) { localStorage.setItem(key, JSON.stringify(settings[key])); await chrome.storage.local.set({ [key]: JSON.stringify(settings[key]) }); } else { - localStorage.setItem(key, settings[key] as string); - await chrome.storage.local.set({ [key]: settings[key] as string }); + localStorage.setItem(key, settings[key]); + await chrome.storage.local.set({ [key]: settings[key] }); } } } @@ -204,8 +204,8 @@ export default function Settings() { localStorage.setItem(key, JSON.stringify(defaultSettings[key])); void chrome.storage.local.set({ [key]: JSON.stringify(defaultSettings[key]) }); } else { - localStorage.setItem(key, defaultSettings[key] as string); - void chrome.storage.local.set({ [key]: defaultSettings[key] as string }); + localStorage.setItem(key, defaultSettings[key]); + void chrome.storage.local.set({ [key]: defaultSettings[key] }); } } addNotification("success", "settings.clearData.allDataDeleted"); @@ -435,8 +435,8 @@ export default function Settings() { localStorage.setItem(key, JSON.stringify(castSettings[key])); void chrome.storage.local.set({ [key]: JSON.stringify(castSettings[key]) }); } else { - localStorage.setItem(key, castSettings[key] as string); - void chrome.storage.local.set({ [key]: castSettings[key] as string }); + localStorage.setItem(key, castSettings[key]); + void chrome.storage.local.set({ [key]: castSettings[key] }); } } await updateStoredSettings(); @@ -1202,7 +1202,7 @@ export default function Settings() {
{isPopup && ( )} {notifications.filter((n) => n.action === "reset_settings").length > 0 ? { const notificationToRemove = notifications.find((n) => n.action === "reset_settings"); @@ -1261,7 +1261,7 @@ export default function Settings() { value={t("settings.sections.bottomButtons.confirm.value")} /> : ); if (multiButtonFeatureNames === undefined) return; @@ -738,7 +738,7 @@ export function groupButtonChanges(changes: ButtonPlacementChange): { multiButtonChanges[multiButtonFeatureNames] = {}; } // eslint-disable-next-line prefer-destructuring - multiButtonChanges[multiButtonFeatureNames]![buttonName as keyof FeatureToMultiButtonMap[typeof multiButtonFeatureNames]] = + multiButtonChanges[multiButtonFeatureNames][buttonName as keyof FeatureToMultiButtonMap[typeof multiButtonFeatureNames]] = changes.buttonPlacement[buttonName as keyof FeatureToMultiButtonMap[typeof multiButtonFeatureNames]]; } }); From 394b59fa8e77ce070dc0bf2037e020d0f362d52c Mon Sep 17 00:00:00 2001 From: livingflore Date: Sun, 14 Jul 2024 04:41:02 +0500 Subject: [PATCH 028/121] fix: playback speed buttons tooltip --- src/features/playbackSpeedButtons/index.ts | 53 ++++++++++++---------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/features/playbackSpeedButtons/index.ts b/src/features/playbackSpeedButtons/index.ts index bd806880..b0b56c3d 100644 --- a/src/features/playbackSpeedButtons/index.ts +++ b/src/features/playbackSpeedButtons/index.ts @@ -12,10 +12,13 @@ import type { AddButtonFunction, RemoveButtonFunction } from "../index"; let currentPlaybackSpeed = 1; export function calculatePlaybackButtonSpeed(speed: number, playbackSpeedPerClick: number, direction: "decrease" | "increase") { const calculatedSpeed = - speed == 4 && direction == "increase" ? 4 - : speed == 0.25 && direction == "decrease" ? 0.25 - : direction == "decrease" ? speed - playbackSpeedPerClick - : speed + playbackSpeedPerClick; + speed == 4 && direction == "increase" + ? 4 + : speed == 0.25 && direction == "decrease" + ? 0.25 + : direction == "decrease" + ? speed - playbackSpeedPerClick + : speed + playbackSpeedPerClick; return calculatedSpeed; } export async function updatePlaybackSpeedButtonTooltip( @@ -33,6 +36,9 @@ export async function updatePlaybackSpeedButtonTooltip("video"); + if (!videoElement) return; + ({ playbackRate: currentPlaybackSpeed } = videoElement); const featureName = "playbackSpeedButtons"; const button = getFeatureButton(buttonName); if (!button) return; @@ -44,10 +50,12 @@ export async function updatePlaybackSpeedButtonTooltip 4) return; - const playerContainer = - isWatchPage() ? document.querySelector("div#movie_player") - : isShortsPage() ? document.querySelector("div#shorts-player") + const playerContainer = isWatchPage() + ? document.querySelector("div#movie_player") + : isShortsPage() + ? document.querySelector("div#shorts-player") : null; if (!playerContainer) return; const optionsData = await waitForSpecificMessage("options", "request_data", "content"); @@ -95,14 +104,8 @@ function playbackSpeedButtonClickListener(speedPerClick: number, direction: "dec ); const speed = currentPlaybackSpeed + adjustmentAmount; await setPlayerSpeed(speed); - await updatePlaybackSpeedButtonTooltip( - "increasePlaybackSpeedButton", - calculatePlaybackButtonSpeed(currentPlaybackSpeed, speedPerClick, "increase") - ); - await updatePlaybackSpeedButtonTooltip( - "decreasePlaybackSpeedButton", - calculatePlaybackButtonSpeed(currentPlaybackSpeed, speedPerClick, "decrease") - ); + await updatePlaybackSpeedButtonTooltip("increasePlaybackSpeedButton", calculatePlaybackButtonSpeed(speed, speedPerClick, "increase")); + await updatePlaybackSpeedButtonTooltip("decreasePlaybackSpeedButton", calculatePlaybackButtonSpeed(speed, speedPerClick, "decrease")); } catch (error) { console.error(error); } @@ -129,9 +132,9 @@ export const addIncreasePlaybackSpeedButton: AddButtonFunction = async () => { "increasePlaybackSpeedButton", increasePlaybackSpeedButtonPlacement, window.i18nextInstance.t( - currentPlaybackSpeed == 4 ? - `pages.content.features.playbackSpeedButtons.increaseLimit` - : "pages.content.features.playbackSpeedButtons.buttons.increasePlaybackSpeedButton.label", + currentPlaybackSpeed == 4 + ? `pages.content.features.playbackSpeedButtons.increaseLimit` + : "pages.content.features.playbackSpeedButtons.buttons.increasePlaybackSpeedButton.label", { SPEED: calculatePlaybackButtonSpeed(currentPlaybackSpeed, playbackSpeedPerClick, "increase") } @@ -161,9 +164,9 @@ export const addDecreasePlaybackSpeedButton: AddButtonFunction = async () => { "decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement, window.i18nextInstance.t( - currentPlaybackSpeed == 0.25 ? - `pages.content.features.playbackSpeedButtons.decreaseLimit` - : "pages.content.features.playbackSpeedButtons.buttons.decreasePlaybackSpeedButton.label", + currentPlaybackSpeed == 0.25 + ? `pages.content.features.playbackSpeedButtons.decreaseLimit` + : "pages.content.features.playbackSpeedButtons.buttons.decreasePlaybackSpeedButton.label", { SPEED: calculatePlaybackButtonSpeed(currentPlaybackSpeed, playbackSpeedPerClick, "decrease") } From 585adc9cb1b0453485a8b2978d5c2172a5b61024 Mon Sep 17 00:00:00 2001 From: livingflore Date: Sun, 14 Jul 2024 04:52:56 +0500 Subject: [PATCH 029/121] fix: disable playback speed buttons when live --- src/features/playbackSpeedButtons/index.ts | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/features/playbackSpeedButtons/index.ts b/src/features/playbackSpeedButtons/index.ts index b0b56c3d..b63e7528 100644 --- a/src/features/playbackSpeedButtons/index.ts +++ b/src/features/playbackSpeedButtons/index.ts @@ -1,7 +1,7 @@ import type { YouTubePlayerDiv } from "@/src/types"; import { addFeatureButton, removeFeatureButton } from "@/src/features/buttonPlacement"; -import { getFeatureButton } from "@/src/features/buttonPlacement/utils"; +import { checkIfFeatureButtonExists, getFeatureButton } from "@/src/features/buttonPlacement/utils"; import { setPlayerSpeed } from "@/src/features/playerSpeed"; import { getFeatureIcon } from "@/src/icons"; import eventManager from "@/src/utils/EventManager"; @@ -128,6 +128,18 @@ export const addIncreasePlaybackSpeedButton: AddButtonFunction = async () => { const videoElement = document.querySelector("video"); if (!videoElement) return; ({ playbackRate: currentPlaybackSpeed } = videoElement); + const playerContainer = isWatchPage() + ? document.querySelector("div#movie_player") + : isShortsPage() + ? document.querySelector("div#shorts-player") + : null; + if (!playerContainer) return; + const playerVideoData = await playerContainer.getVideoData(); + if (playerVideoData.isLive && checkIfFeatureButtonExists("increasePlaybackSpeedButton", increasePlaybackSpeedButtonPlacement)) { + await removeFeatureButton("increasePlaybackSpeedButton", increasePlaybackSpeedButtonPlacement); + eventManager.removeEventListeners("playbackSpeedButtons"); + } + if (playerVideoData.isLive) return; await addFeatureButton( "increasePlaybackSpeedButton", increasePlaybackSpeedButtonPlacement, @@ -160,6 +172,18 @@ export const addDecreasePlaybackSpeedButton: AddButtonFunction = async () => { const videoElement = document.querySelector("video"); if (!videoElement) return; ({ playbackRate: currentPlaybackSpeed } = videoElement); + const playerContainer = isWatchPage() + ? document.querySelector("div#movie_player") + : isShortsPage() + ? document.querySelector("div#shorts-player") + : null; + if (!playerContainer) return; + const playerVideoData = await playerContainer.getVideoData(); + if (playerVideoData.isLive && checkIfFeatureButtonExists("decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement)) { + await removeFeatureButton("decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement); + eventManager.removeEventListeners("playbackSpeedButtons"); + } + if (playerVideoData.isLive) return; await addFeatureButton( "decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement, From 8edf9a4e7d2adae048dc6047ecd66069e01070ba Mon Sep 17 00:00:00 2001 From: livingflore Date: Sun, 14 Jul 2024 05:01:26 +0500 Subject: [PATCH 030/121] fix: video id obtaining Co-authored-by: Nathan <45531575+VampireChicken12@users.noreply.github.com> --- src/features/copyTimestampUrlButton/index.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/features/copyTimestampUrlButton/index.ts b/src/features/copyTimestampUrlButton/index.ts index bd9dd1a1..15d636a0 100644 --- a/src/features/copyTimestampUrlButton/index.ts +++ b/src/features/copyTimestampUrlButton/index.ts @@ -17,11 +17,10 @@ export const addCopyTimestampUrlButton: AddButtonFunction = async () => { } = await waitForSpecificMessage("options", "request_data", "content"); if (!enableCopyTimestampUrlButton) return; function copyTimestampUrlButtonClickListener() { - void (() => { + (() => { const videoElement = document.querySelector("video"); - const watchGrid = document.querySelector("ytd-watch-grid"); - if (!videoElement || !watchGrid) return; - const videoId = watchGrid.getAttribute("video-id"); + if (!videoElement) return; + const videoId = new URLSearchParams(window.location.search).get("v"); const timestampUrl = `https://youtu.be/${videoId}?t=${videoElement.currentTime.toFixed()}`; void navigator.clipboard.writeText(timestampUrl); const button = getFeatureButton("copyTimestampUrlButton"); From 7e2cf71eb3ff80030d9be454507d184f2690cb31 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Sat, 13 Jul 2024 23:32:35 -0400 Subject: [PATCH 031/121] chore: remove iife --- src/features/copyTimestampUrlButton/index.ts | 40 ++++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/src/features/copyTimestampUrlButton/index.ts b/src/features/copyTimestampUrlButton/index.ts index 15d636a0..2e7b447b 100644 --- a/src/features/copyTimestampUrlButton/index.ts +++ b/src/features/copyTimestampUrlButton/index.ts @@ -17,28 +17,26 @@ export const addCopyTimestampUrlButton: AddButtonFunction = async () => { } = await waitForSpecificMessage("options", "request_data", "content"); if (!enableCopyTimestampUrlButton) return; function copyTimestampUrlButtonClickListener() { - (() => { - const videoElement = document.querySelector("video"); - if (!videoElement) return; - const videoId = new URLSearchParams(window.location.search).get("v"); - const timestampUrl = `https://youtu.be/${videoId}?t=${videoElement.currentTime.toFixed()}`; - void navigator.clipboard.writeText(timestampUrl); - const button = getFeatureButton("copyTimestampUrlButton"); - if (!button) return; - const { remove, update } = createTooltip({ - direction: copyTimestampUrlButtonPlacement === "below_player" ? "down" : "up", - element: button, - featureName: "copyTimestampUrlButton", - id: "yte-feature-copyTimestampUrlButton-tooltip" - }); - button.dataset.title = window.i18nextInstance.t("pages.content.features.copyTimestampUrlButton.button.copied"); + const videoElement = document.querySelector("video"); + if (!videoElement) return; + const videoId = new URLSearchParams(window.location.search).get("v"); + const timestampUrl = `https://youtu.be/${videoId}?t=${videoElement.currentTime.toFixed()}`; + void navigator.clipboard.writeText(timestampUrl); + const button = getFeatureButton("copyTimestampUrlButton"); + if (!button) return; + const { remove, update } = createTooltip({ + direction: copyTimestampUrlButtonPlacement === "below_player" ? "down" : "up", + element: button, + featureName: "copyTimestampUrlButton", + id: "yte-feature-copyTimestampUrlButton-tooltip" + }); + button.dataset.title = window.i18nextInstance.t("pages.content.features.copyTimestampUrlButton.button.copied"); + update(); + setTimeout(() => { + remove(); + button.dataset.title = window.i18nextInstance.t("pages.content.features.copyTimestampUrlButton.button.label"); update(); - setTimeout(() => { - remove(); - button.dataset.title = window.i18nextInstance.t("pages.content.features.copyTimestampUrlButton.button.label"); - update(); - }, 1000); - })(); + }, 1000); } await addFeatureButton( "copyTimestampUrlButton", From af0d053d630d802528daa33fa195de5d4bb09c70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:55:11 +0000 Subject: [PATCH 032/121] build(deps-dev): bump @typescript-eslint/eslint-plugin Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.15.0 to 7.16.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.16.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 118 +++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b0f06c..f7591813 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2235,16 +2235,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", - "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", + "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/type-utils": "7.15.0", - "@typescript-eslint/utils": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/type-utils": "7.16.0", + "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2268,13 +2268,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", + "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0" + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2285,9 +2285,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", + "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2298,12 +2298,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", + "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/types": "7.16.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2360,13 +2360,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", - "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", + "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/utils": "7.16.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -2387,9 +2387,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", + "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2400,13 +2400,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", + "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2428,12 +2428,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", + "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/types": "7.16.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2486,15 +2486,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", - "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", + "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0" + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2508,13 +2508,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", + "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0" + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2525,9 +2525,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", + "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2538,13 +2538,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", + "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2566,12 +2566,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", + "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/types": "7.16.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { From b48b186ed8a6b958d37f3d48ce80142735edc778 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:55:20 +0000 Subject: [PATCH 033/121] build(deps-dev): bump tailwind-merge from 2.3.0 to 2.4.0 Bumps [tailwind-merge](https://github.com/dcastil/tailwind-merge) from 2.3.0 to 2.4.0. - [Release notes](https://github.com/dcastil/tailwind-merge/releases) - [Commits](https://github.com/dcastil/tailwind-merge/compare/v2.3.0...v2.4.0) --- updated-dependencies: - dependency-name: tailwind-merge dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b0f06c..d7c3d658 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12438,13 +12438,10 @@ } }, "node_modules/tailwind-merge": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz", - "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz", + "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.24.1" - }, "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" From 1f667df7a191907ad20eeb0345aa443970eeba85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:55:29 +0000 Subject: [PATCH 034/121] build(deps-dev): bump eslint-plugin-react from 7.34.3 to 7.34.4 Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.3 to 7.34.4. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b0f06c..207152e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4902,9 +4902,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", - "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", + "version": "7.34.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.4.tgz", + "integrity": "sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==", "dev": true, "dependencies": { "array-includes": "^3.1.8", @@ -4915,16 +4915,17 @@ "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" @@ -10192,23 +10193,6 @@ "node": ">= 0.4" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", @@ -12201,6 +12185,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", From 65cae5c39211b53c4d90a0040e3d2a6c50d5aee3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:55:42 +0000 Subject: [PATCH 035/121] build(deps-dev): bump @types/node from 20.14.9 to 20.14.10 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.9 to 20.14.10. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b0f06c..8e6bcc55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2169,9 +2169,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", - "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "dependencies": { "undici-types": "~5.26.4" } From 6f33e2e287b86b4fb22d76c76f29bb2812f4b08d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:55:51 +0000 Subject: [PATCH 036/121] build(deps-dev): bump eslint-plugin-promise from 6.2.0 to 6.4.0 Bumps [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) from 6.2.0 to 6.4.0. - [Release notes](https://github.com/eslint-community/eslint-plugin-promise/releases) - [Changelog](https://github.com/eslint-community/eslint-plugin-promise/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint-community/eslint-plugin-promise/compare/v6.2.0...v6.4.0) --- updated-dependencies: - dependency-name: eslint-plugin-promise dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b0f06c..9ccf1bd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4887,9 +4887,9 @@ } }, "node_modules/eslint-plugin-promise": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz", - "integrity": "sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.4.0.tgz", + "integrity": "sha512-/KWWRaD3fGkVCZsdR0RU53PSthFmoHVhZl+y9+6DqeDLSikLdlUVpVEAmI6iCRR5QyOjBYBqHZV/bdv4DJ4Gtw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" From 5254afc32c93fb1fce1020b7d204debb5f082f0a Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Mon, 15 Jul 2024 10:54:54 -0400 Subject: [PATCH 037/121] chore: run lint --- src/features/playbackSpeedButtons/index.ts | 54 +++++++++------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/src/features/playbackSpeedButtons/index.ts b/src/features/playbackSpeedButtons/index.ts index b63e7528..c51cdef1 100644 --- a/src/features/playbackSpeedButtons/index.ts +++ b/src/features/playbackSpeedButtons/index.ts @@ -12,13 +12,10 @@ import type { AddButtonFunction, RemoveButtonFunction } from "../index"; let currentPlaybackSpeed = 1; export function calculatePlaybackButtonSpeed(speed: number, playbackSpeedPerClick: number, direction: "decrease" | "increase") { const calculatedSpeed = - speed == 4 && direction == "increase" - ? 4 - : speed == 0.25 && direction == "decrease" - ? 0.25 - : direction == "decrease" - ? speed - playbackSpeedPerClick - : speed + playbackSpeedPerClick; + speed == 4 && direction == "increase" ? 4 + : speed == 0.25 && direction == "decrease" ? 0.25 + : direction == "decrease" ? speed - playbackSpeedPerClick + : speed + playbackSpeedPerClick; return calculatedSpeed; } export async function updatePlaybackSpeedButtonTooltip( @@ -50,12 +47,10 @@ export async function updatePlaybackSpeedButtonTooltip 4) return; - const playerContainer = isWatchPage() - ? document.querySelector("div#movie_player") - : isShortsPage() - ? document.querySelector("div#shorts-player") + const playerContainer = + isWatchPage() ? document.querySelector("div#movie_player") + : isShortsPage() ? document.querySelector("div#shorts-player") : null; if (!playerContainer) return; const optionsData = await waitForSpecificMessage("options", "request_data", "content"); @@ -128,10 +122,9 @@ export const addIncreasePlaybackSpeedButton: AddButtonFunction = async () => { const videoElement = document.querySelector("video"); if (!videoElement) return; ({ playbackRate: currentPlaybackSpeed } = videoElement); - const playerContainer = isWatchPage() - ? document.querySelector("div#movie_player") - : isShortsPage() - ? document.querySelector("div#shorts-player") + const playerContainer = + isWatchPage() ? document.querySelector("div#movie_player") + : isShortsPage() ? document.querySelector("div#shorts-player") : null; if (!playerContainer) return; const playerVideoData = await playerContainer.getVideoData(); @@ -144,9 +137,9 @@ export const addIncreasePlaybackSpeedButton: AddButtonFunction = async () => { "increasePlaybackSpeedButton", increasePlaybackSpeedButtonPlacement, window.i18nextInstance.t( - currentPlaybackSpeed == 4 - ? `pages.content.features.playbackSpeedButtons.increaseLimit` - : "pages.content.features.playbackSpeedButtons.buttons.increasePlaybackSpeedButton.label", + currentPlaybackSpeed == 4 ? + `pages.content.features.playbackSpeedButtons.increaseLimit` + : "pages.content.features.playbackSpeedButtons.buttons.increasePlaybackSpeedButton.label", { SPEED: calculatePlaybackButtonSpeed(currentPlaybackSpeed, playbackSpeedPerClick, "increase") } @@ -172,10 +165,9 @@ export const addDecreasePlaybackSpeedButton: AddButtonFunction = async () => { const videoElement = document.querySelector("video"); if (!videoElement) return; ({ playbackRate: currentPlaybackSpeed } = videoElement); - const playerContainer = isWatchPage() - ? document.querySelector("div#movie_player") - : isShortsPage() - ? document.querySelector("div#shorts-player") + const playerContainer = + isWatchPage() ? document.querySelector("div#movie_player") + : isShortsPage() ? document.querySelector("div#shorts-player") : null; if (!playerContainer) return; const playerVideoData = await playerContainer.getVideoData(); @@ -188,9 +180,9 @@ export const addDecreasePlaybackSpeedButton: AddButtonFunction = async () => { "decreasePlaybackSpeedButton", decreasePlaybackSpeedButtonPlacement, window.i18nextInstance.t( - currentPlaybackSpeed == 0.25 - ? `pages.content.features.playbackSpeedButtons.decreaseLimit` - : "pages.content.features.playbackSpeedButtons.buttons.decreasePlaybackSpeedButton.label", + currentPlaybackSpeed == 0.25 ? + `pages.content.features.playbackSpeedButtons.decreaseLimit` + : "pages.content.features.playbackSpeedButtons.buttons.decreasePlaybackSpeedButton.label", { SPEED: calculatePlaybackButtonSpeed(currentPlaybackSpeed, playbackSpeedPerClick, "decrease") } From 45c3d46d258556086252f6c12a9954bdbeef3907 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Mon, 15 Jul 2024 10:55:24 -0400 Subject: [PATCH 038/121] chore: update eslintrc --- .eslintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 5a90fe4f..08904f6b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -30,7 +30,7 @@ "plugins": ["react", "@typescript-eslint", "no-secrets"], "rules": { "react/react-in-jsx-scope": "off", - "@typescript-eslint/no-unused-vars": ["error"], + "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/restrict-template-expressions": "off", From 28d8aca07283615973821a652c43a6850458d585 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 01:28:23 +0000 Subject: [PATCH 039/121] build(deps-dev): bump prettier from 3.3.2 to 3.3.3 Bumps [prettier](https://github.com/prettier/prettier) from 3.3.2 to 3.3.3. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.3.2...3.3.3) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc81ec05..732c3622 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10741,9 +10741,9 @@ } }, "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" From 51d86930b4001f4fc39a19995e18678b5f849b6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 01:28:32 +0000 Subject: [PATCH 040/121] build(deps-dev): bump @typescript-eslint/eslint-plugin Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.16.0 to 7.16.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.16.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 118 +++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc81ec05..e072558f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2235,16 +2235,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", - "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz", + "integrity": "sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/type-utils": "7.16.0", - "@typescript-eslint/utils": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/type-utils": "7.16.1", + "@typescript-eslint/utils": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2268,13 +2268,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", - "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz", + "integrity": "sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0" + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2285,9 +2285,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", - "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz", + "integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2298,12 +2298,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", - "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz", + "integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/types": "7.16.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2360,13 +2360,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", - "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz", + "integrity": "sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.1", + "@typescript-eslint/utils": "7.16.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -2387,9 +2387,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", - "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz", + "integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2400,13 +2400,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", - "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz", + "integrity": "sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2428,12 +2428,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", - "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz", + "integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/types": "7.16.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2486,15 +2486,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", - "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz", + "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0" + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/typescript-estree": "7.16.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2508,13 +2508,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", - "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz", + "integrity": "sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0" + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2525,9 +2525,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", - "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz", + "integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2538,13 +2538,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", - "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz", + "integrity": "sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2566,12 +2566,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", - "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz", + "integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/types": "7.16.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { From 48a9e285bc575b9ff6784b2a793d0f479ea4aa28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 01:28:39 +0000 Subject: [PATCH 041/121] build(deps-dev): bump @types/node from 20.14.10 to 20.14.11 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.10 to 20.14.11. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc81ec05..83a3f1eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2169,9 +2169,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "20.14.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", "dependencies": { "undici-types": "~5.26.4" } From 633eb1916914a9c76cedd60502687949242118fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 01:28:47 +0000 Subject: [PATCH 042/121] build(deps-dev): bump tailwindcss from 3.4.4 to 3.4.6 Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.4 to 3.4.6. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.6/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.4...v3.4.6) --- updated-dependencies: - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc81ec05..7e6b4c29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12442,9 +12442,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", + "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", From dc0743b3e741b8dbabbe7bcd76aaa0ff8b4ba93f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 01:28:55 +0000 Subject: [PATCH 043/121] build(deps-dev): bump eslint-plugin-react from 7.34.4 to 7.35.0 Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.4 to 7.35.0. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.4...v7.35.0) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc81ec05..a5d6dc01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2951,18 +2951,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", @@ -4902,15 +4890,14 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.4.tgz", - "integrity": "sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==", + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.19", @@ -4931,7 +4918,7 @@ "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { From 8da50745a9220f22bef891194af3ed2b423718bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 01:33:36 +0000 Subject: [PATCH 044/121] build(deps-dev): bump @typescript-eslint/parser from 7.9.0 to 7.17.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.9.0 to 7.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.17.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 48 +++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45441d41..3a8ec36a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2315,15 +2315,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.9.0.tgz", - "integrity": "sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.9.0", - "@typescript-eslint/types": "7.9.0", - "@typescript-eslint/typescript-estree": "7.9.0", - "@typescript-eslint/visitor-keys": "7.9.0", + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/typescript-estree": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4" }, "engines": { @@ -2343,13 +2343,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.9.0.tgz", - "integrity": "sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.17.0.tgz", + "integrity": "sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.9.0", - "@typescript-eslint/visitor-keys": "7.9.0" + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2445,9 +2445,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", - "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.17.0.tgz", + "integrity": "sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2458,13 +2458,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.9.0.tgz", - "integrity": "sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.17.0.tgz", + "integrity": "sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.9.0", - "@typescript-eslint/visitor-keys": "7.9.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2583,12 +2583,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.9.0.tgz", - "integrity": "sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.17.0.tgz", + "integrity": "sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/types": "7.17.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { From 2ff3c455eb507d961a916aeefe2d86eb482ba302 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 01:33:43 +0000 Subject: [PATCH 045/121] build(deps-dev): bump eslint-plugin-prettier from 5.1.3 to 5.2.1 Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.1.3 to 5.2.1. - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.1.3...v5.2.1) --- updated-dependencies: - dependency-name: eslint-plugin-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45441d41..e269c77c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4845,13 +4845,13 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" + "synckit": "^0.9.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -12403,9 +12403,9 @@ } }, "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, "dependencies": { "@pkgr/core": "^0.1.0", From 92f61c24b76ba46f9d77c9a3126ab51876906084 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 01:33:50 +0000 Subject: [PATCH 046/121] build(deps-dev): bump eslint-plugin-perfectionist from 2.11.0 to 3.0.0 Bumps [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) from 2.11.0 to 3.0.0. - [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases) - [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md) - [Commits](https://github.com/azat-io/eslint-plugin-perfectionist/compare/v2.11.0...v3.0.0) --- updated-dependencies: - dependency-name: eslint-plugin-perfectionist dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 46 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45441d41..ac7f1cb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-no-secrets": "^1.0.2", - "eslint-plugin-perfectionist": "^2.3.0", + "eslint-plugin-perfectionist": "^3.0.0", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.33.2", @@ -4813,20 +4813,24 @@ } }, "node_modules/eslint-plugin-perfectionist": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.11.0.tgz", - "integrity": "sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-3.0.0.tgz", + "integrity": "sha512-B+leJTo1YjxiNIm8Yv0rCHp4eWh9RaJHO6T1ifxd26wg8NCbEiWSdqZVeYLWPCI+zS1dlf89WpOkUzG7cE4vtQ==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.13.0 || ^7.0.0", - "minimatch": "^9.0.3", + "@typescript-eslint/types": "^7.16.1", + "@typescript-eslint/utils": "^7.16.1", + "minimatch": "^10.0.1", "natural-compare-lite": "^1.4.0" }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, "peerDependencies": { "astro-eslint-parser": "^1.0.2", "eslint": ">=8.0.0", "svelte": ">=3.0.0", - "svelte-eslint-parser": "^0.37.0", + "svelte-eslint-parser": "^0.40.0", "vue-eslint-parser": ">=9.0.0" }, "peerDependenciesMeta": { @@ -4844,6 +4848,34 @@ } } }, + "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.17.0.tgz", + "integrity": "sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-perfectionist/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/eslint-plugin-prettier": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", diff --git a/package.json b/package.json index a276f39f..9c0de251 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-no-secrets": "^1.0.2", - "eslint-plugin-perfectionist": "^2.3.0", + "eslint-plugin-perfectionist": "^3.0.0", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.33.2", From d9e4708a562ba5ef52c31d7b2de2bcfdceb4ddba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 01:33:58 +0000 Subject: [PATCH 047/121] build(deps-dev): bump @types/chrome from 0.0.268 to 0.0.269 Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.268 to 0.0.269. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome) --- updated-dependencies: - dependency-name: "@types/chrome" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45441d41..70c3b7d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "@thedutchcoder/postcss-rem-to-px": "^0.0.2", "@total-typescript/ts-reset": "^0.5.1", "@types/archiver": "^6.0.1", - "@types/chrome": "^0.0.268", + "@types/chrome": "^0.0.269", "@types/node": "^20.9.0", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", @@ -2107,9 +2107,9 @@ } }, "node_modules/@types/chrome": { - "version": "0.0.268", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.268.tgz", - "integrity": "sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==", + "version": "0.0.269", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.269.tgz", + "integrity": "sha512-vF7x8YywnhXX2F06njQ/OE7a3Qeful43C5GUOsUksXWk89WoSFUU3iLeZW8lDpVO9atm8iZIEiLQTRC3H7NOXQ==", "dev": true, "dependencies": { "@types/filesystem": "*", diff --git a/package.json b/package.json index a276f39f..cac033a6 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@thedutchcoder/postcss-rem-to-px": "^0.0.2", "@total-typescript/ts-reset": "^0.5.1", "@types/archiver": "^6.0.1", - "@types/chrome": "^0.0.268", + "@types/chrome": "^0.0.269", "@types/node": "^20.9.0", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", From 8ed563ff360b08e8c28b5ec4cb064aa80dfd5716 Mon Sep 17 00:00:00 2001 From: VampireChicken12 Date: Fri, 5 Jul 2024 23:11:40 -0400 Subject: [PATCH 048/121] feat: Playlist length bar #542 --- .../Display_Playlist_Length_Information.png | Bin 0 -> 4083 bytes .../Method_To_Get_Playlist_Length.png | Bin 0 -> 4579 bytes .../Playlist Length Settings/Title.png | Bin 0 -> 2488 bytes .../YouTube API V3 Key/Api_Key.png | Bin 0 -> 3139 bytes .../YouTube API V3 Key/Title.png | Bin 0 -> 2185 bytes .../YouTube API V3 Key/getApiKeyLinkText.png | Bin 0 -> 791 bytes public/locales/en-US.json | 24 ++ public/locales/en-US.json.d.ts | 21 + src/components/Inputs/TextInput/TextInput.tsx | 59 +++ src/components/Inputs/TextInput/index.tsx | 3 + src/components/Inputs/index.tsx | 3 +- src/components/Settings/Settings.tsx | 49 +++ .../Settings/components/Setting.tsx | 8 +- src/features/playlistLength/index.ts | 43 ++ src/features/playlistLength/utils.ts | 393 ++++++++++++++++++ src/global.d.ts | 1 + src/pages/content/index.ts | 8 + src/pages/embedded/index.ts | 23 +- src/types/index.ts | 38 ++ src/utils/EventManager.ts | 1 + src/utils/constants.ts | 12 +- src/utils/utilities.ts | 55 +++ 22 files changed, 735 insertions(+), 6 deletions(-) create mode 100644 assets/translation context screenshots/Playlist Length Settings/Display_Playlist_Length_Information.png create mode 100644 assets/translation context screenshots/Playlist Length Settings/Method_To_Get_Playlist_Length.png create mode 100644 assets/translation context screenshots/Playlist Length Settings/Title.png create mode 100644 assets/translation context screenshots/YouTube API V3 Key/Api_Key.png create mode 100644 assets/translation context screenshots/YouTube API V3 Key/Title.png create mode 100644 assets/translation context screenshots/YouTube API V3 Key/getApiKeyLinkText.png create mode 100644 src/components/Inputs/TextInput/TextInput.tsx create mode 100644 src/components/Inputs/TextInput/index.tsx create mode 100644 src/features/playlistLength/index.ts create mode 100644 src/features/playlistLength/utils.ts diff --git a/assets/translation context screenshots/Playlist Length Settings/Display_Playlist_Length_Information.png b/assets/translation context screenshots/Playlist Length Settings/Display_Playlist_Length_Information.png new file mode 100644 index 0000000000000000000000000000000000000000..2a04f3482efb0a12822407374a643ecd374aba5d GIT binary patch literal 4083 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 literal 0 HcmV?d00001 diff --git a/assets/translation context screenshots/Playlist Length Settings/Method_To_Get_Playlist_Length.png b/assets/translation context screenshots/Playlist Length Settings/Method_To_Get_Playlist_Length.png new file mode 100644 index 0000000000000000000000000000000000000000..a25e7e7f9cb7936e7ad2ba2bc9aa9923680c8ad6 GIT binary patch literal 4579 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 au)@=iYI1#{Peh47aMs$kfbxpPa literal 0 HcmV?d00001 diff --git a/assets/translation context screenshots/YouTube API V3 Key/Title.png b/assets/translation context screenshots/YouTube API V3 Key/Title.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb662865277ab2dbb286a30bf5a5961c4177b9c GIT binary patch literal 2185 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 RJOU