Repository: refined-github/refined-github
Pull request #8145 (2024-12-09 11:23:43)

`hide-low-quality-comments` - Hide more comments
## Test URLs

https://togithub.com/dotansimha/graphql-code-generator-community/issues/743



Patch:
diff --git a/package-lock.json b/package-lock.json
index 9fce753b..13221ba8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,7 +7,7 @@
 			"dependencies": {
 				"@fregante/mi-cron": "^2.0.0",
 				"@sindresorhus/to-milliseconds": "^2.0.0",
-				"abort-utils": "^1.2.0",
+				"abort-utils": "^1.3.0",
 				"batched-function": "^2.0.1",
 				"code-tag": "^1.2.0",
 				"debounce-fn": "^6.0.0",
@@ -23,9 +23,9 @@
 				"indent-textarea": "^4.0.0",
 				"js-abbreviation-number": "^1.4.0",
 				"linkify-issues": "^4.1.0",
-				"linkify-urls": "^5.0.1",
+				"linkify-urls": "^5.0.2",
 				"memoize": "^10.0.0",
-				"octicons-plain-react": "^19.12.0",
+				"octicons-plain-react": "^19.13.0",
 				"one-event": "^4.3.0",
 				"one-mutation": "^3.0.1",
 				"pretty-bytes": "^6.1.1",
@@ -41,10 +41,10 @@
 				"uint8array-extras": "^1.4.0",
 				"webext-alert": "^1.0.2",
 				"webext-base-css": "^2.0.1",
-				"webext-detect": "^5.3.0",
+				"webext-detect": "^5.3.1",
 				"webext-dynamic-content-scripts": "^10.0.4",
 				"webext-msg": "^1.0.0",
-				"webext-options-sync": "^4.2.4",
+				"webext-options-sync": "^4.3.0",
 				"webext-options-sync-per-domain": "^4.2.3",
 				"webext-permission-toggle": "^5.1.0",
 				"webext-storage": "^1.2.2",
@@ -53,36 +53,36 @@
 				"zip-text-nodes": "^1.0.0"
 			},
 			"devDependencies": {
-				"@antfu/eslint-config": "^3.8.0",
-				"@eslint-react/eslint-plugin": "^1.15.2",
+				"@antfu/eslint-config": "^3.11.2",
+				"@eslint-react/eslint-plugin": "^1.19.0",
 				"@rollup/plugin-alias": "^5.1.1",
 				"@rollup/plugin-commonjs": "^28.0.1",
 				"@rollup/plugin-json": "^6.1.0",
 				"@rollup/plugin-node-resolve": "^15.3.0",
 				"@rollup/plugin-sucrase": "^5.0.2",
-				"@sindresorhus/tsconfig": "^6.0.0",
+				"@sindresorhus/tsconfig": "^7.0.0",
 				"@stylistic/stylelint-config": "^2.0.0",
-				"@types/chrome": "^0.0.280",
+				"@types/chrome": "^0.0.287",
 				"@types/codemirror": "^5.60.15",
 				"@types/dom-navigation": "^1.0.4",
-				"@types/node": "^22.7.8",
+				"@types/node": "^22.10.1",
 				"@types/react": "^17.0.52",
 				"daily-version": "^2.0.0",
 				"dot-json": "^1.3.0",
-				"eslint": "^9.14.0",
+				"eslint": "^9.16.0",
 				"eslint-plugin-react": "^7.37.2",
-				"eslint-plugin-react-hooks": "^5.0.0",
-				"eslint-plugin-react-refresh": "^0.4.14",
-				"eslint-plugin-svelte": "^2.46.0",
+				"eslint-plugin-react-hooks": "^5.1.0",
+				"eslint-plugin-react-refresh": "^0.4.16",
+				"eslint-plugin-svelte": "^2.46.1",
 				"fast-ignore": "^1.1.3",
 				"filenamify": "^6.0.0",
 				"highlight.js": "^11.10.0",
 				"linkedom": "^0.18.5",
-				"npm-run-all": "^4.1.5",
+				"npm-run-all2": "^7.0.1",
 				"p-memoize": "^7.1.1",
-				"prettier": "^3.3.3",
-				"prettier-plugin-svelte": "^3.2.8",
-				"rollup": "^4.24.0",
+				"prettier": "^3.4.2",
+				"prettier-plugin-svelte": "^3.3.2",
+				"rollup": "^4.28.1",
 				"rollup-plugin-cleanup": "^3.2.1",
 				"rollup-plugin-copy": "^3.5.0",
 				"rollup-plugin-delete": "^2.1.0",
@@ -91,14 +91,14 @@
 				"rollup-plugin-svelte": "^7.2.2",
 				"rollup-plugin-webpack-stats": "^1.1.0",
 				"snarkdown": "^2.0.0",
-				"stylelint": "^16.10.0",
+				"stylelint": "^16.11.0",
 				"stylelint-config-standard": "^36.0.1",
-				"svelte": "^5.1.3",
-				"type-fest": "^4.26.1",
+				"svelte": "^5.10.0",
+				"type-fest": "^4.30.0",
 				"typed-query-selector": "^2.12.0",
-				"typescript": "^5.5.4",
-				"unplugin-lightningcss": "^0.1.0",
-				"vitest": "^2.1.3"
+				"typescript": "^5.7.2",
+				"unplugin-lightningcss": "^0.2.1",
+				"vitest": "^2.1.8"
 			},
 			"engines": {
 				"node": ">= 20",
@@ -120,41 +120,41 @@
 			}
 		},
 		"node_modules/@antfu/eslint-config": {
-			"version": "3.8.0",
-			"resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.8.0.tgz",
-			"integrity": "sha512-O5QSufPHpKTm0wk1OQ5c2mOZVzCqYV3hIDrt5zt+cOWqiG8YXLPkSOD4fFwjomATtOuUbcLUwkcgY5dErM7aIw==",
+			"version": "3.11.2",
+			"resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-3.11.2.tgz",
+			"integrity": "sha512-hoi2MnOdiKL8mIhpMtinwMrqVPq6QVbHPA+BuQD4pqE6yVLyYvjdLFiKApMsezAM+YofCsbhak2oY+JCiIyeNA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@antfu/install-pkg": "^0.4.1",
-				"@clack/prompts": "^0.7.0",
-				"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
-				"@eslint/markdown": "^6.2.0",
-				"@stylistic/eslint-plugin": "^2.9.0",
-				"@typescript-eslint/eslint-plugin": "^8.9.0",
-				"@typescript-eslint/parser": "^8.9.0",
-				"@vitest/eslint-plugin": "^1.1.7",
+				"@antfu/install-pkg": "^0.5.0",
+				"@clack/prompts": "^0.8.2",
+				"@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
+				"@eslint/markdown": "^6.2.1",
+				"@stylistic/eslint-plugin": "^2.11.0",
+				"@typescript-eslint/eslint-plugin": "^8.16.0",
+				"@typescript-eslint/parser": "^8.16.0",
+				"@vitest/eslint-plugin": "^1.1.12",
 				"eslint-config-flat-gitignore": "^0.3.0",
 				"eslint-flat-config-utils": "^0.4.0",
 				"eslint-merge-processors": "^0.1.0",
 				"eslint-plugin-antfu": "^2.7.0",
 				"eslint-plugin-command": "^0.2.6",
-				"eslint-plugin-import-x": "^4.3.1",
-				"eslint-plugin-jsdoc": "^50.4.1",
-				"eslint-plugin-jsonc": "^2.16.0",
-				"eslint-plugin-n": "^17.11.1",
+				"eslint-plugin-import-x": "^4.4.3",
+				"eslint-plugin-jsdoc": "^50.6.0",
+				"eslint-plugin-jsonc": "^2.18.2",
+				"eslint-plugin-n": "^17.14.0",
 				"eslint-plugin-no-only-tests": "^3.3.0",
-				"eslint-plugin-perfectionist": "^3.9.0",
-				"eslint-plugin-regexp": "^2.6.0",
+				"eslint-plugin-perfectionist": "^4.1.2",
+				"eslint-plugin-regexp": "^2.7.0",
 				"eslint-plugin-toml": "^0.11.1",
-				"eslint-plugin-unicorn": "^56.0.0",
+				"eslint-plugin-unicorn": "^56.0.1",
 				"eslint-plugin-unused-imports": "^4.1.4",
-				"eslint-plugin-vue": "^9.29.0",
-				"eslint-plugin-yml": "^1.14.0",
+				"eslint-plugin-vue": "^9.31.0",
+				"eslint-plugin-yml": "^1.15.0",
 				"eslint-processor-vue-blocks": "^0.1.2",
-				"globals": "^15.11.0",
+				"globals": "^15.12.0",
 				"jsonc-eslint-parser": "^2.4.0",
-				"local-pkg": "^0.5.0",
+				"local-pkg": "^0.5.1",
 				"parse-gitignore": "^2.0.0",
 				"picocolors": "^1.1.1",
 				"toml-eslint-parser": "^0.10.0",
@@ -180,7 +180,7 @@
 				"eslint-plugin-react-refresh": "^0.4.4",
 				"eslint-plugin-solid": "^0.14.3",
 				"eslint-plugin-svelte": ">=2.35.1",
-				"prettier-plugin-astro": "^0.13.0",
+				"prettier-plugin-astro": "^0.14.0",
 				"prettier-plugin-slidev": "^1.0.5",
 				"svelte-eslint-parser": ">=0.37.0"
 			},
@@ -227,14 +227,14 @@
 			}
 		},
 		"node_modules/@antfu/install-pkg": {
-			"version": "0.4.1",
-			"resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz",
-			"integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==",
+			"version": "0.5.0",
+			"resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.5.0.tgz",
+			"integrity": "sha512-dKnk2xlAyC7rvTkpkHmu+Qy/2Zc3Vm/l8PtNyIOGDBtXPY3kThfU4ORNEp3V7SXw5XSOb+tOJaUYpfquPzL/Tg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"package-manager-detector": "^0.2.0",
-				"tinyexec": "^0.3.0"
+				"package-manager-detector": "^0.2.5",
+				"tinyexec": "^0.3.1"
 			},
 			"funding": {
 				"url": "https://github.com/sponsors/antfu"
@@ -276,9 +276,9 @@
 			}
 		},
 		"node_modules/@clack/core": {
-			"version": "0.3.4",
-			"resolved": "https://registry.npmjs.org/@clack/core/-/core-0.3.4.tgz",
-			"integrity": "sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==",
+			"version": "0.3.5",
+			"resolved": "https://registry.npmjs.org/@clack/core/-/core-0.3.5.tgz",
+			"integrity": "sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -287,33 +287,17 @@
 			}
 		},
 		"node_modules/@clack/prompts": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.7.0.tgz",
-			"integrity": "sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==",
-			"bundleDependencies": [
-				"is-unicode-supported"
-			],
+			"version": "0.8.2",
+			"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.8.2.tgz",
+			"integrity": "sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@clack/core": "^0.3.3",
-				"is-unicode-supported": "*",
+				"@clack/core": "0.3.5",
 				"picocolors": "^1.0.0",
 				"sisteransi": "^1.0.5"
 			}
 		},
-		"node_modules/@clack/prompts/node_modules/is-unicode-supported": {
-			"version": "1.3.0",
-			"extraneous": true,
-			"inBundle": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
-			}
-		},
 		"node_modules/@csstools/css-parser-algorithms": {
 			"version": "3.0.4",
 			"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
@@ -382,9 +366,9 @@
 			}
 		},
 		"node_modules/@csstools/selector-specificity": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz",
-			"integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==",
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+			"integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
 			"dev": true,
 			"funding": [
 				{
@@ -401,7 +385,7 @@
 				"node": ">=18"
 			},
 			"peerDependencies": {
-				"postcss-selector-parser": "^6.1.0"
+				"postcss-selector-parser": "^7.0.0"
 			}
 		},
 		"node_modules/@dual-bundle/import-meta-resolve": {
@@ -884,64 +868,64 @@
 			}
 		},
 		"node_modules/@eslint-react/ast": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-1.15.2.tgz",
-			"integrity": "sha512-Dtn6Ai/P74CLoZ4mPR/9Mm4xXuulXULaXNXAzusZSNfa3+4podw6LCxKHpLcLqsvfZN3mciW3cC8CAyH7/MZwg==",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-1.19.0.tgz",
+			"integrity": "sha512-ENYSlFFRhyAqmpQd4S2izmjZfMk7G31Vsp/HXgThga+w42E8Y80vy9vyuB7mcmhKIMUofwQTAWm5U8W9C5MzRQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/typescript-estree": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/typescript-estree": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
 				"birecord": "^0.1.1",
 				"string-ts": "^2.2.0",
 				"ts-pattern": "^5.5.0"
 			}
 		},
 		"node_modules/@eslint-react/core": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-1.15.2.tgz",
-			"integrity": "sha512-F8qh1oeqdXrepTQKp0kbQ8UTVDhSbJGvsQhO6YMSOC/Bci98Z2ad/VZXfZtMcYtvj+/4s0nmifzrYfvjt7easw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/jsx": "1.15.2",
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@eslint-react/var": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/type-utils": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-1.19.0.tgz",
+			"integrity": "sha512-i5h/L6aQipKtr4m34mnFyQD1aUofeKrJO+nBKUh7bqkKKzRwF0BXnMDNMzWDcJZknj04KvzpNeNGvMJVZMxc1w==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/jsx": "1.19.0",
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@eslint-react/var": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/type-utils": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
 				"birecord": "^0.1.1",
 				"short-unique-id": "^5.2.0",
 				"ts-pattern": "^5.5.0"
 			}
 		},
 		"node_modules/@eslint-react/eslint-plugin": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/eslint-plugin/-/eslint-plugin-1.15.2.tgz",
-			"integrity": "sha512-j4O+dVFG24VrEu0lfiY7PTiAdKpYBWrc16/J4OymTERxwJYAZLuedoIYextSYjpJ7Hn9RhQyhGq4jqbcIpyVwg==",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/eslint-plugin/-/eslint-plugin-1.19.0.tgz",
+			"integrity": "sha512-OOb+7VuyS2tAIJFIFab6B3RDrjMw5Ssz6oId+W6US5lAdN/YkSIdL/TAWFoSXXr4e3tgrQCgutGbin5CzTtx/w==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/type-utils": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
-				"eslint-plugin-react-debug": "1.15.2",
-				"eslint-plugin-react-dom": "1.15.2",
-				"eslint-plugin-react-hooks-extra": "1.15.2",
-				"eslint-plugin-react-naming-convention": "1.15.2",
-				"eslint-plugin-react-web-api": "1.15.2",
-				"eslint-plugin-react-x": "1.15.2"
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/type-utils": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
+				"eslint-plugin-react-debug": "1.19.0",
+				"eslint-plugin-react-dom": "1.19.0",
+				"eslint-plugin-react-hooks-extra": "1.19.0",
+				"eslint-plugin-react-naming-convention": "1.19.0",
+				"eslint-plugin-react-web-api": "1.19.0",
+				"eslint-plugin-react-x": "1.19.0"
 			},
 			"engines": {
 				"bun": ">=1.0.15",
@@ -961,66 +945,69 @@
 			}
 		},
 		"node_modules/@eslint-react/jsx": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/jsx/-/jsx-1.15.2.tgz",
