From ddedbbcf40b7b2445084c9352fd290b672f96724 Mon Sep 17 00:00:00 2001 From: YeonJuan Date: Tue, 24 Feb 2026 02:15:58 +0900 Subject: [PATCH] refactor(tooling,client): add html-eslint/react and fix lint errors (#66015) --- .../src/components/Donation/donate-form.tsx | 2 +- .../components/independent-lower-jaw.tsx | 4 +- packages/eslint-config/base.js | 13 +- packages/eslint-config/package.json | 1 + pnpm-lock.yaml | 200 ++++++++++++++++-- 5 files changed, 203 insertions(+), 17 deletions(-) diff --git a/client/src/components/Donation/donate-form.tsx b/client/src/components/Donation/donate-form.tsx index c960363c648..751873e4530 100644 --- a/client/src/components/Donation/donate-form.tsx +++ b/client/src/components/Donation/donate-form.tsx @@ -112,7 +112,7 @@ const mapDispatchToProps = { const PaymentButtonsLoader = () => { return ( -
+
{t('buttons.submit-continue')} - + {checkButtonText} @@ -215,7 +215,7 @@ export function IndependentLowerJaw({ onClick={handleCheckButtonClick} > {t('buttons.check-code')} - + {checkButtonText} diff --git a/packages/eslint-config/base.js b/packages/eslint-config/base.js index fee3abccce9..1bc5a0a18c0 100644 --- a/packages/eslint-config/base.js +++ b/packages/eslint-config/base.js @@ -12,6 +12,7 @@ import importPlugin from 'eslint-plugin-import'; import testingLibraryPlugin from 'eslint-plugin-testing-library'; import babelParser from '@babel/eslint-parser'; // TODO: can we get away from using babel? import turbo from 'eslint-plugin-turbo'; +import htmlReact from '@html-eslint/eslint-plugin-react'; import { FlatCompat } from '@eslint/eslintrc'; @@ -131,7 +132,17 @@ export const configReact = [ compat.extends( 'plugin:react-hooks/recommended' // Note: at time of testing, upgrading to v5 creates false positives ) - ) + ), + { + plugins: { + '@html-eslint/react': htmlReact + }, + rules: { + '@html-eslint/react/no-duplicate-classname': 'error', + '@html-eslint/react/classname-spacing': 'error', + '@html-eslint/react/no-ineffective-attrs': 'error' + } + } ]; export const configTestingLibrary = defineConfig({ diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index bf3e4dbb00a..a7f5247dbe3 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -15,6 +15,7 @@ "@eslint/compat": "^1.2.6", "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.19.0", + "@html-eslint/eslint-plugin-react": "^0.57.0", "@vitest/eslint-plugin": "^1.4.3", "eslint": "^9.39.1", "eslint-config-prettier": "10.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6c17efac137..4472af350df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -888,6 +888,9 @@ importers: '@eslint/js': specifier: ^9.19.0 version: 9.28.0 + '@html-eslint/eslint-plugin-react': + specifier: ^0.57.0 + version: 0.57.0(eslint@9.39.2(jiti@2.6.1))(jiti@2.6.1) '@vitest/eslint-plugin': specifier: ^1.4.3 version: 1.4.3(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.15) @@ -3189,6 +3192,10 @@ packages: resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/css-tree@3.6.9': + resolution: {integrity: sha512-3D5/OHibNEGk+wKwNwMbz63NMf367EoR4mVNNpxddCHKEb2Nez7z62J2U6YjtErSsZDoY0CsccmoUpdEbkogNA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + '@eslint/eslintrc@0.4.3': resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3493,6 +3500,34 @@ packages: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 + '@html-eslint/core@0.57.0': + resolution: {integrity: sha512-X/cKrOmXrxZSdgyKwtbaCuuJ1k/u82MK58Q6p1TzfwPatwIYx+icfBv1Vp1dLui0L0y1fwBW4H+TKhBf7mMKmg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@html-eslint/eslint-plugin-react@0.57.0': + resolution: {integrity: sha512-iEiNteZK00VUARj88NP6eQDf3wNcmhNk8C8C5+xRPbwkRSYwNeqsL6SREqZdO95P12W7CUP9sdBCe7cs64Vu8w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.0.0 || ^10.0.0-0' + + '@html-eslint/eslint-plugin@0.57.0': + resolution: {integrity: sha512-9/sjZ2KHsZmco45Z9rGySOocJ734rhjjt1ofXJve7lzzBY+t8FF7fwVp9EmcXSer+0zDUb5hGBHWbgIZ0SEnJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.0.0 || ^10.0.0-0' + + '@html-eslint/parser@0.57.0': + resolution: {integrity: sha512-guzD7QJFM0UOGnOZco7I9WEZOBQCmXR3abt6sIhznq4x7Ws6l/KwnNo7im6r0g7/ftLTmuKnLjyNEbW8seQyMQ==} + + '@html-eslint/template-parser@0.57.0': + resolution: {integrity: sha512-tddyBo4dEl4W4Ehxuyd6H4jsSqvsfL5F7Bj9/aFfdQyv36q7BGWM2BRHb6FMmYKAPGZ3VzyEbUlcqIwXpDkY3w==} + + '@html-eslint/template-syntax-parser@0.57.0': + resolution: {integrity: sha512-vHp5y4TR+HhgMDi3rAkgm90LBptSZaQUJudZSj+WdvnSBjLe/fgJC4aVjtLVHTS9ynORrFio8AmH1Bz20kYk4g==} + + '@html-eslint/types@0.57.0': + resolution: {integrity: sha512-wZAHc9FHZRVAcKyx1NdMNGpw1Jo/Anh+9y+bTQ/cKjh5MHJlbs8ogthIG8efBVFIVlIgzxEA8yrX+DPXmuWisA==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -4838,6 +4873,9 @@ packages: '@rushstack/eslint-patch@1.15.0': resolution: {integrity: sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==} + '@rviscomi/capo.js@2.1.0': + resolution: {integrity: sha512-y6J+KJqsrY8AcDswLKkvd8KdpFindjS4Q9rSuK8CIpsQOepEjgRaMR4S8OtuLOQoVYLCROT3ffMQqRWrUMQdQA==} + '@sentry/core@9.47.1': resolution: {integrity: sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==} engines: {node: '>=18'} @@ -5370,6 +5408,9 @@ packages: '@types/cors@2.8.18': resolution: {integrity: sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==} + '@types/css-tree@2.3.11': + resolution: {integrity: sha512-aEokibJOI77uIlqoBOkVbaQGC9zII0A+JH1kcTNKW2CwyYWD8KM6qdo+4c77wD3wZOQfJuNWAr9M4hdk+YhDIg==} + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -5742,6 +5783,10 @@ packages: resolution: {integrity: sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.56.0': + resolution: {integrity: sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5952,6 +5997,9 @@ packages: '@vitest/utils@4.0.15': resolution: {integrity: sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==} + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7820,6 +7868,9 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-html-parser@0.3.1: + resolution: {integrity: sha512-YTEasG4xt7FEN4b6qJIPbFo/fzQ5kjRMEQ33QMqSXTvfXqAbC2rHxo32x2/1Rhq7Mlu6wI3MIpM5Kf2VHPXrUQ==} + es-iterator-helpers@1.2.1: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} @@ -9057,6 +9108,9 @@ packages: html-parse-stringify@3.0.1: resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + html-standard@0.0.13: + resolution: {integrity: sha512-6oNfW3c1t44O7jVXu0tp4E5MbHifWlXrHlZBPt6y7vFdgLOUUh8hyzoRhfUgozlBUK6oLLYhqP1uIqbZ8ggcBA==} + html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} @@ -10132,6 +10186,9 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdn-data@2.23.0: + resolution: {integrity: sha512-786vq1+4079JSeu2XdcDjrhi/Ry7BWtjDl9WtGPWLiIHb2T66GvIVflZTBoSNZ5JqTtJGYEVMuFA/lbQlMOyDQ==} + mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} @@ -13797,6 +13854,18 @@ packages: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} + vscode-css-languageservice@6.3.9: + resolution: {integrity: sha512-1tLWfp+TDM5ZuVWht3jmaY5y7O6aZmpeXLoHl5bv1QtRsRKt4xYGRMmdJa5Pqx/FTkgRbsna9R+Gn2xE+evVuA==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. @@ -14335,7 +14404,7 @@ snapshots: '@aws-crypto/sha256-js': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.521.0 + '@aws-sdk/types': 3.973.1 '@aws-sdk/util-locate-window': 3.965.4 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -14354,7 +14423,7 @@ snapshots: '@aws-crypto/sha256-js@3.0.0': dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.521.0 + '@aws-sdk/types': 3.973.1 tslib: 1.14.1 optional: true @@ -14375,7 +14444,7 @@ snapshots: '@aws-crypto/util@3.0.0': dependencies: - '@aws-sdk/types': 3.521.0 + '@aws-sdk/types': 3.973.1 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 optional: true @@ -15207,7 +15276,7 @@ snapshots: '@babel/types': 7.29.0 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -17066,7 +17135,7 @@ snapshots: '@babel/parser': 7.29.0 '@babel/template': 7.28.6 '@babel/types': 7.29.0 - debug: 4.4.3 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17558,6 +17627,11 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/css-tree@3.6.9': + dependencies: + mdn-data: 2.23.0 + source-map-js: 1.2.1 + '@eslint/eslintrc@0.4.3': dependencies: ajv: 6.12.6 @@ -18029,6 +18103,76 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + '@html-eslint/core@0.57.0(jiti@2.6.1)': + dependencies: + '@html-eslint/types': 0.57.0(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) + html-standard: 0.0.13 + transitivePeerDependencies: + - jiti + - supports-color + + '@html-eslint/eslint-plugin-react@0.57.0(eslint@9.39.2(jiti@2.6.1))(jiti@2.6.1)': + dependencies: + '@html-eslint/core': 0.57.0(jiti@2.6.1) + '@html-eslint/eslint-plugin': 0.57.0(eslint@9.39.2(jiti@2.6.1))(jiti@2.6.1) + '@html-eslint/types': 0.57.0(jiti@2.6.1) + '@typescript-eslint/types': 8.56.0 + eslint: 9.39.2(jiti@2.6.1) + transitivePeerDependencies: + - jiti + - supports-color + + '@html-eslint/eslint-plugin@0.57.0(eslint@9.39.2(jiti@2.6.1))(jiti@2.6.1)': + dependencies: + '@eslint/plugin-kit': 0.4.1 + '@html-eslint/core': 0.57.0(jiti@2.6.1) + '@html-eslint/parser': 0.57.0(jiti@2.6.1) + '@html-eslint/template-parser': 0.57.0(jiti@2.6.1) + '@html-eslint/template-syntax-parser': 0.57.0(jiti@2.6.1) + '@html-eslint/types': 0.57.0(jiti@2.6.1) + '@rviscomi/capo.js': 2.1.0 + eslint: 9.39.2(jiti@2.6.1) + transitivePeerDependencies: + - jiti + - supports-color + + '@html-eslint/parser@0.57.0(jiti@2.6.1)': + dependencies: + '@eslint/css-tree': 3.6.9 + '@html-eslint/template-syntax-parser': 0.57.0(jiti@2.6.1) + '@html-eslint/types': 0.57.0(jiti@2.6.1) + css-tree: 3.1.0 + es-html-parser: 0.3.1 + transitivePeerDependencies: + - jiti + - supports-color + + '@html-eslint/template-parser@0.57.0(jiti@2.6.1)': + dependencies: + '@html-eslint/types': 0.57.0(jiti@2.6.1) + es-html-parser: 0.3.1 + transitivePeerDependencies: + - jiti + - supports-color + + '@html-eslint/template-syntax-parser@0.57.0(jiti@2.6.1)': + dependencies: + '@html-eslint/types': 0.57.0(jiti@2.6.1) + transitivePeerDependencies: + - jiti + - supports-color + + '@html-eslint/types@0.57.0(jiti@2.6.1)': + dependencies: + '@types/css-tree': 2.3.11 + '@types/estree': 1.0.8 + es-html-parser: 0.3.1 + eslint: 9.39.2(jiti@2.6.1) + transitivePeerDependencies: + - jiti + - supports-color + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -19350,6 +19494,8 @@ snapshots: '@rushstack/eslint-patch@1.15.0': {} + '@rviscomi/capo.js@2.1.0': {} + '@sentry/core@9.47.1': {} '@sentry/node-core@9.47.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': @@ -20189,6 +20335,8 @@ snapshots: dependencies: '@types/node': 25.2.3 + '@types/css-tree@2.3.11': {} + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.32 @@ -20632,6 +20780,8 @@ snapshots: '@typescript-eslint/types@8.47.0': {} + '@typescript-eslint/types@8.56.0': {} + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -20896,6 +21046,8 @@ snapshots: '@vitest/pretty-format': 4.0.15 tinyrainbow: 3.0.3 + '@vscode/l10n@0.0.18': {} + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -23189,6 +23341,8 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 + es-html-parser@0.3.1: {} + es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 @@ -23376,7 +23530,7 @@ snapshots: confusing-browser-globals: 1.0.11 eslint: 7.32.0 eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react: 7.37.4(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 4.6.0(eslint@9.39.2(jiti@2.6.1)) @@ -23394,8 +23548,8 @@ snapshots: confusing-browser-globals: 1.0.11 eslint: 9.39.2(jiti@2.6.1) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.5))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.28.5))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react: 7.37.4(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 4.6.0(eslint@9.39.2(jiti@2.6.1)) @@ -23433,7 +23587,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2(jiti@2.6.1)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: @@ -23473,7 +23627,7 @@ snapshots: lodash: 4.17.23 string-natural-compare: 3.0.1 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -23484,7 +23638,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -23531,7 +23685,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) @@ -24634,7 +24788,7 @@ snapshots: eslint: 7.32.0 eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3))(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(babel-eslint@10.1.0(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-flowtype@5.10.0(eslint@7.32.0))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0))(eslint-plugin-jsx-a11y@6.10.2(eslint@7.32.0))(eslint-plugin-react-hooks@4.6.0(eslint@7.32.0))(eslint-plugin-react@7.37.4(eslint@7.32.0))(eslint@7.32.0)(typescript@5.9.3) eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react: 7.37.4(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 4.6.0(eslint@9.39.2(jiti@2.6.1)) @@ -25185,6 +25339,11 @@ snapshots: dependencies: void-elements: 3.1.0 + html-standard@0.0.13: + dependencies: + vscode-css-languageservice: 6.3.9 + vscode-languageserver-textdocument: 1.0.12 + html-tags@3.3.1: {} html-void-elements@1.0.5: {} @@ -26403,6 +26562,8 @@ snapshots: mdn-data@2.12.2: {} + mdn-data@2.23.0: {} + mdurl@1.0.1: {} mdurl@2.0.0: {} @@ -30777,6 +30938,19 @@ snapshots: void-elements@3.1.0: {} + vscode-css-languageservice@6.3.9: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-uri@3.1.0: {} + w3c-hr-time@1.0.2: dependencies: browser-process-hrtime: 1.0.0