diff --git a/eslint.config.mjs b/eslint.config.mjs index 2c2c04d7..8f537db6 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -17,11 +17,9 @@ export default tseslint.config( tseslint.configs.recommended, react.configs.flat.recommended, react.configs.flat['jsx-runtime'], + reactHooks.configs['recommended-latest'], + reactCompiler.configs.recommended, { - plugins: { - 'react-compiler': reactCompiler, - 'react-hooks': reactHooks, - }, settings: { react: { version: 'detect', @@ -74,8 +72,6 @@ export default tseslint.config( 'warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], - 'react-compiler/react-compiler': 'warn', - ...reactHooks.configs.recommended.rules, }, }, { diff --git a/package.json b/package.json index 25cd34c7..1608cab9 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "eslint-plugin-jest-dom": "^5.5.0", "eslint-plugin-react": "^7.37.4", "eslint-plugin-react-compiler": "19.0.0-beta-decd7b8-20250118", - "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-testing-library": "^7.1.1", "jest-leak-detector": "^29.7.0", "jsdom": "^26.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd3583b9..9db5b65a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,7 +35,7 @@ importers: version: 6.6.3 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3)(@types/react@19.0.8)(react-dom@19.0.0)(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/jsdom': specifier: ^21.1.7 version: 21.1.7 @@ -50,7 +50,7 @@ importers: version: 3.0.4(vitest@3.0.4) '@vitest/eslint-plugin': specifier: ^1.1.25 - version: 1.1.25(@typescript-eslint/utils@8.21.0)(eslint@9.19.0)(typescript@5.7.3)(vitest@3.0.4) + version: 1.1.25(@typescript-eslint/utils@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)(vitest@3.0.4) '@vitest/ui': specifier: ^3.0.4 version: 3.0.4(vitest@3.0.4) @@ -65,7 +65,7 @@ importers: version: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.19.0) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.21.0)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0) + version: 2.31.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0) eslint-plugin-jest-dom: specifier: ^5.5.0 version: 5.5.0(@testing-library/dom@10.4.0)(eslint@9.19.0) @@ -76,8 +76,8 @@ importers: specifier: 19.0.0-beta-decd7b8-20250118 version: 19.0.0-beta-decd7b8-20250118(eslint@9.19.0) eslint-plugin-react-hooks: - specifier: ^5.1.0 - version: 5.1.0(eslint@9.19.0) + specifier: ^5.2.0 + version: 5.2.0(eslint@9.19.0) eslint-plugin-testing-library: specifier: ^7.1.1 version: 7.1.1(eslint@9.19.0)(typescript@5.7.3) @@ -134,10 +134,10 @@ importers: version: 8.21.0(eslint@9.19.0)(typescript@5.7.3) vite: specifier: ^6.0.11 - version: 6.0.11 + version: 6.0.11(@types/node@22.10.10)(terser@5.33.0) vitest: specifier: ^3.0.4 - version: 3.0.4(@vitest/ui@3.0.4)(jsdom@26.0.0) + version: 3.0.4(@types/node@22.10.10)(@vitest/ui@3.0.4)(jsdom@26.0.0)(terser@5.33.0) examples/counter: dependencies: @@ -1087,6 +1087,10 @@ packages: resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.9': + resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.0': resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} @@ -2454,6 +2458,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + address@1.1.2: resolution: {integrity: sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==} engines: {node: '>= 0.12.0'} @@ -4121,8 +4130,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -8728,8 +8737,8 @@ snapshots: '@asamuzakjp/css-color@2.8.3': dependencies: - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3) - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 lru-cache: 10.4.3 @@ -10470,6 +10479,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.26.9': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 @@ -10530,15 +10543,15 @@ snapshots: '@csstools/convert-colors@1.4.0': {} - '@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 @@ -10990,7 +11003,7 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -11048,7 +11061,7 @@ snapshots: redux: 5.0.1 '@rollup/plugin-alias@5.1.1(rollup@4.32.0)': - dependencies: + optionalDependencies: rollup: 4.32.0 '@rollup/plugin-node-resolve@16.0.0(rollup@4.32.0)': @@ -11058,6 +11071,7 @@ snapshots: deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 + optionalDependencies: rollup: 4.32.0 '@rollup/plugin-node-resolve@7.1.3(rollup@1.32.1)': @@ -11079,15 +11093,17 @@ snapshots: dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.32.0) magic-string: 0.30.17 + optionalDependencies: rollup: 4.32.0 '@rollup/plugin-typescript@12.1.2(rollup@4.32.0)(tslib@2.8.1)(typescript@5.7.3)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.32.0) resolve: 1.22.10 + typescript: 5.7.3 + optionalDependencies: rollup: 4.32.0 tslib: 2.8.1 - typescript: 5.7.3 '@rollup/pluginutils@3.1.0(rollup@1.32.1)': dependencies: @@ -11101,6 +11117,7 @@ snapshots: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 + optionalDependencies: rollup: 4.32.0 '@rollup/rollup-android-arm-eabi@4.22.2': @@ -11295,7 +11312,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.26.9 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -11313,14 +11330,15 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3)(@types/react@19.0.8)(react-dom@19.0.0)(react@19.0.0)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.7 '@testing-library/dom': 10.4.0 - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@tootallnate/once@1.1.2': {} @@ -11493,7 +11511,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0)(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.7.3) @@ -11684,16 +11702,17 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.4(@vitest/ui@3.0.4)(jsdom@26.0.0) + vitest: 3.0.4(@types/node@22.10.10)(@vitest/ui@3.0.4)(jsdom@26.0.0)(terser@5.33.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.21.0)(eslint@9.19.0)(typescript@5.7.3)(vitest@3.0.4)': + '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)(vitest@3.0.4)': dependencies: '@typescript-eslint/utils': 8.21.0(eslint@9.19.0)(typescript@5.7.3) eslint: 9.19.0 + optionalDependencies: typescript: 5.7.3 - vitest: 3.0.4(@vitest/ui@3.0.4)(jsdom@26.0.0) + vitest: 3.0.4(@types/node@22.10.10)(@vitest/ui@3.0.4)(jsdom@26.0.0)(terser@5.33.0) '@vitest/expect@3.0.4': dependencies: @@ -11702,12 +11721,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.4(vite@6.0.11)': + '@vitest/mocker@3.0.4(vite@6.0.11(@types/node@22.10.10)(terser@5.33.0))': dependencies: '@vitest/spy': 3.0.4 estree-walker: 3.0.3 magic-string: 0.30.17 - vite: 6.0.11 + optionalDependencies: + vite: 6.0.11(@types/node@22.10.10)(terser@5.33.0) '@vitest/pretty-format@3.0.4': dependencies: @@ -11737,7 +11757,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 2.0.0 - vitest: 3.0.4(@vitest/ui@3.0.4)(jsdom@26.0.0) + vitest: 3.0.4(@types/node@22.10.10)(@vitest/ui@3.0.4)(jsdom@26.0.0)(terser@5.33.0) '@vitest/utils@3.0.4': dependencies: @@ -11870,6 +11890,8 @@ snapshots: acorn@8.14.0: {} + acorn@8.14.1: {} + address@1.1.2: {} adjust-sourcemap-loader@3.0.0: @@ -13893,12 +13915,13 @@ snapshots: debug: 4.4.0 enhanced-resolve: 5.18.0 eslint: 9.19.0 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.21.0)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0) fast-glob: 3.3.3 get-tsconfig: 4.10.0 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0) transitivePeerDependencies: - supports-color @@ -13911,10 +13934,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0): dependencies: - '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.7.3) debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.7.3) eslint: 9.19.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.19.0) @@ -13954,10 +13978,9 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.21.0)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0): dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.7.3) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.3 @@ -13966,7 +13989,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.19.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13977,6 +14000,8 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13985,9 +14010,10 @@ snapshots: eslint-plugin-jest-dom@5.5.0(@testing-library/dom@10.4.0)(eslint@9.19.0): dependencies: '@babel/runtime': 7.26.7 - '@testing-library/dom': 10.4.0 eslint: 9.19.0 requireindex: 1.2.0 + optionalDependencies: + '@testing-library/dom': 10.4.0 eslint-plugin-jest@24.7.0(@typescript-eslint/eslint-plugin@4.33.0)(eslint@7.32.0)(typescript@4.4.2): dependencies: @@ -14034,7 +14060,7 @@ snapshots: dependencies: eslint: 7.32.0 - eslint-plugin-react-hooks@5.1.0(eslint@9.19.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.19.0): dependencies: eslint: 9.19.0 @@ -14439,7 +14465,7 @@ snapshots: bser: 2.1.1 fdir@6.4.3(picomatch@4.0.2): - dependencies: + optionalDependencies: picomatch: 4.0.2 fflate@0.8.2: {} @@ -18741,7 +18767,7 @@ snapshots: terser@5.33.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.14.1 commander: 2.20.3 source-map-support: 0.5.21 @@ -18976,7 +19002,7 @@ snapshots: typescript-eslint@8.21.0(eslint@9.19.0)(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0)(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.7.3) '@typescript-eslint/utils': 8.21.0(eslint@9.19.0)(typescript@5.7.3) eslint: 9.19.0 @@ -19180,13 +19206,13 @@ snapshots: vendors@1.0.4: {} - vite-node@3.0.4: + vite-node@3.0.4(@types/node@22.10.10)(terser@5.33.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 6.0.11 + vite: 6.0.11(@types/node@22.10.10)(terser@5.33.0) transitivePeerDependencies: - '@types/node' - jiti @@ -19218,28 +19244,28 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - vite@6.0.11: + vite@6.0.11(@types/node@22.10.10)(terser@5.33.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 rollup: 4.32.0 optionalDependencies: + '@types/node': 22.10.10 fsevents: 2.3.3 + terser: 5.33.0 - vitest@3.0.4(@vitest/ui@3.0.4)(jsdom@26.0.0): + vitest@3.0.4(@types/node@22.10.10)(@vitest/ui@3.0.4)(jsdom@26.0.0)(terser@5.33.0): dependencies: '@vitest/expect': 3.0.4 - '@vitest/mocker': 3.0.4(vite@6.0.11) + '@vitest/mocker': 3.0.4(vite@6.0.11(@types/node@22.10.10)(terser@5.33.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.4 '@vitest/snapshot': 3.0.4 '@vitest/spy': 3.0.4 - '@vitest/ui': 3.0.4(vitest@3.0.4) '@vitest/utils': 3.0.4 chai: 5.1.2 debug: 4.4.0 expect-type: 1.1.0 - jsdom: 26.0.0 magic-string: 0.30.17 pathe: 2.0.2 std-env: 3.8.0 @@ -19247,9 +19273,13 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.0.11 - vite-node: 3.0.4 + vite: 6.0.11(@types/node@22.10.10)(terser@5.33.0) + vite-node: 3.0.4(@types/node@22.10.10)(terser@5.33.0) why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.10.10 + '@vitest/ui': 3.0.4(vitest@3.0.4) + jsdom: 26.0.0 transitivePeerDependencies: - jiti - less