-			"integrity": "sha512-IwkmPazUhEpMQgu6gVzCWuvWU7Za7SmddKowNIelSfoX0o5uZVh42anrVnGyX0jgx9X7XcZOUYll3F701Ftyqw==",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/jsx/-/jsx-1.19.0.tgz",
+			"integrity": "sha512-nLsNOM7J1dGmms+UPtK6xJjX8+PTmk1hSVBX4Uj5sEUnEnlvdNY/AMOPTPDxBzoF1KwbtoAhf/pxbRZTD6mCZA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@eslint-react/var": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@eslint-react/var": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
+				"birecord": "^0.1.1",
 				"ts-pattern": "^5.5.0"
 			}
 		},
 		"node_modules/@eslint-react/shared": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-1.15.2.tgz",
-			"integrity": "sha512-5xOCUbf+AhWcMKdQSPRmqJrnsepiP1SYyoc0w8M69DLhkuRfTnzVsJsvXNGS74+8oG8jBfRU/C1dkQxNWoODWg==",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-1.19.0.tgz",
+			"integrity": "sha512-P1XkbxQ4zIC1AvBIeCikBCemTvWKzc0bBwnCkWMCdqQHAfbWksGwL1gb0EKxC3YvONWxVyXBWHyNhwBlp0BNTQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@eslint-react/tools": "1.15.2",
-				"@typescript-eslint/utils": "^8.12.1",
-				"picomatch": "^4.0.2"
+				"@eslint-react/tools": "1.19.0",
+				"@typescript-eslint/utils": "^8.18.0",
+				"local-pkg": "^0.5.1",
+				"picomatch": "^4.0.2",
+				"ts-pattern": "^5.5.0"
 			}
 		},
 		"node_modules/@eslint-react/tools": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/tools/-/tools-1.15.2.tgz",
-			"integrity": "sha512-u5vASGC6Ui+5G0AkorTZHevHE1w6Spaun9UdmadMDTuZdPLbfIUPoD4dfZ5AaqH6wVfdpmieHFXsItuvRWHWxw==",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/tools/-/tools-1.19.0.tgz",
+			"integrity": "sha512-UPIa2KPPvUKfrO8qCbVBlnG1Z4P/A0dA8J3RRHryJcIisVOyWqaNhXky+nSE6ebmv+vie33/Y45JKTUCyLGa6w==",
 			"dev": true,
 			"license": "MIT"
 		},
 		"node_modules/@eslint-react/types": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/types/-/types-1.15.2.tgz",
-			"integrity": "sha512-s8HfvVPl8aCb+coIPrFULDugR22GiRKU6keXwdRqQaHR4U0a6YtSqNFssoxEvMdkesNAQ2kIhZEE4oXRyR7gFw==",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/types/-/types-1.19.0.tgz",
+			"integrity": "sha512-0IWLNYSl2dTjsSpCgVxyvPtX3KZBmG1AoMNk8rXYTmseIM4Jscmxbj9fIdy2kWtQpFETGpYlBCx6YugOIEAjTQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@eslint-react/tools": "1.15.2",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1"
+				"@eslint-react/tools": "1.19.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0"
 			}
 		},
 		"node_modules/@eslint-react/var": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-1.15.2.tgz",
-			"integrity": "sha512-Kd37TnpjGWXUshTruUxH2wyo4ODItf/yn8P8VbgOAirkKg/Y7cSsep3hXuY4hXlpOd/ZgoGmtGE8JHsm65Vfxw==",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-1.19.0.tgz",
+			"integrity": "sha512-TrS8LxA4dvT745OTq8n92CfhSWEmVhZpNBgEIPgfr1GmoLMobr4N/Y4jq6q+gV4FziPIN8m45ESksjBXQWTncw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
 				"ts-pattern": "^5.5.0"
 			}
 		},
@@ -1043,13 +1030,13 @@
 			}
 		},
 		"node_modules/@eslint/config-array": {
-			"version": "0.18.0",
-			"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz",
-			"integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==",
+			"version": "0.19.1",
+			"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz",
+			"integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==",
 			"dev": true,
 			"license": "Apache-2.0",
 			"dependencies": {
-				"@eslint/object-schema": "^2.1.4",
+				"@eslint/object-schema": "^2.1.5",
 				"debug": "^4.3.1",
 				"minimatch": "^3.1.2"
 			},
@@ -1082,19 +1069,22 @@
 			}
 		},
 		"node_modules/@eslint/core": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz",
-			"integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==",
+			"version": "0.9.1",
+			"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz",
+			"integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==",
 			"dev": true,
 			"license": "Apache-2.0",
+			"dependencies": {
+				"@types/json-schema": "^7.0.15"
+			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 			}
 		},
 		"node_modules/@eslint/eslintrc": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz",
-			"integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
+			"integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -1153,9 +1143,9 @@
 			}
 		},
 		"node_modules/@eslint/js": {
-			"version": "9.14.0",
-			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz",
-			"integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==",
+			"version": "9.16.0",
+			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz",
+			"integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -1179,9 +1169,9 @@
 			}
 		},
 		"node_modules/@eslint/object-schema": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz",
-			"integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==",
+			"version": "2.1.5",
+			"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz",
+			"integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==",
 			"dev": true,
 			"license": "Apache-2.0",
 			"engines": {
@@ -1189,9 +1179,9 @@
 			}
 		},
 		"node_modules/@eslint/plugin-kit": {
-			"version": "0.2.2",
-			"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz",
-			"integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==",
+			"version": "0.2.4",
+			"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz",
+			"integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==",
 			"dev": true,
 			"license": "Apache-2.0",
 			"dependencies": {
@@ -1635,9 +1625,9 @@
 			}
 		},
 		"node_modules/@rollup/rollup-android-arm-eabi": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz",
-			"integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz",
+			"integrity": "sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==",
 			"cpu": [
 				"arm"
 			],
@@ -1649,9 +1639,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-android-arm64": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz",
-			"integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz",
+			"integrity": "sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==",
 			"cpu": [
 				"arm64"
 			],
@@ -1663,9 +1653,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-darwin-arm64": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz",
-			"integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz",
+			"integrity": "sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==",
 			"cpu": [
 				"arm64"
 			],
@@ -1677,9 +1667,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-darwin-x64": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz",
-			"integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz",
+			"integrity": "sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==",
 			"cpu": [
 				"x64"
 			],
@@ -1691,9 +1681,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-freebsd-arm64": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz",
-			"integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz",
+			"integrity": "sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==",
 			"cpu": [
 				"arm64"
 			],
@@ -1705,9 +1695,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-freebsd-x64": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz",
-			"integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz",
+			"integrity": "sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==",
 			"cpu": [
 				"x64"
 			],
@@ -1719,9 +1709,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz",
-			"integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz",
+			"integrity": "sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==",
 			"cpu": [
 				"arm"
 			],
@@ -1733,9 +1723,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-arm-musleabihf": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz",
-			"integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz",
+			"integrity": "sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==",
 			"cpu": [
 				"arm"
 			],
@@ -1747,9 +1737,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-arm64-gnu": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz",
-			"integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz",
+			"integrity": "sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==",
 			"cpu": [
 				"arm64"
 			],
@@ -1761,9 +1751,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-arm64-musl": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz",
-			"integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz",
+			"integrity": "sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==",
 			"cpu": [
 				"arm64"
 			],
@@ -1774,10 +1764,24 @@
 				"linux"
 			]
 		},
+		"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz",
+			"integrity": "sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==",
+			"cpu": [
+				"loong64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
 		"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz",
-			"integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz",
+			"integrity": "sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==",
 			"cpu": [
 				"ppc64"
 			],
@@ -1789,9 +1793,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-riscv64-gnu": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz",
-			"integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz",
+			"integrity": "sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==",
 			"cpu": [
 				"riscv64"
 			],
@@ -1803,9 +1807,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-s390x-gnu": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz",
-			"integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz",
+			"integrity": "sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==",
 			"cpu": [
 				"s390x"
 			],
@@ -1817,9 +1821,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-x64-gnu": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz",
-			"integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz",
+			"integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==",
 			"cpu": [
 				"x64"
 			],
@@ -1831,9 +1835,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-linux-x64-musl": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz",
-			"integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz",
+			"integrity": "sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==",
 			"cpu": [
 				"x64"
 			],
@@ -1845,9 +1849,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-win32-arm64-msvc": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz",
-			"integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz",
+			"integrity": "sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==",
 			"cpu": [
 				"arm64"
 			],
@@ -1859,9 +1863,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-win32-ia32-msvc": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz",
-			"integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz",
+			"integrity": "sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==",
 			"cpu": [
 				"ia32"
 			],
@@ -1873,9 +1877,9 @@
 			]
 		},
 		"node_modules/@rollup/rollup-win32-x64-msvc": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz",
-			"integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz",
+			"integrity": "sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==",
 			"cpu": [
 				"x64"
 			],
@@ -1899,9 +1903,9 @@
 			}
 		},
 		"node_modules/@sindresorhus/tsconfig": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/@sindresorhus/tsconfig/-/tsconfig-6.0.0.tgz",
-			"integrity": "sha512-+fUdfuDd/7O2OZ9/UvJy76IEWn2Tpvm2l+rwUoS2Yz4jCUTSNOQQv2PLWrwekt8cPLwHmpHaBpay34bkBmVl2Q==",
+			"version": "7.0.0",
+			"resolved": "https://registry.npmjs.org/@sindresorhus/tsconfig/-/tsconfig-7.0.0.tgz",
+			"integrity": "sha512-i5K04hLAP44Af16zmDjG07E1NHuDgCM07SJAT4gY0LZSRrWYzwt4qkLem6TIbIVh0k51RkN2bF+lP+lM5eC9fw==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -1912,13 +1916,13 @@
 			}
 		},
 		"node_modules/@stylistic/eslint-plugin": {
-			"version": "2.10.1",
-			"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.10.1.tgz",
-			"integrity": "sha512-U+4yzNXElTf9q0kEfnloI9XbOyD4cnEQCxjUI94q0+W++0GAEQvJ/slwEj9lwjDHfGADRSr+Tco/z0XJvmDfCQ==",
+			"version": "2.12.0",
+			"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.12.0.tgz",
+			"integrity": "sha512-IvD2WXbOoSp0zNpyYbjdSyEjZtut78RYfj2WIlbChE7HFuposTK5X1hc5+4AyqYcjLXYdD5oo/sJtqMGFNRb1w==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/utils": "^8.12.2",
+				"@typescript-eslint/utils": "^8.13.0",
 				"eslint-visitor-keys": "^4.2.0",
 				"espree": "^10.3.0",
 				"estraverse": "^5.3.0",
@@ -1981,9 +1985,9 @@
 			}
 		},
 		"node_modules/@types/chrome": {
-			"version": "0.0.280",
-			"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.280.tgz",
-			"integrity": "sha512-AotSmZrL9bcZDDmSI1D9dE7PGbhOur5L0cKxXd7IqbVizQWCY4gcvupPUVsQ4FfDj3V2tt/iOpomT9EY0s+w1g==",
+			"version": "0.0.287",
+			"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.287.tgz",
+			"integrity": "sha512-wWhBNPNXZHwycHKNYnexUcpSbrihVZu++0rdp6GEk5ZgAglenLx+RwdEouh6FrHS0XQiOxSd62yaujM1OoQlZQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -2112,13 +2116,13 @@
 			"license": "MIT"
 		},
 		"node_modules/@types/node": {
-			"version": "22.9.0",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz",
-			"integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==",
+			"version": "22.10.1",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz",
+			"integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"undici-types": "~6.19.8"
+				"undici-types": "~6.20.0"
 			}
 		},
 		"node_modules/@types/normalize-package-data": {
@@ -2183,17 +2187,17 @@
 			"license": "MIT"
 		},
 		"node_modules/@typescript-eslint/eslint-plugin": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz",
-			"integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz",
+			"integrity": "sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/regexpp": "^4.10.0",
-				"@typescript-eslint/scope-manager": "8.13.0",
-				"@typescript-eslint/type-utils": "8.13.0",
-				"@typescript-eslint/utils": "8.13.0",
-				"@typescript-eslint/visitor-keys": "8.13.0",
+				"@typescript-eslint/scope-manager": "8.18.0",
+				"@typescript-eslint/type-utils": "8.18.0",
+				"@typescript-eslint/utils": "8.18.0",
+				"@typescript-eslint/visitor-keys": "8.18.0",
 				"graphemer": "^1.4.0",
 				"ignore": "^5.3.1",
 				"natural-compare": "^1.4.0",
@@ -2208,25 +2212,21 @@
 			},
 			"peerDependencies": {
 				"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
-				"eslint": "^8.57.0 || ^9.0.0"
-			},
-			"peerDependenciesMeta": {
-				"typescript": {
-					"optional": true
-				}
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.8.0"
 			}
 		},
 		"node_modules/@typescript-eslint/parser": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz",
-			"integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.0.tgz",
+			"integrity": "sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==",
 			"dev": true,
-			"license": "BSD-2-Clause",
+			"license": "MITClause",
 			"dependencies": {
-				"@typescript-eslint/scope-manager": "8.13.0",
-				"@typescript-eslint/types": "8.13.0",
-				"@typescript-eslint/typescript-estree": "8.13.0",
-				"@typescript-eslint/visitor-keys": "8.13.0",
+				"@typescript-eslint/scope-manager": "8.18.0",
+				"@typescript-eslint/types": "8.18.0",
+				"@typescript-eslint/typescript-estree": "8.18.0",
+				"@typescript-eslint/visitor-keys": "8.18.0",
 				"debug": "^4.3.4"
 			},
 			"engines": {
@@ -2237,23 +2237,19 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0"
-			},
-			"peerDependenciesMeta": {
-				"typescript": {
-					"optional": true
-				}
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.8.0"
 			}
 		},
 		"node_modules/@typescript-eslint/scope-manager": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz",
-			"integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz",
+			"integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.13.0",
-				"@typescript-eslint/visitor-keys": "8.13.0"
+				"@typescript-eslint/types": "8.18.0",
+				"@typescript-eslint/visitor-keys": "8.18.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2264,14 +2260,14 @@
 			}
 		},
 		"node_modules/@typescript-eslint/type-utils": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz",
-			"integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz",
+			"integrity": "sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/typescript-estree": "8.13.0",
-				"@typescript-eslint/utils": "8.13.0",
+				"@typescript-eslint/typescript-estree": "8.18.0",
+				"@typescript-eslint/utils": "8.18.0",
 				"debug": "^4.3.4",
 				"ts-api-utils": "^1.3.0"
 			},
@@ -2282,16 +2278,15 @@
 				"type": "opencollective",
 				"url": "https://opencollective.com/typescript-eslint"
 			},
-			"peerDependenciesMeta": {
-				"typescript": {
-					"optional": true
-				}
+			"peerDependencies": {
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.8.0"
 			}
 		},
 		"node_modules/@typescript-eslint/types": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz",
-			"integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz",
+			"integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -2303,14 +2298,14 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz",
-			"integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz",
+			"integrity": "sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==",
 			"dev": true,
