From 5ef2c59d4e7546ec0d3c3e389dfea0ec6c99be29 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Wed, 8 Oct 2025 13:06:59 +0200 Subject: [PATCH 1/4] chore: update eslint-plugin-react-hooks --- package.json | 2 +- packages/react-query/eslint.config.js | 12 +- pnpm-lock.yaml | 270 +++++++++++++++++++------- 3 files changed, 200 insertions(+), 84 deletions(-) diff --git a/package.json b/package.json index 42ad59ab6a..b3c8ae6fc0 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "@vitest/eslint-plugin": "^1.1.36", "esbuild-plugin-file-path-extensions": "^2.1.4", "eslint": "^9.36.0", - "eslint-plugin-react-hooks": "^6.0.0-rc.2", + "eslint-plugin-react-hooks": "^6.1.1", "jsdom": "^27.0.0", "knip": "^5.63.1", "markdown-link-extractor": "^4.0.2", diff --git a/packages/react-query/eslint.config.js b/packages/react-query/eslint.config.js index 8f2cb3fb8f..f8bdc9ac2b 100644 --- a/packages/react-query/eslint.config.js +++ b/packages/react-query/eslint.config.js @@ -1,32 +1,26 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' +import reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, - reactHooks.configs.recommended, + // @ts-expect-error wtf + ...reactHooks.configs['recommended-latest'], { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, rules: { '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible - }, - }, - { - rules: { '@eslint-react/dom/no-missing-button-type': 'off', - 'react-hooks/react-compiler': 'error', 'react-hooks/exhaustive-deps': 'error', - 'react-hooks/rules-of-hooks': 'error', }, }, { files: ['**/__tests__/**'], rules: { '@typescript-eslint/no-unnecessary-condition': 'off', - 'react-hooks/react-compiler': 'off', }, }, ] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3218f1fba..4abd718dc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,7 +51,7 @@ importers: version: 1.2.0(encoding@0.1.13) '@tanstack/config': specifier: ^0.20.2 - version: 0.20.2(@types/node@22.15.3)(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + version: 0.20.2(@types/node@22.15.3)(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@testing-library/jest-dom': specifier: ^6.8.0 version: 6.8.0 @@ -69,7 +69,7 @@ importers: version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.30.1)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@vitest/eslint-plugin': specifier: ^1.1.36 - version: 1.1.36(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.30.1)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + version: 1.1.36(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.30.1)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) esbuild-plugin-file-path-extensions: specifier: ^2.1.4 version: 2.1.4 @@ -77,8 +77,8 @@ importers: specifier: ^9.36.0 version: 9.36.0(jiti@2.5.1) eslint-plugin-react-hooks: - specifier: ^6.0.0-rc.2 - version: 6.0.0(eslint@9.36.0(jiti@2.5.1)) + specifier: ^6.1.1 + version: 6.1.1(eslint@9.36.0(jiti@2.5.1)) jsdom: specifier: ^27.0.0 version: 27.0.0(postcss@8.5.6) @@ -660,7 +660,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -877,7 +877,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -905,7 +905,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -936,7 +936,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -964,7 +964,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -995,7 +995,7 @@ importers: version: link:../../../packages/react-query-next-experimental next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1060,7 +1060,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1088,7 +1088,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1116,7 +1116,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1169,7 +1169,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1477,7 +1477,7 @@ importers: version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.1.3(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3)) + version: 8.1.3(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3)) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -2025,7 +2025,7 @@ importers: version: link:../../packages/react-query-devtools next: specifier: ^14.2.28 - version: 14.2.28(@babel/core@7.27.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 14.2.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -2053,7 +2053,7 @@ importers: version: link:../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -2551,7 +2551,7 @@ importers: version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) next: specifier: ^15.3.1 - version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2784,7 +2784,7 @@ importers: version: 1.7.2(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^10.5.0 - version: 10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(jiti@2.5.1)))(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))) + version: 10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(jiti@2.5.1)))(@typescript-eslint/parser@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))) vue: specifier: ^3.4.27 version: 3.4.35(typescript@5.8.3) @@ -2809,7 +2809,7 @@ importers: version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^10.5.0 - version: 10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(jiti@2.5.1)))(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))) + version: 10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(jiti@2.5.1)))(@typescript-eslint/parser@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))) typescript: specifier: 5.8.3 version: 5.8.3 @@ -6920,11 +6920,11 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.44.1': - resolution: {integrity: sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw==} + '@typescript-eslint/eslint-plugin@8.46.0': + resolution: {integrity: sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.44.1 + '@typescript-eslint/parser': ^8.46.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' @@ -6935,12 +6935,25 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/parser@8.46.0': + resolution: {integrity: sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/project-service@8.44.1': resolution: {integrity: sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/project-service@8.46.0': + resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/rule-tester@8.44.1': resolution: {integrity: sha512-yzqJhTLrbXCdEZhO9cuasGLZixWWx11/uFn6Leuu0p1PeW97wDy9JhiaAOl45TFrv5f67qwWdrzM5PMIuIu4vw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6951,12 +6964,22 @@ packages: resolution: {integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.46.0': + resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.44.1': resolution: {integrity: sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/tsconfig-utils@8.46.0': + resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@8.44.1': resolution: {integrity: sha512-KdEerZqHWXsRNKjF9NYswNISnFzXfXNDfPxoTh7tqohU/PRIbwTmsjGK6V9/RTYWau7NZvfo52lgVk+sJh0K3g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6964,16 +6987,33 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@8.46.0': + resolution: {integrity: sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/types@8.44.1': resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.46.0': + resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.44.1': resolution: {integrity: sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/typescript-estree@8.46.0': + resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@8.44.1': resolution: {integrity: sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6981,10 +7021,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@8.46.0': + resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/visitor-keys@8.44.1': resolution: {integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.46.0': + resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -9292,10 +9343,9 @@ packages: eslint: ^9.36.0 typescript: ^5.9.2 - eslint-plugin-react-hooks@6.0.0: - resolution: {integrity: sha512-NyC3yIC9fazLitYiN8eHykV5wLp/SMuUZMh+sdPSHIeN4ReXIc7if40jtGjDplAgVL/4OkN1d9gneWe9lFZgag==} + eslint-plugin-react-hooks@6.1.1: + resolution: {integrity: sha512-St9EKZzOAQF704nt2oJvAKZHjhrpg25ClQoaAlHmPZuajFldVLqRDW4VBNAS01NzeiQF0m0qhG1ZA807K6aVaQ==} engines: {node: '>=18'} - deprecated: This stable release was published by accident, please use 6.0.0-rc.1 instead. peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -14456,8 +14506,8 @@ packages: typescript-auto-import-cache@0.3.3: resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@8.44.1: - resolution: {integrity: sha512-0ws8uWGrUVTjEeN2OM4K1pLKHK/4NiNP/vz6ns+LjT/6sqpaYzIVFajZb1fj/IDwpsrrHb3Jy0Qm5u9CPcKaeg==} + typescript-eslint@8.46.0: + resolution: {integrity: sha512-6+ZrB6y2bT2DX3K+Qd9vn7OFOJR+xSLDj+Aw/N3zBwUt27uTw2sw2TE2+UcY1RiyBZkaGbTkVg9SSdPNUG6aUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -16006,10 +16056,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.1.3(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3))': + '@astrojs/vercel@8.1.3(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - '@vercel/analytics': 1.5.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3)) + '@vercel/analytics': 1.5.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3)) '@vercel/edge': 1.2.1 '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.2) '@vercel/routing-utils': 5.0.4 @@ -19996,9 +20046,9 @@ snapshots: tailwindcss: 4.1.13 vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@tanstack/config@0.20.2(@types/node@22.15.3)(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': + '@tanstack/config@0.20.2(@types/node@22.15.3)(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@tanstack/eslint-config': 0.3.2(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@tanstack/eslint-config': 0.3.2(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) '@tanstack/publish-config': 0.2.1 '@tanstack/typedoc-config': 0.2.1(typescript@5.8.3) '@tanstack/vite-config': 0.2.1(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) @@ -20041,14 +20091,14 @@ snapshots: - tsx - yaml - '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': + '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@eslint/js': 9.36.0 '@stylistic/eslint-plugin': 5.4.0(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1)) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1)) eslint-plugin-n: 17.23.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) globals: 16.4.0 - typescript-eslint: 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + typescript-eslint: 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) vue-eslint-parser: 10.2.0(eslint@9.36.0(jiti@2.5.1)) transitivePeerDependencies: - '@typescript-eslint/utils' @@ -20397,14 +20447,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.44.1 - '@typescript-eslint/type-utils': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.44.1 + '@typescript-eslint/parser': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/type-utils': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.46.0 eslint: 9.36.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.3 @@ -20426,6 +20476,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.46.0 + debug: 4.4.1 + eslint: 9.36.0(jiti@2.5.1) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.44.1(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.8.3) @@ -20435,6 +20497,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.46.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.8.3) + '@typescript-eslint/types': 8.46.0 + debug: 4.4.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/rule-tester@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) @@ -20454,10 +20525,19 @@ snapshots: '@typescript-eslint/types': 8.44.1 '@typescript-eslint/visitor-keys': 8.44.1 + '@typescript-eslint/scope-manager@8.46.0': + dependencies: + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/visitor-keys': 8.46.0 + '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 + '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + '@typescript-eslint/type-utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.44.1 @@ -20470,8 +20550,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + debug: 4.4.1 + eslint: 9.36.0(jiti@2.5.1) + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.44.1': {} + '@typescript-eslint/types@8.46.0': {} + '@typescript-eslint/typescript-estree@8.44.1(typescript@5.8.3)': dependencies: '@typescript-eslint/project-service': 8.44.1(typescript@5.8.3) @@ -20488,6 +20582,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.46.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/project-service': 8.46.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.8.3) + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/visitor-keys': 8.46.0 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) @@ -20499,11 +20609,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.46.0 + '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.44.1': dependencies: '@typescript-eslint/types': 8.44.1 eslint-visitor-keys: 4.2.1 + '@typescript-eslint/visitor-keys@8.46.0': + dependencies: + '@typescript-eslint/types': 8.46.0 + eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.2.0': {} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -20577,10 +20703,10 @@ snapshots: '@urql/core': 5.0.8(graphql@16.9.0) wonka: 6.3.4 - '@vercel/analytics@1.5.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3))': + '@vercel/analytics@1.5.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3))': optionalDependencies: '@sveltejs/kit': 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) - next: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + next: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: 19.0.0 svelte: 5.39.3 vue: 3.4.35(typescript@5.8.3) @@ -20693,9 +20819,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.30.1)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': + '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.30.1)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) eslint: 9.36.0(jiti@2.5.1) optionalDependencies: typescript: 5.8.3 @@ -23301,7 +23427,7 @@ snapshots: eslint: 9.36.0(jiti@2.5.1) eslint-compat-utils: 0.5.1(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1)): dependencies: '@typescript-eslint/types': 8.44.1 comment-parser: 1.4.1 @@ -23314,7 +23440,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -23408,15 +23534,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@6.0.0(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-react-hooks@6.1.1(eslint@9.36.0(jiti@2.5.1)): dependencies: '@babel/core': 7.27.1 '@babel/parser': 7.27.1 - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1) eslint: 9.36.0(jiti@2.5.1) - hermes-parser: 0.25.1 - zod: 3.25.76 - zod-validation-error: 3.3.0(zod@3.25.76) + zod: 4.1.11 + zod-validation-error: 3.3.0(zod@4.1.11) transitivePeerDependencies: - supports-color @@ -23497,7 +23621,7 @@ snapshots: transitivePeerDependencies: - ts-node - eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(jiti@2.5.1)))(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))): + eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(jiti@2.5.1)))(@typescript-eslint/parser@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) eslint: 9.36.0(jiti@2.5.1) @@ -23509,7 +23633,7 @@ snapshots: xml-name-validator: 4.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.4.0(eslint@9.36.0(jiti@2.5.1)) - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) eslint-scope@4.0.3: dependencies: @@ -26611,7 +26735,7 @@ snapshots: nested-error-stacks@2.1.1: {} - next@14.2.28(@babel/core@7.27.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): + next@14.2.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): dependencies: '@next/env': 14.2.28 '@swc/helpers': 0.5.5 @@ -26621,7 +26745,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.27.1)(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.28 '@next/swc-darwin-x64': 14.2.28 @@ -26637,7 +26761,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): + next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): dependencies: '@next/env': 15.3.1 '@swc/counter': 0.1.3 @@ -26647,7 +26771,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.6(@babel/core@7.27.1)(react@18.3.1) + styled-jsx: 5.1.6(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 15.3.1 '@next/swc-darwin-x64': 15.3.1 @@ -26664,7 +26788,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0): + next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0): dependencies: '@next/env': 15.3.1 '@swc/counter': 0.1.3 @@ -26674,7 +26798,7 @@ snapshots: postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(@babel/core@7.27.1)(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) optionalDependencies: '@next/swc-darwin-arm64': 15.3.1 '@next/swc-darwin-x64': 15.3.1 @@ -29240,26 +29364,20 @@ snapshots: structured-headers@0.4.1: {} - styled-jsx@5.1.1(@babel/core@7.27.1)(react@18.3.1): + styled-jsx@5.1.1(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 - optionalDependencies: - '@babel/core': 7.27.1 - styled-jsx@5.1.6(@babel/core@7.27.1)(react@18.3.1): + styled-jsx@5.1.6(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 - optionalDependencies: - '@babel/core': 7.27.1 - styled-jsx@5.1.6(@babel/core@7.27.1)(react@19.0.0): + styled-jsx@5.1.6(react@19.0.0): dependencies: client-only: 0.0.1 react: 19.0.0 - optionalDependencies: - '@babel/core': 7.27.1 styleq@0.1.3: {} @@ -29820,12 +29938,12 @@ snapshots: dependencies: semver: 7.7.2 - typescript-eslint@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): + typescript-eslint@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) eslint: 9.36.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: @@ -31055,6 +31173,10 @@ snapshots: dependencies: zod: 3.25.76 + zod-validation-error@3.3.0(zod@4.1.11): + dependencies: + zod: 4.1.11 + zod@3.25.76: {} zod@4.1.11: {} From 6e14ddf621feed2525872b8afd08bc06da4656a1 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Wed, 8 Oct 2025 13:09:01 +0200 Subject: [PATCH 2/4] chore: override warning rules to error --- packages/react-query/eslint.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/react-query/eslint.config.js b/packages/react-query/eslint.config.js index f8bdc9ac2b..d6a34235e6 100644 --- a/packages/react-query/eslint.config.js +++ b/packages/react-query/eslint.config.js @@ -15,6 +15,8 @@ export default [ '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible '@eslint-react/dom/no-missing-button-type': 'off', 'react-hooks/exhaustive-deps': 'error', + 'react-hooks/unsupported-syntax': 'error', + 'react-hooks/incompatible-library': 'error', }, }, { From 7f638c7b7ca43f7ede49b4a3c97143b9dc25d967 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Wed, 8 Oct 2025 13:11:48 +0200 Subject: [PATCH 3/4] chore: config everywhere --- packages/react-query-devtools/eslint.config.js | 12 +++++------- .../react-query-next-experimental/eslint.config.js | 13 +++++-------- .../react-query-persist-client/eslint.config.js | 12 +++++------- packages/react-query/eslint.config.js | 3 ++- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/packages/react-query-devtools/eslint.config.js b/packages/react-query-devtools/eslint.config.js index 03abe66600..d75c6a72f7 100644 --- a/packages/react-query-devtools/eslint.config.js +++ b/packages/react-query-devtools/eslint.config.js @@ -1,24 +1,22 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' +import reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, - reactHooks.configs.recommended, + // @ts-expect-error wtf + ...reactHooks.configs['recommended-latest'], { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, rules: { '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible - }, - }, - { - rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/react-compiler': 'error', + 'react-hooks/unsupported-syntax': 'error', + 'react-hooks/incompatible-library': 'error', }, }, ] diff --git a/packages/react-query-next-experimental/eslint.config.js b/packages/react-query-next-experimental/eslint.config.js index 9d16dcb779..d75c6a72f7 100644 --- a/packages/react-query-next-experimental/eslint.config.js +++ b/packages/react-query-next-experimental/eslint.config.js @@ -1,25 +1,22 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' +import reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, - reactHooks.configs.recommended, + // @ts-expect-error wtf + ...reactHooks.configs['recommended-latest'], { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, rules: { '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible - }, - }, - { - rules: { - '@eslint-react/no-unstable-context-value': 'off', 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/react-compiler': 'error', + 'react-hooks/unsupported-syntax': 'error', + 'react-hooks/incompatible-library': 'error', }, }, ] diff --git a/packages/react-query-persist-client/eslint.config.js b/packages/react-query-persist-client/eslint.config.js index 03abe66600..d75c6a72f7 100644 --- a/packages/react-query-persist-client/eslint.config.js +++ b/packages/react-query-persist-client/eslint.config.js @@ -1,24 +1,22 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' +import reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, - reactHooks.configs.recommended, + // @ts-expect-error wtf + ...reactHooks.configs['recommended-latest'], { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, rules: { '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible - }, - }, - { - rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/react-compiler': 'error', + 'react-hooks/unsupported-syntax': 'error', + 'react-hooks/incompatible-library': 'error', }, }, ] diff --git a/packages/react-query/eslint.config.js b/packages/react-query/eslint.config.js index d6a34235e6..edacda9938 100644 --- a/packages/react-query/eslint.config.js +++ b/packages/react-query/eslint.config.js @@ -13,8 +13,8 @@ export default [ ...pluginReact.configs.recommended, rules: { '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible - '@eslint-react/dom/no-missing-button-type': 'off', 'react-hooks/exhaustive-deps': 'error', + 'react-hooks/rules-of-hooks': 'error', 'react-hooks/unsupported-syntax': 'error', 'react-hooks/incompatible-library': 'error', }, @@ -22,6 +22,7 @@ export default [ { files: ['**/__tests__/**'], rules: { + '@eslint-react/dom/no-missing-button-type': 'off', '@typescript-eslint/no-unnecessary-condition': 'off', }, }, From 35b8f896273dcd095586782731148b62376119e7 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Wed, 8 Oct 2025 13:22:20 +0200 Subject: [PATCH 4/4] chore: lint violations --- examples/react/algolia/eslint.config.js | 8 -------- examples/react/basic-graphql-request/eslint.config.js | 8 -------- examples/react/basic/eslint.config.js | 8 -------- examples/react/shadow-dom/eslint.config.js | 8 -------- .../src/HydrationStreamProvider.tsx | 3 ++- .../src/__tests__/PersistQueryClientProvider.test.tsx | 1 - packages/react-query/src/HydrationBoundary.tsx | 5 ++++- packages/react-query/src/__tests__/useQuery.test.tsx | 5 +++-- .../src/__tests__/useSuspenseInfiniteQuery.test.tsx | 1 + .../src/__tests__/useSuspenseQueries.test-d.tsx | 2 +- .../react-query/src/__tests__/useSuspenseQueries.test.tsx | 2 ++ .../react-query/src/__tests__/useSuspenseQuery.test.tsx | 1 + packages/react-query/src/useMutationState.ts | 2 +- 13 files changed, 15 insertions(+), 39 deletions(-) diff --git a/examples/react/algolia/eslint.config.js b/examples/react/algolia/eslint.config.js index 2fe45cb071..b3283a3b89 100644 --- a/examples/react/algolia/eslint.config.js +++ b/examples/react/algolia/eslint.config.js @@ -1,17 +1,9 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, - reactHooks.configs.recommended, - { - rules: { - 'react-hooks/exhaustive-deps': 'error', - 'react-hooks/rules-of-hooks': 'error', - }, - }, ] diff --git a/examples/react/basic-graphql-request/eslint.config.js b/examples/react/basic-graphql-request/eslint.config.js index 2fe45cb071..b3283a3b89 100644 --- a/examples/react/basic-graphql-request/eslint.config.js +++ b/examples/react/basic-graphql-request/eslint.config.js @@ -1,17 +1,9 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, - reactHooks.configs.recommended, - { - rules: { - 'react-hooks/exhaustive-deps': 'error', - 'react-hooks/rules-of-hooks': 'error', - }, - }, ] diff --git a/examples/react/basic/eslint.config.js b/examples/react/basic/eslint.config.js index 2fe45cb071..b3283a3b89 100644 --- a/examples/react/basic/eslint.config.js +++ b/examples/react/basic/eslint.config.js @@ -1,17 +1,9 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, - reactHooks.configs.recommended, - { - rules: { - 'react-hooks/exhaustive-deps': 'error', - 'react-hooks/rules-of-hooks': 'error', - }, - }, ] diff --git a/examples/react/shadow-dom/eslint.config.js b/examples/react/shadow-dom/eslint.config.js index 2fe45cb071..b3283a3b89 100644 --- a/examples/react/shadow-dom/eslint.config.js +++ b/examples/react/shadow-dom/eslint.config.js @@ -1,17 +1,9 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, - reactHooks.configs.recommended, - { - rules: { - 'react-hooks/exhaustive-deps': 'error', - 'react-hooks/rules-of-hooks': 'error', - }, - }, ] diff --git a/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx b/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx index 6ce047810d..c97f0c26d6 100644 --- a/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx +++ b/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx @@ -130,7 +130,7 @@ export function createHydrationStreamProvider() { .join(',') // Flush stream - // eslint-disable-next-line react-hooks/react-compiler + // eslint-disable-next-line react-hooks/immutability stream.length = 0 const html: Array = [ @@ -169,6 +169,7 @@ export function createHydrationStreamProvider() { onEntries(...winStream) + // eslint-disable-next-line react-hooks/immutability win[id] = { initialized: true, push: onEntries, diff --git a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index 5612040b7e..74bccab533 100644 --- a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -371,7 +371,6 @@ describe('PersistQueryClientProvider', () => { const state = useQuery({ queryKey: key, queryFn: async () => { - // eslint-disable-next-line react-hooks/react-compiler fetched = true await sleep(10) return 'fetched' diff --git a/packages/react-query/src/HydrationBoundary.tsx b/packages/react-query/src/HydrationBoundary.tsx index 7d5c8a7d6f..901c8e9686 100644 --- a/packages/react-query/src/HydrationBoundary.tsx +++ b/packages/react-query/src/HydrationBoundary.tsx @@ -31,7 +31,9 @@ export const HydrationBoundary = ({ const client = useQueryClient(queryClient) const optionsRef = React.useRef(options) - optionsRef.current = options + React.useEffect(() => { + optionsRef.current = options + }) // This useMemo is for performance reasons only, everything inside it must // be safe to run in every render and code here should be read as "in render". @@ -89,6 +91,7 @@ export const HydrationBoundary = ({ if (newQueries.length > 0) { // It's actually fine to call this with queries/state that already exists // in the cache, or is older. hydrate() is idempotent for queries. + // eslint-disable-next-line react-hooks/refs hydrate(client, { queries: newQueries }, optionsRef.current) } if (existingQueries.length > 0) { diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 7eea42110c..39393379c0 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -4684,6 +4684,7 @@ describe('useQuery', () => { function Page(props: { limit: number }) { const state = useQuery({ queryKey: [key, props.limit], queryFn }) + // eslint-disable-next-line react-hooks/immutability states[props.limit] = state return (
@@ -6152,7 +6153,6 @@ describe('useQuery', () => { const key = queryKey() function Page() { - const mounted = React.useRef(false) const { data, status } = useQuery({ enabled: false, queryKey: key, @@ -6162,9 +6162,10 @@ describe('useQuery', () => { }, }) + const mounted = React.useRef(null) // this simulates a synchronous update between the time the query is created // and the time it is subscribed to that could be missed otherwise - if (!mounted.current) { + if (mounted.current === null) { mounted.current = true queryClient.setQueryData(key, 1) } diff --git a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx index 46d7747df2..277bdc0b7e 100644 --- a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx @@ -25,6 +25,7 @@ describe('useSuspenseInfiniteQuery', () => { initialPageParam: 1, getNextPageParam: () => 1, // @ts-expect-error + // eslint-disable-next-line react-hooks/purity queryFn: Math.random() >= 0 ? skipToken : () => Promise.resolve(5), }) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx index 7298a9e594..76fb13a9f5 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx @@ -236,7 +236,7 @@ describe('UseSuspenseQueries config object overload', () => { ) }) - it('should not show type error when using spreaded queryOptions', () => { + it('should not show type error when using rest queryOptions', () => { assertType( useSuspenseQueries({ queries: [ diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 24cd63ab92..a0b923493f 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -258,6 +258,7 @@ describe('useSuspenseQueries 2', () => { } function Page() { + // eslint-disable-next-line react-hooks/purity const ref = React.useRef(Math.random()) const result = useSuspenseQueries({ queries: [ @@ -665,6 +666,7 @@ describe('useSuspenseQueries 2', () => { { queryKey: key, // @ts-expect-error + // eslint-disable-next-line react-hooks/purity queryFn: Math.random() >= 0 ? skipToken : () => Promise.resolve(5), }, ], diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index 38645fe4c7..8a0e6c5b7c 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -875,6 +875,7 @@ describe('useSuspenseQuery', () => { useSuspenseQuery({ queryKey: key, // @ts-expect-error + // eslint-disable-next-line react-hooks/purity queryFn: Math.random() >= 0 ? skipToken : () => Promise.resolve(5), }) diff --git a/packages/react-query/src/useMutationState.ts b/packages/react-query/src/useMutationState.ts index 689e17c273..dfd0c41da3 100644 --- a/packages/react-query/src/useMutationState.ts +++ b/packages/react-query/src/useMutationState.ts @@ -46,7 +46,7 @@ export function useMutationState( const mutationCache = useQueryClient(queryClient).getMutationCache() const optionsRef = React.useRef(options) const result = React.useRef>(null) - if (!result.current) { + if (result.current === null) { result.current = getResult(mutationCache, options) }