-			"license": "BSD-2-Clause",
+			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.13.0",
-				"@typescript-eslint/visitor-keys": "8.13.0",
+				"@typescript-eslint/types": "8.18.0",
+				"@typescript-eslint/visitor-keys": "8.18.0",
 				"debug": "^4.3.4",
 				"fast-glob": "^3.3.2",
 				"is-glob": "^4.0.3",
@@ -2325,23 +2320,21 @@
 				"type": "opencollective",
 				"url": "https://opencollective.com/typescript-eslint"
 			},
-			"peerDependenciesMeta": {
-				"typescript": {
-					"optional": true
-				}
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.8.0"
 			}
 		},
 		"node_modules/@typescript-eslint/utils": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz",
-			"integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.0.tgz",
+			"integrity": "sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.4.0",
-				"@typescript-eslint/scope-manager": "8.13.0",
-				"@typescript-eslint/types": "8.13.0",
-				"@typescript-eslint/typescript-estree": "8.13.0"
+				"@typescript-eslint/scope-manager": "8.18.0",
+				"@typescript-eslint/types": "8.18.0",
+				"@typescript-eslint/typescript-estree": "8.18.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2351,18 +2344,19 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			},
 			"peerDependencies": {
-				"eslint": "^8.57.0 || ^9.0.0"
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.8.0"
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys": {
-			"version": "8.13.0",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz",
-			"integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==",
+			"version": "8.18.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz",
+			"integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.13.0",
-				"eslint-visitor-keys": "^3.4.3"
+				"@typescript-eslint/types": "8.18.0",
+				"eslint-visitor-keys": "^4.2.0"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2372,23 +2366,10 @@
 				"url": "https://opencollective.com/typescript-eslint"
 			}
 		},
-		"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
-			"version": "3.4.3",
-			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
-			"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-			"dev": true,
-			"license": "Apache-2.0",
-			"engines": {
-				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-			},
-			"funding": {
-				"url": "https://opencollective.com/eslint"
-			}
-		},
 		"node_modules/@vitest/eslint-plugin": {
-			"version": "1.1.7",
-			"resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.1.7.tgz",
-			"integrity": "sha512-pTWGW3y6lH2ukCuuffpan6kFxG6nIuoesbhMiQxskyQMRcCN5t9SXsKrNHvEw3p8wcCsgJoRqFZVkOTn6TjclA==",
+			"version": "1.1.14",
+			"resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.1.14.tgz",
+			"integrity": "sha512-ej0cT5rUt7uvwxuu7Qxkm7fI+eaOq8vD34qGpuRoXCdvOybOlE5GDqtgvVCYbxLANkcRJfm5VDU1TnJmQRHi9g==",
 			"dev": true,
 			"license": "MIT",
 			"peerDependencies": {
@@ -2407,14 +2388,14 @@
 			}
 		},
 		"node_modules/@vitest/expect": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz",
-			"integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz",
+			"integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/spy": "2.1.4",
-				"@vitest/utils": "2.1.4",
+				"@vitest/spy": "2.1.8",
+				"@vitest/utils": "2.1.8",
 				"chai": "^5.1.2",
 				"tinyrainbow": "^1.2.0"
 			},
@@ -2423,13 +2404,13 @@
 			}
 		},
 		"node_modules/@vitest/mocker": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz",
-			"integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz",
+			"integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/spy": "2.1.4",
+				"@vitest/spy": "2.1.8",
 				"estree-walker": "^3.0.3",
 				"magic-string": "^0.30.12"
 			},
@@ -2460,9 +2441,9 @@
 			}
 		},
 		"node_modules/@vitest/pretty-format": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz",
-			"integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz",
+			"integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -2473,13 +2454,13 @@
 			}
 		},
 		"node_modules/@vitest/runner": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz",
-			"integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz",
+			"integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/utils": "2.1.4",
+				"@vitest/utils": "2.1.8",
 				"pathe": "^1.1.2"
 			},
 			"funding": {
@@ -2487,13 +2468,13 @@
 			}
 		},
 		"node_modules/@vitest/snapshot": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz",
-			"integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz",
+			"integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/pretty-format": "2.1.4",
+				"@vitest/pretty-format": "2.1.8",
 				"magic-string": "^0.30.12",
 				"pathe": "^1.1.2"
 			},
@@ -2502,9 +2483,9 @@
 			}
 		},
 		"node_modules/@vitest/spy": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz",
-			"integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz",
+			"integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -2515,13 +2496,13 @@
 			}
 		},
 		"node_modules/@vitest/utils": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz",
-			"integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz",
+			"integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/pretty-format": "2.1.4",
+				"@vitest/pretty-format": "2.1.8",
 				"loupe": "^3.1.2",
 				"tinyrainbow": "^1.2.0"
 			},
@@ -2530,9 +2511,9 @@
 			}
 		},
 		"node_modules/abort-utils": {
-			"version": "1.2.0",
-			"resolved": "https://registry.npmjs.org/abort-utils/-/abort-utils-1.2.0.tgz",
-			"integrity": "sha512-C++yavghYIAoAtd7NDHqVEgNLoZVNIxCNZQZrQd8mbHY173NpT/qOJmGU9Z0565GiCA7kqXWMjaVchIP4F0WMg==",
+			"version": "1.3.0",
+			"resolved": "https://registry.npmjs.org/abort-utils/-/abort-utils-1.3.0.tgz",
+			"integrity": "sha512-kGg814uPmiiUsAXPQ13GIFg3ZMc4P4tmqBsY92jk5/xO1RohVfZQN2eO6LmrkbAdJivc0BgKwyEKU9c6XFrXKg==",
 			"license": "MIT",
 			"engines": {
 				"node": ">=18"
@@ -3009,9 +2990,9 @@
 			}
 		},
 		"node_modules/ci-info": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
-			"integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz",
+			"integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==",
 			"dev": true,
 			"funding": [
 				{
@@ -3145,6 +3126,13 @@
 			"dev": true,
 			"license": "MIT"
 		},
+		"node_modules/compare-versions": {
+			"version": "6.1.1",
+			"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz",
+			"integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==",
+			"dev": true,
+			"license": "MIT"
+		},
 		"node_modules/concat-map": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -4024,27 +4012,27 @@
 			}
 		},
 		"node_modules/eslint": {
-			"version": "9.14.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz",
-			"integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==",
+			"version": "9.16.0",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz",
+			"integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@eslint-community/regexpp": "^4.12.1",
-				"@eslint/config-array": "^0.18.0",
-				"@eslint/core": "^0.7.0",
-				"@eslint/eslintrc": "^3.1.0",
-				"@eslint/js": "9.14.0",
-				"@eslint/plugin-kit": "^0.2.0",
+				"@eslint/config-array": "^0.19.0",
+				"@eslint/core": "^0.9.0",
+				"@eslint/eslintrc": "^3.2.0",
+				"@eslint/js": "9.16.0",
+				"@eslint/plugin-kit": "^0.2.3",
 				"@humanfs/node": "^0.16.6",
 				"@humanwhocodes/module-importer": "^1.0.1",
-				"@humanwhocodes/retry": "^0.4.0",
+				"@humanwhocodes/retry": "^0.4.1",
 				"@types/estree": "^1.0.6",
 				"@types/json-schema": "^7.0.15",
 				"ajv": "^6.12.4",
 				"chalk": "^4.0.0",
-				"cross-spawn": "^7.0.2",
+				"cross-spawn": "^7.0.5",
 				"debug": "^4.3.2",
 				"escape-string-regexp": "^4.0.0",
 				"eslint-scope": "^8.2.0",
@@ -4063,8 +4051,7 @@
 				"lodash.merge": "^4.6.2",
 				"minimatch": "^3.1.2",
 				"natural-compare": "^1.4.0",
-				"optionator": "^0.9.3",
-				"text-table": "^0.2.0"
+				"optionator": "^0.9.3"
 			},
 			"bin": {
 				"eslint": "bin/eslint.js"
@@ -4085,9 +4072,9 @@
 			}
 		},
 		"node_modules/eslint-compat-utils": {
-			"version": "0.6.0",
-			"resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.0.tgz",
-			"integrity": "sha512-1vVBdI/HLS6HTHVQCJGlN+LOF0w1Rs/WB9se23mQr84cRM0iMM8PulMFFhQdQ1BvS0cGwjpis4xziI91Rk0l6g==",
+			"version": "0.6.4",
+			"resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.4.tgz",
+			"integrity": "sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -4152,6 +4139,28 @@
 				"ms": "^2.1.1"
 			}
 		},
+		"node_modules/eslint-json-compat-utils": {
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/eslint-json-compat-utils/-/eslint-json-compat-utils-0.2.1.tgz",
+			"integrity": "sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"esquery": "^1.6.0"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"peerDependencies": {
+				"eslint": "*",
+				"jsonc-eslint-parser": "^2.4.0"
+			},
+			"peerDependenciesMeta": {
+				"@eslint/json": {
+					"optional": true
+				}
+			}
+		},
 		"node_modules/eslint-merge-processors": {
 			"version": "0.1.0",
 			"resolved": "https://registry.npmjs.org/eslint-merge-processors/-/eslint-merge-processors-0.1.0.tgz",
@@ -4236,12 +4245,13 @@
 			}
 		},
 		"node_modules/eslint-plugin-import-x": {
-			"version": "4.4.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.4.0.tgz",
-			"integrity": "sha512-me58aWTjdkPtgmOzPe+uP0bebpN5etH4bJRnYzy85Rn9g/3QyASg6kTCqdwNzyaJRqMI2ii2o8s01P2LZpREHg==",
+			"version": "4.5.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.5.0.tgz",
+			"integrity": "sha512-l0OTfnPF8RwmSXfjT75N8d6ZYLVrVYWpaGlgvVkVqFERCI5SyBfDP7QEMr3kt0zWi2sOa9EQ47clbdFsHkF83Q==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
+				"@typescript-eslint/scope-manager": "^8.1.0",
 				"@typescript-eslint/utils": "^8.1.0",
 				"debug": "^4.3.4",
 				"doctrine": "^3.0.0",
@@ -4261,9 +4271,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-jsdoc": {
-			"version": "50.4.3",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.4.3.tgz",
-			"integrity": "sha512-uWtwFxGRv6B8sU63HZM5dAGDhgsatb+LONwmILZJhdRALLOkCX2HFZhdL/Kw2ls8SQMAVEfK+LmnEfxInRN8HA==",
+			"version": "50.6.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.0.tgz",
+			"integrity": "sha512-tCNp4fR79Le3dYTPB0dKEv7yFyvGkUCa+Z3yuTrrNGGOxBlXo9Pn0PEgroOZikUQOGjxoGMVKNjrOHcYEdfszg==",
 			"dev": true,
 			"license": "BSD-3-Clause",
 			"dependencies": {
@@ -4302,14 +4312,15 @@
 			}
 		},
 		"node_modules/eslint-plugin-jsonc": {
-			"version": "2.17.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.17.0.tgz",
-			"integrity": "sha512-wvifOtlIGDx6IFqVpuavPYLRA0yCoaFpoIUOW46rgS2F91brwCyWbEDXjrNrsThZ6rImTuDH9Biu5XHxaaL1qA==",
+			"version": "2.18.2",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.18.2.tgz",
+			"integrity": "sha512-SDhJiSsWt3nItl/UuIv+ti4g3m4gpGkmnUJS9UWR3TrpyNsIcnJoBRD7Kof6cM4Rk3L0wrmY5Tm3z7ZPjR2uGg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"eslint-compat-utils": "^0.6.0",
+				"eslint-json-compat-utils": "^0.2.1",
 				"espree": "^9.6.1",
 				"graphemer": "^1.4.0",
 				"jsonc-eslint-parser": "^2.0.4",
@@ -4371,9 +4382,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-n": {
-			"version": "17.13.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.13.1.tgz",
-			"integrity": "sha512-97qzhk1z3DdSJNCqT45EslwCu5+LB9GDadSyBItgKUfGsXAmN/aa7LRQ0ZxHffUxUzvgbTPJL27/pE9ZQWHy7A==",
+			"version": "17.14.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz",
+			"integrity": "sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -4407,40 +4418,21 @@
 			}
 		},
 		"node_modules/eslint-plugin-perfectionist": {
-			"version": "3.9.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-3.9.1.tgz",
-			"integrity": "sha512-9WRzf6XaAxF4Oi5t/3TqKP5zUjERhasHmLFHin2Yw6ZAp/EP/EVA2dr3BhQrrHWCm5SzTMZf0FcjDnBkO2xFkA==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.2.0.tgz",
+			"integrity": "sha512-hEMFx5xfSc/0OLZXJhSaLUKkFxATuRf4yL2iVfxEcxkkb17DfoLZY9eH960dPSw5uB7o+4avqP3rtkNp1Vwo7w==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "^8.9.0",
-				"@typescript-eslint/utils": "^8.9.0",
-				"minimatch": "^9.0.5",
-				"natural-compare-lite": "^1.4.0"
+				"@typescript-eslint/types": "^8.17.0",
+				"@typescript-eslint/utils": "^8.17.0",
+				"natural-orderby": "^5.0.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.41.1",
-				"vue-eslint-parser": ">=9.0.0"
-			},
-			"peerDependenciesMeta": {
-				"astro-eslint-parser": {
-					"optional": true
-				},
-				"svelte": {
-					"optional": true
-				},
-				"svelte-eslint-parser": {
-					"optional": true
-				},
-				"vue-eslint-parser": {
-					"optional": true
-				}
+				"eslint": ">=8.0.0"
 			}
 		},
 		"node_modules/eslint-plugin-react": {
@@ -4477,23 +4469,23 @@
 			}
 		},
 		"node_modules/eslint-plugin-react-debug": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-debug/-/eslint-plugin-react-debug-1.15.2.tgz",
-			"integrity": "sha512-k+4Z+Gel0Vh3eQ5fLTOe+wvHuvD6ApOzBDupIRISv+sU24KXykT3J0+xZLy3gu5OfhxQ0hE7b3gY8bZvYaW41w==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/core": "1.15.2",
-				"@eslint-react/jsx": "1.15.2",
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@eslint-react/var": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/type-utils": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-debug/-/eslint-plugin-react-debug-1.19.0.tgz",
+			"integrity": "sha512-afB7K7Z06atC1xn/yl8nN1AyWYq9tLXDDl6ZY3LBEenjxBGSl2vJbBBpuvIfvZlZKP9gO5niOiRq+D/SZ23kbw==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/core": "1.19.0",
+				"@eslint-react/jsx": "1.19.0",
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@eslint-react/var": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/type-utils": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
 				"string-ts": "^2.2.0",
 				"ts-pattern": "^5.5.0"
 			},
@@ -4515,22 +4507,23 @@
 			}
 		},
 		"node_modules/eslint-plugin-react-dom": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-dom/-/eslint-plugin-react-dom-1.15.2.tgz",
-			"integrity": "sha512-strNT28BHy7yeQgdbBzPGUHDqRkZFI5IfKlkuiozk+vPSZfLj0K2X8L25DvNXr5eRMTyV6TlUsk1Y6xr6ZJgPg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/core": "1.15.2",
-				"@eslint-react/jsx": "1.15.2",
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@eslint-react/var": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-dom/-/eslint-plugin-react-dom-1.19.0.tgz",
+			"integrity": "sha512-nC8+nkNubHZuxVkXEMWhtQtPDjwbCX3140gCqMejKgHZYqgbXoCdYtZGdiBZ9qYWuRUsmPxRDsVNXDGZ3fak/A==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/core": "1.19.0",
+				"@eslint-react/jsx": "1.19.0",
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@eslint-react/var": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
+				"compare-versions": "^6.1.1",
 				"ts-pattern": "^5.5.0"
 			},
 			"engines": {
@@ -4551,9 +4544,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-react-hooks": {
-			"version": "5.0.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz",
-			"integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==",
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz",
+			"integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -4564,23 +4557,23 @@
 			}
 		},
 		"node_modules/eslint-plugin-react-hooks-extra": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks-extra/-/eslint-plugin-react-hooks-extra-1.15.2.tgz",
-			"integrity": "sha512-v+PazTS64GPCCGj9dEvSirHc4oNQm74zhE/CpsEo+0IBre38CavN7Ausq/OAgipmnihoyEH7hMgUzJsCAABEmQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/core": "1.15.2",
-				"@eslint-react/jsx": "1.15.2",
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@eslint-react/var": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/type-utils": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks-extra/-/eslint-plugin-react-hooks-extra-1.19.0.tgz",
+			"integrity": "sha512-QNRR+10zNIOXebbU0S0zZ9bqRxX5jyZ5C5hVHucWv0dBiXufRNNLIM8HaHOwUKh/rgya4Hx3Dghx4Rd6WAEXIA==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/core": "1.19.0",
+				"@eslint-react/jsx": "1.19.0",
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@eslint-react/var": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/type-utils": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
 				"ts-pattern": "^5.5.0"
 			},
 			"engines": {
@@ -4601,22 +4594,22 @@
 			}
 		},
 		"node_modules/eslint-plugin-react-naming-convention": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-naming-convention/-/eslint-plugin-react-naming-convention-1.15.2.tgz",
-			"integrity": "sha512-Vj4SOKlFAs0c+ICal0rVZHjVmEFAKEROhJV8xBu6ZO7JcVDb3Yc7N6t8/vTwhGJDk0jQ8quNSV0dPCX4gvLlDw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/core": "1.15.2",
-				"@eslint-react/jsx": "1.15.2",
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/type-utils": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-naming-convention/-/eslint-plugin-react-naming-convention-1.19.0.tgz",
+			"integrity": "sha512-d1GepWn0v/pqlcrzB63D5e/8JBETx3e5+TfVfXfdeJ0HU8nOBf/5JTtBUloXxG9Y92NNjgaXKe8zRxl35vK4Uw==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/core": "1.19.0",
+				"@eslint-react/jsx": "1.19.0",
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/type-utils": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
 				"ts-pattern": "^5.5.0"
 			},
 			"engines": {
@@ -4637,32 +4630,32 @@
 			}
 		},
 		"node_modules/eslint-plugin-react-refresh": {
-			"version": "0.4.14",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.14.tgz",
-			"integrity": "sha512-aXvzCTK7ZBv1e7fahFuR3Z/fyQQSIQ711yPgYRj+Oj64tyTgO4iQIDmYXDBqvSWQ/FA4OSCsXOStlF+noU0/NA==",
+			"version": "0.4.16",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.16.tgz",
+			"integrity": "sha512-slterMlxAhov/DZO8NScf6mEeMBBXodFUolijDvrtTxyezyLoTQaa73FyYus/VbTdftd8wBgBxPMRk3poleXNQ==",
 			"dev": true,
 			"license": "MIT",
 			"peerDependencies": {
-				"eslint": ">=7"
+				"eslint": ">=8.40"
 			}
 		},
 		"node_modules/eslint-plugin-react-web-api": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-web-api/-/eslint-plugin-react-web-api-1.15.2.tgz",
-			"integrity": "sha512-UIwuLvJn/2vbnB8IRnfNpsgcNQlJPJKfF/6/XwselRcRkgl5qk1B8pypapG/g3MqJ85jIAUj1Xn+bQu2BiTa7g==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/core": "1.15.2",
-				"@eslint-react/jsx": "1.15.2",
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@eslint-react/var": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-web-api/-/eslint-plugin-react-web-api-1.19.0.tgz",
+			"integrity": "sha512-6n1Ckv6cXhb1mCKRI45aWXnTWh9XRkXqy4mIDdkEPuljTiJDve6ZLJNYPGbS5csglkfRjqDJjOK0YKzpOhcuaw==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/core": "1.19.0",
+				"@eslint-react/jsx": "1.19.0",
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@eslint-react/var": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
 				"birecord": "^0.1.1",
 				"ts-pattern": "^5.5.0"
 			},
@@ -4684,24 +4677,25 @@
 			}
 		},
 		"node_modules/eslint-plugin-react-x": {
-			"version": "1.15.2",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-1.15.2.tgz",
-			"integrity": "sha512-HIpYzojk5fzalJ09UJRhtu1cJcFxM/YsTCdVPE/v3sqWb/1v8bzPVtUkQbR787G4o/M0wTUy+pBzTYAJeBRnOw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@eslint-react/ast": "1.15.2",
-				"@eslint-react/core": "1.15.2",
-				"@eslint-react/jsx": "1.15.2",
-				"@eslint-react/shared": "1.15.2",
-				"@eslint-react/tools": "1.15.2",
-				"@eslint-react/types": "1.15.2",
-				"@eslint-react/var": "1.15.2",
-				"@typescript-eslint/scope-manager": "^8.12.1",
-				"@typescript-eslint/type-utils": "^8.12.1",
-				"@typescript-eslint/types": "^8.12.1",
-				"@typescript-eslint/utils": "^8.12.1",
-				"is-immutable-type": "5.0.0",
+			"version": "1.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-1.19.0.tgz",
+			"integrity": "sha512-YphDgaJsAqU45qONZrLhvYTdcbTSt6s1CWrc6isVw2/KOuweyRWUtOrYBobE6h1Nmv6RTKP2HBfmNrLb4Pk7Ew==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@eslint-react/ast": "1.19.0",
+				"@eslint-react/core": "1.19.0",
+				"@eslint-react/jsx": "1.19.0",
+				"@eslint-react/shared": "1.19.0",
+				"@eslint-react/tools": "1.19.0",
+				"@eslint-react/types": "1.19.0",
+				"@eslint-react/var": "1.19.0",
+				"@typescript-eslint/scope-manager": "^8.18.0",
+				"@typescript-eslint/type-utils": "^8.18.0",
+				"@typescript-eslint/types": "^8.18.0",
+				"@typescript-eslint/utils": "^8.18.0",
+				"compare-versions": "^6.1.1",
+				"is-immutable-type": "^5.0.0",
 				"ts-pattern": "^5.5.0"
 			},
 			"engines": {
@@ -4787,14 +4781,14 @@
 			}
 		},
 		"node_modules/eslint-plugin-regexp": {
-			"version": "2.6.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-2.6.0.tgz",
-			"integrity": "sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==",
+			"version": "2.7.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-2.7.0.tgz",
+			"integrity": "sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
-				"@eslint-community/regexpp": "^4.9.1",
+				"@eslint-community/regexpp": "^4.11.0",
 				"comment-parser": "^1.4.0",
 				"jsdoc-type-pratt-parser": "^4.0.0",
 				"refa": "^0.12.1",
@@ -4809,9 +4803,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-svelte": {
-			"version": "2.46.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.0.tgz",
-			"integrity": "sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==",
+			"version": "2.46.1",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.1.tgz",
+			"integrity": "sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -4898,9 +4892,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-unicorn": {
-			"version": "56.0.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.0.tgz",
-			"integrity": "sha512-aXpddVz/PQMmd69uxO98PA4iidiVNvA0xOtbpUoz1WhBd4RxOQQYqN618v68drY0hmy5uU2jy1bheKEVWBjlPw==",
+			"version": "56.0.1",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz",
+			"integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -4961,9 +4955,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-vue": {
-			"version": "9.30.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.30.0.tgz",
-			"integrity": "sha512-CyqlRgShvljFkOeYK8wN5frh/OGTvkj1S7wlr2Q2pUvwq+X5VYiLd6ZjujpgSgLnys2W8qrBLkXQ41SUYaoPIQ==",
+			"version": "9.32.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz",
+			"integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -5120,9 +5114,9 @@
 			}
 		},
 		"node_modules/esm-env": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.1.4.tgz",
-			"integrity": "sha512-oO82nKPHKkzIj/hbtuDYy/JHqBHFlMIW36SDiPCVsj87ntDLcWN+sJ1erdVryd4NxODacFTsdrIE3b7IamqbOg==",
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.1.tgz",
+			"integrity": "sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==",
 			"dev": true,
 			"license": "MIT"
 		},
@@ -5158,9 +5152,9 @@
 			}
 		},
 		"node_modules/esrap": {
-			"version": "1.2.2",
-			"resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.2.tgz",
-			"integrity": "sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==",
+			"version": "1.2.3",
+			"resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.3.tgz",
+			"integrity": "sha512-ZlQmCCK+n7SGoqo7DnfKaP1sJZa49P01/dXzmjCASSo04p72w8EksT2NMK8CEX8DhKsfJXANioIw8VyHNsBfvQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -5663,9 +5657,9 @@
 			}
 		},
 		"node_modules/globals": {
-			"version": "15.12.0",
-			"resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz",
-			"integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==",
+			"version": "15.13.0",
+			"resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz",
+			"integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -6156,13 +6150,6 @@
 			"dev": true,
 			"license": "MIT"
 		},
-		"node_modules/json-parse-better-errors": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
-			"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"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",
@@ -6302,9 +6289,9 @@
 			}
 		},
 		"node_modules/lightningcss": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.1.tgz",
-			"integrity": "sha512-KRDkHlLlNj3DWh79CDt93fPlRJh2W1AuHV0ZSZAMMuN7lqlsZTV5842idfS1urWG8q9tc17velp1gCXhY7sLnQ==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.2.tgz",
+			"integrity": "sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==",
 			"dev": true,
 			"license": "MPL-2.0",
 			"dependencies": {
@@ -6318,22 +6305,22 @@
 				"url": "https://opencollective.com/parcel"
 			},
 			"optionalDependencies": {
-				"lightningcss-darwin-arm64": "1.28.1",
-				"lightningcss-darwin-x64": "1.28.1",
-				"lightningcss-freebsd-x64": "1.28.1",
-				"lightningcss-linux-arm-gnueabihf": "1.28.1",
-				"lightningcss-linux-arm64-gnu": "1.28.1",
-				"lightningcss-linux-arm64-musl": "1.28.1",
-				"lightningcss-linux-x64-gnu": "1.28.1",
-				"lightningcss-linux-x64-musl": "1.28.1",
-				"lightningcss-win32-arm64-msvc": "1.28.1",
-				"lightningcss-win32-x64-msvc": "1.28.1"
+				"lightningcss-darwin-arm64": "1.28.2",
+				"lightningcss-darwin-x64": "1.28.2",
+				"lightningcss-freebsd-x64": "1.28.2",
+				"lightningcss-linux-arm-gnueabihf": "1.28.2",
+				"lightningcss-linux-arm64-gnu": "1.28.2",
+				"lightningcss-linux-arm64-musl": "1.28.2",
+				"lightningcss-linux-x64-gnu": "1.28.2",
+				"lightningcss-linux-x64-musl": "1.28.2",
+				"lightningcss-win32-arm64-msvc": "1.28.2",
+				"lightningcss-win32-x64-msvc": "1.28.2"
 			}
 		},
 		"node_modules/lightningcss-darwin-arm64": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.28.1.tgz",
-			"integrity": "sha512-VG3vvzM0m/rguCdm76DdobNeNJnHK+jWcdkNLFWHLh9YCotRvbRIt45JxwcHlIF8TDqWStVLTdghq5NaigVCBQ==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.28.2.tgz",
+			"integrity": "sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==",
 			"cpu": [
 				"arm64"
 			],
@@ -6352,9 +6339,9 @@
 			}
 		},
 		"node_modules/lightningcss-darwin-x64": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.28.1.tgz",
-			"integrity": "sha512-O7ORdislvKfMohFl4Iq7fxKqdJOuuxArcglVI3amuFO5DJ0wfV3Gxgi1JRo49slfr7OVzJQEHLG4muTWYM5cTQ==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.28.2.tgz",
+			"integrity": "sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==",
 			"cpu": [
 				"x64"
 			],
@@ -6373,9 +6360,9 @@
 			}
 		},
 		"node_modules/lightningcss-freebsd-x64": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.28.1.tgz",
-			"integrity": "sha512-b7sF89B31kYYijxVcFO7l5u6UNA862YstNu+3YbLl/IQKzveL4a5cwR5cdpG+OOhErg/c2u9WCmzZoX2I5GBvw==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.28.2.tgz",
+			"integrity": "sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==",
 			"cpu": [
 				"x64"
 			],
@@ -6394,9 +6381,9 @@
 			}
 		},
 		"node_modules/lightningcss-linux-arm-gnueabihf": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.28.1.tgz",
-			"integrity": "sha512-p61kXwvhUDLLzkWHjzSFfUBW/F0iy3jr3CWi3k8SKULtJEsJXTI9DqRm9EixxMSe2AMBQBt4auTYiQL4B1N51A==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.28.2.tgz",
+			"integrity": "sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==",
 			"cpu": [
 				"arm"
 			],
@@ -6415,9 +6402,9 @@
 			}
 		},
 		"node_modules/lightningcss-linux-arm64-gnu": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.28.1.tgz",
-			"integrity": "sha512-iO+fN9hOMmzfwqcG2/BgUtMKD48H2JO/SXU44fyIwpY2veb65QF5xiRrQ9l1FwIxbGK3231KBYCtAqv+xf+NsQ==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.28.2.tgz",
+			"integrity": "sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==",
 			"cpu": [
 				"arm64"
 			],
@@ -6436,9 +6423,9 @@
 			}
 		},
 		"node_modules/lightningcss-linux-arm64-musl": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.28.1.tgz",
-			"integrity": "sha512-dnMHeXEmCUzHHZjaDpQBYuBKcN9nPC3nPFKl70bcj5Bkn5EmkcgEqm5p035LKOgvAwk1XwLpQCML6pXmCwz0NQ==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.28.2.tgz",
+			"integrity": "sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==",
 			"cpu": [
 				"arm64"
 			],
@@ -6457,9 +6444,9 @@
 			}
 		},
 		"node_modules/lightningcss-linux-x64-gnu": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.28.1.tgz",
-			"integrity": "sha512-7vWDISaMUn+oo2TwRdf2hl/BLdPxvywv9JKEqNZB/0K7bXwV4XE9wN/C2sAp1gGuh6QBA8lpjF4JIPt3HNlCHA==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.28.2.tgz",
+			"integrity": "sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==",
 			"cpu": [
 				"x64"
 			],
@@ -6478,9 +6465,9 @@
 			}
 		},
 		"node_modules/lightningcss-linux-x64-musl": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.28.1.tgz",
-			"integrity": "sha512-IHCu9tVGP+x5BCpA2rF3D04DBokcBza/a8AuHQU+1AiMKubuMegPwcL7RatBgK4ztFHeYnnD5NdhwhRfYMAtNA==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.28.2.tgz",
+			"integrity": "sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==",
 			"cpu": [
 				"x64"
 			],
@@ -6499,9 +6486,9 @@
 			}
 		},
 		"node_modules/lightningcss-win32-arm64-msvc": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.28.1.tgz",
-			"integrity": "sha512-Erm72kHmMg/3h350PTseskz+eEGBM17Fuu79WW2Qqt0BfWSF1jHHc12lkJCWMYl5jcBHPs5yZdgNHtJ7IJS3Uw==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.28.2.tgz",
+			"integrity": "sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==",
 			"cpu": [
 				"arm64"
 			],
@@ -6520,9 +6507,9 @@
 			}
 		},
 		"node_modules/lightningcss-win32-x64-msvc": {
-			"version": "1.28.1",
-			"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.28.1.tgz",
-			"integrity": "sha512-ZPQtvx+uQBzrSdHH8p4H3M9Alue+x369TPZAA3b4K3d92FPhpZCuBG04+HQzspam9sVeID9mI6f3VRAs2ezaEA==",
+			"version": "1.28.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.28.2.tgz",
+			"integrity": "sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==",
 			"cpu": [
 				"x64"
 			],
@@ -6588,9 +6575,9 @@
 			}
 		},
 		"node_modules/linkify-urls": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/linkify-urls/-/linkify-urls-5.0.1.tgz",
-			"integrity": "sha512-f3PAcZBuYR9S9KanoWB6bVKwF3VXDCdk94I1HnSx3RNxVXyBcfmxBDWhkt3MUVXhNQzmZw1vLMFaoDmG7DgBGw==",
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/linkify-urls/-/linkify-urls-5.0.2.tgz",
+			"integrity": "sha512-kNldUp5E0kwbgL7LopRVNAuwqr3iJxlCKFpGYQvJcKlwnhVKvAmjRD/AsS3yFi604NOfUlpPhyXKAA3Xkzmm5w==",
 			"license": "MIT",
 			"dependencies": {
 				"create-html-element": "^4.0.1"
@@ -6602,31 +6589,15 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/load-json-file": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
-			"integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"graceful-fs": "^4.1.2",
-				"parse-json": "^4.0.0",
-				"pify": "^3.0.0",
-				"strip-bom": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/local-pkg": {
-			"version": "0.5.0",
-			"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
-			"integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+			"version": "0.5.1",
+			"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
+			"integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"mlly": "^1.4.2",
-				"pkg-types": "^1.0.3"
+				"mlly": "^1.7.3",
+				"pkg-types": "^1.2.1"
 			},
 			"engines": {
 				"node": ">=14"
@@ -6741,9 +6712,9 @@
 			}
 		},
 		"node_modules/magic-string": {
-			"version": "0.30.12",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz",
-			"integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
+			"version": "0.30.14",
+			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz",
+			"integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -7750,15 +7721,15 @@
 			}
 		},
 		"node_modules/mlly": {
-			"version": "1.7.2",
-			"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.2.tgz",
-			"integrity": "sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==",
+			"version": "1.7.3",
+			"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz",
+			"integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"acorn": "^8.12.1",
+				"acorn": "^8.14.0",
 				"pathe": "^1.1.2",
-				"pkg-types": "^1.2.0",
+				"pkg-types": "^1.2.1",
 				"ufo": "^1.5.4"
 			}
 		},
@@ -7807,19 +7778,15 @@
 			"dev": true,
 			"license": "MIT"
 		},
-		"node_modules/natural-compare-lite": {
-			"version": "1.4.0",
-			"resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
-			"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/nice-try": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
-			"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+		"node_modules/natural-orderby": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-5.0.0.tgz",
+			"integrity": "sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==",
 			"dev": true,
-			"license": "MIT"
+			"license": "MIT",
+			"engines": {
+				"node": ">=18"
+			}
 		},
 		"node_modules/node-releases": {
 			"version": "2.0.18",
@@ -7874,205 +7841,80 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/npm-run-all": {
-			"version": "4.1.5",
-			"resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
-			"integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+		"node_modules/npm-normalize-package-bin": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz",
+			"integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==",
+			"dev": true,
+			"license": "ISC",
+			"engines": {
+				"node": "^18.17.0 || >=20.5.0"
+			}
+		},
+		"node_modules/npm-run-all2": {
+			"version": "7.0.1",
+			"resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.1.tgz",
+			"integrity": "sha512-Adbv+bJQ8UTAM03rRODqrO5cx0YU5KCG2CvHtSURiadvdTjjgGJXdbc1oQ9CXBh9dnGfHSoSB1Web/0Dzp6kOQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"chalk": "^2.4.1",
-				"cross-spawn": "^6.0.5",
+				"ansi-styles": "^6.2.1",
+				"cross-spawn": "^7.0.3",
 				"memorystream": "^0.3.1",
-				"minimatch": "^3.0.4",
-				"pidtree": "^0.3.0",
-				"read-pkg": "^3.0.0",
-				"shell-quote": "^1.6.1",
-				"string.prototype.padend": "^3.0.0"
+				"minimatch": "^9.0.0",
+				"pidtree": "^0.6.0",
+				"read-package-json-fast": "^4.0.0",
+				"shell-quote": "^1.7.3",
+				"which": "^5.0.0"
 			},
 			"bin": {
 				"npm-run-all": "bin/npm-run-all/index.js",
+				"npm-run-all2": "bin/npm-run-all/index.js",
 				"run-p": "bin/run-p/index.js",
 				"run-s": "bin/run-s/index.js"
 			},
 			"engines": {
-				"node": ">= 4"
+				"node": "^18.17.0 || >=20.5.0",
+				"npm": ">= 9"
 			}
 		},
-		"node_modules/npm-run-all/node_modules/ansi-styles": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"color-convert": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/brace-expansion": {
-			"version": "1.1.11",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-			"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"balanced-match": "^1.0.0",
-				"concat-map": "0.0.1"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/chalk": {
-			"version": "2.4.2",
-			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+		"node_modules/npm-run-all2/node_modules/ansi-styles": {
+			"version": "6.2.1",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+			"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
 			"dev": true,
 			"license": "MIT",
-			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"escape-string-regexp": "^1.0.5",
-				"supports-color": "^5.3.0"
-			},
 			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/color-convert": {
-			"version": "1.9.3",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"color-name": "1.1.3"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/color-name": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/npm-run-all/node_modules/cross-spawn": {
-			"version": "6.0.5",
-			"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-			"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"nice-try": "^1.0.4",
-				"path-key": "^2.0.1",
-				"semver": "^5.5.0",
-				"shebang-command": "^1.2.0",
-				"which": "^1.2.9"
+				"node": ">=12"
 			},
-			"engines": {
-				"node": ">=4.8"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/escape-string-regexp": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/has-flag": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=4"
+			"funding": {
+				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
 			}
 		},
-		"node_modules/npm-run-all/node_modules/minimatch": {
-			"version": "3.1.2",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-			"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+		"node_modules/npm-run-all2/node_modules/isexe": {
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+			"integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
 			"dev": true,
 			"license": "ISC",
-			"dependencies": {
-				"brace-expansion": "^1.1.7"
-			},
 			"engines": {
-				"node": "*"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/path-key": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-			"integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=4"
+				"node": ">=16"
 			}
 		},
-		"node_modules/npm-run-all/node_modules/semver": {
-			"version": "5.7.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
-			"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+		"node_modules/npm-run-all2/node_modules/which": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
+			"integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
 			"dev": true,
 			"license": "ISC",
-			"bin": {
-				"semver": "bin/semver"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/shebang-command": {
-			"version": "1.2.0",
-			"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
-			"integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
-			"dev": true,
-			"license": "MIT",
 			"dependencies": {
-				"shebang-regex": "^1.0.0"
+				"isexe": "^3.1.1"
 			},
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/shebang-regex": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-			"integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/supports-color": {
-			"version": "5.5.0",
-			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"has-flag": "^3.0.0"
+			"bin": {
+				"node-which": "bin/which.js"
 			},
 			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/npm-run-all/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"isexe": "^2.0.0"
-			},
-			"bin": {
-				"which": "bin/which"
+				"node": "^18.17.0 || >=20.5.0"
 			}
 		},
 		"node_modules/nth-check": {
@@ -8155,9 +7997,9 @@
 			}
 		},
 		"node_modules/octicons-plain-react": {
-			"version": "19.12.0",
-			"resolved": "https://registry.npmjs.org/octicons-plain-react/-/octicons-plain-react-19.12.0.tgz",
-			"integrity": "sha512-Z1hTP9wi20U0KSVD+jCPGi3tEHJ/3DXQQLP5AJEKCDrYslpEvuyP/H7TI4Kw+9qPOTvEbU26ATvVMGEVRpx34g==",
+			"version": "19.13.0",
+			"resolved": "https://registry.npmjs.org/octicons-plain-react/-/octicons-plain-react-19.13.0.tgz",
+			"integrity": "sha512-eo/3iM6yD+Q4wPueydNF2pqVhzdeINCFwjI5IfaQmzkKtzbxlkN2JIgUQXA9a/mgaNjxMvdgl4MYIFXhHV0v4Q==",
 			"license": "MIT",
 			"engines": {
 				"node": ">=18.0.0"
@@ -8373,9 +8215,9 @@
 			"license": "BlueOak-1.0.0"
 		},
 		"node_modules/package-manager-detector": {
-			"version": "0.2.2",
-			"resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.2.tgz",
-			"integrity": "sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==",
+			"version": "0.2.7",
+			"resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.7.tgz",
+			"integrity": "sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ==",
 			"dev": true,
 			"license": "MIT"
 		},
@@ -8416,20 +8258,6 @@
 				"node": ">= 18"
 			}
 		},
-		"node_modules/parse-json": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
-			"integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"error-ex": "^1.3.1",
-				"json-parse-better-errors": "^1.0.1"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/path-exists": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -8484,19 +8312,6 @@
 				"url": "https://github.com/sponsors/isaacs"
 			}
 		},
-		"node_modules/path-type": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
-			"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"pify": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/pathe": {
 			"version": "1.1.2",
 			"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
@@ -8545,9 +8360,9 @@
 			}
 		},
 		"node_modules/pidtree": {
-			"version": "0.3.1",
-			"resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
-			"integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==",
+			"version": "0.6.0",
+			"resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+			"integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
 			"dev": true,
 			"license": "MIT",
 			"bin": {
@@ -8557,16 +8372,6 @@
 				"node": ">=0.10"
 			}
 		},
-		"node_modules/pify": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-			"integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/pirates": {
 			"version": "4.0.6",
 			"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
@@ -8600,9 +8405,9 @@
 			}
 		},
 		"node_modules/postcss": {
-			"version": "8.4.47",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
-			"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+			"version": "8.4.49",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
+			"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
 			"dev": true,
 			"funding": [
 				{
@@ -8621,7 +8426,7 @@
 			"license": "MIT",
 			"dependencies": {
 				"nanoid": "^3.3.7",
-				"picocolors": "^1.1.0",
+				"picocolors": "^1.1.1",
 				"source-map-js": "^1.2.1"
 			},
 			"engines": {
@@ -9236,9 +9041,9 @@
 			}
 		},
 		"node_modules/prettier": {
-			"version": "3.3.3",
-			"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
-			"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
+			"version": "3.4.2",
+			"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz",
+			"integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
 			"dev": true,
 			"license": "MIT",
 			"bin": {
@@ -9252,9 +9057,9 @@
 			}
 		},
 		"node_modules/prettier-plugin-svelte": {
-			"version": "3.2.8",
-			"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.8.tgz",
-			"integrity": "sha512-PAHmmU5cGZdnhW4mWhmvxuG2PVbbHIxUuPOdUKvfE+d4Qt2d29iU5VWrPdsaW5YqVEE0nqhlvN4eoKmVMpIF3Q==",
+			"version": "3.3.2",
+			"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.3.2.tgz",
+			"integrity": "sha512-kRPjH8wSj2iu+dO+XaUv4vD8qr5mdDmlak3IT/7AOgGIMRG86z/EHOLauFcClKEnOUf4A4nOA7sre5KrJD4Raw==",
 			"dev": true,
 			"license": "MIT",
 			"peerDependencies": {
@@ -9349,19 +9154,28 @@
 			"dev": true,
 			"license": "MIT"
 		},
-		"node_modules/read-pkg": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
-			"integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+		"node_modules/read-package-json-fast": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz",
+			"integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==",
 			"dev": true,
-			"license": "MIT",
+			"license": "ISC",
 			"dependencies": {
-				"load-json-file": "^4.0.0",
-				"normalize-package-data": "^2.3.2",
-				"path-type": "^3.0.0"
+				"json-parse-even-better-errors": "^4.0.0",
+				"npm-normalize-package-bin": "^4.0.0"
 			},
 			"engines": {
-				"node": ">=4"
+				"node": "^18.17.0 || >=20.5.0"
+			}
+		},
+		"node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz",
+			"integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": "^18.17.0 || >=20.5.0"
 			}
 		},
 		"node_modules/read-pkg-up": {
@@ -9673,9 +9487,9 @@
 			}
 		},
 		"node_modules/rollup": {
-			"version": "4.24.4",
-			"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz",
-			"integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==",
+			"version": "4.28.1",
+			"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.1.tgz",
+			"integrity": "sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -9689,24 +9503,25 @@
 				"npm": ">=8.0.0"
 			},
 			"optionalDependencies": {
-				"@rollup/rollup-android-arm-eabi": "4.24.4",
-				"@rollup/rollup-android-arm64": "4.24.4",
-				"@rollup/rollup-darwin-arm64": "4.24.4",
-				"@rollup/rollup-darwin-x64": "4.24.4",
-				"@rollup/rollup-freebsd-arm64": "4.24.4",
-				"@rollup/rollup-freebsd-x64": "4.24.4",
-				"@rollup/rollup-linux-arm-gnueabihf": "4.24.4",
-				"@rollup/rollup-linux-arm-musleabihf": "4.24.4",
-				"@rollup/rollup-linux-arm64-gnu": "4.24.4",
-				"@rollup/rollup-linux-arm64-musl": "4.24.4",
-				"@rollup/rollup-linux-powerpc64le-gnu": "4.24.4",
-				"@rollup/rollup-linux-riscv64-gnu": "4.24.4",
-				"@rollup/rollup-linux-s390x-gnu": "4.24.4",
-				"@rollup/rollup-linux-x64-gnu": "4.24.4",
-				"@rollup/rollup-linux-x64-musl": "4.24.4",
-				"@rollup/rollup-win32-arm64-msvc": "4.24.4",
-				"@rollup/rollup-win32-ia32-msvc": "4.24.4",
-				"@rollup/rollup-win32-x64-msvc": "4.24.4",
+				"@rollup/rollup-android-arm-eabi": "4.28.1",
+				"@rollup/rollup-android-arm64": "4.28.1",
+				"@rollup/rollup-darwin-arm64": "4.28.1",
+				"@rollup/rollup-darwin-x64": "4.28.1",
+				"@rollup/rollup-freebsd-arm64": "4.28.1",
+				"@rollup/rollup-freebsd-x64": "4.28.1",
+				"@rollup/rollup-linux-arm-gnueabihf": "4.28.1",
+				"@rollup/rollup-linux-arm-musleabihf": "4.28.1",
+				"@rollup/rollup-linux-arm64-gnu": "4.28.1",
+				"@rollup/rollup-linux-arm64-musl": "4.28.1",
+				"@rollup/rollup-linux-loongarch64-gnu": "4.28.1",
+				"@rollup/rollup-linux-powerpc64le-gnu": "4.28.1",
+				"@rollup/rollup-linux-riscv64-gnu": "4.28.1",
+				"@rollup/rollup-linux-s390x-gnu": "4.28.1",
+				"@rollup/rollup-linux-x64-gnu": "4.28.1",
+				"@rollup/rollup-linux-x64-musl": "4.28.1",
+				"@rollup/rollup-win32-arm64-msvc": "4.28.1",
+				"@rollup/rollup-win32-ia32-msvc": "4.28.1",
+				"@rollup/rollup-win32-x64-msvc": "4.28.1",
 				"fsevents": "~2.3.2"
 			}
 		},
@@ -10071,11 +9886,14 @@
 			}
 		},
 		"node_modules/shell-quote": {
-			"version": "1.8.1",
-			"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
-			"integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+			"version": "1.8.2",
+			"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
+			"integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
 			"dev": true,
 			"license": "MIT",
+			"engines": {
+				"node": ">= 0.4"
+			},
 			"funding": {
 				"url": "https://github.com/sponsors/ljharb"
 			}
@@ -10367,20 +10185,6 @@
 				"node": ">=12.4.0"
 			}
 		},
-		"node_modules/string.prototype.padend": {
-			"name": "@nolyfill/string.prototype.padend",
-			"version": "1.0.28",
-			"resolved": "https://registry.npmjs.org/@nolyfill/string.prototype.padend/-/string.prototype.padend-1.0.28.tgz",
-			"integrity": "sha512-70w/Hd+I79jfqpSv/cBZnwA9CBV1XxmtwnLgBhJtcWk3vlWTEdkcrJPK53PmedPa80dwFX29fbFf9mGcPagedg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@nolyfill/shared": "1.0.28"
-			},
-			"engines": {
-				"node": ">=12.4.0"
-			}
-		},
 		"node_modules/string.prototype.repeat": {
 			"name": "@nolyfill/string.prototype.repeat",
 			"version": "1.0.28",
@@ -10449,16 +10253,6 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/strip-bom": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-			"integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/strip-indent": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
@@ -10512,9 +10306,9 @@
 			}
 		},
 		"node_modules/stylelint": {
-			"version": "16.10.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz",
-			"integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==",
+			"version": "16.11.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.11.0.tgz",
+			"integrity": "sha512-zrl4IrKmjJQ+h9FoMp69UMCq5SxeHk0URhxUBj4d3ISzo/DplOFBJZc7t7Dr6otB+1bfbbKNLOmCDpzKSlW+Nw==",
 			"dev": true,
 			"funding": [
 				{
@@ -10528,16 +10322,16 @@
 			],
 			"license": "MIT",
 			"dependencies": {
-				"@csstools/css-parser-algorithms": "^3.0.1",
-				"@csstools/css-tokenizer": "^3.0.1",
-				"@csstools/media-query-list-parser": "^3.0.1",
-				"@csstools/selector-specificity": "^4.0.0",
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3",
+				"@csstools/media-query-list-parser": "^4.0.2",
+				"@csstools/selector-specificity": "^5.0.0",
 				"@dual-bundle/import-meta-resolve": "^4.1.0",
 				"balanced-match": "^2.0.0",
 				"colord": "^2.9.3",
 				"cosmiconfig": "^9.0.0",
 				"css-functions-list": "^3.2.3",
-				"css-tree": "^3.0.0",
+				"css-tree": "^3.0.1",
 				"debug": "^4.3.7",
 				"fast-glob": "^3.3.2",
 				"fastest-levenshtein": "^1.0.16",
@@ -10549,16 +10343,16 @@
 				"ignore": "^6.0.2",
 				"imurmurhash": "^0.1.4",
 				"is-plain-object": "^5.0.0",
-				"known-css-properties": "^0.34.0",
+				"known-css-properties": "^0.35.0",
 				"mathml-tag-names": "^2.1.3",
 				"meow": "^13.2.0",
 				"micromatch": "^4.0.8",
 				"normalize-path": "^3.0.0",
-				"picocolors": "^1.0.1",
-				"postcss": "^8.4.47",
+				"picocolors": "^1.1.1",
+				"postcss": "^8.4.49",
 				"postcss-resolve-nested-selector": "^0.1.6",
 				"postcss-safe-parser": "^7.0.1",
-				"postcss-selector-parser": "^6.1.2",
+				"postcss-selector-parser": "^7.0.0",
 				"postcss-value-parser": "^4.2.0",
 				"resolve-from": "^5.0.0",
 				"string-width": "^4.2.3",
@@ -10623,6 +10417,30 @@
 				"stylelint": "^16.1.0"
 			}
 		},
+		"node_modules/stylelint/node_modules/@csstools/media-query-list-parser": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
+			"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/csstools"
+				},
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/csstools"
+				}
+			],
+			"license": "MIT",
+			"engines": {
+				"node": ">=18"
+			},
+			"peerDependencies": {
+				"@csstools/css-parser-algorithms": "^3.0.4",
+				"@csstools/css-tokenizer": "^3.0.3"
+			}
+		},
 		"node_modules/stylelint/node_modules/balanced-match": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
@@ -10725,13 +10543,6 @@
 				"node": ">= 4"
 			}
 		},
-		"node_modules/stylelint/node_modules/known-css-properties": {
-			"version": "0.34.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
-			"integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"node_modules/stylelint/node_modules/parse-json": {
 			"version": "5.2.0",
 			"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -10778,6 +10589,20 @@
 				"postcss": "^8.4.31"
 			}
 		},
+		"node_modules/stylelint/node_modules/postcss-selector-parser": {
+			"version": "7.0.0",
+			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+			"integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"cssesc": "^3.0.0",
+				"util-deprecate": "^1.0.2"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
 		"node_modules/stylelint/node_modules/resolve-from": {
 			"version": "5.0.0",
 			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
@@ -10876,9 +10701,9 @@
 			}
 		},
 		"node_modules/svelte": {
-			"version": "5.1.13",
-			"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.1.13.tgz",
-			"integrity": "sha512-xVNk8yLsZNfkyqWzVg8+nfU9ewiSjVW0S4qyTxfKa6Y7P5ZBhA+LDsh2cHWIXJQMltikQAk6W3sqGdQZSH58PA==",
+			"version": "5.10.0",
+			"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.10.0.tgz",
+			"integrity": "sha512-jGJFpB9amHLLQZBbAuQ6csH7WlTvGx4cO4wSSNcgGcx9vDGMTCZzTREf6/wKhVUQDoK+GapgvLQPZHa3e9MOAA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -10889,9 +10714,9 @@
 				"acorn-typescript": "^1.4.13",
 				"aria-query": "^5.3.1",
 				"axobject-query": "^4.1.0",
-				"esm-env": "^1.0.0",
-				"esrap": "^1.2.2",
-				"is-reference": "^3.0.2",
+				"esm-env": "^1.2.1",
+				"esrap": "^1.2.3",
+				"is-reference": "^3.0.3",
 				"locate-character": "^3.0.0",
 				"magic-string": "^0.30.11",
 				"zimmerframe": "^1.1.2"
@@ -10977,13 +10802,13 @@
 			}
 		},
 		"node_modules/svelte/node_modules/is-reference": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
-			"integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
+			"integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@types/estree": "*"
+				"@types/estree": "^1.0.6"
 			}
 		},
 		"node_modules/svg-tag-names": {
@@ -11208,13 +11033,6 @@
 				"url": "https://github.com/sponsors/fregante"
 			}
 		},
-		"node_modules/text-table": {
-			"version": "0.2.0",
-			"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-			"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"node_modules/thenify": {
 			"version": "3.3.1",
 			"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
@@ -11356,13 +11174,23 @@
 			}
 		},
 		"node_modules/ts-declaration-location": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.4.tgz",
-			"integrity": "sha512-r4JoxYhKULbZuH81Pjrp9OEG5St7XWk7zXwGkLKhmVcjiBVHTJXV5wK6dEa9JKW5QGSTW6b1lOjxAKp8R1SQhg==",
+			"version": "1.0.5",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.5.tgz",
+			"integrity": "sha512-WqmlO9IoeYwCqJ2E9kHMcY9GZhhfLYItC3VnHDlPOrg6nNdUWS4wn4hhDZUPt60m1EvtjPIZyprTjpI992Bgzw==",
 			"dev": true,
+			"funding": [
+				{
+					"type": "ko-fi",
+					"url": "https://ko-fi.com/rebeccastevens"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+				}
+			],
 			"license": "BSD-3-Clause",
 			"dependencies": {
-				"minimatch": "^10.0.0"
+				"minimatch": "^10.0.1"
 			},
 			"peerDependencies": {
 				"typescript": ">=4.0.0"
@@ -11443,9 +11271,9 @@
 			}
 		},
 		"node_modules/type-fest": {
-			"version": "4.26.1",
-			"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz",
-			"integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==",
+			"version": "4.30.0",
+			"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
+			"integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
 			"license": "(MIT OR CC0-1.0)",
 			"engines": {
 				"node": ">=16"
@@ -11461,9 +11289,9 @@
 			"license": "MIT"
 		},
 		"node_modules/typescript": {
-			"version": "5.6.3",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
-			"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
+			"version": "5.7.2",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
+			"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
 			"dev": true,
 			"license": "Apache-2.0",
 			"bin": {
@@ -11517,9 +11345,9 @@
 			}
 		},
 		"node_modules/undici-types": {
-			"version": "6.19.8",
-			"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
-			"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+			"version": "6.20.0",
+			"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+			"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
 			"dev": true,
 			"license": "MIT"
 		},
@@ -11593,9 +11421,9 @@
 			}
 		},
 		"node_modules/unplugin": {
-			"version": "1.15.0",
-			"resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.15.0.tgz",
-			"integrity": "sha512-jTPIs63W+DUEDW207ztbaoO7cQ4p5aVaB823LSlxpsFEU3Mykwxf3ZGC/wzxFJeZlASZYgVrWeo7LgOrqJZ8RA==",
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.0.0.tgz",
+			"integrity": "sha512-26eihuX14zPtiW6gzz8B112Buhi9CaWH/5ezO67pzBhKoz3MfHyc2lz/QOMOyEd/DWk+OnS0zCiYixnm8Q3dqA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -11603,31 +11431,23 @@
 				"webpack-virtual-modules": "^0.6.2"
 			},
 			"engines": {
-				"node": ">=14.0.0"
-			},
-			"peerDependencies": {
-				"webpack-sources": "^3"
-			},
-			"peerDependenciesMeta": {
-				"webpack-sources": {
-					"optional": true
-				}
+				"node": ">=18.12.0"
 			}
 		},
 		"node_modules/unplugin-lightningcss": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/unplugin-lightningcss/-/unplugin-lightningcss-0.1.0.tgz",
-			"integrity": "sha512-xIazkOQAINKw5NtrQFsOeYK3LyznHfdidJfad4aicnQaggx5hsLHC1MtL40192B6ealU35F3B0s6clqxReXKmg==",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/unplugin-lightningcss/-/unplugin-lightningcss-0.2.1.tgz",
+			"integrity": "sha512-zODT+x8YzE1fK+yvo4cJAUISgtRzpAG4BN1flZQxMtSRfCAMpWamKaGJ12J0kDBzxbVj9fh09AEzLtvkybdYvg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@rollup/pluginutils": "^5.0.5",
-				"lightningcss": "^1.22.0",
-				"magic-string": "^0.30.5",
-				"unplugin": "^1.5.0"
+				"@rollup/pluginutils": "^5.1.3",
+				"lightningcss": "^1.28.2",
+				"magic-string": "^0.30.14",
+				"unplugin": "^2.0.0-beta.1"
 			},
 			"engines": {
-				"node": ">=16.14.0"
+				"node": ">=18.12.0"
 			}
 		},
 		"node_modules/update-browserslist-db": {
@@ -11714,9 +11534,9 @@
 			}
 		},
 		"node_modules/vite": {
-			"version": "5.4.10",
-			"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz",
-			"integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==",
+			"version": "5.4.11",
+			"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz",
+			"integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -11774,14 +11594,15 @@
 			}
 		},
 		"node_modules/vite-node": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz",
-			"integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz",
+			"integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"cac": "^6.7.14",
 				"debug": "^4.3.7",
+				"es-module-lexer": "^1.5.4",
 				"pathe": "^1.1.2",
 				"vite": "^5.0.0"
 			},
@@ -11796,31 +11617,31 @@
 			}
 		},
 		"node_modules/vitest": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz",
-			"integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==",
+			"version": "2.1.8",
+			"resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz",
+			"integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/expect": "2.1.4",
-				"@vitest/mocker": "2.1.4",
-				"@vitest/pretty-format": "^2.1.4",
-				"@vitest/runner": "2.1.4",
-				"@vitest/snapshot": "2.1.4",
-				"@vitest/spy": "2.1.4",
-				"@vitest/utils": "2.1.4",
+				"@vitest/expect": "2.1.8",
+				"@vitest/mocker": "2.1.8",
+				"@vitest/pretty-format": "^2.1.8",
+				"@vitest/runner": "2.1.8",
+				"@vitest/snapshot": "2.1.8",
+				"@vitest/spy": "2.1.8",
+				"@vitest/utils": "2.1.8",
 				"chai": "^5.1.2",
 				"debug": "^4.3.7",
 				"expect-type": "^1.1.0",
 				"magic-string": "^0.30.12",
 				"pathe": "^1.1.2",
-				"std-env": "^3.7.0",
+				"std-env": "^3.8.0",
 				"tinybench": "^2.9.0",
 				"tinyexec": "^0.3.1",
 				"tinypool": "^1.0.1",
 				"tinyrainbow": "^1.2.0",
 				"vite": "^5.0.0",
-				"vite-node": "2.1.4",
+				"vite-node": "2.1.8",
 				"why-is-node-running": "^2.3.0"
 			},
 			"bin": {
@@ -11835,8 +11656,8 @@
 			"peerDependencies": {
 				"@edge-runtime/vm": "*",
 				"@types/node": "^18.0.0 || >=20.0.0",
-				"@vitest/browser": "2.1.4",
-				"@vitest/ui": "2.1.4",
+				"@vitest/browser": "2.1.8",
+				"@vitest/ui": "2.1.8",
 				"happy-dom": "*",
 				"jsdom": "*"
 			},
@@ -11976,9 +11797,9 @@
 			}
 		},
 		"node_modules/webext-detect": {
-			"version": "5.3.0",
-			"resolved": "https://registry.npmjs.org/webext-detect/-/webext-detect-5.3.0.tgz",
-			"integrity": "sha512-qdpROXKii5r8roP0GjWWpO2rD3DYO72W4LHEFaA1nIILONWqnC7IGd42w+L2eMmFKwN/pEz+N2Q1rZzRsbK46g==",
+			"version": "5.3.1",
+			"resolved": "https://registry.npmjs.org/webext-detect/-/webext-detect-5.3.1.tgz",
+			"integrity": "sha512-vmVd7haZ+CW/n037KUCi7t5Xn+oMxxScsgTPXirnHxXhHLJsR+4je9glh6QrsptgUfkZN4dGcFTrBrZUah1RAg==",
 			"license": "MIT",
 			"engines": {
 				"node": ">=18"
@@ -12036,9 +11857,9 @@
 			}
 		},
 		"node_modules/webext-options-sync": {
-			"version": "4.2.4",
-			"resolved": "https://registry.npmjs.org/webext-options-sync/-/webext-options-sync-4.2.4.tgz",
-			"integrity": "sha512-68WPPTpKCsFUSxroGEFm17tz+z7+zodJuYtlSPciusIZ48wdxtZjTQ/jvbkYlMhQmqwAr49Eb34M5/9pjS10rg==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/webext-options-sync/-/webext-options-sync-4.3.0.tgz",
+			"integrity": "sha512-ZuujFYSB1+n30xGo6/MbTCBfhDqH8HoUnAxOIHmx8tsyfTYLlTLACTV8+a73A4v8FWEU1xq3wJ3QRulaO4x79w==",
 			"license": "MIT",
 			"dependencies": {
 				"dom-form-serializer": "^2.0.0",
diff --git a/package.json b/package.json
index 970be83b..73c328fb 100644
--- a/package.json
+++ b/package.json
@@ -71,7 +71,7 @@
 	"dependencies": {
 		"@fregante/mi-cron": "^2.0.0",
 		"@sindresorhus/to-milliseconds": "^2.0.0",
-		"abort-utils": "^1.2.0",
+		"abort-utils": "^1.3.0",
 		"batched-function": "^2.0.1",
 		"code-tag": "^1.2.0",
 		"debounce-fn": "^6.0.0",
@@ -87,9 +87,9 @@
 		"indent-textarea": "^4.0.0",
 		"js-abbreviation-number": "^1.4.0",
 		"linkify-issues": "^4.1.0",
-		"linkify-urls": "^5.0.1",
+		"linkify-urls": "^5.0.2",
 		"memoize": "^10.0.0",
-		"octicons-plain-react": "^19.12.0",
+		"octicons-plain-react": "^19.13.0",
 		"one-event": "^4.3.0",
 		"one-mutation": "^3.0.1",
 		"pretty-bytes": "^6.1.1",
@@ -105,10 +105,10 @@
 		"uint8array-extras": "^1.4.0",
 		"webext-alert": "^1.0.2",
 		"webext-base-css": "^2.0.1",
-		"webext-detect": "^5.3.0",
+		"webext-detect": "^5.3.1",
 		"webext-dynamic-content-scripts": "^10.0.4",
 		"webext-msg": "^1.0.0",
-		"webext-options-sync": "^4.2.4",
+		"webext-options-sync": "^4.3.0",
 		"webext-options-sync-per-domain": "^4.2.3",
 		"webext-permission-toggle": "^5.1.0",
 		"webext-storage": "^1.2.2",
@@ -117,36 +117,36 @@
 		"zip-text-nodes": "^1.0.0"
 	},
 	"devDependencies": {
-		"@antfu/eslint-config": "^3.8.0",
-		"@eslint-react/eslint-plugin": "^1.15.2",
+		"@antfu/eslint-config": "^3.11.2",
+		"@eslint-react/eslint-plugin": "^1.19.0",
 		"@rollup/plugin-alias": "^5.1.1",
 		"@rollup/plugin-commonjs": "^28.0.1",
 		"@rollup/plugin-json": "^6.1.0",
 		"@rollup/plugin-node-resolve": "^15.3.0",
 		"@rollup/plugin-sucrase": "^5.0.2",
-		"@sindresorhus/tsconfig": "^6.0.0",
+		"@sindresorhus/tsconfig": "^7.0.0",
 		"@stylistic/stylelint-config": "^2.0.0",
-		"@types/chrome": "^0.0.280",
+		"@types/chrome": "^0.0.287",
 		"@types/codemirror": "^5.60.15",
 		"@types/dom-navigation": "^1.0.4",
-		"@types/node": "^22.7.8",
+		"@types/node": "^22.10.1",
 		"@types/react": "^17.0.52",
 		"daily-version": "^2.0.0",
 		"dot-json": "^1.3.0",
-		"eslint": "^9.14.0",
+		"eslint": "^9.16.0",
 		"eslint-plugin-react": "^7.37.2",
-		"eslint-plugin-react-hooks": "^5.0.0",
-		"eslint-plugin-react-refresh": "^0.4.14",
-		"eslint-plugin-svelte": "^2.46.0",
+		"eslint-plugin-react-hooks": "^5.1.0",
+		"eslint-plugin-react-refresh": "^0.4.16",
+		"eslint-plugin-svelte": "^2.46.1",
 		"fast-ignore": "^1.1.3",
 		"filenamify": "^6.0.0",
 		"highlight.js": "^11.10.0",
 		"linkedom": "^0.18.5",
-		"npm-run-all": "^4.1.5",
+		"npm-run-all2": "^7.0.1",
 		"p-memoize": "^7.1.1",
-		"prettier": "^3.3.3",
-		"prettier-plugin-svelte": "^3.2.8",
-		"rollup": "^4.24.0",
+		"prettier": "^3.4.2",
+		"prettier-plugin-svelte": "^3.3.2",
+		"rollup": "^4.28.1",
 		"rollup-plugin-cleanup": "^3.2.1",
 		"rollup-plugin-copy": "^3.5.0",
 		"rollup-plugin-delete": "^2.1.0",
@@ -155,14 +155,14 @@
 		"rollup-plugin-svelte": "^7.2.2",
 		"rollup-plugin-webpack-stats": "^1.1.0",
 		"snarkdown": "^2.0.0",
-		"stylelint": "^16.10.0",
+		"stylelint": "^16.11.0",
 		"stylelint-config-standard": "^36.0.1",
-		"svelte": "^5.1.3",
-		"type-fest": "^4.26.1",
+		"svelte": "^5.10.0",
+		"type-fest": "^4.30.0",
 		"typed-query-selector": "^2.12.0",
-		"typescript": "^5.5.4",
-		"unplugin-lightningcss": "^0.1.0",
-		"vitest": "^2.1.3"
+		"typescript": "^5.7.2",
+		"unplugin-lightningcss": "^0.2.1",
+		"vitest": "^2.1.8"
 	},
 	"engines": {
 		"node": ">= 20",
diff --git a/source/background.ts b/source/background.ts
index 0d4dd3db..828d0325 100644
--- a/source/background.ts
+++ b/source/background.ts
@@ -10,6 +10,7 @@ import optionsStorage, {hasToken} from './options-storage.js';
 import isDevelopmentVersion from './helpers/is-development-version.js';
 import {doesBrowserActionOpenOptions} from './helpers/feature-utils.js';
 import {styleHotfixes} from './helpers/hotfix.js';
+import {fetchText} from './helpers/isomorphic-fetch.js';
 
 const {version} = chrome.runtime.getManifest();
 
@@ -34,6 +35,7 @@ handleMessages({
 	async closeTab(_: any, {tab}: chrome.runtime.MessageSender) {
 		void chrome.tabs.remove(tab!.id!);
 	},
+	fetchText,
 	async fetchJSON(url: string) {
 		const response = await fetch(url);
 		return response.json();
diff --git a/source/feature-data.ts b/source/feature-data.ts
index 30083e9b..a2b903d4 100644
--- a/source/feature-data.ts
+++ b/source/feature-data.ts
@@ -1,7 +1,7 @@
 // Run `npm run vitest` to update these files
-import importedFeaturesRaw from '../build/__snapshots__/imported-features.json';
-import featuresMetasRaw from '../build/__snapshots__/features-meta.json';
-import renamedFeatures from './feature-renames.json';
+import importedFeaturesRaw from '../build/__snapshots__/imported-features.json' with {type: 'json'};
+import featuresMetasRaw from '../build/__snapshots__/features-meta.json' with {type: 'json'};
+import renamedFeatures from './feature-renames.json' with {type: 'json'};
 
 export const importedFeatures = importedFeaturesRaw as FeatureID[];
 export const featuresMeta = featuresMetasRaw as FeatureMeta[];
diff --git a/source/features/action-pr-link.tsx b/source/features/action-pr-link.tsx
index d52e5071..b8c1114b 100644
--- a/source/features/action-pr-link.tsx
+++ b/source/features/action-pr-link.tsx
@@ -27,7 +27,10 @@ async function initForRepositoryActionsPage(signal: AbortSignal): Promise<void>
 
 async function initForPRPage(signal: AbortSignal): Promise<void> {
 	// Exclude rgh-link, include isPRCommits
-	observe('main [href="/apps/github-actions"] ~ div a.status-actions', addForPR, {signal});
+	observe([
+		'main [href="/apps/github-actions"] ~ div a.status-actions', // Legacy
+		'[data-testid="check-run-item"] a[href*="/actions/runs/"]', // React component on isPRCommits
+	], addForPR, {signal});
 }
 
 void features.add(import.meta.url, {
diff --git a/source/features/clear-pr-merge-commit-message.tsx b/source/features/clear-pr-merge-commit-message.tsx
index 4e275c84..bd3d2a95 100644
--- a/source/features/clear-pr-merge-commit-message.tsx
+++ b/source/features/clear-pr-merge-commit-message.tsx
@@ -11,24 +11,34 @@ import cleanCommitMessage from '../helpers/clean-commit-message.js';
 import {userHasPushAccess} from '../github-helpers/get-user-permission.js';
 import {expectToken} from '../github-helpers/github-token.js';
 import attachElement from '../helpers/attach-element.js';
+import observe from '../helpers/selector-observer.js';
 
 const isPrAgainstDefaultBranch = async (): Promise<boolean> => getBranches().base.branch === await getDefaultBranch();
 
-async function clear(event: DelegateEvent<CustomEvent, HTMLTextAreaElement>): Promise<void | false> {
+// TODO: Drop in May 2025
+function handleLegacyToggle(event: DelegateEvent<CustomEvent, HTMLTextAreaElement>): void {
 	if (event.detail?.open !== true) {
 		return;
 	}
 
 	const messageField = $('textarea#merge_message_field', event.delegateTarget);
-	const originalMessage = messageField.value;
-	if (!originalMessage.trim()) {
-		return;
+	if (messageField.value.trim()) {
+		clear(messageField);
 	}
+}
 
+function clearReactTextarea(textarea: HTMLTextAreaElement): void {
+	if (textarea.labels[0]?.textContent === 'Commit message') {
+		clear(textarea);
+	}
+}
+
+async function clear(messageField: HTMLTextAreaElement): Promise<void> {
+	const originalMessage = messageField.value;
 	const cleanedMessage = cleanCommitMessage(originalMessage, !await isPrAgainstDefaultBranch());
 
 	if (cleanedMessage === originalMessage.trim()) {
-		return false;
+		return;
 	}
 
 	// Do not use `text-field-edit` #6348
@@ -37,13 +47,17 @@ async function clear(event: DelegateEvent<CustomEvent, HTMLTextAreaElement>): Pr
 	// Trigger `fit-textareas` if enabled
 	messageField.dispatchEvent(new Event('input', {bubbles: true}));
 
-	attachElement(messageField, {
+	// TODO: Drop `?? messageField` in May 2025
+	const anchor = messageField.closest('span[class^="TextInputWrapper"]') ?? messageField;
+
+	// TODO: Drop `<hr>` in May 2025
+	attachElement(anchor ?? messageField, {
 		after: () => (
-			<div>
+			<div className="flex-self-stretch">
 				<p className="note">
 					The description field was cleared by <a target="_blank" href="https://github.com/refined-github/refined-github/wiki/Extended-feature-descriptions#clear-pr-merge-commit-message" rel="noreferrer">Refined GitHub</a>.
 				</p>
-				<hr />
+				{anchor.nodeName === 'TEXTAREA' && <hr />}
 			</div>
 		),
 	});
@@ -51,7 +65,8 @@ async function clear(event: DelegateEvent<CustomEvent, HTMLTextAreaElement>): Pr
 
 async function init(signal: AbortSignal): Promise<void> {
 	await expectToken();
-	delegate('.js-merge-pr', 'details:toggled', clear, {signal});
+	delegate('.js-merge-pr', 'details:toggled', handleLegacyToggle, {signal});
+	observe('[aria-label="Checks"] ~ div textarea[id]', clearReactTextarea, {signal});
 }
 
 void features.add(import.meta.url, {
diff --git a/source/features/closing-remarks.tsx b/source/features/closing-remarks.tsx
index a3598931..ba2c2b50 100644
--- a/source/features/closing-remarks.tsx
+++ b/source/features/closing-remarks.tsx
@@ -11,7 +11,7 @@ import features from '../feature-manager.js';
 import fetchDom from '../helpers/fetch-dom.js';
 import onPrMerge from '../github-events/on-pr-merge.js';
 import createBanner from '../github-helpers/banner.js';
-import TimelineItem from '../github-helpers/timeline-item.js';
+import {TimelineItemOld as TimelineItem} from '../github-helpers/timeline-item.js';
 import attachElement from '../helpers/attach-element.js';
 import {buildRepoURL, getRepo, isRefinedGitHubRepo} from '../github-helpers/index.js';
 import {getReleases} from './releases-tab.js';
diff --git a/source/features/hide-diff-signs.css b/source/features/hide-diff-signs.css
index 2a1aaa24..3db8a40f 100644
--- a/source/features/hide-diff-signs.css
+++ b/source/features/hide-diff-signs.css
@@ -1,9 +1,8 @@
 html:not([rgh-OFF-hide-diff-signs])
 	:is(
-		.diff-text-cell
-		.diff-text, /* Edit page, probably upcoming DOM everywhere */
+		.diff-text-cell .diff-text, /* Edit page, probably upcoming DOM everywhere */
 		.blob-code-inner, /* Inline review blocks in PRs */
-		.blob-code-marker-cell, /* Commit page */
+		.blob-code-marker-cell /* Commit page */
 	)::before,
 	/* React commit page */
 	.diff-text-marker {
diff --git a/source/features/more-dropdown-links.tsx b/source/features/more-dropdown-links.tsx
index 2d6d1b68..7261e975 100644
--- a/source/features/more-dropdown-links.tsx
+++ b/source/features/more-dropdown-links.tsx
@@ -47,10 +47,10 @@ async function addDropdownItems(repoNavigationDropdown: HTMLElement): Promise<vo
 		pageDetect.isEnterprise()
 			? ''
 			: createDropdownItem({
-				label: 'Dependencies',
-				href: dependenciesUrl,
-				icon: PackageDependenciesIcon,
-			}),
+					label: 'Dependencies',
+					href: dependenciesUrl,
+					icon: PackageDependenciesIcon,
+				}),
 		createDropdownItem({
 			label: 'Commits',
 			href: commitsUrl,
diff --git a/source/features/no-unnecessary-split-diff-view.css b/source/features/no-unnecessary-split-diff-view.css
index b39c4375..885ad30e 100644
--- a/source/features/no-unnecessary-split-diff-view.css
+++ b/source/features/no-unnecessary-split-diff-view.css
@@ -5,11 +5,8 @@ html:not([rgh-OFF-no-unnecessary-split-diff-view]) {
 	.js-diff-table:has([data-split-side]) {
 		&:not(
 				:has(
-						[data-split-side='left']:is(
-								.blob-code-addition,
-								.blob-code-deletion
-							)
-					)
+					[data-split-side='left']:is(.blob-code-addition, .blob-code-deletion)
+				)
 			) {
 			--rgh-only-additions: none;
 
@@ -18,11 +15,8 @@ html:not([rgh-OFF-no-unnecessary-split-diff-view]) {
 
 		&:not(
 				:has(
-						[data-split-side='right']:is(
-								.blob-code-addition,
-								.blob-code-deletion
-							)
-					)
+					[data-split-side='right']:is(.blob-code-addition, .blob-code-deletion)
+				)
 			) {
 			--rgh-only-deletions: none;
 
diff --git a/source/features/rgh-netiquette.tsx b/source/features/rgh-netiquette.tsx
index 9c36e92b..a0844507 100644
--- a/source/features/rgh-netiquette.tsx
+++ b/source/features/rgh-netiquette.tsx
@@ -7,7 +7,7 @@ import features from '../feature-manager.js';
 import observe from '../helpers/selector-observer.js';
 import {isAnyRefinedGitHubRepo} from '../github-helpers/index.js';
 import {getResolvedText, wasClosedLongAgo} from './netiquette.js';
-import TimelineItem from '../github-helpers/timeline-item.js';
+import {TimelineItem, TimelineItemOld} from '../github-helpers/timeline-item.js';
 
 function addConversationBanner(newCommentBox: HTMLElement): void {
 	const button = (
@@ -32,14 +32,17 @@ function addConversationBanner(newCommentBox: HTMLElement): void {
 		>comment
 		</button>
 	);
+
+	const isReactView = newCommentBox.matches('[data-testid="comment-composer"]');
+	const Wrapper = isReactView ? TimelineItem : TimelineItemOld;
 	const banner = (
-		<TimelineItem>
+		<Wrapper>
 			{createBanner({
 				classes: ['rgh-bg-none'],
 				icon: <InfoIcon className="mr-1" />,
 				text: <>{getResolvedText()} If you want to say something helpful, you can leave a {button}. <strong>Do not</strong> report issues here.</>,
 			})}
-		</TimelineItem>
+		</Wrapper>
 	);
 	newCommentBox.before(banner);
 	newCommentBox.hidden = true;
@@ -51,7 +54,10 @@ function init(signal: AbortSignal): void | false {
 		return false;
 	}
 
-	observe('#issuecomment-new:has(file-attachment)', addConversationBanner, {signal});
+	observe([
+		'#issuecomment-new:has(file-attachment)',
+		'[data-testid="comment-composer"]',
+	], addConversationBanner, {signal});
 }
 
 void features.add(import.meta.url, {
diff --git a/source/features/show-names.tsx b/source/features/show-names.tsx
index 4143ad80..dc26d3f1 100644
--- a/source/features/show-names.tsx
+++ b/source/features/show-names.tsx
@@ -25,14 +25,19 @@ function appendName(element: HTMLAnchorElement, fullName: string): void {
 	// If it's a regular comment author, add it outside <strong> otherwise it's something like "User added some commits"
 	const {parentElement} = element;
 	const insertionPoint = parentElement!.tagName === 'STRONG' ? parentElement! : element;
-
-	insertionPoint.after(
-		' ',
-		<span className="color-fg-muted css-truncate d-inline-block">
+	const nameElement = (
+		<span className="color-fg-muted css-truncate d-inline-block ml-1">
 			(<bdo className="css-truncate-target" style={{maxWidth: '200px'}}>{fullName}</bdo>)
-		</span>,
-		' ',
+		</span>
 	);
+
+	if (insertionPoint.parentElement!.className.startsWith('Box-')) {
+		insertionPoint.after(nameElement, ' ');
+	} else {
+		// TODO: Drop condition in May 2025
+		nameElement.classList.remove('ml-1');
+		insertionPoint.after(' ', nameElement, ' ');
+	}
 }
 
 async function updateLinks(found: HTMLAnchorElement[]): Promise<void> {
diff --git a/source/github-helpers/index.ts b/source/github-helpers/index.ts
index 40014afd..dc38bf79 100644
--- a/source/github-helpers/index.ts
+++ b/source/github-helpers/index.ts
@@ -52,7 +52,7 @@ export function isUsernameAlreadyFullName(username: string, realname: string): b
 		.replaceAll(/\W/g, '')
 		.toLowerCase();
 
-	return username === realname || username.startsWith(realname);
+	return username === realname;
 }
 
 const validVersion = /^[vr]?\d+(?:\.\d+)+/;
diff --git a/source/github-helpers/selectors.ts b/source/github-helpers/selectors.ts
index be325c49..475f2092 100644
--- a/source/github-helpers/selectors.ts
+++ b/source/github-helpers/selectors.ts
@@ -194,9 +194,9 @@ export const botLinksPrSelectors = [
 const authorLinks = [
 	'.js-discussion a.author',
 	'.inline-comments a.author',
-	'h3 a[data-testid="issue-body-header-author"]', // The first issue comment
 	'.react-issue-comment a[data-testid="avatar-link"]',
 	'[data-testid="comment-header"] a[data-testid="avatar-link"]', // React commit view
+	'.react-issue-body a[data-testid="issue-body-header-author"]', // React issue view first comment
 ];
 
 const authorLinksException = [
diff --git a/source/github-helpers/timeline-item.tsx b/source/github-helpers/timeline-item.tsx
index 4d76f8a1..de3a5fec 100644
--- a/source/github-helpers/timeline-item.tsx
+++ b/source/github-helpers/timeline-item.tsx
@@ -1,6 +1,11 @@
 import React from 'dom-chef';
 
-export default function TimelineItem(): JSX.Element {
+export function TimelineItemOld(): JSX.Element {
 	// Classes copied from #issuecomment-new + mt-3 added
 	return <div className="ml-0 pl-0 ml-md-6 pl-md-3 mt-3" />;
 }
+
+// https://github.com/refined-github/refined-github/pull/8141
+export function TimelineItem(): JSX.Element {
+	return <div className="my-2" />;
+}
diff --git a/source/helpers/hotfix.tsx b/source/helpers/hotfix.tsx
index 2247c44e..8eb8a2b3 100644
--- a/source/helpers/hotfix.tsx
+++ b/source/helpers/hotfix.tsx
@@ -6,6 +6,7 @@ import {any as concatenateTemplateLiteralTag} from 'code-tag';
 
 import type {RGHOptions} from '../options-storage.js';
 import isDevelopmentVersion from './is-development-version.js';
+import {isomorphicFetchText} from './isomorphic-fetch.js';
 
 const {version: currentVersion} = chrome.runtime.getManifest();
 
@@ -23,12 +24,9 @@ function parseCsv(content: string): string[][] {
 
 async function fetchHotfix(path: string): Promise<string> {
 	// Use GitHub Pages host because the API is rate-limited
-	const request = await fetch(`https://refined-github.github.io/yolo/${path}`, {
+	return isomorphicFetchText(`https://refined-github.github.io/yolo/${path}`, {
 		cache: 'no-store', // Disable caching altogether
 	});
-
-	const contents = await request.text();
-	return contents.trim();
 }
 
 type HotfixStorage = Array<[FeatureID, string, string]>;
diff --git a/source/helpers/is-low-quality-comment.ts b/source/helpers/is-low-quality-comment.ts
index 19b57bf9..17c10820 100644
--- a/source/helpers/is-low-quality-comment.ts
+++ b/source/helpers/is-low-quality-comment.ts
@@ -1,4 +1,37 @@
+const lowQualityWords = [
+	'a',
+	'an',
+	'and',
+	'any',
+	'bump',
+	'dito',
+	'ditto',
+	'following',
+	'for',
+	'here',
+	'is',
+	'issue',
+	'issues',
+	'me',
+	'on',
+	'please',
+	'pls',
+	'plz',
+	'question',
+	'same',
+	'solution',
+	'still',
+	'there',
+	'this',
+	'too',
+	'update',
+	'updates',
+];
+const lowQualityWordsRegex = new RegExp(`\\b(${lowQualityWords.join('|')})\\b`, 'gi');
+
 export default function isLowQualityComment(text: string): boolean {
 	// Note: the unicode range targets skin color modifiers for the hand emojis
-	return text.replaceAll(/[\s,.!?👍👎👌🙏]+|[\u{1F3FB}-\u{1F3FF}]|[+-]\d+|⬆️|ditt?o|me|too|t?here|on|same|this|issues?|please|pl[sz]|any|updates?|bump|question|solution|following/giu, '') === '';
+	return text
+		.replaceAll(lowQualityWordsRegex, '')
+		.replaceAll(/[\s,.!?👍👎👌🙏]+|[\u{1F3FB}-\u{1F3FF}]|[+-]\d+|⬆️/gu, '') === '';
 }
diff --git a/source/helpers/isomorphic-fetch.ts b/source/helpers/isomorphic-fetch.ts
new file mode 100644
index 00000000..2d37ede3
--- /dev/null
+++ b/source/helpers/isomorphic-fetch.ts
@@ -0,0 +1,16 @@
+import {isWebPage} from 'webext-detect';
+import {messageRuntime} from 'webext-msg';
+
+export async function fetchText(url: string, options: RequestInit): Promise<string> {
+	const response = await fetch(url, options);
+	return response.ok
+		? response.text()
+		: ''; // Likely a 404. Either way the response isn't the CSS we expect #8142
+}
+
+export async function isomorphicFetchText(url: string, options: RequestInit): Promise<string> {
+	return isWebPage()
+		// Firefox CSP issue: https://github.com/refined-github/refined-github/issues/8144
+		? messageRuntime({fetchString: {url, options}})
+		: fetchText(url, options);
+}
diff --git a/tsconfig.json b/tsconfig.json
index 1dfe7c10..94be0ab0 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -3,9 +3,9 @@
 	"compilerOptions": {
 		"outDir": "./distribution/assets",
 		"rootDir": "./",
-		"module": "node16",
+		"module": "preserve",
+		"moduleResolution": "bundler",
 		"declaration": false,
-		"moduleResolution": "node16",
 		"noUncheckedIndexedAccess": false,
 		"noPropertyAccessFromIndexSignature": false,
 		"resolveJsonModule": true,


Test patch:
diff --git a/source/feature-renames.test.ts b/source/feature-renames.test.ts
index d5af4f7f..ab529286 100644
--- a/source/feature-renames.test.ts
+++ b/source/feature-renames.test.ts
@@ -24,5 +24,5 @@ test('old feature names cannot appear anywhere in the repo', () => {
 
 test.concurrent.each(newNames)('new feature must exist: source/features/%s.tsx', async newName => {
 	const filePath = path.join('source', 'features', `${newName}.tsx`);
-	expect(fs.stat(filePath)).resolves.toBeDefined();
+	await expect(fs.stat(filePath)).resolves.toBeDefined();
 });
diff --git a/source/github-helpers/index.test.ts b/source/github-helpers/index.test.ts
index fd82c04f..e3a7e40c 100644
--- a/source/github-helpers/index.test.ts
+++ b/source/github-helpers/index.test.ts
@@ -91,7 +91,6 @@ test('isUsernameAlreadyFullName', () => {
 	assert.isTrue(isUsernameAlreadyFullName('john-wdoe', 'John W. Doe'));
 	assert.isTrue(isUsernameAlreadyFullName('john-doe-jr', 'John Doe Jr.'));
 	assert.isTrue(isUsernameAlreadyFullName('nicolo', 'Nicolò'));
-	assert.isTrue(isUsernameAlreadyFullName('johnwashere', 'John'));
 	assert.isFalse(isUsernameAlreadyFullName('dotconnor', 'Connor Love'));
 	assert.isFalse(isUsernameAlreadyFullName('fregante ', 'Federico Brigante'));
 });
diff --git a/source/helpers/is-low-quality-comment.test.ts b/source/helpers/is-low-quality-comment.test.ts
index c01c602a..2c79cc49 100644
--- a/source/helpers/is-low-quality-comment.test.ts
+++ b/source/helpers/is-low-quality-comment.test.ts
@@ -1,28 +1,45 @@
-import {test, assert} from 'vitest';
+import {describe, test, assert} from 'vitest';
 
 import isLowQualityComment from './is-low-quality-comment.js';
 
-test('isLowQualityComment', () => {
-	assert.isTrue(isLowQualityComment('+1'));
-	assert.isTrue(isLowQualityComment('+1!'));
-	assert.isTrue(isLowQualityComment('+10'));
-	assert.isTrue(isLowQualityComment('+9000'));
-	assert.isTrue(isLowQualityComment('-1'));
-	assert.isTrue(isLowQualityComment('👍'));
-	assert.isTrue(isLowQualityComment('👍🏾'));
-	assert.isTrue(isLowQualityComment('me too'));
-	assert.isTrue(isLowQualityComment('ditto'));
-	assert.isTrue(isLowQualityComment('Dito'));
-	assert.isTrue(isLowQualityComment('following'));
-	assert.isTrue(isLowQualityComment('please update!'));
-	assert.isTrue(isLowQualityComment('please update 🙏🏻'));
-	assert.isTrue(isLowQualityComment('same issue'));
-	assert.isTrue(isLowQualityComment('this same issues'));
-	assert.isTrue(isLowQualityComment('same question'));
-	assert.isTrue(isLowQualityComment('any updates there?'));
+describe('isLowQualityComment', () => {
+	describe('returns true', () => {
+		test.each([
+			'+1',
+			'+1!',
+			'+10',
+			'+9000',
+			'-1',
+			'👍',
+			'👍🏾',
+			'me too',
+			'ditto',
+			'Dito',
+			'following',
+			'please update!',
+			'please update 🙏🏻',
+			'same issue',
+			'this same issues',
+			'same question',
+			'any updates there?',
+			'any updates on this?',
+			'This is still an issue for me',
+			'Still an issue',
+			'Issue for me too.',
+			'and for me',
+		])('%s', comment => {
+			assert.isTrue(isLowQualityComment(comment));
+		});
+	});
 
-	assert.isFalse(isLowQualityComment('+1\n<some useful information>'));
-	assert.isFalse(isLowQualityComment('Same here. <some useful information>'));
-	assert.isFalse(isLowQualityComment('Same here, please update, thanks'));
-	assert.isFalse(isLowQualityComment('Same here! Please update, thank you.'));
+	describe('returns false', () => {
+		test.each([
+			'+1\n<some useful information>',
+			'Same here. <some useful information>',
+			'Same here, please update, thanks',
+			'Same here! Please update, thank you.',
+		])('%s', comment => {
+			assert.isFalse(isLowQualityComment(comment));
+		});
+	});
 });