From be3746f069ce7c6dbed427f3e2f32f4b304997ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Fri, 20 Mar 2026 13:25:49 +0100 Subject: [PATCH 001/414] fix: stop node types from leaking into browser (#10302) --- .changeset/two-cameras-wear.md | 7 +++++++ packages/preact-query/tsconfig.prod.json | 3 ++- packages/react-query/tsconfig.prod.json | 3 ++- packages/solid-query/tsconfig.prod.json | 3 ++- 4 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 .changeset/two-cameras-wear.md diff --git a/.changeset/two-cameras-wear.md b/.changeset/two-cameras-wear.md new file mode 100644 index 00000000000..41e60a0a39b --- /dev/null +++ b/.changeset/two-cameras-wear.md @@ -0,0 +1,7 @@ +--- +'@tanstack/preact-query': patch +'@tanstack/react-query': patch +'@tanstack/solid-query': patch +--- + +fix: stop node types from leaking into browser diff --git a/packages/preact-query/tsconfig.prod.json b/packages/preact-query/tsconfig.prod.json index 0f4c92da065..c2c63818c2d 100644 --- a/packages/preact-query/tsconfig.prod.json +++ b/packages/preact-query/tsconfig.prod.json @@ -4,5 +4,6 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "exclude": ["src/__tests__"] } diff --git a/packages/react-query/tsconfig.prod.json b/packages/react-query/tsconfig.prod.json index 0f4c92da065..c2c63818c2d 100644 --- a/packages/react-query/tsconfig.prod.json +++ b/packages/react-query/tsconfig.prod.json @@ -4,5 +4,6 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "exclude": ["src/__tests__"] } diff --git a/packages/solid-query/tsconfig.prod.json b/packages/solid-query/tsconfig.prod.json index 0f4c92da065..c2c63818c2d 100644 --- a/packages/solid-query/tsconfig.prod.json +++ b/packages/solid-query/tsconfig.prod.json @@ -4,5 +4,6 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "exclude": ["src/__tests__"] } From 9346430657621591e1b1da08f04f8929071a6ad7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 20 Mar 2026 12:27:46 +0000 Subject: [PATCH 002/414] ci: changeset release --- .changeset/two-cameras-wear.md | 7 -- examples/react/algolia/package.json | 2 +- examples/react/auto-refetching/package.json | 2 +- .../react/basic-graphql-request/package.json | 2 +- examples/react/basic/package.json | 2 +- examples/react/chat/package.json | 2 +- .../react/default-query-function/package.json | 2 +- examples/react/devtools-panel/package.json | 2 +- examples/react/eslint-legacy/package.json | 2 +- .../package.json | 2 +- .../load-more-infinite-scroll/package.json | 2 +- .../react/nextjs-app-prefetching/package.json | 2 +- .../nextjs-suspense-streaming/package.json | 2 +- examples/react/nextjs/package.json | 2 +- examples/react/offline/package.json | 2 +- .../optimistic-updates-cache/package.json | 2 +- .../react/optimistic-updates-ui/package.json | 2 +- examples/react/pagination/package.json | 2 +- examples/react/playground/package.json | 2 +- examples/react/prefetching/package.json | 2 +- examples/react/react-native/package.json | 2 +- examples/react/react-router/package.json | 2 +- examples/react/rick-morty/package.json | 2 +- examples/react/shadow-dom/package.json | 2 +- examples/react/simple/package.json | 2 +- examples/react/star-wars/package.json | 2 +- examples/react/suspense/package.json | 2 +- examples/solid/astro/package.json | 2 +- .../solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- .../solid/default-query-function/package.json | 2 +- examples/solid/offline/package.json | 2 +- examples/solid/simple/package.json | 2 +- .../solid/solid-start-streaming/package.json | 2 +- packages/preact-query/CHANGELOG.md | 6 ++ packages/preact-query/package.json | 2 +- packages/react-query/CHANGELOG.md | 6 ++ packages/react-query/package.json | 2 +- packages/solid-query/CHANGELOG.md | 6 ++ packages/solid-query/package.json | 2 +- pnpm-lock.yaml | 66 +++++++++---------- 41 files changed, 87 insertions(+), 76 deletions(-) delete mode 100644 .changeset/two-cameras-wear.md diff --git a/.changeset/two-cameras-wear.md b/.changeset/two-cameras-wear.md deleted file mode 100644 index 41e60a0a39b..00000000000 --- a/.changeset/two-cameras-wear.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/preact-query': patch -'@tanstack/react-query': patch -'@tanstack/solid-query': patch ---- - -fix: stop node types from leaking into browser diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 864d21f035a..d3ce599ce01 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 49148cdd368..c71570b2bfd 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index b048353b962..5a5ea2783bd 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 4c72dbaffad..164b8bd6ddf 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.90.27", - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "@tanstack/react-query-persist-client": "^5.90.27", "react": "^19.0.0", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 2bd37c9f788..8896ca6f42e 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index ae7ef9f6c3a..651a42d18ac 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index eea79c11574..4dd503e7445 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6606c2c8c38..0a35be958a8 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.90.27", - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "@tanstack/react-query-persist-client": "^5.90.27", "react": "^19.0.0", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 0cfd095d825..b4bbda0c148 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 3135d0f0d06..f84fa334937 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 22b38ff60f0..ad0ec3243f8 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index f7664fe2b2a..a3c66a2531f 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "@tanstack/react-query-next-experimental": "^5.91.0", "next": "^16.0.7", diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index d13c47dce10..820cd81fad2 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index ca31de9c58e..fe8f2afe265 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.90.27", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "@tanstack/react-query-persist-client": "^5.90.27", "msw": "^2.6.6", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 270dc20fd31..d24abd006e1 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 4bbb41d0371..0d6d8929a87 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 7de927db6ef..1bd71b33a7c 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 30426ada27f..c399b9cdc16 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 27116bfe88f..05ffd2e1201 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "next": "^16.0.7", "react": "^19.2.1", diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index b64739ff222..7599edc34c4 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,7 +14,7 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "expo": "^52.0.11", "expo-constants": "^17.0.3", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index e45c60f0ef9..281b7573aab 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "localforage": "^1.10.0", "match-sorter": "^6.3.4", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 7a6d3e02ecb..04117f018e5 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index dbe9938d558..5d629a56c51 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index c8b2d9a90b6..99b70a78de6 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 1934221daf2..24f0f2f2950 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 18c21379c5c..5eeb8cb61f6 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3", "font-awesome": "^4.7.0", "react": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 6294201b91b..a087444428c 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,7 +15,7 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.91.3", + "@tanstack/solid-query": "^5.91.4", "@tanstack/solid-query-devtools": "^5.91.3", "astro": "^5.5.6", "solid-js": "^1.9.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index d0e2774d4ab..81e99ecdd79 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.3", + "@tanstack/solid-query": "^5.91.4", "@tanstack/solid-query-devtools": "^5.91.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 1d798710cc8..f2e824472ba 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.3", + "@tanstack/solid-query": "^5.91.4", "@tanstack/solid-query-devtools": "^5.91.3", "solid-js": "^1.9.7" }, diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index d809749a613..f5034803fd1 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.3", + "@tanstack/solid-query": "^5.91.4", "@tanstack/solid-query-devtools": "^5.91.3", "solid-js": "^1.9.7" }, diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 9e717311813..d9cba15f562 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.90.27", - "@tanstack/solid-query": "^5.91.3", + "@tanstack/solid-query": "^5.91.4", "@tanstack/solid-query-devtools": "^5.91.3", "@tanstack/solid-query-persist-client": "^5.90.28", "msw": "^2.6.6", diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 6691b26b6dd..34561e3e829 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.3", + "@tanstack/solid-query": "^5.91.4", "@tanstack/solid-query-devtools": "^5.91.3", "solid-js": "^1.9.7" }, diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 137a8d0cc9f..b800e21b991 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,7 +12,7 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.91.3", + "@tanstack/solid-query": "^5.91.4", "@tanstack/solid-query-devtools": "^5.91.3", "solid-js": "^1.9.7", "vinxi": "^0.5.3" diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 80d5c8d0fea..8e2cf8dfbf5 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/preact-query +## 5.94.3 + +### Patch Changes + +- fix: stop node types from leaking into browser ([#10302](https://github.com/TanStack/query/pull/10302)) + ## 5.94.2 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index ebc9e6821b4..cf7d924aa48 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.94.2", + "version": "5.94.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 53142175205..ea03ff7c972 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/react-query +## 5.91.3 + +### Patch Changes + +- fix: stop node types from leaking into browser ([#10302](https://github.com/TanStack/query/pull/10302)) + ## 5.91.2 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index d81961a065b..cfc9c58da66 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.91.2", + "version": "5.91.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 929e2a6a2ff..d71b557c7ba 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/solid-query +## 5.91.4 + +### Patch Changes + +- fix: stop node types from leaking into browser ([#10302](https://github.com/TanStack/query/pull/10302)) + ## 5.91.3 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 4c247e4e2ec..55a41d68a94 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.91.3", + "version": "5.91.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 862ae56758f..fdf10354f09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -646,7 +646,7 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -680,7 +680,7 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -711,7 +711,7 @@ importers: specifier: ^5.90.27 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -748,7 +748,7 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -776,7 +776,7 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -807,7 +807,7 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -832,7 +832,7 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -860,7 +860,7 @@ importers: specifier: ^5.90.27 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -897,7 +897,7 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -925,7 +925,7 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -956,7 +956,7 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -984,7 +984,7 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1012,7 +1012,7 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1049,7 +1049,7 @@ importers: specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1083,7 +1083,7 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1111,7 +1111,7 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1139,7 +1139,7 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1167,7 +1167,7 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1192,7 +1192,7 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1229,7 +1229,7 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1281,7 +1281,7 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1333,7 +1333,7 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1370,7 +1370,7 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1401,7 +1401,7 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1426,7 +1426,7 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1463,7 +1463,7 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.91.2 + specifier: ^5.91.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': specifier: ^5.91.3 @@ -1509,7 +1509,7 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.91.3 + specifier: ^5.91.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': specifier: ^5.91.3 @@ -1530,7 +1530,7 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.91.3 + specifier: ^5.91.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': specifier: ^5.91.3 @@ -1552,7 +1552,7 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.91.3 + specifier: ^5.91.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': specifier: ^5.91.3 @@ -1580,7 +1580,7 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.91.3 + specifier: ^5.91.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': specifier: ^5.91.3 @@ -1605,7 +1605,7 @@ importers: specifier: ^5.90.27 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.91.3 + specifier: ^5.91.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': specifier: ^5.91.3 @@ -1633,7 +1633,7 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.91.3 + specifier: ^5.91.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': specifier: ^5.91.3 @@ -1667,7 +1667,7 @@ importers: specifier: ^1.1.3 version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) '@tanstack/solid-query': - specifier: ^5.91.3 + specifier: ^5.91.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': specifier: ^5.91.3 From 3b7a177ed05fe6caa1c5474a4a6b092489f800d8 Mon Sep 17 00:00:00 2001 From: Birk Skyum <74932975+birkskyum@users.noreply.github.com> Date: Fri, 20 Mar 2026 14:03:33 +0100 Subject: [PATCH 003/414] ci: use separate changeset publishing pr (#10303) --- .github/workflows/release.yml | 55 ++++++++--------------------------- 1 file changed, 12 insertions(+), 43 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 08f17a0f040..1969605f566 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,59 +19,21 @@ permissions: jobs: release: name: Release - if: "!contains(github.event.head_commit.message, 'ci: changeset release')" runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6.0.2 with: fetch-depth: 0 - - name: Check for changesets - id: changesets - run: | - CHANGESET_FILES=$(ls .changeset/*.md 2>/dev/null | grep -v README.md || true) - if [ -z "$CHANGESET_FILES" ]; then - echo "has_changesets=false" >> "$GITHUB_OUTPUT" - else - echo "has_changesets=true" >> "$GITHUB_OUTPUT" - fi - - name: Start Nx Agents - if: steps.changesets.outputs.has_changesets == 'true' - run: npx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml" - name: Setup Tools uses: TanStack/config/.github/setup@main - - name: Run Tests - if: steps.changesets.outputs.has_changesets == 'true' - run: pnpm run test:ci - - name: Stop Nx Agents - if: ${{ always() && steps.changesets.outputs.has_changesets == 'true' }} - run: npx nx-cloud stop-all-agents - - name: Enter Pre-Release Mode - if: "contains(github.ref_name, '-pre') && !hashFiles('.changeset/pre.json')" - run: pnpm changeset pre enter pre - - name: Version Packages - run: pnpm run changeset:version - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Commit and Push Version Changes - id: commit - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add . - if git commit -m "ci: changeset release"; then - git push - echo "committed=true" >> "$GITHUB_OUTPUT" - fi - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Determine dist-tag - if: steps.commit.outputs.committed == 'true' id: dist-tag run: | BRANCH="${GITHUB_REF_NAME}" if [[ "$BRANCH" == *-pre ]]; then echo "prerelease=true" >> "$GITHUB_OUTPUT" + echo "tag=pre" >> "$GITHUB_OUTPUT" elif [[ "$BRANCH" == *-maint ]]; then echo "tag=maint" >> "$GITHUB_OUTPUT" elif [[ "$BRANCH" =~ ^v[0-9]+$ ]]; then @@ -79,11 +41,18 @@ jobs: else echo "latest=true" >> "$GITHUB_OUTPUT" fi - - name: Publish Packages - if: steps.commit.outputs.committed == 'true' - run: pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }} + - name: Create Release Pull Request or Publish + id: changesets + uses: changesets/action@v1 + with: + version: pnpm run changeset:version + publish: pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }} + title: 'ci: Version Packages' + commit: 'ci: changeset release' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create GitHub Release - if: steps.commit.outputs.committed == 'true' + if: steps.changesets.outputs.published == 'true' run: node scripts/create-github-release.mjs ${{ steps.dist-tag.outputs.prerelease == 'true' && '--prerelease' }} ${{ steps.dist-tag.outputs.latest == 'true' && '--latest' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 4c75210ce8235fe3d39b67e1029eff11278927cc Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sat, 21 Mar 2026 22:52:02 +0900 Subject: [PATCH 004/414] ci(changesets): fixed version (#10064) * chore: update changeset configuration to include fixed dependencies for various TanStack packages * chore: update package versions across multiple examples and packages to 5.92.9, including Angular, React, Solid, Svelte, and Vue integrations * chore: add changeset for version patches across multiple TanStack packages * chore: update changeset configuration to include @tanstack/vue-query-devtools as a dependency * feat: add support for Preact query packages in changeset configuration * chore: update changeset configuration to include Preact query packages --- .changeset/config.json | 31 +++++++++++++++++++++++++- .changeset/dry-hotels-grin.md | 28 +++++++++++++++++++++++ packages/query-test-utils/package.json | 1 - 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 .changeset/dry-hotels-grin.md diff --git a/.changeset/config.json b/.changeset/config.json index d3af6f132a4..12c7da56aad 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -8,7 +8,36 @@ "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", - "fixed": [], + "fixed": [ + [ + "@tanstack/angular-query-experimental", + "@tanstack/angular-query-persist-client", + "@tanstack/eslint-plugin-query", + "@tanstack/preact-query", + "@tanstack/preact-query-devtools", + "@tanstack/preact-query-persist-client", + "@tanstack/query-async-storage-persister", + "@tanstack/query-broadcast-client-experimental", + "@tanstack/query-core", + "@tanstack/query-devtools", + "@tanstack/query-persist-client-core", + "@tanstack/query-sync-storage-persister", + "@tanstack/react-query", + "@tanstack/react-query-devtools", + "@tanstack/react-query-next-experimental", + "@tanstack/react-query-persist-client", + "@tanstack/solid-query", + "@tanstack/solid-query-devtools", + "@tanstack/solid-query-persist-client", + "@tanstack/vue-query" + ], + [ + "@tanstack/vue-query-devtools", + "@tanstack/svelte-query", + "@tanstack/svelte-query-devtools", + "@tanstack/svelte-query-persist-client" + ] + ], "linked": [], "ignore": [], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { diff --git a/.changeset/dry-hotels-grin.md b/.changeset/dry-hotels-grin.md new file mode 100644 index 00000000000..62f4dc13193 --- /dev/null +++ b/.changeset/dry-hotels-grin.md @@ -0,0 +1,28 @@ +--- +'@tanstack/angular-query-experimental': patch +'@tanstack/angular-query-persist-client': patch +'@tanstack/eslint-plugin-query': patch +'@tanstack/query-async-storage-persister': patch +'@tanstack/query-broadcast-client-experimental': patch +'@tanstack/query-core': patch +'@tanstack/query-devtools': patch +'@tanstack/query-persist-client-core': patch +'@tanstack/query-sync-storage-persister': patch +'@tanstack/react-query': patch +'@tanstack/react-query-devtools': patch +'@tanstack/react-query-next-experimental': patch +'@tanstack/react-query-persist-client': patch +'@tanstack/solid-query': patch +'@tanstack/solid-query-devtools': patch +'@tanstack/solid-query-persist-client': patch +'@tanstack/svelte-query': patch +'@tanstack/svelte-query-devtools': patch +'@tanstack/svelte-query-persist-client': patch +'@tanstack/vue-query': patch +'@tanstack/vue-query-devtools': patch +'@tanstack/preact-query': patch +'@tanstack/preact-query-devtools': patch +'@tanstack/preact-query-persist-client': patch +--- + +chore: fixed version diff --git a/packages/query-test-utils/package.json b/packages/query-test-utils/package.json index ec455acf744..c3a4a033bf0 100644 --- a/packages/query-test-utils/package.json +++ b/packages/query-test-utils/package.json @@ -1,6 +1,5 @@ { "name": "@tanstack/query-test-utils", - "version": "0.0.0", "description": "Internal test utilities for TanStack Query", "author": "Jonghyeon Ko ", "private": true, From c613c225355502306c5011bb28fe59225cb1262c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 21 Mar 2026 23:35:14 +0900 Subject: [PATCH 005/414] ci: Version Packages (#10309) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/dry-hotels-grin.md | 28 -- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 9 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 10 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 6 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 10 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 10 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 9 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 6 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 9 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 10 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 10 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 10 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 9 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 10 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 10 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 9 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 10 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 10 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 9 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 10 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 9 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 240 +++++++++--------- 107 files changed, 483 insertions(+), 292 deletions(-) delete mode 100644 .changeset/dry-hotels-grin.md diff --git a/.changeset/dry-hotels-grin.md b/.changeset/dry-hotels-grin.md deleted file mode 100644 index 62f4dc13193..00000000000 --- a/.changeset/dry-hotels-grin.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -'@tanstack/angular-query-experimental': patch -'@tanstack/angular-query-persist-client': patch -'@tanstack/eslint-plugin-query': patch -'@tanstack/query-async-storage-persister': patch -'@tanstack/query-broadcast-client-experimental': patch -'@tanstack/query-core': patch -'@tanstack/query-devtools': patch -'@tanstack/query-persist-client-core': patch -'@tanstack/query-sync-storage-persister': patch -'@tanstack/react-query': patch -'@tanstack/react-query-devtools': patch -'@tanstack/react-query-next-experimental': patch -'@tanstack/react-query-persist-client': patch -'@tanstack/solid-query': patch -'@tanstack/solid-query-devtools': patch -'@tanstack/solid-query-persist-client': patch -'@tanstack/svelte-query': patch -'@tanstack/svelte-query-devtools': patch -'@tanstack/svelte-query-persist-client': patch -'@tanstack/vue-query': patch -'@tanstack/vue-query-devtools': patch -'@tanstack/preact-query': patch -'@tanstack/preact-query-devtools': patch -'@tanstack/preact-query-persist-client': patch ---- - -chore: fixed version diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 0e06fe93233..ae937c6f56d 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 44784988078..84b1ff8e439 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", - "@tanstack/angular-query-persist-client": "^5.62.32", - "@tanstack/query-async-storage-persister": "^5.90.27", + "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-persist-client": "^5.94.4", + "@tanstack/query-async-storage-persister": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 2bdbba2ff44..8f7c3fd3aa7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 5970e53c1d2..442fd122957 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 96701d77008..9ac69b8bace 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 8bbe39a2005..f6038613c92 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 8f583a65d54..553eebd38e5 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index e17c58742c7..0461a336a61 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index c504dbf6445..7eac77f2c9d 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index d2b4e449366..91256b1f882 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index f407d3ca1fe..8259d0b5e1d 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index d3ce599ce01..3f3659f105f 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.91.5", + "@tanstack/eslint-plugin-query": "^5.94.4", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index c71570b2bfd..4b1ae46fdc2 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 5a5ea2783bd..ae0bd69e3f0 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 164b8bd6ddf..1d1df4c0dc9 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.27", - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", - "@tanstack/react-query-persist-client": "^5.90.27", + "@tanstack/query-async-storage-persister": "^5.94.4", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query-persist-client": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.91.5", + "@tanstack/eslint-plugin-query": "^5.94.4", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 8896ca6f42e..7253ccfa90b 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 651a42d18ac..250cdd01685 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 4dd503e7445..f0e1b7fdc0f 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 0a35be958a8..6c820bd1e6c 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.27", - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", - "@tanstack/react-query-persist-client": "^5.90.27", + "@tanstack/query-async-storage-persister": "^5.94.4", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query-persist-client": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.91.5", + "@tanstack/eslint-plugin-query": "^5.94.4", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b4bbda0c148..ad9643ed8a2 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index f84fa334937..8f3e9ef5b92 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index ad0ec3243f8..07b79d32241 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index a3c66a2531f..5444181f778 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", - "@tanstack/react-query-next-experimental": "^5.91.0", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query-next-experimental": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 820cd81fad2..70366b5056e 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index fe8f2afe265..9f33204ba1c 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.27", + "@tanstack/query-async-storage-persister": "^5.94.4", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", - "@tanstack/react-query-persist-client": "^5.90.27", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query-persist-client": "^5.94.4", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index d24abd006e1..818648f1dc4 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 0d6d8929a87..a928ff9997f 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 1bd71b33a7c..caae69aa04f 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index c399b9cdc16..923b1637495 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 05ffd2e1201..348b33028ab 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 7599edc34c4..a9a1c5ea796 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 281b7573aab..f80f0c85da3 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 04117f018e5..46692144cda 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 5d629a56c51..8cf77559618 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 99b70a78de6..40c9b61817e 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 24f0f2f2950..d3efce14252 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 5eeb8cb61f6..26654dfc768 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.91.3", - "@tanstack/react-query-devtools": "^5.91.3", + "@tanstack/react-query": "^5.94.4", + "@tanstack/react-query-devtools": "^5.94.4", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a087444428c..c4b9cfa2a8c 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.91.4", - "@tanstack/solid-query-devtools": "^5.91.3", + "@tanstack/solid-query": "^5.94.4", + "@tanstack/solid-query-devtools": "^5.94.4", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 81e99ecdd79..5d107737ea2 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.4", - "@tanstack/solid-query-devtools": "^5.91.3", + "@tanstack/solid-query": "^5.94.4", + "@tanstack/solid-query-devtools": "^5.94.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index f2e824472ba..42ebc60b8dc 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.4", - "@tanstack/solid-query-devtools": "^5.91.3", + "@tanstack/solid-query": "^5.94.4", + "@tanstack/solid-query-devtools": "^5.94.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index f5034803fd1..31b705e8bbc 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.4", - "@tanstack/solid-query-devtools": "^5.91.3", + "@tanstack/solid-query": "^5.94.4", + "@tanstack/solid-query-devtools": "^5.94.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index d9cba15f562..ae306e1a27c 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.27", - "@tanstack/solid-query": "^5.91.4", - "@tanstack/solid-query-devtools": "^5.91.3", - "@tanstack/solid-query-persist-client": "^5.90.28", + "@tanstack/query-async-storage-persister": "^5.94.4", + "@tanstack/solid-query": "^5.94.4", + "@tanstack/solid-query-devtools": "^5.94.4", + "@tanstack/solid-query-persist-client": "^5.94.4", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 34561e3e829..e9cf8fd9cfb 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.91.4", - "@tanstack/solid-query-devtools": "^5.91.3", + "@tanstack/solid-query": "^5.94.4", + "@tanstack/solid-query-devtools": "^5.94.4", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.91.5", + "@tanstack/eslint-plugin-query": "^5.94.4", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index b800e21b991..851f74eafef 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.91.4", - "@tanstack/solid-query-devtools": "^5.91.3", + "@tanstack/solid-query": "^5.94.4", + "@tanstack/solid-query-devtools": "^5.94.4", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 7f0407b418e..00224403602 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4" + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index a9c496d3425..05f79baa237 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.27", - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4", - "@tanstack/svelte-query-persist-client": "^6.0.25" + "@tanstack/query-async-storage-persister": "^5.94.4", + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6", + "@tanstack/svelte-query-persist-client": "^6.1.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index aee012642ac..bac8a92f4fd 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4" + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 6f41007ab71..513b2760eaa 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4" + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index e56d2fd61fe..30ed1654cc9 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4" + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 91dded8ef3c..3c648811734 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4" + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 1f216052f7c..1a280e02c84 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4" + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 0d74f5e3027..69b09a3974a 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.3", - "@tanstack/svelte-query-devtools": "^6.0.4" + "@tanstack/svelte-query": "^6.1.6", + "@tanstack/svelte-query-devtools": "^6.1.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index d8060e40869..6bc7922799c 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.92.12", - "@tanstack/vue-query-devtools": "^6.1.5", + "@tanstack/vue-query": "^5.94.4", + "@tanstack/vue-query-devtools": "^6.1.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 0fed3267146..8f84e10616b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.92.12", + "@tanstack/vue-query": "^5.94.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 4c149ab0900..024d50d65a4 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.91.2", - "@tanstack/query-persist-client-core": "^5.92.4", - "@tanstack/query-sync-storage-persister": "^5.90.27", - "@tanstack/vue-query": "^5.92.12", + "@tanstack/query-core": "^5.94.4", + "@tanstack/query-persist-client-core": "^5.94.4", + "@tanstack/query-sync-storage-persister": "^5.94.4", + "@tanstack/vue-query": "^5.94.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 1b4c9d89dbc..df7963fea42 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.92.12", - "@tanstack/vue-query-devtools": "^6.1.5", + "@tanstack/vue-query": "^5.94.4", + "@tanstack/vue-query-devtools": "^6.1.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 6d9778769e2..63bf68fab92 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.28", + "@tanstack/angular-query-experimental": "^5.94.4", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 82c7b7a343c..8fdf9f6290a 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/angular-query-experimental +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 5.90.28 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 6f51f402b66..25bac1caa15 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.90.28", + "version": "5.94.4", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index bd27db1a2f2..faa3906a439 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/angular-query-persist-client +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/angular-query-experimental@5.94.4 + - @tanstack/query-persist-client-core@5.94.4 + ## 5.62.32 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 0870cfbe454..9dd534e1b04 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.62.32", + "version": "5.94.4", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index bb5fd382c51..6f7f2e509fa 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/eslint-plugin-query +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + ## 5.91.5 ### Patch Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 8e8513515f4..c0e926b5db0 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.91.5", + "version": "5.94.4", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index b00cdcc47ae..ab5b0d52110 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/preact-query-devtools +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-devtools@5.94.4 + - @tanstack/preact-query@5.94.4 + ## 5.92.0 ### Minor Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index e046de1d872..a546e55d6f5 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.92.0", + "version": "5.94.4", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 2ed34018c95..c828915c677 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/preact-query-persist-client +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-persist-client-core@5.94.4 + - @tanstack/preact-query@5.94.4 + ## 5.92.3 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index b5ebb67887c..01c0cdd5000 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.92.3", + "version": "5.94.4", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 8e2cf8dfbf5..4dcebc70056 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/preact-query +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 5.94.3 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index cf7d924aa48..1540c3c16ea 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.94.3", + "version": "5.94.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index dec6da49251..7a9bea4e432 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/query-async-storage-persister +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + - @tanstack/query-persist-client-core@5.94.4 + ## 5.90.27 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index f293c7fb1a8..13fdf371960 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.90.27", + "version": "5.94.4", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index b608bafa707..7a0e087a50c 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/query-broadcast-client-experimental +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 5.90.23 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 3272e813c36..972e9cd02ba 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.90.23", + "version": "5.94.4", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 9c24c861bfa..3a51f4c09d9 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + ## 5.91.2 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 65cb5d92dc6..0fc22c43d2f 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.91.2", + "version": "5.94.4", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index a8a6a9ee995..0e01d48a419 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-devtools +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + ## 5.93.0 ### Minor Changes diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 16393ed1c45..9491e3abb4f 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.93.0", + "version": "5.94.4", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index e761b834c77..9a9bb4f4291 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/query-persist-client-core +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 5.92.4 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 111384f6363..cf753fc29da 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.92.4", + "version": "5.94.4", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index b93c5b0968f..d88c2393d3b 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/query-sync-storage-persister +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + - @tanstack/query-persist-client-core@5.94.4 + ## 5.90.27 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 53cd79d0dd9..574731d7c19 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.90.27", + "version": "5.94.4", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index afa4b3c1ead..5856741ec91 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/react-query-devtools +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-devtools@5.94.4 + - @tanstack/react-query@5.94.4 + ## 5.91.3 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 72399b86280..6d060fbab46 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.91.3", + "version": "5.94.4", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 64799f40774..c2a870f9323 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/react-query-next-experimental +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/react-query@5.94.4 + ## 5.91.0 ### Minor Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 76f47aeebff..51f0db4164b 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.91.0", + "version": "5.94.4", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index b827c1b062a..a57cc9e471a 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/react-query-persist-client +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-persist-client-core@5.94.4 + - @tanstack/react-query@5.94.4 + ## 5.90.27 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index d9a37a6de63..3e0afb0d033 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.90.27", + "version": "5.94.4", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index ea03ff7c972..c7a101700fa 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/react-query +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 5.91.3 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index cfc9c58da66..8a512d872ca 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.91.3", + "version": "5.94.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 6f8f4ce26f4..ea9c082d127 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-devtools +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-devtools@5.94.4 + - @tanstack/solid-query@5.94.4 + ## 5.91.3 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index ee61c1cf7fb..1315c9c8958 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.91.3", + "version": "5.94.4", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 49831bfbeaf..b19f6059a2a 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-persist-client +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-persist-client-core@5.94.4 + - @tanstack/solid-query@5.94.4 + ## 5.90.28 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 4b284c8d340..2b57e7b7b82 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.90.28", + "version": "5.94.4", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index d71b557c7ba..d7bf805e70d 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/solid-query +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 5.91.4 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 55a41d68a94..77e60f06674 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.91.4", + "version": "5.94.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 7b1cf0d86f5..1d0ec09eaaa 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/svelte-query-devtools +## 6.1.6 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-devtools@5.94.4 + - @tanstack/svelte-query@6.1.6 + ## 6.0.4 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index db53a1722fd..4b6716f72e5 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.0.4", + "version": "6.1.6", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index a77f0e5c756..e9173788b7f 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/svelte-query-persist-client +## 6.1.6 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-persist-client-core@5.94.4 + - @tanstack/svelte-query@6.1.6 + ## 6.0.25 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 701b77395f1..19920830c12 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.0.25", + "version": "6.1.6", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index b944a8de58a..685d464a305 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/svelte-query +## 6.1.6 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 6.1.3 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 43572eb6abc..eccb60e9127 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.3", + "version": "6.1.6", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index aa107119d71..92a34fccf78 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/vue-query-devtools +## 6.1.6 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-devtools@5.94.4 + - @tanstack/vue-query@5.94.4 + ## 6.1.5 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 84a3f81035d..78746a6c9de 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.5", + "version": "6.1.6", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 7f5aaadfc18..0f6d38bbc7b 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/vue-query +## 5.94.4 + +### Patch Changes + +- chore: fixed version ([#10064](https://github.com/TanStack/query/pull/10064)) + +- Updated dependencies [[`4c75210`](https://github.com/TanStack/query/commit/4c75210ce8235fe3d39b67e1029eff11278927cc)]: + - @tanstack/query-core@5.94.4 + ## 5.92.12 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 5a2ef025f1b..be511e78a62 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.92.12", + "version": "5.94.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fdf10354f09..77e391910b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.62.32 + specifier: ^5.94.4 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.91.5 + specifier: ^5.94.4 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.91.5 + specifier: ^5.94.4 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.91.5 + specifier: ^5.94.4 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,10 +897,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -925,10 +925,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -956,10 +956,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -984,10 +984,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1012,13 +1012,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.91.0 + specifier: ^5.94.4 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1043,19 +1043,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1083,10 +1083,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1111,10 +1111,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1139,10 +1139,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1167,10 +1167,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1192,10 +1192,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1229,10 +1229,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1281,10 +1281,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1333,10 +1333,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1370,10 +1370,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1401,10 +1401,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1426,10 +1426,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1463,10 +1463,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1509,10 +1509,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.91.4 + specifier: ^5.94.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1530,10 +1530,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.91.4 + specifier: ^5.94.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.91.4 + specifier: ^5.94.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1580,10 +1580,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.91.4 + specifier: ^5.94.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1602,16 +1602,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.91.4 + specifier: ^5.94.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1633,17 +1633,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.91.4 + specifier: ^5.94.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.11 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.91.5 + specifier: ^5.94.4 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1667,10 +1667,10 @@ importers: specifier: ^1.1.3 version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) '@tanstack/solid-query': - specifier: ^5.91.4 + specifier: ^5.94.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.91.3 + specifier: ^5.94.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1682,10 +1682,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1713,16 +1713,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.0.25 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1750,10 +1750,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1781,10 +1781,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1812,10 +1812,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1843,10 +1843,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1871,10 +1871,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1902,10 +1902,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.3 + specifier: ^6.1.6 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.0.4 + specifier: ^6.1.6 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1939,10 +1939,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.92.12 + specifier: ^5.94.4 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.5 + specifier: ^6.1.6 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1961,7 +1961,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.92.12 + specifier: ^5.94.4 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -1980,16 +1980,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.91.2 + specifier: ^5.94.4 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.92.4 + specifier: ^5.94.4 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.90.27 + specifier: ^5.94.4 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.92.12 + specifier: ^5.94.4 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2011,10 +2011,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.92.12 + specifier: ^5.94.4 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.5 + specifier: ^6.1.6 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2051,7 +2051,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.90.28 + specifier: ^5.94.4 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 0ddf442d300064fcd1ad4835c98522c8ca630120 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sat, 21 Mar 2026 23:45:59 +0900 Subject: [PATCH 006/414] chore: update version in query-test-utils package.json to 0.0.0 (#10310) --- packages/query-test-utils/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/query-test-utils/package.json b/packages/query-test-utils/package.json index c3a4a033bf0..ec455acf744 100644 --- a/packages/query-test-utils/package.json +++ b/packages/query-test-utils/package.json @@ -1,5 +1,6 @@ { "name": "@tanstack/query-test-utils", + "version": "0.0.0", "description": "Internal test utilities for TanStack Query", "author": "Jonghyeon Ko ", "private": true, From 4b6536dfce99036f4e37f52943c6fed3ad0e0a18 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sun, 22 Mar 2026 00:50:12 +0900 Subject: [PATCH 007/414] chore: add build step in release workflow (#10312) * chore: add build step in release workflow * chore: standardize quotes in release workflow configuration * chore: add changeset for patch versions across multiple TanStack packages and fix build directory exclusion issue --- .changeset/pretty-canyons-fetch.md | 28 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 .changeset/pretty-canyons-fetch.md diff --git a/.changeset/pretty-canyons-fetch.md b/.changeset/pretty-canyons-fetch.md new file mode 100644 index 00000000000..6c485a79c9c --- /dev/null +++ b/.changeset/pretty-canyons-fetch.md @@ -0,0 +1,28 @@ +--- +'@tanstack/angular-query-experimental': patch +'@tanstack/angular-query-persist-client': patch +'@tanstack/eslint-plugin-query': patch +'@tanstack/preact-query': patch +'@tanstack/preact-query-devtools': patch +'@tanstack/preact-query-persist-client': patch +'@tanstack/query-async-storage-persister': patch +'@tanstack/query-broadcast-client-experimental': patch +'@tanstack/query-core': patch +'@tanstack/query-devtools': patch +'@tanstack/query-persist-client-core': patch +'@tanstack/query-sync-storage-persister': patch +'@tanstack/react-query': patch +'@tanstack/react-query-devtools': patch +'@tanstack/react-query-next-experimental': patch +'@tanstack/react-query-persist-client': patch +'@tanstack/solid-query': patch +'@tanstack/solid-query-devtools': patch +'@tanstack/solid-query-persist-client': patch +'@tanstack/svelte-query': patch +'@tanstack/svelte-query-devtools': patch +'@tanstack/svelte-query-persist-client': patch +'@tanstack/vue-query': patch +'@tanstack/vue-query-devtools': patch +--- + +fix(\*): resolve issue about excluded build directory diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1969605f566..b76715680eb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,6 +27,8 @@ jobs: fetch-depth: 0 - name: Setup Tools uses: TanStack/config/.github/setup@main + - name: Run Build + run: pnpm run build:all - name: Determine dist-tag id: dist-tag run: | From 8fe71e4fe7bc34e8b7b551d20ac1f70906572529 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 22 Mar 2026 00:57:17 +0900 Subject: [PATCH 008/414] ci: Version Packages (#10313) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/pretty-canyons-fetch.md | 28 -- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 9 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 10 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 6 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 10 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 10 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 9 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 6 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 9 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 10 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 10 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 10 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 9 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 10 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 10 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 9 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 10 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 10 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 9 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 10 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 9 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 240 +++++++++--------- 107 files changed, 483 insertions(+), 292 deletions(-) delete mode 100644 .changeset/pretty-canyons-fetch.md diff --git a/.changeset/pretty-canyons-fetch.md b/.changeset/pretty-canyons-fetch.md deleted file mode 100644 index 6c485a79c9c..00000000000 --- a/.changeset/pretty-canyons-fetch.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -'@tanstack/angular-query-experimental': patch -'@tanstack/angular-query-persist-client': patch -'@tanstack/eslint-plugin-query': patch -'@tanstack/preact-query': patch -'@tanstack/preact-query-devtools': patch -'@tanstack/preact-query-persist-client': patch -'@tanstack/query-async-storage-persister': patch -'@tanstack/query-broadcast-client-experimental': patch -'@tanstack/query-core': patch -'@tanstack/query-devtools': patch -'@tanstack/query-persist-client-core': patch -'@tanstack/query-sync-storage-persister': patch -'@tanstack/react-query': patch -'@tanstack/react-query-devtools': patch -'@tanstack/react-query-next-experimental': patch -'@tanstack/react-query-persist-client': patch -'@tanstack/solid-query': patch -'@tanstack/solid-query-devtools': patch -'@tanstack/solid-query-persist-client': patch -'@tanstack/svelte-query': patch -'@tanstack/svelte-query-devtools': patch -'@tanstack/svelte-query-persist-client': patch -'@tanstack/vue-query': patch -'@tanstack/vue-query-devtools': patch ---- - -fix(\*): resolve issue about excluded build directory diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index ae937c6f56d..e8f3d19fb83 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 84b1ff8e439..bd52417baf3 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", - "@tanstack/angular-query-persist-client": "^5.94.4", - "@tanstack/query-async-storage-persister": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-persist-client": "^5.94.5", + "@tanstack/query-async-storage-persister": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 8f7c3fd3aa7..bf3c77b4921 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 442fd122957..feddfdc2c7b 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 9ac69b8bace..eba3e6ce2c2 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index f6038613c92..5cd519f9b2d 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 553eebd38e5..81140f52ecb 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 0461a336a61..8ca9dc713c0 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 7eac77f2c9d..3091344151d 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 91256b1f882..bd1c7f21f5e 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 8259d0b5e1d..a2ad5eb2cf8 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 3f3659f105f..14adfd7b681 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.4", + "@tanstack/eslint-plugin-query": "^5.94.5", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 4b1ae46fdc2..9da7cd4c949 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index ae0bd69e3f0..4694497dc07 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1d1df4c0dc9..441a5808c83 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.4", - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", - "@tanstack/react-query-persist-client": "^5.94.4", + "@tanstack/query-async-storage-persister": "^5.94.5", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query-persist-client": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.4", + "@tanstack/eslint-plugin-query": "^5.94.5", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 7253ccfa90b..984d1fca18f 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 250cdd01685..37e36872d05 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index f0e1b7fdc0f..852add376b7 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6c820bd1e6c..4e775ba5127 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.4", - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", - "@tanstack/react-query-persist-client": "^5.94.4", + "@tanstack/query-async-storage-persister": "^5.94.5", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query-persist-client": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.4", + "@tanstack/eslint-plugin-query": "^5.94.5", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index ad9643ed8a2..203b5946354 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 8f3e9ef5b92..8b8bc948bf5 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 07b79d32241..ff38517fb82 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 5444181f778..bd82a3c444d 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", - "@tanstack/react-query-next-experimental": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query-next-experimental": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 70366b5056e..f5fc2c8c369 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 9f33204ba1c..2eac62806dc 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.4", + "@tanstack/query-async-storage-persister": "^5.94.5", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", - "@tanstack/react-query-persist-client": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query-persist-client": "^5.94.5", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 818648f1dc4..700ef1353f3 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index a928ff9997f..c9455e0b385 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index caae69aa04f..977f2a5e6a0 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 923b1637495..58ed6c539d3 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 348b33028ab..38307f7156c 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index a9a1c5ea796..07871a0e675 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index f80f0c85da3..77f10854924 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 46692144cda..8592455d8dd 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 8cf77559618..f4520e4d3b3 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 40c9b61817e..c59b634a2ad 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index d3efce14252..100900fa1de 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 26654dfc768..5ea3bddac82 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.4", - "@tanstack/react-query-devtools": "^5.94.4", + "@tanstack/react-query": "^5.94.5", + "@tanstack/react-query-devtools": "^5.94.5", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index c4b9cfa2a8c..e3bef78f3c9 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.94.4", - "@tanstack/solid-query-devtools": "^5.94.4", + "@tanstack/solid-query": "^5.94.5", + "@tanstack/solid-query-devtools": "^5.94.5", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 5d107737ea2..5f9ba69a94c 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.4", - "@tanstack/solid-query-devtools": "^5.94.4", + "@tanstack/solid-query": "^5.94.5", + "@tanstack/solid-query-devtools": "^5.94.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 42ebc60b8dc..4502f4500df 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.4", - "@tanstack/solid-query-devtools": "^5.94.4", + "@tanstack/solid-query": "^5.94.5", + "@tanstack/solid-query-devtools": "^5.94.5", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 31b705e8bbc..6117ad6bf0e 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.4", - "@tanstack/solid-query-devtools": "^5.94.4", + "@tanstack/solid-query": "^5.94.5", + "@tanstack/solid-query-devtools": "^5.94.5", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index ae306e1a27c..d4029eb6e61 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.4", - "@tanstack/solid-query": "^5.94.4", - "@tanstack/solid-query-devtools": "^5.94.4", - "@tanstack/solid-query-persist-client": "^5.94.4", + "@tanstack/query-async-storage-persister": "^5.94.5", + "@tanstack/solid-query": "^5.94.5", + "@tanstack/solid-query-devtools": "^5.94.5", + "@tanstack/solid-query-persist-client": "^5.94.5", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index e9cf8fd9cfb..77980bfecd8 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.4", - "@tanstack/solid-query-devtools": "^5.94.4", + "@tanstack/solid-query": "^5.94.5", + "@tanstack/solid-query-devtools": "^5.94.5", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.4", + "@tanstack/eslint-plugin-query": "^5.94.5", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 851f74eafef..c9eec441d49 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.94.4", - "@tanstack/solid-query-devtools": "^5.94.4", + "@tanstack/solid-query": "^5.94.5", + "@tanstack/solid-query-devtools": "^5.94.5", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 00224403602..c556cde43c7 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6" + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 05f79baa237..35da0e97243 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.4", - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6", - "@tanstack/svelte-query-persist-client": "^6.1.6" + "@tanstack/query-async-storage-persister": "^5.94.5", + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7", + "@tanstack/svelte-query-persist-client": "^6.1.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index bac8a92f4fd..8cd52255353 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6" + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 513b2760eaa..39a31c08223 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6" + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 30ed1654cc9..c31dae220b8 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6" + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 3c648811734..23b8d0f6c86 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6" + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 1a280e02c84..f83e261f419 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6" + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 69b09a3974a..3e90b58a2b5 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.6", - "@tanstack/svelte-query-devtools": "^6.1.6" + "@tanstack/svelte-query": "^6.1.7", + "@tanstack/svelte-query-devtools": "^6.1.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 6bc7922799c..2ac165214c2 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.94.4", - "@tanstack/vue-query-devtools": "^6.1.6", + "@tanstack/vue-query": "^5.94.5", + "@tanstack/vue-query-devtools": "^6.1.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 8f84e10616b..a0fe6bedf79 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.94.4", + "@tanstack/vue-query": "^5.94.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 024d50d65a4..d8d050b2215 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.94.4", - "@tanstack/query-persist-client-core": "^5.94.4", - "@tanstack/query-sync-storage-persister": "^5.94.4", - "@tanstack/vue-query": "^5.94.4", + "@tanstack/query-core": "^5.94.5", + "@tanstack/query-persist-client-core": "^5.94.5", + "@tanstack/query-sync-storage-persister": "^5.94.5", + "@tanstack/vue-query": "^5.94.5", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index df7963fea42..63e44e3118c 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.94.4", - "@tanstack/vue-query-devtools": "^6.1.6", + "@tanstack/vue-query": "^5.94.5", + "@tanstack/vue-query-devtools": "^6.1.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 63bf68fab92..457421fa371 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.4", + "@tanstack/angular-query-experimental": "^5.94.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 8fdf9f6290a..74739109481 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/angular-query-experimental +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 25bac1caa15..0801201e52a 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.94.4", + "version": "5.94.5", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index faa3906a439..52338c29e55 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/angular-query-persist-client +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/angular-query-experimental@5.94.5 + - @tanstack/query-persist-client-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 9dd534e1b04..33f2a5a83cd 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.94.4", + "version": "5.94.5", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 6f7f2e509fa..9b32d0daa28 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/eslint-plugin-query +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + ## 5.94.4 ### Patch Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index c0e926b5db0..39f44c84c17 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.94.4", + "version": "5.94.5", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index ab5b0d52110..18bcd29ae66 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/preact-query-devtools +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/preact-query@5.94.5 + - @tanstack/query-devtools@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index a546e55d6f5..392729e721d 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.94.4", + "version": "5.94.5", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index c828915c677..d866aadb5eb 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/preact-query-persist-client +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/preact-query@5.94.5 + - @tanstack/query-persist-client-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 01c0cdd5000..063711e1cd8 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.94.4", + "version": "5.94.5", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 4dcebc70056..93a01460f05 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/preact-query +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 1540c3c16ea..047f2658bb3 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.94.4", + "version": "5.94.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 7a9bea4e432..04e9934488f 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/query-async-storage-persister +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + - @tanstack/query-persist-client-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 13fdf371960..cd73e23a60a 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.94.4", + "version": "5.94.5", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 7a0e087a50c..51723352bf7 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/query-broadcast-client-experimental +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 972e9cd02ba..24355a52687 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.94.4", + "version": "5.94.5", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 3a51f4c09d9..792376adcb2 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + ## 5.94.4 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 0fc22c43d2f..2926c84cc0f 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.94.4", + "version": "5.94.5", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 0e01d48a419..e45e0df0514 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-devtools +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + ## 5.94.4 ### Patch Changes diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 9491e3abb4f..3c0ce4d3220 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.94.4", + "version": "5.94.5", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 9a9bb4f4291..7b18579d98b 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/query-persist-client-core +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index cf753fc29da..816ed38a9f6 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.94.4", + "version": "5.94.5", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index d88c2393d3b..0a6fca645ef 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/query-sync-storage-persister +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + - @tanstack/query-persist-client-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 574731d7c19..c373f123658 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.94.4", + "version": "5.94.5", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 5856741ec91..f6386616da6 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/react-query-devtools +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-devtools@5.94.5 + - @tanstack/react-query@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 6d060fbab46..0e0151efbe4 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.94.4", + "version": "5.94.5", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index c2a870f9323..9154c837d8b 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/react-query-next-experimental +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/react-query@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 51f0db4164b..4db0fdde9f7 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.94.4", + "version": "5.94.5", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index a57cc9e471a..277b419a6b4 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/react-query-persist-client +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-persist-client-core@5.94.5 + - @tanstack/react-query@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3e0afb0d033..dacf496f09c 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.94.4", + "version": "5.94.5", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index c7a101700fa..23cbd7e610d 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/react-query +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 8a512d872ca..b0cd0c37aaf 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.94.4", + "version": "5.94.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index ea9c082d127..9073eeb8e66 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-devtools +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-devtools@5.94.5 + - @tanstack/solid-query@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 1315c9c8958..eba9a778228 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.94.4", + "version": "5.94.5", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index b19f6059a2a..778979373e2 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-persist-client +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-persist-client-core@5.94.5 + - @tanstack/solid-query@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 2b57e7b7b82..d9175bb85a6 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.94.4", + "version": "5.94.5", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index d7bf805e70d..da5aed2bf5b 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/solid-query +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 77e60f06674..458b2bdbb18 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.94.4", + "version": "5.94.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 1d0ec09eaaa..27f7cb0c751 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/svelte-query-devtools +## 6.1.7 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-devtools@5.94.5 + - @tanstack/svelte-query@6.1.7 + ## 6.1.6 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 4b6716f72e5..940088a0a81 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.6", + "version": "6.1.7", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index e9173788b7f..cc0819265d2 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/svelte-query-persist-client +## 6.1.7 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-persist-client-core@5.94.5 + - @tanstack/svelte-query@6.1.7 + ## 6.1.6 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 19920830c12..d6a0d2910ba 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.6", + "version": "6.1.7", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 685d464a305..2a89e4d52ea 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/svelte-query +## 6.1.7 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 6.1.6 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index eccb60e9127..061ac504e9e 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.6", + "version": "6.1.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 92a34fccf78..51e31752929 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/vue-query-devtools +## 6.1.7 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-devtools@5.94.5 + - @tanstack/vue-query@5.94.5 + ## 6.1.6 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 78746a6c9de..b020613e5f6 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.6", + "version": "6.1.7", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 0f6d38bbc7b..cf909c7d0d4 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/vue-query +## 5.94.5 + +### Patch Changes + +- fix(\*): resolve issue about excluded build directory ([#10312](https://github.com/TanStack/query/pull/10312)) + +- Updated dependencies [[`4b6536d`](https://github.com/TanStack/query/commit/4b6536dfce99036f4e37f52943c6fed3ad0e0a18)]: + - @tanstack/query-core@5.94.5 + ## 5.94.4 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index be511e78a62..02e2c99cfea 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.94.4", + "version": "5.94.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77e391910b5..d5543d93307 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,10 +897,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -925,10 +925,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -956,10 +956,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -984,10 +984,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1012,13 +1012,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1043,19 +1043,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1083,10 +1083,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1111,10 +1111,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1139,10 +1139,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1167,10 +1167,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1192,10 +1192,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1229,10 +1229,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1281,10 +1281,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1333,10 +1333,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1370,10 +1370,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1401,10 +1401,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1426,10 +1426,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1463,10 +1463,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1509,10 +1509,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1530,10 +1530,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1580,10 +1580,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1602,16 +1602,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1633,17 +1633,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.11 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1667,10 +1667,10 @@ importers: specifier: ^1.1.3 version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) '@tanstack/solid-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1682,10 +1682,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1713,16 +1713,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1750,10 +1750,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1781,10 +1781,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1812,10 +1812,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1843,10 +1843,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1871,10 +1871,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1902,10 +1902,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1939,10 +1939,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1961,7 +1961,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -1980,16 +1980,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2011,10 +2011,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.6 + specifier: ^6.1.7 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2051,7 +2051,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.4 + specifier: ^5.94.5 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 3443736e2936fee45e979d3bbdbf6ea097b49c53 Mon Sep 17 00:00:00 2001 From: Eliya Cohen Date: Sun, 22 Mar 2026 19:33:16 +0200 Subject: [PATCH 009/414] feat(eslint-plugin): add allowlist option to exhaustive-deps rule (#10295) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(eslint-plugin): add allowlist option to exhaustive-deps rule Introduce an `allowlist` option with `variables` and `types` arrays so stable variables and types can be excluded from dependency enforcement. Also report member expression dependencies more granularly for call expressions (e.g. `a.b.foo()` suggests `a.b` instead of only `a`). BREAKING CHANGE: exhaustive-deps now reports member expression deps more granularly, so some previously passing code may now report missing deps. Use the allowlist option to exclude stable variables/types as needed. * fix * ci: apply automated fixes * increase coverage * address false positives --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/exhaustive-deps-allowlist.md | 5 + docs/eslint/exhaustive-deps.md | 61 +- .../react/eslint-plugin-demo/eslint.config.js | 21 + .../react/eslint-plugin-demo/package.json | 27 + .../eslint-plugin-demo/src/allowlist-demo.tsx | 55 + .../react/eslint-plugin-demo/tsconfig.json | 14 + .../src/__tests__/exhaustive-deps.test.ts | 960 ++++++++++++++++-- .../exhaustive-deps/exhaustive-deps.rule.ts | 226 +++-- .../exhaustive-deps/exhaustive-deps.utils.ts | 270 ++++- .../src/utils/ast-utils.ts | 27 +- pnpm-lock.yaml | 130 ++- 11 files changed, 1538 insertions(+), 258 deletions(-) create mode 100644 .changeset/exhaustive-deps-allowlist.md create mode 100644 examples/react/eslint-plugin-demo/eslint.config.js create mode 100644 examples/react/eslint-plugin-demo/package.json create mode 100644 examples/react/eslint-plugin-demo/src/allowlist-demo.tsx create mode 100644 examples/react/eslint-plugin-demo/tsconfig.json diff --git a/.changeset/exhaustive-deps-allowlist.md b/.changeset/exhaustive-deps-allowlist.md new file mode 100644 index 00000000000..c20293272ae --- /dev/null +++ b/.changeset/exhaustive-deps-allowlist.md @@ -0,0 +1,5 @@ +--- +'@tanstack/eslint-plugin-query': minor +--- + +BREAKING (eslint-plugin): The `exhaustive-deps` rule now reports member expression dependencies more granularly for call expressions (e.g. `a.b.foo()` suggests `a.b`), which may cause existing code that previously passed the rule to now report missing dependencies. To accommodate stable variables and types, the rule now accepts an `allowlist` option with `variables` and `types` arrays to exclude specific dependencies from enforcement. diff --git a/docs/eslint/exhaustive-deps.md b/docs/eslint/exhaustive-deps.md index a4b1bd12147..3fa56f1a54f 100644 --- a/docs/eslint/exhaustive-deps.md +++ b/docs/eslint/exhaustive-deps.md @@ -26,13 +26,64 @@ const todoQueries = { Examples of **correct** code for this rule: ```tsx -useQuery({ - queryKey: ['todo', todoId], - queryFn: () => api.getTodo(todoId), -}) +const Component = ({ todoId }) => { + const todos = useTodos() + useQuery({ + queryKey: ['todo', todos, todoId], + queryFn: () => todos.getTodo(todoId), + }) +} +``` +```tsx +const todos = createTodos() const todoQueries = { - detail: (id) => ({ queryKey: ['todo', id], queryFn: () => api.getTodo(id) }), + detail: (id) => ({ + queryKey: ['todo', id], + queryFn: () => todos.getTodo(id), + }), +} +``` + +```tsx +// with { allowlist: { variables: ["todos"] }} +const Component = ({ todoId }) => { + const todos = useTodos() + useQuery({ + queryKey: ['todo', todoId], + queryFn: () => todos.getTodo(todoId), + }) +} +``` + +```tsx +// with { allowlist: { types: ["TodosClient"] }} +class TodosClient { ... } +const Component = ({ todoId }) => { + const todos: TodosClient = new TodosClient() + useQuery({ + queryKey: ['todo', todoId], + queryFn: () => todos.getTodo(todoId), + }) +} +``` + +### Options + +- `allowlist.variables`: An array of variable names that should be ignored when checking dependencies +- `allowlist.types`: An array of TypeScript type names that should be ignored when checking dependencies + +```json +{ + "@tanstack/query/exhaustive-deps": [ + "error", + { + "allowlist": { + "variables": ["api", "config"], + "types": ["ApiClient", "Config"] + } + } + ] } ``` diff --git a/examples/react/eslint-plugin-demo/eslint.config.js b/examples/react/eslint-plugin-demo/eslint.config.js new file mode 100644 index 00000000000..1e9a5820b5d --- /dev/null +++ b/examples/react/eslint-plugin-demo/eslint.config.js @@ -0,0 +1,21 @@ +import pluginQuery from '@tanstack/eslint-plugin-query' +import tseslint from 'typescript-eslint' + +export default [ + ...tseslint.configs.recommended, + ...pluginQuery.configs['flat/recommended'], + { + files: ['src/**/*.ts', 'src/**/*.tsx'], + rules: { + '@tanstack/query/exhaustive-deps': [ + 'error', + { + allowlist: { + variables: ['api'], + types: ['AnalyticsClient'], + }, + }, + ], + }, + }, +] diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json new file mode 100644 index 00000000000..7909733e37e --- /dev/null +++ b/examples/react/eslint-plugin-demo/package.json @@ -0,0 +1,27 @@ +{ + "name": "@tanstack/query-example-eslint-plugin-demo", + "private": true, + "type": "module", + "scripts": { + "test:eslint": "eslint ./src" + }, + "dependencies": { + "@tanstack/react-query": "^5.91.0", + "react": "^19.0.0" + }, + "devDependencies": { + "@tanstack/eslint-plugin-query": "^5.91.5", + "eslint": "^9.39.0", + "typescript": "5.8.3", + "typescript-eslint": "^8.48.0" + }, + "nx": { + "targets": { + "test:eslint": { + "dependsOn": [ + "^build" + ] + } + } + } +} diff --git a/examples/react/eslint-plugin-demo/src/allowlist-demo.tsx b/examples/react/eslint-plugin-demo/src/allowlist-demo.tsx new file mode 100644 index 00000000000..8960d3c2223 --- /dev/null +++ b/examples/react/eslint-plugin-demo/src/allowlist-demo.tsx @@ -0,0 +1,55 @@ +import { queryOptions } from '@tanstack/react-query' + +export function todosOptions(userId: string) { + const api = useApiClient() + return queryOptions({ + // ✅ passes: 'api' is in allowlist.variables + queryKey: ['todos', userId], + queryFn: () => api.fetchTodos(userId), + }) +} + +export function todosByApiOptions(userId: string) { + const todoApi = useApiClient() + // ❌ fails: 'api' is in allowlist.variables, but this variable is named 'todoApi' + // eslint-disable-next-line @tanstack/query/exhaustive-deps -- The following dependencies are missing in your queryKey: todoApi + return queryOptions({ + queryKey: ['todos', userId], + queryFn: () => todoApi.fetchTodos(userId), + }) +} + +export function todosWithTrackingOptions( + tracker: AnalyticsClient, + userId: string, +) { + return queryOptions({ + // ✅ passes: AnalyticsClient is in allowlist.types + queryKey: ['todos', userId], + queryFn: async () => { + tracker.track('todos') + return fetch(`/api/todos?userId=${userId}`).then((r) => r.json()) + }, + }) +} + +export function todosWithClientOptions(client: ApiClient, userId: string) { + // ❌ fails: AnalyticsClient is in allowlist.types, but this param is typed as ApiClient + // eslint-disable-next-line @tanstack/query/exhaustive-deps -- The following dependencies are missing in your queryKey: client + return queryOptions({ + queryKey: ['todos', userId], + queryFn: () => client.fetchTodos(userId), + }) +} + +interface ApiClient { + fetchTodos: (userId: string) => Promise> +} + +interface AnalyticsClient { + track: (event: string) => Promise +} + +function useApiClient(): ApiClient { + throw new Error('not implemented') +} diff --git a/examples/react/eslint-plugin-demo/tsconfig.json b/examples/react/eslint-plugin-demo/tsconfig.json new file mode 100644 index 00000000000..afa57cffd5d --- /dev/null +++ b/examples/react/eslint-plugin-demo/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["ES2020", "DOM"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "Bundler", + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "strict": true + }, + "include": ["src", "eslint.config.js"] +} diff --git a/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts b/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts index d16ee89d54d..6ee61ca8d71 100644 --- a/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts @@ -34,6 +34,20 @@ ruleTester.run('exhaustive-deps', rule, { name: 'should not pass api.entity.get', code: 'useQuery({ queryKey: ["entity", id], queryFn: () => api.entity.get(id) });', }, + { + name: 'should pass api when its member is being invoked', + code: ` + import useApi from './useApi' + + const useFoo = () => { + const api = useApi(); + return useQuery({ + queryKey: ['foo', api], + queryFn: () => api.fetchFoo(), + }) + } + `, + }, { name: 'should pass props.src', code: ` @@ -89,6 +103,17 @@ ruleTester.run('exhaustive-deps', rule, { } `, }, + { + name: 'should ignore type parameters used only in queryFn return type', + code: normalizeIndent` + function useThing() { + return useQuery({ + queryKey: ['thing'], + queryFn: (): Promise => Promise.reject(new Error('nope')), + }) + } + `, + }, { name: 'should add "...args" to deps', code: ` @@ -428,7 +453,7 @@ ruleTester.run('exhaustive-deps', rule, { { name: 'should pass when queryKey uses a direct conditional expression', code: normalizeIndent` - function Component(cond, a, b) { + function Component({ cond, a, b }) { useQuery({ queryKey: ['thing', cond ? a : b], queryFn: () => (cond ? a : b), @@ -439,7 +464,7 @@ ruleTester.run('exhaustive-deps', rule, { { name: 'should pass when queryKey uses a direct binary expression', code: normalizeIndent` - function Component(a, b) { + function Component({ a, b }) { useQuery({ queryKey: ['thing', a + b], queryFn: () => a + b, @@ -476,7 +501,7 @@ ruleTester.run('exhaustive-deps', rule, { function Component({ value }) { useQuery({ - queryKey: ['foo'], + queryKey: ['foo', value], queryFn: () => { return value instanceof SomeClass; } @@ -682,37 +707,244 @@ ruleTester.run('exhaustive-deps', rule, { } `, }, + { + name: 'should pass when multiple sibling member method calls covered by root', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a], + queryFn: () => { + a.b.foo() + a.c.bar() + return 1 + } + }) + } + `, + }, + { + name: 'should pass when multiple sibling member method calls explicitly listed', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a.b, a.c], + queryFn: () => { + a.b.foo() + a.c.bar() + return 1 + } + }) + } + `, + }, + { + name: 'should pass when single member method call covered by root', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a], + queryFn: () => { + a.b.foo() + return 1 + } + }) + } + `, + }, + { + name: 'should pass when single member method call uses member path', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a.b], + queryFn: () => { + a.b.foo() + return 1 + } + }) + } + `, + }, + { + name: 'should pass when optional chaining method call is covered by root', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a], + queryFn: () => a?.foo() + }) + } + `, + }, + { + name: 'should pass when queryKey uses TSAsExpression with array', + code: normalizeIndent` + function useThing(dep) { + return useQuery({ + queryKey: ['thing', dep] as const, + queryFn: () => dep + }) + } + `, + }, + { + name: 'should pass when queryKey references identifier pointing to array', + code: normalizeIndent` + function useThing(dep) { + const key = ['thing', dep] + return useQuery({ + queryKey: key, + queryFn: () => dep + }) + } + `, + }, + { + name: 'should pass when queryKey has object with spread properties', + code: normalizeIndent` + function useThing(dep1, dep2) { + return useQuery({ + queryKey: ['thing', { ...dep1, prop: dep2 }], + queryFn: () => dep1.prop + dep2 + }) + } + `, + }, + { + name: 'should pass when queryKey has call expression with member callee', + code: normalizeIndent` + function useThing(api) { + return useQuery({ + queryKey: ['thing', api.createKey()], + queryFn: () => api.fetch() + }) + } + `, + }, + { + name: 'should pass when queryKey has call expression with identifier callee', + code: normalizeIndent` + function useThing(dep) { + const makeKeyPart = (value) => value + + return useQuery({ + queryKey: ['thing', makeKeyPart(dep)], + queryFn: () => makeKeyPart(dep) + }) + } + `, + }, + { + name: 'should pass when queryKey has call expression with nested member callee', + code: normalizeIndent` + function useThing(obj) { + return useQuery({ + queryKey: ['thing', obj.api.createKey()], + queryFn: () => obj.api.fetch() + }) + } + `, + }, + { + name: 'should pass when queryFn uses conditional with skipToken', + code: normalizeIndent` + function useThing(condition, dep) { + return useQuery({ + queryKey: ['thing', dep], + queryFn: condition ? () => dep : skipToken + }) + } + `, + }, + { + name: 'should pass when queryFn uses instanceof expression', + code: normalizeIndent` + function useThing(value) { + return useQuery({ + queryKey: ['thing', value], + queryFn: () => { + return value instanceof Date; + } + }) + } + `, + }, + { + name: 'should pass when queryFn uses conditional with skipToken in consequent', + code: normalizeIndent` + function useThing(condition, dep) { + return useQuery({ + queryKey: ['thing', dep], + queryFn: condition ? skipToken : () => dep + }) + } + `, + }, + { + name: 'should pass when queryFn is ternary with both branches having deps in queryKey', + code: normalizeIndent` + function useThing(condition, a, b) { + return useQuery({ + queryKey: ['thing', a, b], + queryFn: condition ? () => fetchA(a) : () => fetchB(b) + }) + } + `, + }, ], invalid: [ { - name: 'should fail when api from hook is used for calling a function', + name: 'should fail when optional chaining method call is missing root', code: normalizeIndent` - import useApi from './useApi' - - const useFoo = () => { - const api = useApi(); + function useThing(a) { return useQuery({ - queryKey: ['foo'], - queryFn: () => api.fetchFoo(), + queryKey: ['thing'], + queryFn: () => a?.foo() }) } `, errors: [ { messageId: 'missingDeps', - data: { deps: 'api' }, + data: { deps: 'a' }, suggestions: [ { messageId: 'fixTo', - data: { result: "['foo', api]" }, output: normalizeIndent` - import useApi from './useApi' - - const useFoo = () => { - const api = useApi(); + function useThing(a) { + return useQuery({ + queryKey: ['thing', a], + queryFn: () => a?.foo() + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when non-null assertion method call is missing root', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing'], + queryFn: () => a!.foo() + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'a' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(a) { return useQuery({ - queryKey: ['foo', api], - queryFn: () => api.fetchFoo(), + queryKey: ['thing', a], + queryFn: () => a!.foo() }) } `, @@ -721,6 +953,49 @@ ruleTester.run('exhaustive-deps', rule, { }, ], }, + { + name: 'should fail when alias of props used in queryFn is missing in queryKey', + code: normalizeIndent` + function Component(props) { + const entities = props.entities; + + const q = useQuery({ + queryKey: ['get-stuff'], + queryFn: () => { + return api.fetchStuff({ + ids: entities.map((o) => o.id) + }); + } + }); + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'entities' }, + suggestions: [ + { + messageId: 'fixTo', + data: { result: "['get-stuff', entities]" }, + output: normalizeIndent` + function Component(props) { + const entities = props.entities; + + const q = useQuery({ + queryKey: ['get-stuff', entities], + queryFn: () => { + return api.fetchStuff({ + ids: entities.map((o) => o.id) + }); + } + }); + } + `, + }, + ], + }, + ], + }, { name: 'should fail when deps are missing in query factory', code: normalizeIndent` @@ -1020,49 +1295,6 @@ ruleTester.run('exhaustive-deps', rule, { }, ], }, - { - name: 'should fail when alias of props used in queryFn is missing in queryKey', - code: normalizeIndent` - function Component(props) { - const entities = props.entities; - - const q = useQuery({ - queryKey: ['get-stuff'], - queryFn: () => { - return api.fetchStuff({ - ids: entities.map((o) => o.id) - }); - } - }); - } - `, - errors: [ - { - messageId: 'missingDeps', - data: { deps: 'entities' }, - suggestions: [ - { - messageId: 'fixTo', - data: { result: "['get-stuff', entities]" }, - output: normalizeIndent` - function Component(props) { - const entities = props.entities; - - const q = useQuery({ - queryKey: ['get-stuff', entities], - queryFn: () => { - return api.fetchStuff({ - ids: entities.map((o) => o.id) - }); - } - }); - } - `, - }, - ], - }, - ], - }, { name: 'should fail when queryKey is a queryKeyFactory while having missing dep', code: normalizeIndent` @@ -1399,5 +1631,611 @@ ruleTester.run('exhaustive-deps', rule, { }, ], }, + { + name: 'should fail when sibling member method calls missing one path', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a.b], + queryFn: () => { + a.b.foo() + a.c.bar() + return 1 + } + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'a.c' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a.b, a.c], + queryFn: () => { + a.b.foo() + a.c.bar() + return 1 + } + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when single member method call missing path and root', + code: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing'], + queryFn: () => { + a.b.foo() + return 1 + } + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'a.b' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(a) { + return useQuery({ + queryKey: ['thing', a.b], + queryFn: () => { + a.b.foo() + return 1 + } + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when queryKey has TSAsExpression with missing dep', + code: normalizeIndent` + function useThing(dep) { + return useQuery({ + queryKey: ['thing'] as const, + queryFn: () => dep + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'dep' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(dep) { + return useQuery({ + queryKey: ['thing', dep] as const, + queryFn: () => dep + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when queryKey references identifier with missing dep', + code: normalizeIndent` + function useThing(dep) { + const key = ['thing'] + return useQuery({ + queryKey: key, + queryFn: () => dep + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'dep' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(dep) { + const key = ['thing', dep] + return useQuery({ + queryKey: key, + queryFn: () => dep + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when type allowlist is empty', + options: [{ allowlist: { types: [] } }], + code: normalizeIndent` + interface Api { fetch: () => void } + function useThing(api: Api) { + return useQuery({ + queryKey: ['thing'], + queryFn: () => api.fetch() + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'api' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + interface Api { fetch: () => void } + function useThing(api: Api) { + return useQuery({ + queryKey: ['thing', api], + queryFn: () => api.fetch() + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fix correctly when queryKey has trailing comma', + code: normalizeIndent` + function useThing(dep) { + return useQuery({ + queryKey: ['thing',], + queryFn: () => dep + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'dep' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(dep) { + return useQuery({ + queryKey: ['thing', dep], + queryFn: () => dep + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fix correctly when queryKey is empty with whitespace', + code: normalizeIndent` + function useThing(dep) { + return useQuery({ + queryKey: [ ], + queryFn: () => dep + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'dep' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(dep) { + return useQuery({ + queryKey: [dep], + queryFn: () => dep + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when dep in alternate branch of ternary queryFn is missing', + code: normalizeIndent` + function useThing(condition, a, b) { + return useQuery({ + queryKey: ['thing', a], + queryFn: condition ? () => fetchA(a) : () => fetchB(b) + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'b' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(condition, a, b) { + return useQuery({ + queryKey: ['thing', a, b], + queryFn: condition ? () => fetchA(a) : () => fetchB(b) + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when dep in consequent branch of ternary queryFn is missing', + code: normalizeIndent` + function useThing(condition, a, b) { + return useQuery({ + queryKey: ['thing', b], + queryFn: condition ? () => fetchA(a) : () => fetchB(b) + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'a' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(condition, a, b) { + return useQuery({ + queryKey: ['thing', b, a], + queryFn: condition ? () => fetchA(a) : () => fetchB(b) + }) + } + `, + }, + ], + }, + ], + }, + ], +}) + +ruleTester.run('exhaustive-deps allowlist.types', rule, { + valid: [ + { + name: 'should ignore missing member path when root type is in allowlist.types', + options: [{ allowlist: { types: ['Svc'] } }], + code: normalizeIndent` + interface Svc { part: { load: (id: string) => void } } + function useThing(svc: Svc, id: string) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + svc.part.load(id) + return id + } + }) + } + `, + }, + { + name: 'should ignore when TypeScript union type contains allowlisted type', + options: [{ allowlist: { types: ['AllowedType'] } }], + code: normalizeIndent` + function useThing(value: AllowedType | OtherType, id: string) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + console.log(value) + return id + } + }) + } + `, + }, + { + name: 'should ignore when TypeScript intersection type contains allowlisted type', + options: [{ allowlist: { types: ['AllowedType'] } }], + code: normalizeIndent` + function useThing(value: AllowedType & OtherType, id: string) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + console.log(value) + return id + } + }) + } + `, + }, + { + name: 'should ignore when TypeScript array type contains allowlisted type', + options: [{ allowlist: { types: ['AllowedType'] } }], + code: normalizeIndent` + function useThing(value: AllowedType[], id: string) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + console.log(value) + return id + } + }) + } + `, + }, + { + name: 'should ignore when TypeScript tuple type contains allowlisted type', + options: [{ allowlist: { types: ['AllowedType'] } }], + code: normalizeIndent` + function useThing(value: [AllowedType, string], id: string) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + console.log(value) + return id + } + }) + } + `, + }, + ], + invalid: [ + { + name: 'should report missing member path when root type not in allowlist.types', + options: [{ allowlist: { types: ['Other'] } }], + code: normalizeIndent` + interface Svc { part: { load: (id: string) => void } } + function useThing(svc: Svc, id: string) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + svc.part.load(id) + return id + } + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'svc.part' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + interface Svc { part: { load: (id: string) => void } } + function useThing(svc: Svc, id: string) { + return useQuery({ + queryKey: ['thing', id, svc.part], + queryFn: () => { + svc.part.load(id) + return id + } + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should report missing member path when variable has type annotation but type not allowlisted', + options: [{ allowlist: { types: ['AllowedService'] } }], + code: normalizeIndent` + interface MyService { method: () => void } + function useData(service: MyService) { + return useQuery({ + queryKey: ['data'], + queryFn: () => { + service.method() + return 'data' + } + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'service' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + interface MyService { method: () => void } + function useData(service: MyService) { + return useQuery({ + queryKey: ['data', service], + queryFn: () => { + service.method() + return 'data' + } + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should not inherit allowlisted type from outer shadowed binding', + options: [{ allowlist: { types: ['AllowedService'] } }], + code: normalizeIndent` + interface AllowedService { load: () => void } + interface OtherService { load: () => void } + + function useThing() { + const svc: AllowedService = { load: () => undefined } + + if (true) { + const svc: OtherService = { load: () => undefined } + + return useQuery({ + queryKey: ['thing'], + queryFn: () => { + svc.load() + return 'data' + } + }) + } + + return null + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'svc' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + interface AllowedService { load: () => void } + interface OtherService { load: () => void } + + function useThing() { + const svc: AllowedService = { load: () => undefined } + + if (true) { + const svc: OtherService = { load: () => undefined } + + return useQuery({ + queryKey: ['thing', svc], + queryFn: () => { + svc.load() + return 'data' + } + }) + } + + return null + } + `, + }, + ], + }, + ], + }, + ], +}) + +ruleTester.run('exhaustive-deps allowlist.variables', rule, { + valid: [ + { + name: 'should ignore missing member path when root is in allowlist.variables', + options: [{ allowlist: { variables: ['svc'] } }], + code: normalizeIndent` + function useThing(svc, id) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + svc.part.load(id) + return id + } + }) + } + `, + }, + ], + invalid: [ + { + name: 'should only report non-allowlisted roots', + options: [{ allowlist: { variables: ['svc'] } }], + code: normalizeIndent` + function useThing(svc, other) { + return useQuery({ + queryKey: ['thing'], + queryFn: () => { + svc.part.load() + other.x.run() + return 1 + } + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'other.x' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(svc, other) { + return useQuery({ + queryKey: ['thing', other.x], + queryFn: () => { + svc.part.load() + other.x.run() + return 1 + } + }) + } + `, + }, + ], + }, + ], + }, + { + name: 'should fail when missing member path not in allowlist.variables', + code: normalizeIndent` + function useThing(svc, id) { + return useQuery({ + queryKey: ['thing', id], + queryFn: () => { + svc.part.load(id) + return id + } + }) + } + `, + errors: [ + { + messageId: 'missingDeps', + data: { deps: 'svc.part' }, + suggestions: [ + { + messageId: 'fixTo', + output: normalizeIndent` + function useThing(svc, id) { + return useQuery({ + queryKey: ['thing', id, svc.part], + queryFn: () => { + svc.part.load(id) + return id + } + }) + } + `, + }, + ], + }, + ], + }, ], }) diff --git a/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.rule.ts b/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.rule.ts index 2f20877c67e..a3e7e849254 100644 --- a/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.rule.ts +++ b/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.rule.ts @@ -1,7 +1,6 @@ import { AST_NODE_TYPES, ESLintUtils } from '@typescript-eslint/utils' import { ASTUtils } from '../../utils/ast-utils' import { getDocsUrl } from '../../utils/get-docs-url' -import { uniqueBy } from '../../utils/unique-by' import { detectTanstackQueryImports } from '../../utils/detect-react-query-imports' import { ExhaustiveDepsUtils } from './exhaustive-deps.utils' import type { TSESLint, TSESTree } from '@typescript-eslint/utils' @@ -14,6 +13,13 @@ export const name = 'exhaustive-deps' const createRule = ESLintUtils.RuleCreator(getDocsUrl) +type RuleOption = { + allowlist?: { + variables?: Array + types?: Array + } +} + export const rule = createRule({ name, meta: { @@ -28,27 +34,36 @@ export const rule = createRule({ }, hasSuggestions: true, fixable: 'code', - schema: [], + schema: [ + { + type: 'object', + properties: { + allowlist: { + type: 'object', + properties: { + variables: { type: 'array', items: { type: 'string' } }, + types: { type: 'array', items: { type: 'string' } }, + }, + additionalProperties: false, + }, + }, + additionalProperties: false, + }, + ], }, defaultOptions: [], create: detectTanstackQueryImports((context) => { return { - Property: (node) => { - if ( - !ASTUtils.isObjectExpression(node.parent) || - !ASTUtils.isIdentifierWithName(node.key, QUERY_KEY) - ) { - return - } - + ObjectExpression: (node: TSESTree.ObjectExpression) => { const scopeManager = context.sourceCode.scopeManager + const queryKey = ASTUtils.findPropertyWithIdentifierKey( - node.parent.properties, + node.properties, QUERY_KEY, ) const queryFn = ASTUtils.findPropertyWithIdentifierKey( - node.parent.properties, + node.properties, QUERY_FN, ) @@ -70,103 +85,134 @@ export const rule = createRule({ context, ) - const externalRefs = ASTUtils.getExternalRefs({ - scopeManager, - sourceCode: context.sourceCode, - node: getQueryFnRelevantNode(queryFn), - }) + const queryFnNodes = ExhaustiveDepsUtils.getQueryFnNodes(queryFn) - const relevantRefs = externalRefs.filter((reference) => - ExhaustiveDepsUtils.isRelevantReference({ - sourceCode: context.sourceCode, - reference, + const externalRefs = queryFnNodes.flatMap((fnNode) => + ASTUtils.getExternalRefs({ scopeManager, - node: getQueryFnRelevantNode(queryFn), - filename: context.filename, + sourceCode: context.sourceCode, + node: fnNode, }), ) + const relevantRefs = externalRefs.filter((reference) => + queryFnNodes.some((fnNode) => + ExhaustiveDepsUtils.isRelevantReference({ + sourceCode: context.sourceCode, + reference, + scopeManager, + node: fnNode, + filename: context.filename, + }), + ), + ) + + const ruleOptions = context.options.at(0) as RuleOption | undefined + const allowlistedVariables = new Set( + ruleOptions?.allowlist?.variables ?? [], + ) + const allowlistedTypes = new Set(ruleOptions?.allowlist?.types ?? []) + + const requiredRefs = relevantRefs.flatMap((ref) => { + if (ref.identifier.type !== AST_NODE_TYPES.Identifier) return [] + + const refPath = ExhaustiveDepsUtils.computeRefPath({ + identifier: ref.identifier, + sourceCode: context.sourceCode, + }) + + if (refPath === null) return [] + + return [ + { + ...refPath, + allowlistedByType: + ExhaustiveDepsUtils.variableIsAllowlistedByType({ + allowlistedTypes, + variable: ref.resolved ?? null, + }), + }, + ] + }) + + if (requiredRefs.length === 0) return + const queryKeyDeps = ExhaustiveDepsUtils.collectQueryKeyDeps({ sourceCode: context.sourceCode, - scopeManager, + scopeManager: scopeManager, + queryKeyNode: queryKeyNode, + }) + + const missingPaths = ExhaustiveDepsUtils.computeFilteredMissingPaths({ + requiredRefs: requiredRefs, + allowlistedVariables: allowlistedVariables, + existingRootIdentifiers: queryKeyDeps.roots, + existingFullPaths: queryKeyDeps.paths, + }) + + if (missingPaths.length === 0) return + + const missingAsText = missingPaths.join(', ') + const suggestions = buildSuggestions({ queryKeyNode, + missingPaths, + missingAsText, + sourceCode: context.sourceCode, }) - const missingRefs = relevantRefs - .map((ref) => ({ - ref: ref, - text: ASTUtils.isAncestorIsCallee(ref.identifier) - ? ref.identifier.name - : ASTUtils.mapKeyNodeToBaseText( - ref.identifier, - context.sourceCode, - ), - })) - .filter(({ ref, text }) => { - return ( - !ref.isTypeReference && - !queryKeyDeps.has(text) && - !queryKeyDeps.has(text.split(/[?.]/)[0] ?? '') - ) - }) - .map(({ ref, text }) => ({ - identifier: ref.identifier, - text: text, - })) - - const uniqueMissingRefs = uniqueBy(missingRefs, (x) => x.text) - - if (uniqueMissingRefs.length > 0) { - const missingAsText = uniqueMissingRefs - .map((ref) => ref.text) - .join(', ') - - const queryKeyValue = context.sourceCode.getText(queryKeyNode) - - const existingWithMissing = - queryKeyValue === '[]' - ? `[${missingAsText}]` - : queryKeyValue.replace(/\]$/, `, ${missingAsText}]`) - - const suggestions: TSESLint.ReportSuggestionArray = [] - - if (queryKeyNode.type === AST_NODE_TYPES.ArrayExpression) { - suggestions.push({ - messageId: 'fixTo', - data: { result: existingWithMissing }, - fix(fixer) { - return fixer.replaceText(queryKeyNode, existingWithMissing) - }, - }) - } - - context.report({ - node: node, - messageId: 'missingDeps', - data: { - deps: uniqueMissingRefs.map((ref) => ref.text).join(', '), - }, - suggest: suggestions, - }) - } + context.report({ + node, + messageId: 'missingDeps', + data: { deps: missingAsText }, + suggest: suggestions, + }) }, } }), }) -function getQueryFnRelevantNode(queryFn: TSESTree.Property) { - if (queryFn.value.type !== AST_NODE_TYPES.ConditionalExpression) { - return queryFn.value +function buildSuggestions(params: { + queryKeyNode: TSESTree.Node + missingPaths: Array + missingAsText: string + sourceCode: Readonly +}): TSESLint.ReportSuggestionArray { + const { queryKeyNode, missingPaths, missingAsText, sourceCode } = params + + if (queryKeyNode.type !== AST_NODE_TYPES.ArrayExpression) { + return [] } - if ( - queryFn.value.consequent.type === AST_NODE_TYPES.Identifier && - queryFn.value.consequent.name === 'skipToken' - ) { - return queryFn.value.alternate + const closingBracket = sourceCode.getLastToken(queryKeyNode) + if (!closingBracket) return [] + + const existingElements = queryKeyNode.elements + .filter((el): el is NonNullable => el !== null) + .map((el) => sourceCode.getText(el)) + + const resultText = `[${[...existingElements, ...missingPaths].join(', ')}]` + + if (queryKeyNode.elements.length === 0) { + return [ + { + messageId: 'fixTo', + data: { result: resultText }, + fix: (fixer) => fixer.replaceText(queryKeyNode, resultText), + }, + ] } - return queryFn.value.consequent + const tokenBefore = sourceCode.getTokenBefore(closingBracket) + const separator = tokenBefore?.value === ',' ? ' ' : ', ' + + return [ + { + messageId: 'fixTo', + data: { result: resultText }, + fix: (fixer) => + fixer.insertTextBefore(closingBracket, `${separator}${missingAsText}`), + }, + ] } function dereferenceVariablesAndTypeAssertions( diff --git a/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts b/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts index 32167e92199..8e67fd6a8da 100644 --- a/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts +++ b/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts @@ -14,7 +14,7 @@ export const ExhaustiveDepsUtils = { const component = ASTUtils.getFunctionAncestor(sourceCode, node) const queryFnScope = scopeManager.acquire(node) - if (queryFnScope === null) { + if (queryFnScope === null || reference.isValueReference === false) { return false } @@ -59,24 +59,88 @@ export const ExhaustiveDepsUtils = { !ExhaustiveDepsUtils.isInstanceOfKind(reference.identifier.parent) ) }, - isInstanceOfKind(node: TSESTree.Node) { - return ( - node.type === AST_NODE_TYPES.BinaryExpression && - node.operator === 'instanceof' - ) + + /** + * Given required refs and existing queryKey entries, compute missing dependency paths + * respecting allowlisted variables and types. + */ + computeFilteredMissingPaths(params: { + requiredRefs: Array<{ + path: string + root: string + allowlistedByType: boolean + }> + allowlistedVariables: Set + existingRootIdentifiers: Set + existingFullPaths: Set + }): Array { + const { + requiredRefs, + allowlistedVariables, + existingRootIdentifiers, + existingFullPaths, + } = params + + const missingPaths = new Set() + + for (const { root, path, allowlistedByType } of requiredRefs) { + // If root itself is present in the key, it covers all members + if (existingRootIdentifiers.has(root)) continue + if (allowlistedVariables.has(root)) continue + if (existingFullPaths.has(path)) continue + if (allowlistedByType) continue + + missingPaths.add(path) + } + + // Collapse descendants: if a root is already missing, drop deeper paths + for (const path of missingPaths) { + const root = path.split('.')[0] + if (root !== path && root !== undefined && missingPaths.has(root)) { + missingPaths.delete(path) + } + } + + return Array.from(missingPaths) }, + /** + * Extract existing queryKey deps as root identifiers and full member paths. + */ collectQueryKeyDeps(params: { sourceCode: Readonly scopeManager: TSESLint.Scope.ScopeManager queryKeyNode: TSESTree.Node - }): Set { + }): { roots: Set; paths: Set } { const { sourceCode, scopeManager, queryKeyNode } = params - const deps = new Set() + const roots = new Set() + const paths = new Set() const visitorKeys = sourceCode.visitorKeys - function add(identifier: TSESTree.Identifier) { - deps.add(ASTUtils.mapKeyNodeToBaseText(identifier, sourceCode)) + function addRoot(name: string) { + const cleaned = ExhaustiveDepsUtils.normalizeChain(name) + roots.add(cleaned) + paths.add(cleaned) + } + function addFull(text: string) { + const cleaned = ExhaustiveDepsUtils.normalizeChain(text) + paths.add(cleaned) + } + function addRefPath( + refPath: { + path: string + root: string + coversRootMembers: boolean + } | null, + ) { + if (!refPath) return + + if (refPath.coversRootMembers) { + addRoot(refPath.root) + return + } + + addFull(refPath.path) } function visitChildren(node: TSESTree.Node): void { @@ -106,9 +170,15 @@ export const ExhaustiveDepsUtils = { if (!node) return switch (node.type) { - case AST_NODE_TYPES.Identifier: - add(node) + case AST_NODE_TYPES.Identifier: { + addRefPath( + ExhaustiveDepsUtils.computeRefPath({ + identifier: node, + sourceCode: sourceCode, + }), + ) return + } case AST_NODE_TYPES.ArrowFunctionExpression: case AST_NODE_TYPES.FunctionExpression: for (const reference of ExhaustiveDepsUtils.collectExternalRefsInFunction( @@ -117,9 +187,16 @@ export const ExhaustiveDepsUtils = { scopeManager: scopeManager, }, )) { - if (reference.identifier.type === AST_NODE_TYPES.Identifier) { - add(reference.identifier) + if (reference.identifier.type !== AST_NODE_TYPES.Identifier) { + continue } + + addRefPath( + ExhaustiveDepsUtils.computeRefPath({ + identifier: reference.identifier, + sourceCode: sourceCode, + }), + ) } return case AST_NODE_TYPES.Property: @@ -131,19 +208,20 @@ export const ExhaustiveDepsUtils = { node.parent.callee === node && node.object.type === AST_NODE_TYPES.Identifier ) { - deps.add(node.object.name) + addRoot(node.object.name) } else { visit(node.object) } return case AST_NODE_TYPES.CallExpression: node.arguments.forEach((argument) => visit(argument)) - if ( - node.callee.type === AST_NODE_TYPES.MemberExpression || - node.callee.type === AST_NODE_TYPES.ChainExpression || - node.callee.type === AST_NODE_TYPES.TSNonNullExpression - ) { - visit(node.callee) + switch (node.callee.type) { + case AST_NODE_TYPES.Identifier: + case AST_NODE_TYPES.MemberExpression: + case AST_NODE_TYPES.ChainExpression: + case AST_NODE_TYPES.TSNonNullExpression: + visit(node.callee) + break } return } @@ -153,7 +231,7 @@ export const ExhaustiveDepsUtils = { visit(queryKeyNode) - return deps + return { roots, paths } }, isNode(value: unknown): value is TSESTree.Node { @@ -165,6 +243,97 @@ export const ExhaustiveDepsUtils = { ) }, + /** + * Checks whether the resolved variable is allowlisted by its type annotation + */ + variableIsAllowlistedByType(params: { + allowlistedTypes: Set + variable: TSESLint.Scope.Variable | null + }): boolean { + const { allowlistedTypes, variable } = params + if (allowlistedTypes.size === 0) return false + if (!variable) return false + + for (const id of variable.identifiers) { + if (id.typeAnnotation) { + const typeIdentifiers = new Set() + ExhaustiveDepsUtils.collectTypeIdentifiers( + id.typeAnnotation.typeAnnotation, + typeIdentifiers, + ) + for (const typeIdentifier of typeIdentifiers) { + if (allowlistedTypes.has(typeIdentifier)) return true + } + } + } + + return false + }, + isInstanceOfKind(node: TSESTree.Node) { + return ( + node.type === AST_NODE_TYPES.BinaryExpression && + node.operator === 'instanceof' + ) + }, + + /** + * Normalizes a chain by removing optional chaining operators + * + * Example: `a?.b.c!` -> `a.b.c` + */ + normalizeChain(text: string): string { + return text.replace(/(?:\?(\.)|!)/g, '$1') + }, + + /** + * Computes the reference path for an identifier + * + * Example: `a.b.c!` -> `{ path: 'a.b.c', root: 'a' }` + */ + computeRefPath(params: { + identifier: TSESTree.Identifier + sourceCode: Readonly + }): { path: string; root: string; coversRootMembers: boolean } | null { + const { identifier, sourceCode } = params + + const fullChainNode = ASTUtils.traverseUpOnly(identifier, [ + AST_NODE_TYPES.MemberExpression, + AST_NODE_TYPES.TSNonNullExpression, + AST_NODE_TYPES.Identifier, + ]) + + const fullText = ExhaustiveDepsUtils.normalizeChain( + sourceCode.getText(fullChainNode), + ) + + const parent = fullChainNode.parent + let dependencyPath = fullText + let coversRootMembers = fullText === identifier.name + + if ( + parent && + parent.type === AST_NODE_TYPES.CallExpression && + parent.callee === fullChainNode + ) { + const segments = fullText.split('.') + if (segments.length > 1) { + dependencyPath = segments.slice(0, -1).join('.') + } + + coversRootMembers = false + } + + dependencyPath = + dependencyPath.split('.')[0] === '' ? identifier.name : dependencyPath + const root = dependencyPath.split('.')[0] + + return { + path: dependencyPath, + root: root ?? identifier.name, + coversRootMembers: coversRootMembers && dependencyPath === root, + } + }, + collectExternalRefsInFunction(params: { functionNode: TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression scopeManager: TSESLint.Scope.ScopeManager @@ -210,4 +379,61 @@ export const ExhaustiveDepsUtils = { return externalRefs }, + + /** + * Recursively collects type identifiers from a type annotation + */ + collectTypeIdentifiers(typeNode: TSESTree.TypeNode, out: Set): void { + switch (typeNode.type) { + case AST_NODE_TYPES.TSTypeReference: { + if (typeNode.typeName.type === AST_NODE_TYPES.Identifier) { + out.add(typeNode.typeName.name) + } + break + } + case AST_NODE_TYPES.TSUnionType: + case AST_NODE_TYPES.TSIntersectionType: { + typeNode.types.forEach((t) => + ExhaustiveDepsUtils.collectTypeIdentifiers(t, out), + ) + break + } + case AST_NODE_TYPES.TSArrayType: { + ExhaustiveDepsUtils.collectTypeIdentifiers(typeNode.elementType, out) + break + } + case AST_NODE_TYPES.TSTupleType: { + typeNode.elementTypes.forEach((et) => + ExhaustiveDepsUtils.collectTypeIdentifiers(et, out), + ) + break + } + } + }, + + /** + * Gets the function expression nodes from a queryFn property, handling conditional expressions. + * When neither branch is skipToken, returns both branches so all deps are scanned. + */ + getQueryFnNodes(queryFn: TSESTree.Property): Array { + if (queryFn.value.type !== AST_NODE_TYPES.ConditionalExpression) { + return [queryFn.value] + } + + if ( + queryFn.value.consequent.type === AST_NODE_TYPES.Identifier && + queryFn.value.consequent.name === 'skipToken' + ) { + return [queryFn.value.alternate] + } + + if ( + queryFn.value.alternate.type === AST_NODE_TYPES.Identifier && + queryFn.value.alternate.name === 'skipToken' + ) { + return [queryFn.value.consequent] + } + + return [queryFn.value.consequent, queryFn.value.alternate] + }, } diff --git a/packages/eslint-plugin-query/src/utils/ast-utils.ts b/packages/eslint-plugin-query/src/utils/ast-utils.ts index 28c9b6f7421..a44ae864549 100644 --- a/packages/eslint-plugin-query/src/utils/ast-utils.ts +++ b/packages/eslint-plugin-query/src/utils/ast-utils.ts @@ -42,10 +42,9 @@ export const ASTUtils = { properties: Array, key: string, ): TSESTree.Property | undefined { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion - return properties.find((x) => + return properties.find((x): x is TSESTree.Property => ASTUtils.isPropertyWithIdentifierKey(x, key), - ) as TSESTree.Property | undefined + ) }, getNestedIdentifiers(node: TSESTree.Node): Array { const identifiers: Array = [] @@ -132,28 +131,6 @@ export const ASTUtils = { return identifiers }, - isAncestorIsCallee(identifier: TSESTree.Node) { - let previousNode = identifier - let currentNode = identifier.parent - - while (currentNode !== undefined) { - if ( - currentNode.type === AST_NODE_TYPES.CallExpression && - currentNode.callee === previousNode - ) { - return true - } - - if (currentNode.type !== AST_NODE_TYPES.MemberExpression) { - return false - } - - previousNode = currentNode - currentNode = currentNode.parent - } - - return false - }, traverseUpOnly( identifier: TSESTree.Node, allowedNodeTypes: Array, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d5543d93307..cac20c906b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -894,6 +894,28 @@ importers: specifier: ^6.4.1 version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + examples/react/eslint-plugin-demo: + dependencies: + '@tanstack/react-query': + specifier: ^5.91.0 + version: link:../../../packages/react-query + react: + specifier: ^19.0.0 + version: 19.2.4 + devDependencies: + '@tanstack/eslint-plugin-query': + specifier: ^5.91.5 + version: link:../../../packages/eslint-plugin-query + eslint: + specifier: ^9.39.0 + version: 9.39.4(jiti@2.6.1) + typescript: + specifier: 5.8.3 + version: 5.8.3 + typescript-eslint: + specifier: 8.56.1 + version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': @@ -2351,13 +2373,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-plugin-externalize-deps: specifier: ^0.9.0 version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -4764,7 +4786,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {'0': node >=0.10.0} + engines: {node: '>=0.10.0'} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -20885,6 +20907,22 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.56.1 + eslint: 9.39.4(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -20912,7 +20950,6 @@ snapshots: typescript: 5.8.3 transitivePeerDependencies: - supports-color - optional: true '@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: @@ -20934,7 +20971,6 @@ snapshots: typescript: 5.8.3 transitivePeerDependencies: - supports-color - optional: true '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': dependencies: @@ -20967,12 +21003,23 @@ snapshots: '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 - optional: true '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 + '@typescript-eslint/type-utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/type-utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.56.1 @@ -21001,7 +21048,6 @@ snapshots: typescript: 5.8.3 transitivePeerDependencies: - supports-color - optional: true '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': dependencies: @@ -21018,6 +21064,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) @@ -21429,19 +21486,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@vue/language-core@2.1.6(typescript@6.0.1-rc)': - dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.28 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.28 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 6.0.1-rc - '@vue/language-core@2.2.12(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.15 @@ -30636,7 +30680,6 @@ snapshots: ts-api-utils@2.4.0(typescript@5.8.3): dependencies: typescript: 5.8.3 - optional: true ts-api-utils@2.4.0(typescript@5.9.3): dependencies: @@ -30661,10 +30704,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsconfck@3.1.6(typescript@6.0.1-rc): - optionalDependencies: - typescript: 6.0.1-rc - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -30808,6 +30847,17 @@ snapshots: dependencies: semver: 7.7.4 + typescript-eslint@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + typescript-eslint@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -31279,25 +31329,6 @@ snapshots: - rollup - supports-color - vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) - '@volar/typescript': 2.4.28 - '@vue/language-core': 2.1.6(typescript@6.0.1-rc) - compare-versions: 6.1.1 - debug: 4.4.3 - kolorist: 1.8.0 - local-pkg: 0.5.1 - magic-string: 0.30.21 - typescript: 6.0.1-rc - optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): dependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) @@ -31357,17 +31388,6 @@ snapshots: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - debug: 4.4.3 - globrex: 0.1.2 - tsconfck: 3.1.6(typescript@6.0.1-rc) - optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - - typescript - vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): dependencies: esbuild: 0.27.3 From 4d7de830eb6e19ba9c20d4c44ed4f49c09ed7be3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:40:14 +0100 Subject: [PATCH 010/414] ci: Version Packages (#10317) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/exhaustive-deps-allowlist.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 6 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 297 ++++++++++-------- 108 files changed, 487 insertions(+), 276 deletions(-) delete mode 100644 .changeset/exhaustive-deps-allowlist.md diff --git a/.changeset/exhaustive-deps-allowlist.md b/.changeset/exhaustive-deps-allowlist.md deleted file mode 100644 index c20293272ae..00000000000 --- a/.changeset/exhaustive-deps-allowlist.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/eslint-plugin-query': minor ---- - -BREAKING (eslint-plugin): The `exhaustive-deps` rule now reports member expression dependencies more granularly for call expressions (e.g. `a.b.foo()` suggests `a.b`), which may cause existing code that previously passed the rule to now report missing dependencies. To accommodate stable variables and types, the rule now accepts an `allowlist` option with `variables` and `types` arrays to exclude specific dependencies from enforcement. diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e8f3d19fb83..aad9f64a23a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index bd52417baf3..e76def27a63 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", - "@tanstack/angular-query-persist-client": "^5.94.5", - "@tanstack/query-async-storage-persister": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-persist-client": "^5.95.0", + "@tanstack/query-async-storage-persister": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index bf3c77b4921..2f2899b377d 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index feddfdc2c7b..33d7f3d4d33 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index eba3e6ce2c2..8922c9df4c1 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 5cd519f9b2d..987362ceb3c 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 81140f52ecb..8b0ec0f2a62 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 8ca9dc713c0..bd150753ef6 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 3091344151d..8b5333491b5 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index bd1c7f21f5e..e3e49866cca 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index a2ad5eb2cf8..f1fb11745c4 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 14adfd7b681..fa5666fc287 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.5", + "@tanstack/eslint-plugin-query": "^5.95.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 9da7cd4c949..554d2a50850 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 4694497dc07..808369f84ab 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 441a5808c83..f6e1a4233c1 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.5", - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", - "@tanstack/react-query-persist-client": "^5.94.5", + "@tanstack/query-async-storage-persister": "^5.95.0", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query-persist-client": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.5", + "@tanstack/eslint-plugin-query": "^5.95.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 984d1fca18f..69ebb44a7f5 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 37e36872d05..139bf101188 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 852add376b7..3451e15e9ac 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 4e775ba5127..cca09c5fc56 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.5", - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", - "@tanstack/react-query-persist-client": "^5.94.5", + "@tanstack/query-async-storage-persister": "^5.95.0", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query-persist-client": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.5", + "@tanstack/eslint-plugin-query": "^5.95.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 7909733e37e..491a79d5b0a 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.91.0", + "@tanstack/react-query": "^5.95.0", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.91.5", + "@tanstack/eslint-plugin-query": "^5.95.0", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 203b5946354..f02354c31c6 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 8b8bc948bf5..920a68c51ea 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index ff38517fb82..e7f253b08ca 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index bd82a3c444d..9bafbdbee9a 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", - "@tanstack/react-query-next-experimental": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query-next-experimental": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index f5fc2c8c369..e6a7761fed9 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 2eac62806dc..bb7dcc17c1f 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.5", + "@tanstack/query-async-storage-persister": "^5.95.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", - "@tanstack/react-query-persist-client": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query-persist-client": "^5.95.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 700ef1353f3..db2a960026c 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index c9455e0b385..10ebb5e4587 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 977f2a5e6a0..abe2ed7bf60 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 58ed6c539d3..75a85baa4c4 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 38307f7156c..03cf1c23df3 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 07871a0e675..dc3b059c4e7 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 77f10854924..4618a327401 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 8592455d8dd..e96b8df54df 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index f4520e4d3b3..df4d78d62e9 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index c59b634a2ad..3d00a2500b6 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 100900fa1de..31988b14ebf 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 5ea3bddac82..2b226b700b6 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.94.5", - "@tanstack/react-query-devtools": "^5.94.5", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index e3bef78f3c9..a414c1e591c 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.94.5", - "@tanstack/solid-query-devtools": "^5.94.5", + "@tanstack/solid-query": "^5.95.0", + "@tanstack/solid-query-devtools": "^5.95.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 5f9ba69a94c..114660e50b6 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.5", - "@tanstack/solid-query-devtools": "^5.94.5", + "@tanstack/solid-query": "^5.95.0", + "@tanstack/solid-query-devtools": "^5.95.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 4502f4500df..aba884d51f4 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.5", - "@tanstack/solid-query-devtools": "^5.94.5", + "@tanstack/solid-query": "^5.95.0", + "@tanstack/solid-query-devtools": "^5.95.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 6117ad6bf0e..094c5013534 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.5", - "@tanstack/solid-query-devtools": "^5.94.5", + "@tanstack/solid-query": "^5.95.0", + "@tanstack/solid-query-devtools": "^5.95.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index d4029eb6e61..ec7c9314435 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.5", - "@tanstack/solid-query": "^5.94.5", - "@tanstack/solid-query-devtools": "^5.94.5", - "@tanstack/solid-query-persist-client": "^5.94.5", + "@tanstack/query-async-storage-persister": "^5.95.0", + "@tanstack/solid-query": "^5.95.0", + "@tanstack/solid-query-devtools": "^5.95.0", + "@tanstack/solid-query-persist-client": "^5.95.0", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 77980bfecd8..6e1eafd56be 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.94.5", - "@tanstack/solid-query-devtools": "^5.94.5", + "@tanstack/solid-query": "^5.95.0", + "@tanstack/solid-query-devtools": "^5.95.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.94.5", + "@tanstack/eslint-plugin-query": "^5.95.0", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index c9eec441d49..09a9dcfa20e 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.94.5", - "@tanstack/solid-query-devtools": "^5.94.5", + "@tanstack/solid-query": "^5.95.0", + "@tanstack/solid-query-devtools": "^5.95.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index c556cde43c7..c28e3cd2e8b 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7" + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 35da0e97243..0ae55b3f2a2 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.94.5", - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7", - "@tanstack/svelte-query-persist-client": "^6.1.7" + "@tanstack/query-async-storage-persister": "^5.95.0", + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8", + "@tanstack/svelte-query-persist-client": "^6.1.8" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 8cd52255353..8aa8049d57b 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7" + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 39a31c08223..e468fe9d1a8 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7" + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index c31dae220b8..d50340bebf9 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7" + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 23b8d0f6c86..e107497d4df 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7" + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index f83e261f419..e8d4713d669 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7" + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 3e90b58a2b5..92a997164fa 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.7", - "@tanstack/svelte-query-devtools": "^6.1.7" + "@tanstack/svelte-query": "^6.1.8", + "@tanstack/svelte-query-devtools": "^6.1.8" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 2ac165214c2..0b59450bb4c 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.94.5", - "@tanstack/vue-query-devtools": "^6.1.7", + "@tanstack/vue-query": "^5.95.0", + "@tanstack/vue-query-devtools": "^6.1.8", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index a0fe6bedf79..0103c036922 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.94.5", + "@tanstack/vue-query": "^5.95.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index d8d050b2215..9126b162437 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.94.5", - "@tanstack/query-persist-client-core": "^5.94.5", - "@tanstack/query-sync-storage-persister": "^5.94.5", - "@tanstack/vue-query": "^5.94.5", + "@tanstack/query-core": "^5.95.0", + "@tanstack/query-persist-client-core": "^5.95.0", + "@tanstack/query-sync-storage-persister": "^5.95.0", + "@tanstack/vue-query": "^5.95.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 63e44e3118c..ced9d9e8363 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.94.5", - "@tanstack/vue-query-devtools": "^6.1.7", + "@tanstack/vue-query": "^5.95.0", + "@tanstack/vue-query-devtools": "^6.1.8", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 457421fa371..5fee7988525 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.94.5", + "@tanstack/angular-query-experimental": "^5.95.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 74739109481..0e032192cda 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 0801201e52a..d26a7f40942 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.94.5", + "version": "5.95.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 52338c29e55..83aa424b340 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.95.0 + - @tanstack/query-persist-client-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 33f2a5a83cd..242a9ab44a0 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.94.5", + "version": "5.95.0", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 9b32d0daa28..7deecf52f9a 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/eslint-plugin-query +## 5.95.0 + +### Minor Changes + +- BREAKING (eslint-plugin): The `exhaustive-deps` rule now reports member expression dependencies more granularly for call expressions (e.g. `a.b.foo()` suggests `a.b`), which may cause existing code that previously passed the rule to now report missing dependencies. To accommodate stable variables and types, the rule now accepts an `allowlist` option with `variables` and `types` arrays to exclude specific dependencies from enforcement. ([#10295](https://github.com/TanStack/query/pull/10295)) + ## 5.94.5 ### Patch Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 39f44c84c17..ae510373d3f 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.94.5", + "version": "5.95.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 18bcd29ae66..e75d7961993 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.95.0 + - @tanstack/query-devtools@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 392729e721d..d09fc938744 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.94.5", + "version": "5.95.0", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index d866aadb5eb..195b075d1d1 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.95.0 + - @tanstack/query-persist-client-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 063711e1cd8..2f9ca4688d1 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.94.5", + "version": "5.95.0", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 93a01460f05..e19fc0c31a0 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 047f2658bb3..b7ad019513f 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.94.5", + "version": "5.95.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 04e9934488f..2184e2f219a 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + - @tanstack/query-persist-client-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index cd73e23a60a..3bbfb09426f 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.94.5", + "version": "5.95.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 51723352bf7..d6a941f16c0 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 24355a52687..870ddc7cb21 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.94.5", + "version": "5.95.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 792376adcb2..a7fb452b993 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 2926c84cc0f..bc9c0ef4db3 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.94.5", + "version": "5.95.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index e45e0df0514..8be23b63288 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 3c0ce4d3220..7b176908d7f 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.94.5", + "version": "5.95.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 7b18579d98b..01c9b548db9 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 816ed38a9f6..6c538c8fad6 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.94.5", + "version": "5.95.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 0a6fca645ef..dbc9ac3cf66 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + - @tanstack/query-persist-client-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index c373f123658..2c6b39ce320 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.94.5", + "version": "5.95.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index f6386616da6..10ac41a34cd 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.0 + - @tanstack/react-query@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 0e0151efbe4..ca3558c01e2 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.94.5", + "version": "5.95.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 9154c837d8b..7a7eded7c20 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 4db0fdde9f7..b2d7887a26e 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.94.5", + "version": "5.95.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 277b419a6b4..65b4cef7a49 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.0 + - @tanstack/react-query@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index dacf496f09c..1ad71a9411c 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.94.5", + "version": "5.95.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 23cbd7e610d..ccd95e54843 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index b0cd0c37aaf..33b27da1bb1 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.94.5", + "version": "5.95.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 9073eeb8e66..a4682fb9231 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.0 + - @tanstack/solid-query@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index eba9a778228..a94f11fc1b9 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.94.5", + "version": "5.95.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 778979373e2..91ea3335849 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.0 + - @tanstack/solid-query@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index d9175bb85a6..c966dd6d59d 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.94.5", + "version": "5.95.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index da5aed2bf5b..5d2eef715c6 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 458b2bdbb18..bb9feb2f105 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.94.5", + "version": "5.95.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 27f7cb0c751..6522235536c 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.0 + - @tanstack/svelte-query@6.1.8 + ## 6.1.7 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 940088a0a81..2619d172202 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.7", + "version": "6.1.8", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index cc0819265d2..3d977588593 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.0 + - @tanstack/svelte-query@6.1.8 + ## 6.1.7 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index d6a0d2910ba..da1fade9605 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.7", + "version": "6.1.8", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 2a89e4d52ea..e36adfd1baa 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 6.1.7 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 061ac504e9e..fcc55034c46 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.7", + "version": "6.1.8", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 51e31752929..bfa76230e4c 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.0 + - @tanstack/vue-query@5.95.0 + ## 6.1.7 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index b020613e5f6..13c840a7c2f 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.7", + "version": "6.1.8", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index cf909c7d0d4..3e6d2ca841c 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.95.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.95.0 + ## 5.94.5 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 02e2c99cfea..7b2b5907b0c 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.94.5", + "version": "5.95.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cac20c906b5..5d506df1aec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.91.0 + specifier: ^5.95.0 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.91.5 + specifier: ^5.95.0 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.11 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) '@tanstack/solid-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.7 + specifier: ^6.1.8 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.94.5 + specifier: ^5.95.0 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 @@ -2373,13 +2373,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-plugin-externalize-deps: specifier: ^0.9.0 version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -4786,7 +4786,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -21486,6 +21486,19 @@ snapshots: optionalDependencies: typescript: 5.9.3 + '@vue/language-core@2.1.6(typescript@6.0.1-rc)': + dependencies: + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.28 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.28 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 6.0.1-rc + '@vue/language-core@2.2.12(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.15 @@ -30704,6 +30717,10 @@ snapshots: optionalDependencies: typescript: 5.9.3 + tsconfck@3.1.6(typescript@6.0.1-rc): + optionalDependencies: + typescript: 6.0.1-rc + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -31329,6 +31346,25 @@ snapshots: - rollup - supports-color + vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + dependencies: + '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) + '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@volar/typescript': 2.4.28 + '@vue/language-core': 2.1.6(typescript@6.0.1-rc) + compare-versions: 6.1.1 + debug: 4.4.3 + kolorist: 1.8.0 + local-pkg: 0.5.1 + magic-string: 0.30.21 + typescript: 6.0.1-rc + optionalDependencies: + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): dependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) @@ -31388,6 +31424,17 @@ snapshots: - supports-color - typescript + vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + dependencies: + debug: 4.4.3 + globrex: 0.1.2 + tsconfck: 3.1.6(typescript@6.0.1-rc) + optionalDependencies: + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + transitivePeerDependencies: + - supports-color + - typescript + vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): dependencies: esbuild: 0.27.3 From c7c0cd9439671b94464c15dea3822c4a93dc9f1b Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Sun, 22 Mar 2026 18:40:46 +0100 Subject: [PATCH 011/414] fix(examples): guard missing mount targets in remaining react examples (#10305) --- examples/react/algolia/src/index.tsx | 3 ++- examples/react/basic-graphql-request/src/index.tsx | 3 ++- examples/react/chat/src/index.tsx | 3 ++- examples/react/default-query-function/src/index.tsx | 3 ++- examples/react/devtools-panel/src/index.tsx | 3 ++- examples/react/eslint-legacy/src/index.tsx | 3 ++- examples/react/offline/src/index.tsx | 3 ++- examples/react/playground/src/index.tsx | 3 ++- examples/react/react-router/src/index.tsx | 3 ++- examples/react/suspense/src/index.tsx | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/examples/react/algolia/src/index.tsx b/examples/react/algolia/src/index.tsx index 5580576a6b6..7a7be0a6925 100644 --- a/examples/react/algolia/src/index.tsx +++ b/examples/react/algolia/src/index.tsx @@ -2,5 +2,6 @@ import ReactDOM from 'react-dom/client' import App from './App' -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() diff --git a/examples/react/basic-graphql-request/src/index.tsx b/examples/react/basic-graphql-request/src/index.tsx index 09995939cd8..af4e81a8d4f 100644 --- a/examples/react/basic-graphql-request/src/index.tsx +++ b/examples/react/basic-graphql-request/src/index.tsx @@ -172,5 +172,6 @@ function Post({ ) } -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() diff --git a/examples/react/chat/src/index.tsx b/examples/react/chat/src/index.tsx index 4e95c7b37c3..5ddbcfe5e19 100644 --- a/examples/react/chat/src/index.tsx +++ b/examples/react/chat/src/index.tsx @@ -96,5 +96,6 @@ function Example() { ) } -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() diff --git a/examples/react/default-query-function/src/index.tsx b/examples/react/default-query-function/src/index.tsx index 72a45b7f3cf..b3cec50224c 100644 --- a/examples/react/default-query-function/src/index.tsx +++ b/examples/react/default-query-function/src/index.tsx @@ -146,5 +146,6 @@ function Post({ ) } -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() diff --git a/examples/react/devtools-panel/src/index.tsx b/examples/react/devtools-panel/src/index.tsx index 7278a000e31..bc2ca5e65dd 100644 --- a/examples/react/devtools-panel/src/index.tsx +++ b/examples/react/devtools-panel/src/index.tsx @@ -54,5 +54,6 @@ function Example() { ) } -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() diff --git a/examples/react/eslint-legacy/src/index.tsx b/examples/react/eslint-legacy/src/index.tsx index 59a186be1bb..9ddea366c33 100644 --- a/examples/react/eslint-legacy/src/index.tsx +++ b/examples/react/eslint-legacy/src/index.tsx @@ -157,5 +157,6 @@ function App() { ) } -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() diff --git a/examples/react/offline/src/index.tsx b/examples/react/offline/src/index.tsx index d6791b40c19..fd0eb555c85 100644 --- a/examples/react/offline/src/index.tsx +++ b/examples/react/offline/src/index.tsx @@ -5,7 +5,8 @@ import { worker } from './api' worker.start() -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render(
diff --git a/examples/react/playground/src/index.tsx b/examples/react/playground/src/index.tsx index 8da861804cf..053585522de 100644 --- a/examples/react/playground/src/index.tsx +++ b/examples/react/playground/src/index.tsx @@ -457,5 +457,6 @@ function patchTodo(todo?: Todo): Promise { }) } -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() diff --git a/examples/react/react-router/src/index.tsx b/examples/react/react-router/src/index.tsx index e4037015ea1..01cabf89f45 100644 --- a/examples/react/react-router/src/index.tsx +++ b/examples/react/react-router/src/index.tsx @@ -67,7 +67,8 @@ const router = createBrowserRouter([ ]) const rootElement = document.getElementById('root') -ReactDOM.createRoot(rootElement!).render( +if (!rootElement) throw new Error('Missing #root element') +ReactDOM.createRoot(rootElement).render( diff --git a/examples/react/suspense/src/index.tsx b/examples/react/suspense/src/index.tsx index 2402fa9393a..34047650471 100755 --- a/examples/react/suspense/src/index.tsx +++ b/examples/react/suspense/src/index.tsx @@ -90,5 +90,6 @@ function Example() { ) } -const rootElement = document.getElementById('root') as HTMLElement +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Missing #root element') ReactDOM.createRoot(rootElement).render() From c73e4a2c5af4389b81d1436805615d5b92b36023 Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Sun, 22 Mar 2026 18:45:58 +0100 Subject: [PATCH 012/414] fix(examples): guard missing filmId param in react star-wars example (#10143) --- examples/react/star-wars/src/Film.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/react/star-wars/src/Film.tsx b/examples/react/star-wars/src/Film.tsx index da5349cfc44..2dda65cc236 100644 --- a/examples/react/star-wars/src/Film.tsx +++ b/examples/react/star-wars/src/Film.tsx @@ -3,8 +3,11 @@ import { useQuery } from '@tanstack/react-query' import { getFilm, getCharacter } from './api' export default function Film() { - let params = useParams() - const filmId = params.filmId! + const { filmId } = useParams() + + if (!filmId) { + return

Invalid film ID

+ } const { data, status } = useQuery({ queryKey: ['film', filmId], @@ -21,7 +24,7 @@ export default function Film() {

{data.opening_crawl}


Characters

- {data.characters.map((character: any) => { + {data.characters.map((character: string) => { const characterUrlParts = character.split('/').filter(Boolean) const characterId = characterUrlParts[characterUrlParts.length - 1] return From b1188fee93685aecdb7edffd3239ff1eae2e1355 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Mon, 23 Mar 2026 08:54:37 +0100 Subject: [PATCH 013/414] ref: knip v6 --- knip.json | 8 +- package.json | 4 +- pnpm-lock.yaml | 418 +++++++++++++++++++++++++++++++++++++------------ 3 files changed, 325 insertions(+), 105 deletions(-) diff --git a/knip.json b/knip.json index 996a0a25a27..2d444d217cc 100644 --- a/knip.json +++ b/knip.json @@ -1,11 +1,6 @@ { "$schema": "https://unpkg.com/knip@5/schema.json", - "ignore": [ - ".pnpmfile.cjs", - "scripts/*.{j,t}s", - "**/root.*.config.*", - "**/ts-fixture/file.ts" - ], + "ignore": ["scripts/*.{j,t}s", "**/root.*.config.*", "**/ts-fixture/file.ts"], "ignoreDependencies": [ "@types/react", "@types/react-dom", @@ -25,7 +20,6 @@ "ignore": ["**/__testfixtures__/**"] }, "packages/vue-query": { - "ignore": ["**/__mocks__/**"], "ignoreDependencies": ["vue2", "vue2.7"] } } diff --git a/package.json b/package.json index 31209a12141..e4e28cb5d55 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "test:lib:dev": "pnpm run test:lib && nx watch --all -- pnpm run test:lib", "test:build": "nx affected --target=test:build --exclude=examples/**", "test:types": "nx affected --target=test:types --exclude=examples/**", - "test:knip": "knip", + "test:knip": "knip --treat-config-hints-as-errors", "test:docs": "node scripts/verify-links.ts", "build": "nx affected --target=build --exclude=examples/** --exclude=integrations/**", "build:all": "nx run-many --target=build --exclude=examples/** --exclude=integrations/**", @@ -59,7 +59,7 @@ "eslint": "^9.36.0", "eslint-plugin-react-hooks": "^6.1.1", "jsdom": "^27.0.0", - "knip": "^5.63.1", + "knip": "^6.0.2", "markdown-link-extractor": "^4.0.2", "nx": "22.1.3", "premove": "^4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d506df1aec..7b74bdaf6ed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -85,8 +85,8 @@ importers: specifier: ^27.0.0 version: 27.4.0 knip: - specifier: ^5.63.1 - version: 5.83.1(@types/node@22.19.15)(typescript@5.9.3) + specifier: ^6.0.2 + version: 6.0.2 markdown-link-extractor: specifier: ^4.0.2 version: 4.0.3 @@ -5842,103 +5842,225 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - '@oxc-resolver/binding-android-arm-eabi@11.17.1': - resolution: {integrity: sha512-+VuZyMYYaap5uDAU1xDU3Kul0FekLqpBS8kI5JozlWfYQKnc/HsZg2gHPkQrj0SC9lt74WMNCfOzZZJlYXSdEQ==} + '@oxc-parser/binding-android-arm-eabi@0.120.0': + resolution: {integrity: sha512-WU3qtINx802wOl8RxAF1v0VvmC2O4D9M8Sv486nLeQ7iPHVmncYZrtBhB4SYyX+XZxj2PNnCcN+PW21jHgiOxg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.17.1': - resolution: {integrity: sha512-YlDDTjvOEKhom/cRSVsXsMVeXVIAM9PJ/x2mfe08rfuS0iIEfJd8PngKbEIhG72WPxleUa+vkEZj9ncmC14z3Q==} + '@oxc-parser/binding-android-arm64@0.120.0': + resolution: {integrity: sha512-SEf80EHdhlbjZEgzeWm0ZA/br4GKMenDW3QB/gtyeTV1gStvvZeFi40ioHDZvds2m4Z9J1bUAUL8yn1/+A6iGg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.17.1': - resolution: {integrity: sha512-HOYYLSY4JDk14YkXaz/ApgJYhgDP4KsG8EZpgpOxdszGW9HmIMMY/vXqVKYW74dSH+GQkIXYxBrEh3nv+XODVg==} + '@oxc-parser/binding-darwin-arm64@0.120.0': + resolution: {integrity: sha512-xVrrbCai8R8CUIBu3CjryutQnEYhZqs1maIqDvtUCFZb8vY33H7uh9mHpL3a0JBIKoBUKjPH8+rzyAeXnS2d6A==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.17.1': - resolution: {integrity: sha512-JHPJbsa5HvPq2/RIdtGlqfaG9zV2WmgvHrKTYmlW0L5esqtKCBuetFudXTBzkNcyD69kSZLzH92AzTr6vFHMFg==} + '@oxc-parser/binding-darwin-x64@0.120.0': + resolution: {integrity: sha512-xyHBbnJ6mydnQUH7MAcafOkkrNzQC6T+LXgDH/3InEq2BWl/g424IMRiJVSpVqGjB+p2bd0h0WRR8iIwzjU7rw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.17.1': - resolution: {integrity: sha512-UD1FRC8j8xZstFXYsXwQkNmmg7vUbee006IqxokwDUUA+xEgKZDpLhBEiVKM08Urb+bn7Q0gn6M1pyNR0ng5mg==} + '@oxc-parser/binding-freebsd-x64@0.120.0': + resolution: {integrity: sha512-UMnVRllquXUYTeNfFKmxTTEdZ/ix1nLl0ducDzMSREoWYGVIHnOOxoKMWlCOvRr9Wk/HZqo2rh1jeumbPGPV9A==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.17.1': - resolution: {integrity: sha512-wFWC1wyf2ROFWTxK5x0Enm++DSof3EBQ/ypyAesMDLiYxOOASDoMOZG1ylWUnlKaCt5W7eNOWOzABpdfFf/ssA==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': + resolution: {integrity: sha512-tkvn2CQ7QdcsMnpfiX3fd3wA3EFsWKYlcQzq9cFw/xc89Al7W6Y4O0FgLVkVQpo0Tnq/qtE1XfkJOnRRA9S/NA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.17.1': - resolution: {integrity: sha512-k/hUif0GEBk/csSqCfTPXb8AAVs1NNWCa/skBghvNbTtORcWfOVqJ3mM+2pE189+enRm4UnryLREu5ysI0kXEQ==} + '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': + resolution: {integrity: sha512-WN5y135Ic42gQDk9grbwY9++fDhqf8knN6fnP+0WALlAUh4odY/BDK1nfTJRSfpJD9P3r1BwU0m3pW2DU89whQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.17.1': - resolution: {integrity: sha512-Cwm6A071ww60QouJ9LoHAwBgEoZzHQ0Qaqk2E7WLfBdiQN9mLXIDhnrpn04hlRElRPhLiu/dtg+o5PPLvaINXQ==} + '@oxc-parser/binding-linux-arm64-gnu@0.120.0': + resolution: {integrity: sha512-1GgQBCcXvFMw99EPdMy+4NZ3aYyXsxjf9kbUUg8HuAy3ZBXzOry5KfFEzT9nqmgZI1cuetvApkiJBZLAPo8uaw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-arm64-musl@11.17.1': - resolution: {integrity: sha512-+hwlE2v3m0r3sk93SchJL1uyaKcPjf+NGO/TD2DZUDo+chXx7FfaEj0nUMewigSt7oZ2sQN9Z4NJOtUa75HE5Q==} + '@oxc-parser/binding-linux-arm64-musl@0.120.0': + resolution: {integrity: sha512-gmMQ70gsPdDBgpcErvJEoWNBr7bJooSLlvOBVBSGfOzlP5NvJ3bFvnUeZZ9d+dPrqSngtonf7nyzWUTUj/U+lw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-ppc64-gnu@11.17.1': - resolution: {integrity: sha512-bO+rsaE5Ox8cFyeL5Ct5tzot1TnQpFa/Wmu5k+hqBYSH2dNVDGoi0NizBN5QV8kOIC6O5MZr81UG4yW/2FyDTA==} + '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': + resolution: {integrity: sha512-T/kZuU0ajop0xhzVMwH5r3srC9Nqup5HaIo+3uFjIN5uPxa0LvSxC1ZqP4aQGJVW5G0z8/nCkjIfSMS91P/wzw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-gnu@11.17.1': - resolution: {integrity: sha512-B/P+hxKQ1oX4YstI9Lyh4PGzqB87Ddqj/A4iyRBbPdXTcxa+WW3oRLx1CsJKLmHPdDk461Hmbghq1Bm3pl+8Aw==} + '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': + resolution: {integrity: sha512-vn21KXLAXzaI3N5CZWlBr1iWeXLl9QFIMor7S1hUjUGTeUuWCoE6JZB040/ZNDwf+JXPX8Ao9KbmJq9FMC2iGw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-musl@11.17.1': - resolution: {integrity: sha512-ulp2H3bFXzd/th2maH+QNKj5qgOhJ3v9Yspdf1svTw3CDOuuTl6sRKsWQ7MUw0vnkSNvQndtflBwVXgzZvURsQ==} + '@oxc-parser/binding-linux-riscv64-musl@0.120.0': + resolution: {integrity: sha512-SUbUxlar007LTGmSLGIC5x/WJvwhdX+PwNzFJ9f/nOzZOrCFbOT4ikt7pJIRg1tXVsEfzk5mWpGO1NFiSs4PIw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-s390x-gnu@11.17.1': - resolution: {integrity: sha512-LAXYVe3rKk09Zo9YKF2ZLBcH8sz8Oj+JIyiUxiHtq0hiYLMsN6dOpCf2hzQEjPAmsSEA/hdC1PVKeXo+oma8mQ==} + '@oxc-parser/binding-linux-s390x-gnu@0.120.0': + resolution: {integrity: sha512-hYiPJTxyfJY2+lMBFk3p2bo0R9GN+TtpPFlRqVchL1qvLG+pznstramHNvJlw9AjaoRUHwp9IKR7UZQnRPGjgQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxc-resolver/binding-linux-x64-gnu@11.17.1': - resolution: {integrity: sha512-3RAhxipMKE8RCSPn7O//sj440i+cYTgYbapLeOoDvQEt6R1QcJjTsFgI4iz99FhVj3YbPxlZmcLB5VW+ipyRTA==} + '@oxc-parser/binding-linux-x64-gnu@0.120.0': + resolution: {integrity: sha512-q+5jSVZkprJCIy3dzJpApat0InJaoxQLsJuD6DkX8hrUS61z2lHQ1Fe9L2+TYbKHXCLWbL0zXe7ovkIdopBGMQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-resolver/binding-linux-x64-musl@11.17.1': - resolution: {integrity: sha512-wpjMEubGU8r9VjZTLdZR3aPHaBqTl8Jl8F4DBbgNoZ+yhkhQD1/MGvY70v2TLnAI6kAHSvcqgfvaqKDa2iWsPQ==} + '@oxc-parser/binding-linux-x64-musl@0.120.0': + resolution: {integrity: sha512-D9QDDZNnH24e7X4ftSa6ar/2hCavETfW3uk0zgcMIrZNy459O5deTbWrjGzZiVrSWigGtlQwzs2McBP0QsfV1w==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-resolver/binding-openharmony-arm64@11.17.1': - resolution: {integrity: sha512-XIE4w17RYAVIgx+9Gs3deTREq5tsmalbatYOOBGNdH7n0DfTE600c7wYXsp7ANc3BPDXsInnOzXDEPCvO1F6cg==} + '@oxc-parser/binding-openharmony-arm64@0.120.0': + resolution: {integrity: sha512-TBU8ZwOUWAOUWVfmI16CYWbvh4uQb9zHnGBHsw5Cp2JUVG044OIY1CSHODLifqzQIMTXvDvLzcL89GGdUIqNrA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-resolver/binding-wasm32-wasi@11.17.1': - resolution: {integrity: sha512-Lqi5BlHX3zS4bpSOkIbOKVf7DIk6Gvmdifr2OuOI58eUUyP944M8/OyaB09cNpPy9Vukj7nmmhOzj8pwLgAkIg==} + '@oxc-parser/binding-wasm32-wasi@0.120.0': + resolution: {integrity: sha512-WG/FOZgDJCpJnuF3ToG/K28rcOmSY7FmFmfBKYb2fmLyhDzPpUldFGV7/Fz4ru0Iz/v4KPmf8xVgO8N3lO4KHA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.17.1': - resolution: {integrity: sha512-l6lTcLBQVj1HNquFpXSsrkCIM8X5Hlng5YNQJrg00z/KyovvDV5l3OFhoRyZ+aLBQ74zUnMRaJZC7xcBnHyeNg==} + '@oxc-parser/binding-win32-arm64-msvc@0.120.0': + resolution: {integrity: sha512-1T0HKGcsz/BKo77t7+89L8Qvu4f9DoleKWHp3C5sJEcbCjDOLx3m9m722bWZTY+hANlUEs+yjlK+lBFsA+vrVQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-ia32-msvc@11.17.1': - resolution: {integrity: sha512-VTzVtfnCCsU/6GgvursWoyZrhe3Gj/RyXzDWmh4/U1Y3IW0u1FZbp+hCIlBL16pRPbDc5YvXVtCOnA41QOrOoQ==} + '@oxc-parser/binding-win32-ia32-msvc@0.120.0': + resolution: {integrity: sha512-L7vfLzbOXsjBXV0rv/6Y3Jd9BRjPeCivINZAqrSyAOZN3moCopDN+Psq9ZrGNZtJzP8946MtlRFZ0Als0wBCOw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@11.17.1': - resolution: {integrity: sha512-jRPVU+6/12baj87q2+UGRh30FBVBzqKdJ7rP/mSqiL1kpNQB9yZ1j0+m3sru1m+C8hiFK7lBFwjUtYUBI7+UpQ==} + '@oxc-parser/binding-win32-x64-msvc@0.120.0': + resolution: {integrity: sha512-ys+upfqNtSu58huAhJMBKl3XCkGzyVFBlMlGPzHeFKgpFF/OdgNs1MMf8oaJIbgMH8ZxgGF7qfue39eJohmKIg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.120.0': + resolution: {integrity: sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==} + + '@oxc-resolver/binding-android-arm-eabi@11.19.1': + resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} + cpu: [arm] + os: [android] + + '@oxc-resolver/binding-android-arm64@11.19.1': + resolution: {integrity: sha512-oolbkRX+m7Pq2LNjr/kKgYeC7bRDMVTWPgxBGMjSpZi/+UskVo4jsMU3MLheZV55jL6c3rNelPl4oD60ggYmqA==} + cpu: [arm64] + os: [android] + + '@oxc-resolver/binding-darwin-arm64@11.19.1': + resolution: {integrity: sha512-nUC6d2i3R5B12sUW4O646qD5cnMXf2oBGPLIIeaRfU9doJRORAbE2SGv4eW6rMqhD+G7nf2Y8TTJTLiiO3Q/dQ==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@11.19.1': + resolution: {integrity: sha512-cV50vE5+uAgNcFa3QY1JOeKDSkM/9ReIcc/9wn4TavhW/itkDGrXhw9jaKnkQnGbjJ198Yh5nbX/Gr2mr4Z5jQ==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-freebsd-x64@11.19.1': + resolution: {integrity: sha512-xZOQiYGFxtk48PBKff+Zwoym7ScPAIVp4c14lfLxizO2LTTTJe5sx9vQNGrBymrf/vatSPNMD4FgsaaRigPkqw==} + cpu: [x64] + os: [freebsd] + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': + resolution: {integrity: sha512-lXZYWAC6kaGe/ky2su94e9jN9t6M0/6c+GrSlCqL//XO1cxi5lpAhnJYdyrKfm0ZEr/c7RNyAx3P7FSBcBd5+A==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': + resolution: {integrity: sha512-veG1kKsuK5+t2IsO9q0DErYVSw2azvCVvWHnfTOS73WE0STdLLB7Q1bB9WR+yHPQM76ASkFyRbogWo1GR1+WbQ==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': + resolution: {integrity: sha512-heV2+jmXyYnUrpUXSPugqWDRpnsQcDm2AX4wzTuvgdlZfoNYO0O3W2AVpJYaDn9AG4JdM6Kxom8+foE7/BcSig==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-musl@11.19.1': + resolution: {integrity: sha512-jvo2Pjs1c9KPxMuMPIeQsgu0mOJF9rEb3y3TdpsrqwxRM+AN6/nDDwv45n5ZrUnQMsdBy5gIabioMKnQfWo9ew==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': + resolution: {integrity: sha512-vLmdNxWCdN7Uo5suays6A/+ywBby2PWBBPXctWPg5V0+eVuzsJxgAn6MMB4mPlshskYbppjpN2Zg83ArHze9gQ==} + cpu: [ppc64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': + resolution: {integrity: sha512-/b+WgR+VTSBxzgOhDO7TlMXC1ufPIMR6Vj1zN+/x+MnyXGW7prTLzU9eW85Aj7Th7CCEG9ArCbTeqxCzFWdg2w==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': + resolution: {integrity: sha512-YlRdeWb9j42p29ROh+h4eg/OQ3dTJlpHSa+84pUM9+p6i3djtPz1q55yLJhgW9XfDch7FN1pQ/Vd6YP+xfRIuw==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': + resolution: {integrity: sha512-EDpafVOQWF8/MJynsjOGFThcqhRHy417sRyLfQmeiamJ8qVhSKAn2Dn2VVKUGCjVB9C46VGjhNo7nOPUi1x6uA==} + cpu: [s390x] + os: [linux] + + '@oxc-resolver/binding-linux-x64-gnu@11.19.1': + resolution: {integrity: sha512-NxjZe+rqWhr+RT8/Ik+5ptA3oz7tUw361Wa5RWQXKnfqwSSHdHyrw6IdcTfYuml9dM856AlKWZIUXDmA9kkiBQ==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-linux-x64-musl@11.19.1': + resolution: {integrity: sha512-cM/hQwsO3ReJg5kR+SpI69DMfvNCp+A/eVR4b4YClE5bVZwz8rh2Nh05InhwI5HR/9cArbEkzMjcKgTHS6UaNw==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-openharmony-arm64@11.19.1': + resolution: {integrity: sha512-QF080IowFB0+9Rh6RcD19bdgh49BpQHUW5TajG1qvWHvmrQznTZZjYlgE2ltLXyKY+qs4F/v5xuX1XS7Is+3qA==} + cpu: [arm64] + os: [openharmony] + + '@oxc-resolver/binding-wasm32-wasi@11.19.1': + resolution: {integrity: sha512-w8UCKhX826cP/ZLokXDS6+milN8y4X7zidsAttEdWlVoamTNf6lhBJldaWr3ukTDiye7s4HRcuPEPOXNC432Vg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': + resolution: {integrity: sha512-nJ4AsUVZrVKwnU/QRdzPCCrO0TrabBqgJ8pJhXITdZGYOV28TIYystV1VFLbQ7DtAcaBHpocT5/ZJnF78YJPtQ==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': + resolution: {integrity: sha512-EW+ND5q2Tl+a3pH81l1QbfgbF3HmqgwLfDfVithRFheac8OTcnbXt/JxqD2GbDkb7xYEqy1zNaVFRr3oeG8npA==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.19.1': + resolution: {integrity: sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw==} cpu: [x64] os: [win32] @@ -10276,6 +10398,9 @@ packages: get-tsconfig@4.13.6: resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + get-tsconfig@4.13.7: + resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} + get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -11376,13 +11501,10 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - knip@5.83.1: - resolution: {integrity: sha512-av3ZG/Nui6S/BNL8Tmj12yGxYfTnwWnslouW97m40him7o8MwiMjZBY9TPvlEWUci45aVId0/HbgTwSKIDGpMw==} - engines: {node: '>=18.18.0'} + knip@6.0.2: + resolution: {integrity: sha512-W17Bo5N9AYn0ZkgWHGBmK/01SrSmr3B6iStr3zudDa2eqi+Kc8VmPjSpTYKDV2Uy/kojrlcH/gS1wypAXfXRRA==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - peerDependencies: - '@types/node': ^22.15.3 - typescript: '>=5.0.4 <7' knitwork@1.3.0: resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} @@ -12660,8 +12782,12 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-resolver@11.17.1: - resolution: {integrity: sha512-pyRXK9kH81zKlirHufkFhOFBZRks8iAMLwPH8gU7lvKFiuzUH9L8MxDEllazwOb8fjXMcWjY1PMDfMJ2/yh5cw==} + oxc-parser@0.120.0: + resolution: {integrity: sha512-WyPWZlcIm+Fkte63FGfgFB8mAAk33aH9h5N9lphXVOHSXEBFFsmYdOBedVKly363aWABjZdaj/m9lBfEY4wt+w==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-resolver@11.19.1: + resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} p-event@5.0.1: resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} @@ -15022,6 +15148,10 @@ packages: ultrahtml@1.6.0: resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + unbash@2.2.0: + resolution: {integrity: sha512-X2wH19RAPZE3+ldGicOkoj/SIA83OIxcJ6Cuaw23hf8Xc6fQpvZXY0SftE2JgS0QhYLUG4uwodSI3R53keyh7w==} + engines: {node: '>=14'} + unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} @@ -19463,66 +19593,130 @@ snapshots: '@oslojs/encoding@1.1.0': {} - '@oxc-resolver/binding-android-arm-eabi@11.17.1': + '@oxc-parser/binding-android-arm-eabi@0.120.0': optional: true - '@oxc-resolver/binding-android-arm64@11.17.1': + '@oxc-parser/binding-android-arm64@0.120.0': optional: true - '@oxc-resolver/binding-darwin-arm64@11.17.1': + '@oxc-parser/binding-darwin-arm64@0.120.0': optional: true - '@oxc-resolver/binding-darwin-x64@11.17.1': + '@oxc-parser/binding-darwin-x64@0.120.0': optional: true - '@oxc-resolver/binding-freebsd-x64@11.17.1': + '@oxc-parser/binding-freebsd-x64@0.120.0': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.17.1': + '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.17.1': + '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.17.1': + '@oxc-parser/binding-linux-arm64-gnu@0.120.0': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.17.1': + '@oxc-parser/binding-linux-arm64-musl@0.120.0': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.17.1': + '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.17.1': + '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.17.1': + '@oxc-parser/binding-linux-riscv64-musl@0.120.0': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.17.1': + '@oxc-parser/binding-linux-s390x-gnu@0.120.0': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.17.1': + '@oxc-parser/binding-linux-x64-gnu@0.120.0': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.17.1': + '@oxc-parser/binding-linux-x64-musl@0.120.0': optional: true - '@oxc-resolver/binding-openharmony-arm64@11.17.1': + '@oxc-parser/binding-openharmony-arm64@0.120.0': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.17.1': + '@oxc-parser/binding-wasm32-wasi@0.120.0': dependencies: '@napi-rs/wasm-runtime': 1.1.1 optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.17.1': + '@oxc-parser/binding-win32-arm64-msvc@0.120.0': optional: true - '@oxc-resolver/binding-win32-ia32-msvc@11.17.1': + '@oxc-parser/binding-win32-ia32-msvc@0.120.0': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.17.1': + '@oxc-parser/binding-win32-x64-msvc@0.120.0': + optional: true + + '@oxc-project/types@0.120.0': {} + + '@oxc-resolver/binding-android-arm-eabi@11.19.1': + optional: true + + '@oxc-resolver/binding-android-arm64@11.19.1': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.19.1': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.19.1': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.19.1': + optional: true + + '@oxc-resolver/binding-openharmony-arm64@11.19.1': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.19.1': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': + optional: true + + '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.19.1': optional: true '@parcel/watcher-android-arm64@2.5.6': @@ -25008,6 +25202,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.13.7: + dependencies: + resolve-pkg-maps: 1.0.0 + get-value@2.0.6: {} getenv@1.0.0: {} @@ -26304,21 +26502,22 @@ snapshots: klona@2.0.6: {} - knip@5.83.1(@types/node@22.19.15)(typescript@5.9.3): + knip@6.0.2: dependencies: '@nodelib/fs.walk': 1.2.8 - '@types/node': 22.19.15 fast-glob: 3.3.3 formatly: 0.3.0 + get-tsconfig: 4.13.7 jiti: 2.6.1 - js-yaml: 4.1.1 minimist: 1.2.8 - oxc-resolver: 11.17.1 + oxc-parser: 0.120.0 + oxc-resolver: 11.19.1 picocolors: 1.1.1 picomatch: 4.0.3 smol-toml: 1.6.0 strip-json-comments: 5.0.3 - typescript: 5.9.3 + unbash: 2.2.0 + yaml: 2.8.2 zod: 4.3.6 knitwork@1.3.0: {} @@ -28187,28 +28386,53 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-resolver@11.17.1: + oxc-parser@0.120.0: + dependencies: + '@oxc-project/types': 0.120.0 optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.17.1 - '@oxc-resolver/binding-android-arm64': 11.17.1 - '@oxc-resolver/binding-darwin-arm64': 11.17.1 - '@oxc-resolver/binding-darwin-x64': 11.17.1 - '@oxc-resolver/binding-freebsd-x64': 11.17.1 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.17.1 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.17.1 - '@oxc-resolver/binding-linux-arm64-gnu': 11.17.1 - '@oxc-resolver/binding-linux-arm64-musl': 11.17.1 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.17.1 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.17.1 - '@oxc-resolver/binding-linux-riscv64-musl': 11.17.1 - '@oxc-resolver/binding-linux-s390x-gnu': 11.17.1 - '@oxc-resolver/binding-linux-x64-gnu': 11.17.1 - '@oxc-resolver/binding-linux-x64-musl': 11.17.1 - '@oxc-resolver/binding-openharmony-arm64': 11.17.1 - '@oxc-resolver/binding-wasm32-wasi': 11.17.1 - '@oxc-resolver/binding-win32-arm64-msvc': 11.17.1 - '@oxc-resolver/binding-win32-ia32-msvc': 11.17.1 - '@oxc-resolver/binding-win32-x64-msvc': 11.17.1 + '@oxc-parser/binding-android-arm-eabi': 0.120.0 + '@oxc-parser/binding-android-arm64': 0.120.0 + '@oxc-parser/binding-darwin-arm64': 0.120.0 + '@oxc-parser/binding-darwin-x64': 0.120.0 + '@oxc-parser/binding-freebsd-x64': 0.120.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.120.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.120.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.120.0 + '@oxc-parser/binding-linux-arm64-musl': 0.120.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.120.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.120.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.120.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.120.0 + '@oxc-parser/binding-linux-x64-gnu': 0.120.0 + '@oxc-parser/binding-linux-x64-musl': 0.120.0 + '@oxc-parser/binding-openharmony-arm64': 0.120.0 + '@oxc-parser/binding-wasm32-wasi': 0.120.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.120.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.120.0 + '@oxc-parser/binding-win32-x64-msvc': 0.120.0 + + oxc-resolver@11.19.1: + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.19.1 + '@oxc-resolver/binding-android-arm64': 11.19.1 + '@oxc-resolver/binding-darwin-arm64': 11.19.1 + '@oxc-resolver/binding-darwin-x64': 11.19.1 + '@oxc-resolver/binding-freebsd-x64': 11.19.1 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.19.1 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.19.1 + '@oxc-resolver/binding-linux-arm64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-arm64-musl': 11.19.1 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-riscv64-musl': 11.19.1 + '@oxc-resolver/binding-linux-s390x-gnu': 11.19.1 + '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-x64-musl': 11.19.1 + '@oxc-resolver/binding-openharmony-arm64': 11.19.1 + '@oxc-resolver/binding-wasm32-wasi': 11.19.1 + '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 + '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 + '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 p-event@5.0.1: dependencies: @@ -30912,6 +31136,8 @@ snapshots: ultrahtml@1.6.0: {} + unbash@2.2.0: {} + unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 From 1f1775ca92f2b6c035682947ff3b3424804ff31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Mon, 23 Mar 2026 15:07:55 +0100 Subject: [PATCH 014/414] fix(timeout): make sure NodeJs.Timout doesn't leak (#10323) * fix(timeout): make sure NodeJs.Timout doesn't leak * changeset --- .changeset/funny-views-build.md | 5 +++++ packages/query-core/src/timeoutManager.ts | 15 +++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 .changeset/funny-views-build.md diff --git a/.changeset/funny-views-build.md b/.changeset/funny-views-build.md new file mode 100644 index 00000000000..524b36bfe36 --- /dev/null +++ b/.changeset/funny-views-build.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +fix(timeoutManager): make sure NodeJs.Timout doesn't leak diff --git a/packages/query-core/src/timeoutManager.ts b/packages/query-core/src/timeoutManager.ts index 97f0870eea2..6f74050b04c 100644 --- a/packages/query-core/src/timeoutManager.ts +++ b/packages/query-core/src/timeoutManager.ts @@ -28,9 +28,9 @@ export type TimeoutProvider = readonly clearInterval: (intervalId: TTimerId | undefined) => void } -export const defaultTimeoutProvider: TimeoutProvider< - ReturnType -> = { +type SystemTimerId = ReturnType + +export const defaultTimeoutProvider: TimeoutProvider = { // We need the wrapper function syntax below instead of direct references to // global setTimeout etc. // @@ -42,10 +42,12 @@ export const defaultTimeoutProvider: TimeoutProvider< // have a hard reference to the original implementation at the time when this // file was imported. setTimeout: (callback, delay) => setTimeout(callback, delay), - clearTimeout: (timeoutId) => clearTimeout(timeoutId), + clearTimeout: (timeoutId) => + clearTimeout(timeoutId as SystemTimerId | undefined), setInterval: (callback, delay) => setInterval(callback, delay), - clearInterval: (intervalId) => clearInterval(intervalId), + clearInterval: (intervalId) => + clearInterval(intervalId as SystemTimerId | undefined), } /** @@ -62,7 +64,8 @@ export const defaultTimeoutProvider: TimeoutProvider< export class TimeoutManager implements Omit { // We cannot have TimeoutManager as we must instantiate it with a concrete // type at app boot; and if we leave that type, then any new timer provider - // would need to support ReturnType, which is infeasible. + // would need to support the default provider's concrete timer ID, which is + // infeasible across environments. // // We settle for type safety for the TimeoutProvider type, and accept that // this class is unsafe internally to allow for extension. From 5806444b97e07b1ede194d1f353d4a013ef1036e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:21:38 +0100 Subject: [PATCH 015/414] ci: Version Packages (#10324) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/funny-views-build.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 244 +++++++++--------- 108 files changed, 437 insertions(+), 273 deletions(-) delete mode 100644 .changeset/funny-views-build.md diff --git a/.changeset/funny-views-build.md b/.changeset/funny-views-build.md deleted file mode 100644 index 524b36bfe36..00000000000 --- a/.changeset/funny-views-build.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -fix(timeoutManager): make sure NodeJs.Timout doesn't leak diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index aad9f64a23a..aaef8233765 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index e76def27a63..eaa5b57b410 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", - "@tanstack/angular-query-persist-client": "^5.95.0", - "@tanstack/query-async-storage-persister": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-persist-client": "^5.95.1", + "@tanstack/query-async-storage-persister": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 2f2899b377d..32757f73138 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 33d7f3d4d33..4d1df22f33a 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 8922c9df4c1..af9d5fe6059 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 987362ceb3c..38a0b3513c2 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 8b0ec0f2a62..1223219e1f8 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index bd150753ef6..4c72fa0837d 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 8b5333491b5..be76f7a12a0 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index e3e49866cca..97c40bd1056 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index f1fb11745c4..ec85397a73d 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index fa5666fc287..736faa680e6 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.0", + "@tanstack/eslint-plugin-query": "^5.95.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 554d2a50850..57e22d7bc5b 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 808369f84ab..c9704502199 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index f6e1a4233c1..b345f01b292 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.0", - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", - "@tanstack/react-query-persist-client": "^5.95.0", + "@tanstack/query-async-storage-persister": "^5.95.1", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query-persist-client": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.0", + "@tanstack/eslint-plugin-query": "^5.95.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 69ebb44a7f5..20aac9c806a 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 139bf101188..75463cc0e79 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 3451e15e9ac..6ad8f1a9c7f 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index cca09c5fc56..47e8c486f51 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.0", - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", - "@tanstack/react-query-persist-client": "^5.95.0", + "@tanstack/query-async-storage-persister": "^5.95.1", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query-persist-client": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.0", + "@tanstack/eslint-plugin-query": "^5.95.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 491a79d5b0a..06504c180ba 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query": "^5.95.1", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.0", + "@tanstack/eslint-plugin-query": "^5.95.1", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index f02354c31c6..7e3f908da16 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 920a68c51ea..d010d038296 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index e7f253b08ca..d3d2cbf8d1a 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 9bafbdbee9a..04444843ec7 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", - "@tanstack/react-query-next-experimental": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query-next-experimental": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index e6a7761fed9..f27128db65c 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index bb7dcc17c1f..863f9fb92d4 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.0", + "@tanstack/query-async-storage-persister": "^5.95.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", - "@tanstack/react-query-persist-client": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query-persist-client": "^5.95.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index db2a960026c..d218ab8e982 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 10ebb5e4587..c6e87128d2f 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index abe2ed7bf60..1f0db2cf6a5 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 75a85baa4c4..684343b67c6 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 03cf1c23df3..98f6e0966b2 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index dc3b059c4e7..d97a6c4590f 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 4618a327401..a4e9765b412 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index e96b8df54df..907a8ec493d 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index df4d78d62e9..3604aacb9c4 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 3d00a2500b6..980809000ff 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 31988b14ebf..5b5637a7187 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 2b226b700b6..1a39f7f48cd 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a414c1e591c..97341fd0ac6 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.95.0", - "@tanstack/solid-query-devtools": "^5.95.0", + "@tanstack/solid-query": "^5.95.1", + "@tanstack/solid-query-devtools": "^5.95.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 114660e50b6..bfd05e9f7b0 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.0", - "@tanstack/solid-query-devtools": "^5.95.0", + "@tanstack/solid-query": "^5.95.1", + "@tanstack/solid-query-devtools": "^5.95.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index aba884d51f4..14957a18bb2 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.0", - "@tanstack/solid-query-devtools": "^5.95.0", + "@tanstack/solid-query": "^5.95.1", + "@tanstack/solid-query-devtools": "^5.95.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 094c5013534..9ead8b11ce2 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.0", - "@tanstack/solid-query-devtools": "^5.95.0", + "@tanstack/solid-query": "^5.95.1", + "@tanstack/solid-query-devtools": "^5.95.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index ec7c9314435..5f1051802cf 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.0", - "@tanstack/solid-query": "^5.95.0", - "@tanstack/solid-query-devtools": "^5.95.0", - "@tanstack/solid-query-persist-client": "^5.95.0", + "@tanstack/query-async-storage-persister": "^5.95.1", + "@tanstack/solid-query": "^5.95.1", + "@tanstack/solid-query-devtools": "^5.95.1", + "@tanstack/solid-query-persist-client": "^5.95.1", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 6e1eafd56be..8445a0c380d 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.0", - "@tanstack/solid-query-devtools": "^5.95.0", + "@tanstack/solid-query": "^5.95.1", + "@tanstack/solid-query-devtools": "^5.95.1", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.0", + "@tanstack/eslint-plugin-query": "^5.95.1", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 09a9dcfa20e..46a93229155 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.95.0", - "@tanstack/solid-query-devtools": "^5.95.0", + "@tanstack/solid-query": "^5.95.1", + "@tanstack/solid-query-devtools": "^5.95.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index c28e3cd2e8b..fa149cb02c0 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8" + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 0ae55b3f2a2..52a8214c6a5 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.0", - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8", - "@tanstack/svelte-query-persist-client": "^6.1.8" + "@tanstack/query-async-storage-persister": "^5.95.1", + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9", + "@tanstack/svelte-query-persist-client": "^6.1.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 8aa8049d57b..60afe67bc1f 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8" + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index e468fe9d1a8..1479cd28778 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8" + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index d50340bebf9..0f34b56dab1 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8" + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index e107497d4df..72c46e84b2c 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8" + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index e8d4713d669..0bae2b61dbe 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8" + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 92a997164fa..16fbcea00f2 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.8", - "@tanstack/svelte-query-devtools": "^6.1.8" + "@tanstack/svelte-query": "^6.1.9", + "@tanstack/svelte-query-devtools": "^6.1.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 0b59450bb4c..cb2d2ce7b86 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.0", - "@tanstack/vue-query-devtools": "^6.1.8", + "@tanstack/vue-query": "^5.95.1", + "@tanstack/vue-query-devtools": "^6.1.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 0103c036922..7b4942b118b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.0", + "@tanstack/vue-query": "^5.95.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 9126b162437..2fb15c0d898 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.95.0", - "@tanstack/query-persist-client-core": "^5.95.0", - "@tanstack/query-sync-storage-persister": "^5.95.0", - "@tanstack/vue-query": "^5.95.0", + "@tanstack/query-core": "^5.95.1", + "@tanstack/query-persist-client-core": "^5.95.1", + "@tanstack/query-sync-storage-persister": "^5.95.1", + "@tanstack/vue-query": "^5.95.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index ced9d9e8363..da692c74d6f 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.0", - "@tanstack/vue-query-devtools": "^6.1.8", + "@tanstack/vue-query": "^5.95.1", + "@tanstack/vue-query-devtools": "^6.1.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 5fee7988525..1cd126da18b 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.0", + "@tanstack/angular-query-experimental": "^5.95.1", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 0e032192cda..e756418682c 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index d26a7f40942..61e4150d2f4 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.95.0", + "version": "5.95.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 83aa424b340..2c09a24c3a5 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.95.1 + - @tanstack/query-persist-client-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 242a9ab44a0..11624c10f50 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.95.0", + "version": "5.95.1", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 7deecf52f9a..2c489074c6b 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.95.1 + ## 5.95.0 ### Minor Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index ae510373d3f..e54a6e5dadd 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.95.0", + "version": "5.95.1", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index e75d7961993..12a508359a6 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.95.1 + - @tanstack/query-devtools@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index d09fc938744..307bc927169 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.95.0", + "version": "5.95.1", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 195b075d1d1..f45663c2e71 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.95.1 + - @tanstack/query-persist-client-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 2f9ca4688d1..31256b8b61b 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.95.0", + "version": "5.95.1", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index e19fc0c31a0..3508f1723f8 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index b7ad019513f..2b6f3025502 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.95.0", + "version": "5.95.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 2184e2f219a..9140608c834 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + - @tanstack/query-persist-client-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 3bbfb09426f..f91b45c2bce 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.95.0", + "version": "5.95.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index d6a941f16c0..bc33fa7edbd 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 870ddc7cb21..94dd5db9641 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.95.0", + "version": "5.95.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index a7fb452b993..f57fad2b0c2 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.95.1 + +### Patch Changes + +- fix(timeoutManager): make sure NodeJs.Timout doesn't leak ([#10323](https://github.com/TanStack/query/pull/10323)) + ## 5.95.0 ## 5.94.5 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index bc9c0ef4db3..68a2d1ed52c 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.95.0", + "version": "5.95.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 8be23b63288..662e4ed479d 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.95.1 + ## 5.95.0 ## 5.94.5 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 7b176908d7f..12facd42451 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.95.0", + "version": "5.95.1", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 01c9b548db9..7f6372cf910 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 6c538c8fad6..c7f0157cc25 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.95.0", + "version": "5.95.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index dbc9ac3cf66..88927c3f470 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + - @tanstack/query-persist-client-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 2c6b39ce320..50d7aff0508 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.95.0", + "version": "5.95.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 10ac41a34cd..1fc439eec34 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.1 + - @tanstack/react-query@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index ca3558c01e2..4e279f6000d 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.95.0", + "version": "5.95.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 7a7eded7c20..025378318d9 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index b2d7887a26e..fff9d8dcd66 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.95.0", + "version": "5.95.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 65b4cef7a49..a1a6b7ed78c 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.1 + - @tanstack/react-query@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 1ad71a9411c..7a8051da842 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.95.0", + "version": "5.95.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index ccd95e54843..17bd768c0a7 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 33b27da1bb1..f8295591e80 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.95.0", + "version": "5.95.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index a4682fb9231..929c984fe07 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.1 + - @tanstack/solid-query@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index a94f11fc1b9..df8ebc2fe57 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.95.0", + "version": "5.95.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 91ea3335849..a8cd2ddb841 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.95.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.1 + - @tanstack/solid-query@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index c966dd6d59d..199b5de190b 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.95.0", + "version": "5.95.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 5d2eef715c6..f03636f03be 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index bb9feb2f105..ec98a70791a 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.95.0", + "version": "5.95.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 6522235536c..2bf0537d71b 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.9 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.1 + - @tanstack/svelte-query@6.1.9 + ## 6.1.8 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 2619d172202..f76dc607375 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.8", + "version": "6.1.9", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 3d977588593..c37649530b3 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.9 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.1 + - @tanstack/svelte-query@6.1.9 + ## 6.1.8 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index da1fade9605..16d4db1a6fd 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.8", + "version": "6.1.9", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index e36adfd1baa..2d14c27ba80 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.9 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 6.1.8 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index fcc55034c46..52a8afc603d 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.8", + "version": "6.1.9", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index bfa76230e4c..7890dea7271 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.9 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.1 + - @tanstack/vue-query@5.95.1 + ## 6.1.8 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 13c840a7c2f..e4d71422670 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.8", + "version": "6.1.9", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 3e6d2ca841c..7108cf4fc4b 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.95.1 + +### Patch Changes + +- Updated dependencies [[`1f1775c`](https://github.com/TanStack/query/commit/1f1775ca92f2b6c035682947ff3b3424804ff31a)]: + - @tanstack/query-core@5.95.1 + ## 5.95.0 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 7b2b5907b0c..e47d3d0110b 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.95.0", + "version": "5.95.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b74bdaf6ed..505950f8fe4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.11 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) '@tanstack/solid-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.8 + specifier: ^6.1.9 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From cd5a35b328837781aa4f9305bb2bd7877ca934e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Mon, 23 Mar 2026 15:58:17 +0100 Subject: [PATCH 016/414] fix/nodejs timeout (#10325) * fix(timeout): make sure NodeJs.Timout doesn't leak * changeset * fix(tsconfig): include src directory in production configuration --- .changeset/funny-views-build.md | 5 +++++ packages/preact-query/tsconfig.prod.json | 1 + packages/query-core/tsconfig.prod.json | 4 +++- packages/react-query/tsconfig.prod.json | 1 + packages/solid-query/tsconfig.prod.json | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/funny-views-build.md diff --git a/.changeset/funny-views-build.md b/.changeset/funny-views-build.md new file mode 100644 index 00000000000..524b36bfe36 --- /dev/null +++ b/.changeset/funny-views-build.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +fix(timeoutManager): make sure NodeJs.Timout doesn't leak diff --git a/packages/preact-query/tsconfig.prod.json b/packages/preact-query/tsconfig.prod.json index c2c63818c2d..2bb29fdf02a 100644 --- a/packages/preact-query/tsconfig.prod.json +++ b/packages/preact-query/tsconfig.prod.json @@ -5,5 +5,6 @@ "composite": false, "rootDir": "../../" }, + "include": ["src"], "exclude": ["src/__tests__"] } diff --git a/packages/query-core/tsconfig.prod.json b/packages/query-core/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/query-core/tsconfig.prod.json +++ b/packages/query-core/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/react-query/tsconfig.prod.json b/packages/react-query/tsconfig.prod.json index c2c63818c2d..2bb29fdf02a 100644 --- a/packages/react-query/tsconfig.prod.json +++ b/packages/react-query/tsconfig.prod.json @@ -5,5 +5,6 @@ "composite": false, "rootDir": "../../" }, + "include": ["src"], "exclude": ["src/__tests__"] } diff --git a/packages/solid-query/tsconfig.prod.json b/packages/solid-query/tsconfig.prod.json index c2c63818c2d..2bb29fdf02a 100644 --- a/packages/solid-query/tsconfig.prod.json +++ b/packages/solid-query/tsconfig.prod.json @@ -5,5 +5,6 @@ "composite": false, "rootDir": "../../" }, + "include": ["src"], "exclude": ["src/__tests__"] } From 1047cdc393fac7c98822c993d70c28f58833c63d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 16:31:44 +0100 Subject: [PATCH 017/414] ci: Version Packages (#10326) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/funny-views-build.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 244 +++++++++--------- 108 files changed, 437 insertions(+), 273 deletions(-) delete mode 100644 .changeset/funny-views-build.md diff --git a/.changeset/funny-views-build.md b/.changeset/funny-views-build.md deleted file mode 100644 index 524b36bfe36..00000000000 --- a/.changeset/funny-views-build.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -fix(timeoutManager): make sure NodeJs.Timout doesn't leak diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index aaef8233765..903d3253bf4 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index eaa5b57b410..e44b1b0c448 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", - "@tanstack/angular-query-persist-client": "^5.95.1", - "@tanstack/query-async-storage-persister": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-persist-client": "^5.95.2", + "@tanstack/query-async-storage-persister": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 32757f73138..3e40f4c27a2 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 4d1df22f33a..a9f31870a14 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index af9d5fe6059..bd71538ef99 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 38a0b3513c2..74fb6231358 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 1223219e1f8..3d3d47bc9fb 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 4c72fa0837d..f5a0be6bb7f 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index be76f7a12a0..4eb9722e85e 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 97c40bd1056..b118696fe71 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index ec85397a73d..46cfe6069eb 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 736faa680e6..5d73214fefb 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.1", + "@tanstack/eslint-plugin-query": "^5.95.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 57e22d7bc5b..7bc24a1f570 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index c9704502199..913e77a87bf 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index b345f01b292..9adbb6e2f8c 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.1", - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", - "@tanstack/react-query-persist-client": "^5.95.1", + "@tanstack/query-async-storage-persister": "^5.95.2", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query-persist-client": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.1", + "@tanstack/eslint-plugin-query": "^5.95.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 20aac9c806a..5e05c23684f 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 75463cc0e79..1fc7e778f6a 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 6ad8f1a9c7f..5c2b7bd40b1 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 47e8c486f51..3ae1a59303f 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.1", - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", - "@tanstack/react-query-persist-client": "^5.95.1", + "@tanstack/query-async-storage-persister": "^5.95.2", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query-persist-client": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.1", + "@tanstack/eslint-plugin-query": "^5.95.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 06504c180ba..c48efd8f489 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query": "^5.95.2", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.1", + "@tanstack/eslint-plugin-query": "^5.95.2", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 7e3f908da16..cdf078aaf9e 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index d010d038296..eaa11f8c146 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index d3d2cbf8d1a..69f3a6c2412 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 04444843ec7..99f9aa7ab6d 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", - "@tanstack/react-query-next-experimental": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query-next-experimental": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index f27128db65c..49273964aa8 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 863f9fb92d4..7ab04b3f08d 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.1", + "@tanstack/query-async-storage-persister": "^5.95.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", - "@tanstack/react-query-persist-client": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query-persist-client": "^5.95.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index d218ab8e982..c007d7aadc4 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index c6e87128d2f..98254a1d554 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 1f0db2cf6a5..7bf4094570a 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 684343b67c6..9d8750044ab 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 98f6e0966b2..aba01da4c5d 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index d97a6c4590f..9ccc5dec5a5 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index a4e9765b412..8e6e3875cfe 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 907a8ec493d..08223349923 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 3604aacb9c4..d71d077c885 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 980809000ff..8e1548883e7 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 5b5637a7187..2c5e84a3cb9 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 1a39f7f48cd..057f4f367c6 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 97341fd0ac6..a754e7067ca 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.95.1", - "@tanstack/solid-query-devtools": "^5.95.1", + "@tanstack/solid-query": "^5.95.2", + "@tanstack/solid-query-devtools": "^5.95.2", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index bfd05e9f7b0..44a3e35f0cd 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.1", - "@tanstack/solid-query-devtools": "^5.95.1", + "@tanstack/solid-query": "^5.95.2", + "@tanstack/solid-query-devtools": "^5.95.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 14957a18bb2..f86e3d6b2e9 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.1", - "@tanstack/solid-query-devtools": "^5.95.1", + "@tanstack/solid-query": "^5.95.2", + "@tanstack/solid-query-devtools": "^5.95.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 9ead8b11ce2..98e62b07e7f 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.1", - "@tanstack/solid-query-devtools": "^5.95.1", + "@tanstack/solid-query": "^5.95.2", + "@tanstack/solid-query-devtools": "^5.95.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 5f1051802cf..587a859f78d 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.1", - "@tanstack/solid-query": "^5.95.1", - "@tanstack/solid-query-devtools": "^5.95.1", - "@tanstack/solid-query-persist-client": "^5.95.1", + "@tanstack/query-async-storage-persister": "^5.95.2", + "@tanstack/solid-query": "^5.95.2", + "@tanstack/solid-query-devtools": "^5.95.2", + "@tanstack/solid-query-persist-client": "^5.95.2", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 8445a0c380d..fe1678886b2 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.1", - "@tanstack/solid-query-devtools": "^5.95.1", + "@tanstack/solid-query": "^5.95.2", + "@tanstack/solid-query-devtools": "^5.95.2", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.1", + "@tanstack/eslint-plugin-query": "^5.95.2", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 46a93229155..fc176c710af 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.95.1", - "@tanstack/solid-query-devtools": "^5.95.1", + "@tanstack/solid-query": "^5.95.2", + "@tanstack/solid-query-devtools": "^5.95.2", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index fa149cb02c0..c9a20b043af 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9" + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 52a8214c6a5..00fbe765dae 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.1", - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9", - "@tanstack/svelte-query-persist-client": "^6.1.9" + "@tanstack/query-async-storage-persister": "^5.95.2", + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10", + "@tanstack/svelte-query-persist-client": "^6.1.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 60afe67bc1f..6f59db8f7ea 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9" + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 1479cd28778..be6b942663b 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9" + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 0f34b56dab1..babe8dfc01e 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9" + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 72c46e84b2c..1e1f300e45f 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9" + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 0bae2b61dbe..b1b4c92419b 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9" + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 16fbcea00f2..532539568a0 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.9", - "@tanstack/svelte-query-devtools": "^6.1.9" + "@tanstack/svelte-query": "^6.1.10", + "@tanstack/svelte-query-devtools": "^6.1.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index cb2d2ce7b86..48899dad84c 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.1", - "@tanstack/vue-query-devtools": "^6.1.9", + "@tanstack/vue-query": "^5.95.2", + "@tanstack/vue-query-devtools": "^6.1.10", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 7b4942b118b..5381a58aeed 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.1", + "@tanstack/vue-query": "^5.95.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 2fb15c0d898..a8d69e6f6ef 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.95.1", - "@tanstack/query-persist-client-core": "^5.95.1", - "@tanstack/query-sync-storage-persister": "^5.95.1", - "@tanstack/vue-query": "^5.95.1", + "@tanstack/query-core": "^5.95.2", + "@tanstack/query-persist-client-core": "^5.95.2", + "@tanstack/query-sync-storage-persister": "^5.95.2", + "@tanstack/vue-query": "^5.95.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index da692c74d6f..1ab089d7772 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.1", - "@tanstack/vue-query-devtools": "^6.1.9", + "@tanstack/vue-query": "^5.95.2", + "@tanstack/vue-query-devtools": "^6.1.10", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 1cd126da18b..949a93b0afe 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.1", + "@tanstack/angular-query-experimental": "^5.95.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index e756418682c..a07c5e7f93b 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 61e4150d2f4..6613b1e96ce 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.95.1", + "version": "5.95.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 2c09a24c3a5..f9e263e929d 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.95.2 + - @tanstack/query-persist-client-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 11624c10f50..44577c80468 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.95.1", + "version": "5.95.2", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 2c489074c6b..1261c0cefe6 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.95.2 + ## 5.95.1 ## 5.95.0 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index e54a6e5dadd..bb729cd58b0 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.95.1", + "version": "5.95.2", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 12a508359a6..c55afec3bca 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.95.2 + - @tanstack/query-devtools@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 307bc927169..00463014ce3 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.95.1", + "version": "5.95.2", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index f45663c2e71..80e5e66147f 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.95.2 + - @tanstack/query-persist-client-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 31256b8b61b..14d318ae737 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.95.1", + "version": "5.95.2", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 3508f1723f8..39334670d0d 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 2b6f3025502..a54ffab332a 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.95.1", + "version": "5.95.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 9140608c834..d7e95f022cd 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + - @tanstack/query-persist-client-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index f91b45c2bce..d8c96122ab1 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.95.1", + "version": "5.95.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index bc33fa7edbd..3a620eda66a 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 94dd5db9641..bc9dcd0659f 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.95.1", + "version": "5.95.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index f57fad2b0c2..f093c891c8e 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.95.2 + +### Patch Changes + +- fix(timeoutManager): make sure NodeJs.Timout doesn't leak ([#10325](https://github.com/TanStack/query/pull/10325)) + ## 5.95.1 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 68a2d1ed52c..8375b125c0b 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.95.1", + "version": "5.95.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 662e4ed479d..b6b2b0d3cb3 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.95.2 + ## 5.95.1 ## 5.95.0 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 12facd42451..8423f38243b 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.95.1", + "version": "5.95.2", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 7f6372cf910..5d172047df0 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index c7f0157cc25..bbf5207f2dd 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.95.1", + "version": "5.95.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 88927c3f470..7810a26392a 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + - @tanstack/query-persist-client-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 50d7aff0508..c7faea7baba 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.95.1", + "version": "5.95.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 1fc439eec34..1640b4934dd 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.2 + - @tanstack/react-query@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 4e279f6000d..dbfcdd67e1b 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.95.1", + "version": "5.95.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 025378318d9..237f6dc259b 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index fff9d8dcd66..9ea7f2a2a65 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.95.1", + "version": "5.95.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index a1a6b7ed78c..16928740b73 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.2 + - @tanstack/react-query@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 7a8051da842..486a31ea8aa 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.95.1", + "version": "5.95.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 17bd768c0a7..1ba42415992 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index f8295591e80..90fdb483bbf 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.95.1", + "version": "5.95.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 929c984fe07..50a9249b30e 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.2 + - @tanstack/solid-query@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index df8ebc2fe57..b23fa1aa0f2 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.95.1", + "version": "5.95.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index a8cd2ddb841..80e259fe273 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.95.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.2 + - @tanstack/solid-query@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 199b5de190b..06f671d3c30 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.95.1", + "version": "5.95.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index f03636f03be..a54560c74d5 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index ec98a70791a..4fe7ba43c50 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.95.1", + "version": "5.95.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 2bf0537d71b..c690133aa40 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.2 + - @tanstack/svelte-query@6.1.10 + ## 6.1.9 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index f76dc607375..c4eaada4804 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.9", + "version": "6.1.10", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index c37649530b3..642ae33a90a 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.95.2 + - @tanstack/svelte-query@6.1.10 + ## 6.1.9 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 16d4db1a6fd..308420aaa4e 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.9", + "version": "6.1.10", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 2d14c27ba80..ca25457602b 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.10 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 6.1.9 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 52a8afc603d..391ebb5015b 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.9", + "version": "6.1.10", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 7890dea7271..f1b1b911be4 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.95.2 + - @tanstack/vue-query@5.95.2 + ## 6.1.9 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index e4d71422670..f63e46b1d78 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.9", + "version": "6.1.10", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 7108cf4fc4b..f2d25a96056 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.95.2 + +### Patch Changes + +- Updated dependencies [[`cd5a35b`](https://github.com/TanStack/query/commit/cd5a35b328837781aa4f9305bb2bd7877ca934e9)]: + - @tanstack/query-core@5.95.2 + ## 5.95.1 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index e47d3d0110b..ce5f500febe 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.95.1", + "version": "5.95.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 505950f8fe4..b2d67acefa7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.11 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) '@tanstack/solid-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.9 + specifier: ^6.1.10 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 42259260e19c953f60c240299ad033271230a345 Mon Sep 17 00:00:00 2001 From: japark <67992955+JangHwanPark@users.noreply.github.com> Date: Sat, 28 Mar 2026 15:48:04 +0900 Subject: [PATCH 018/414] test(eslint-plugin-query/stable-query-client): add tests for async server component and destructuring pattern (#10315) * test(eslint-plugin-query/stable-query-client): add tests for uncovered branches Add 3 test cases to improve branch coverage of 'stable-query-client' rule from 78.57% to 92.85%. - add valid case for arrow function component where fnAncestor has no id - add valid case for async server component with @tanstack/react-query import - add invalid case for destructuring pattern where autofix is not applicable The existing valid tests for line 58 (non-component function, async component) used @tanstack/solid-query imports, causing early return at the import check (line 44) and never reaching the target branch. * test(eslint-plugin-query/stable-query-client): remove arrow function component valid case Remove the arrow function component test case from valid cases. The current rule does not detect `new QueryClient()` inside arrow function components because `fnAncestor.id` is undefined for arrow functions. This is a false negative (known limitation), not intended behavior. Adding it as a valid case would bake that bug into the test suite and cause failures when the rule is fixed in the future. --------- Co-authored-by: Wonsuk Choi --- .../src/__tests__/stable-query-client.test.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts b/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts index 0ceda63523d..0f0bfbc6838 100644 --- a/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts @@ -106,6 +106,17 @@ ruleTester.run('stable-query-client', rule, { } `, }, + { + name: 'QueryClient is not flagged in an async react-query server component', + code: normalizeIndent` + import { QueryClient } from "@tanstack/react-query"; + + async function ServerComponent() { + const queryClient = new QueryClient(); + return; + } + `, + }, ], invalid: [ { @@ -188,5 +199,18 @@ ruleTester.run('stable-query-client', rule, { `, errors: [{ messageId: 'unstable' }], }, + { + name: 'QueryClient with destructuring pattern reports error without autofix', + code: normalizeIndent` + import { QueryClient } from "@tanstack/react-query"; + + function Component() { + const { defaultOptions } = new QueryClient(); + return; + } + `, + output: null, + errors: [{ messageId: 'unstable' }], + }, ], }) From 0e766f25f4fb2912c3dc12ba1dd23ab979b084e2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 28 Mar 2026 16:19:14 +0900 Subject: [PATCH 019/414] test(eslint-plugin-query/stable-query-client): fix misleading test name for async component with 'solid-query' import (#10344) --- .../src/__tests__/stable-query-client.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts b/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts index 0f0bfbc6838..fa896ff5790 100644 --- a/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/stable-query-client.test.ts @@ -96,7 +96,7 @@ ruleTester.run('stable-query-client', rule, { `, }, { - name: 'QueryClient is invoked in an async (react server) component', + name: 'QueryClient is not flagged when imported from a non-react-query package in an async component', code: normalizeIndent` import { QueryClient } from "@tanstack/solid-query"; From 7fc6e6a911d3c63d77f44d4624fb89f26af1d44d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 28 Mar 2026 17:07:04 +0900 Subject: [PATCH 020/414] test({react,preact}-query/useSuspenseQueries): add test for not suspending but only refetching the stale query when one query has fresh and the other has stale cached data (#10345) --- .../src/__tests__/useSuspenseQueries.test.tsx | 68 +++++++++++++++++++ .../src/__tests__/useSuspenseQueries.test.tsx | 68 +++++++++++++++++++ 2 files changed, 136 insertions(+) diff --git a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx index 541eeb55900..80e956035c0 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx @@ -1010,6 +1010,74 @@ describe('useSuspenseQueries 2', () => { expect(queryFn2).toHaveBeenCalledTimes(0) }) + it('should not suspend and only refetch the stale query when one query has fresh and the other has stale cached data', async () => { + const key1 = queryKey() + const key2 = queryKey() + + queryClient.setQueryData(key1, 'cached1') + queryClient.setQueryData(key2, 'cached2') + + // Advance past staleTime (min 1000ms in suspense) so key2 becomes stale before mount + vi.advanceTimersByTime(1000) + + // Make key1 fresh again by resetting its data + queryClient.setQueryData(key1, 'cached1') + + const queryFn1 = vi.fn(() => sleep(20).then(() => 'data1')) + + function Page() { + const [result1, result2] = useSuspenseQueries({ + queries: [ + { + queryKey: key1, + queryFn: queryFn1, + }, + { + queryKey: key2, + queryFn: () => sleep(10).then(() => 'data2'), + }, + ], + }) + + return ( +
+
data1: {result1.data}
+
data2: {result2.data}
+
+ ) + } + + const rendered = renderWithClient( + queryClient, + loading
}> + + , + ) + + // No suspend, cached data shown immediately + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + + // key1 is fresh, no refetch + expect(queryFn1).toHaveBeenCalledTimes(0) + + // key2 background refetch completes + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: data2')).toBeInTheDocument() + + // key1 is still fresh, no refetch triggered + expect(queryFn1).toHaveBeenCalledTimes(0) + + // after key2 refetch completes, key1 is still fresh with no refetch triggered + await vi.advanceTimersByTimeAsync(10) + + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: data2')).toBeInTheDocument() + expect(queryFn1).toHaveBeenCalledTimes(0) + }) + it('should not suspend but refetch when all queries have stale cached data', async () => { const key1 = queryKey() const key2 = queryKey() diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 99477661f9e..9f114cd94f4 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -988,6 +988,74 @@ describe('useSuspenseQueries 2', () => { expect(queryFn2).toHaveBeenCalledTimes(0) }) + it('should not suspend and only refetch the stale query when one query has fresh and the other has stale cached data', async () => { + const key1 = queryKey() + const key2 = queryKey() + + queryClient.setQueryData(key1, 'cached1') + queryClient.setQueryData(key2, 'cached2') + + // Advance past staleTime (min 1000ms in suspense) so key2 becomes stale before mount + vi.advanceTimersByTime(1000) + + // Make key1 fresh again by resetting its data + queryClient.setQueryData(key1, 'cached1') + + const queryFn1 = vi.fn(() => sleep(20).then(() => 'data1')) + + function Page() { + const [result1, result2] = useSuspenseQueries({ + queries: [ + { + queryKey: key1, + queryFn: queryFn1, + }, + { + queryKey: key2, + queryFn: () => sleep(10).then(() => 'data2'), + }, + ], + }) + + return ( +
+
data1: {result1.data}
+
data2: {result2.data}
+
+ ) + } + + const rendered = renderWithClient( + queryClient, + loading}> + + , + ) + + // No suspend, cached data shown immediately + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + + // key1 is fresh, no refetch + expect(queryFn1).toHaveBeenCalledTimes(0) + + // key2 background refetch completes + await act(() => vi.advanceTimersByTimeAsync(11)) + + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: data2')).toBeInTheDocument() + + // key1 is still fresh, no refetch triggered + expect(queryFn1).toHaveBeenCalledTimes(0) + + // after key2 refetch completes, key1 is still fresh with no refetch triggered + await act(() => vi.advanceTimersByTimeAsync(10)) + + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: data2')).toBeInTheDocument() + expect(queryFn1).toHaveBeenCalledTimes(0) + }) + it('should not suspend but refetch when all queries have stale cached data', async () => { const key1 = queryKey() const key2 = queryKey() From 0e939ac802ad1e1245fa44482f85b7c2c3f62497 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 09:08:49 +0000 Subject: [PATCH 021/414] chore(deps): update dependency astro to v5.18.1 [security] (#10338) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 875 +++++++++++++++++++++++-------------------------- 1 file changed, 416 insertions(+), 459 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2d67acefa7..7117237cdb1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1520,16 +1520,16 @@ importers: version: 0.9.6(prettier@3.8.1)(typescript@5.8.3) '@astrojs/node': specifier: ^9.1.3 - version: 9.5.4(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2)) + version: 9.5.4(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2)) '@astrojs/solid-js': specifier: ^5.0.7 version: 5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(solid-js@1.9.11)(terser@5.46.0)(yaml@2.8.2) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2)) + version: 6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) + version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': specifier: ^5.95.2 version: link:../../../packages/solid-query @@ -1538,7 +1538,7 @@ importers: version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 - version: 5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) + version: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) solid-js: specifier: ^1.9.7 version: 1.9.11 @@ -1724,7 +1724,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1761,7 +1761,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1792,7 +1792,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1823,7 +1823,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1854,7 +1854,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1882,7 +1882,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1913,7 +1913,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1947,7 +1947,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) tailwindcss: specifier: ^4.1.13 version: 4.1.18 @@ -2278,7 +2278,7 @@ importers: version: 5.6.6(webpack@5.105.0) webpack: specifier: ^5.96.1 - version: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + version: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 version: 5.1.4(webpack@5.105.0) @@ -2373,13 +2373,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-plugin-externalize-deps: specifier: ^0.9.0 version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -2649,7 +2649,7 @@ importers: version: 2.2.6 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.3)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) @@ -2826,7 +2826,7 @@ importers: version: 1.9.11 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.3)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) @@ -2851,7 +2851,7 @@ importers: version: 1.9.11 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.3)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) @@ -2879,7 +2879,7 @@ importers: version: 1.9.11 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.3)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) @@ -2913,7 +2913,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.4.5 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.9.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2947,7 +2947,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.4.5 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.9.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2984,7 +2984,7 @@ importers: version: 5.53.5 svelte-check: specifier: ^4.4.5 - version: 4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.9.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -3327,6 +3327,9 @@ packages: '@astrojs/internal-helpers@0.7.5': resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} + '@astrojs/internal-helpers@0.7.6': + resolution: {integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==} + '@astrojs/language-server@2.16.3': resolution: {integrity: sha512-yO5K7RYCMXUfeDlnU6UnmtnoXzpuQc0yhlaCNZ67k1C/MiwwwvMZz+LGa+H35c49w5QBfvtr4w4Zcf5PcH8uYA==} hasBin: true @@ -3339,8 +3342,8 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@6.3.10': - resolution: {integrity: sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==} + '@astrojs/markdown-remark@6.3.11': + resolution: {integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==} '@astrojs/node@9.5.4': resolution: {integrity: sha512-AbPSZsMGu8hXPR2XxV79RaKy8h6wijhtoqZGeUf4OXg2w1mxXlx4VnIc1D+QvtsgauSz7P5PLhmvf6w/J41GJg==} @@ -3512,8 +3515,8 @@ packages: resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} engines: {node: '>=6.0.0'} hasBin: true @@ -4542,158 +4545,158 @@ packages: resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} engines: {node: '>=18'} - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.27.4': + resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/android-arm64@0.27.4': + resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm@0.27.4': + resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.27.4': + resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.27.4': + resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-x64@0.27.4': + resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.27.4': + resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.27.4': + resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/linux-arm64@0.27.4': + resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.27.4': + resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-ia32@0.27.4': + resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.27.4': + resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-mips64el@0.27.4': + resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-ppc64@0.27.4': + resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.27.4': + resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.27.4': + resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-x64@0.27.4': + resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/netbsd-arm64@0.27.4': + resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.27.4': + resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/openbsd-arm64@0.27.4': + resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-x64@0.27.4': + resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + '@esbuild/openharmony-arm64@0.27.4': + resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/sunos-x64@0.27.4': + resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.27.4': + resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-ia32@0.27.4': + resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.27.4': + resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -4786,7 +4789,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {'0': node >=0.10.0} + engines: {node: '>=0.10.0'} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -6661,38 +6664,38 @@ packages: '@shikijs/core@1.29.2': resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} - '@shikijs/core@3.22.0': - resolution: {integrity: sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==} + '@shikijs/core@3.23.0': + resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} '@shikijs/engine-javascript@1.29.2': resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} - '@shikijs/engine-javascript@3.22.0': - resolution: {integrity: sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==} + '@shikijs/engine-javascript@3.23.0': + resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} - '@shikijs/engine-oniguruma@3.22.0': - resolution: {integrity: sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==} + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} '@shikijs/langs@1.29.2': resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} - '@shikijs/langs@3.22.0': - resolution: {integrity: sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==} + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} '@shikijs/themes@1.29.2': resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} - '@shikijs/themes@3.22.0': - resolution: {integrity: sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==} + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} - '@shikijs/types@3.22.0': - resolution: {integrity: sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==} + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -7173,8 +7176,8 @@ packages: '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} @@ -8174,8 +8177,8 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro@5.17.1: - resolution: {integrity: sha512-oD3tlxTaVWGq/Wfbqk6gxzVRz98xa/rYlpe+gU2jXJMSD01k6sEDL01ZlT8mVSYB/rMgnvIOfiQQ3BbLdN237A==} + astro@5.18.1: + resolution: {integrity: sha512-m4VWilWZ+Xt6NPoYzC4CgGZim/zQUO7WFL0RHCH0AiEavF1153iC3+me2atDvXpf/yX4PyGUeD8wZLq1cirT3g==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -9148,8 +9151,8 @@ packages: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - css-tree@3.1.0: - resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} css-what@6.2.2: @@ -9377,8 +9380,8 @@ packages: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} - devalue@5.6.3: - resolution: {integrity: sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg==} + devalue@5.6.4: + resolution: {integrity: sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -9386,8 +9389,8 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff@8.0.3: - resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} diffie-hellman@5.0.3: @@ -9650,8 +9653,8 @@ packages: esbuild: ^0.27.2 solid-js: '>= 1.0' - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.27.4: + resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} engines: {node: '>=18'} hasBin: true @@ -10231,8 +10234,8 @@ packages: fontfaceobserver@2.3.0: resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} - fontkitten@1.0.2: - resolution: {integrity: sha512-piJxbLnkD9Xcyi7dWJRnqszEURixe7CrF/efBfbffe2DPyabmuIuqraruY8cXTs19QoM8VJzx47BDRVNXETM7Q==} + fontkitten@1.0.3: + resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==} engines: {node: '>=20'} for-each@0.3.5: @@ -10395,9 +10398,6 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} - get-tsconfig@4.13.7: resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} @@ -10507,12 +10507,12 @@ packages: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + h3@1.15.10: + resolution: {integrity: sha512-YzJeWSkDZxAhvmp8dexjRK5hxziRO7I9m0N53WhvYL5NiWfkUkzssVzY9jvGu0HBoLFW6+duYmNSn6MaZBCCtg==} + h3@1.15.3: resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==} - h3@1.15.5: - resolution: {integrity: sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==} - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -11187,8 +11187,8 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} is64bit@2.0.0: @@ -11803,8 +11803,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.5: - resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -11917,8 +11917,8 @@ packages: mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} @@ -11953,8 +11953,8 @@ packages: mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - mdn-data@2.12.2: - resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -12739,8 +12739,8 @@ packages: oniguruma-to-es@2.3.0: resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} - oniguruma-to-es@4.3.4: - resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} + oniguruma-to-es@4.3.5: + resolution: {integrity: sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==} open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} @@ -13058,8 +13058,8 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} picomatch@3.0.1: @@ -13070,6 +13070,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + pidtree@0.5.0: resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==} engines: {node: '>=0.10'} @@ -13981,8 +13985,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - sax@1.4.4: - resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} engines: {node: '>=11.0.0'} saxes@6.0.0: @@ -14187,8 +14191,8 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} - shiki@3.22.0: - resolution: {integrity: sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==} + shiki@3.23.0: + resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -14281,8 +14285,8 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - smol-toml@1.6.0: - resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} + smol-toml@1.6.1: + resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} engines: {node: '>= 18'} snapdragon-node@2.1.1: @@ -14688,8 +14692,8 @@ packages: resolution: {integrity: sha512-YkqERnF05g8KLdDZwZrF8/i1eSbj6Eoat8Jjr2IfruZz9StLuBqo8sfCSzjosNKd+ZrQ8DkKZDjpO5y3ht1Pow==} engines: {node: '>=18'} - svgo@4.0.0: - resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} + svgo@4.0.1: + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} engines: {node: '>=16'} hasBin: true @@ -14835,8 +14839,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + tinyexec@1.0.4: + resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} tinyglobby@0.2.14: @@ -15032,8 +15036,8 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-fest@5.4.4: - resolution: {integrity: sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==} + type-fest@5.5.0: + resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==} engines: {node: '>=20'} type-is@2.0.1: @@ -15209,8 +15213,8 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unifont@0.7.3: - resolution: {integrity: sha512-b0GtQzKCyuSHGsfj5vyN8st7muZ6VCI4XD4vFlr7Uy1rlWVYxC3npnfk8MyreHxJYrz1ooLDqDzFe9XqQTlAhA==} + unifont@0.7.4: + resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} unimport@5.6.0: resolution: {integrity: sha512-8rqAmtJV8o60x46kBAJKtHpJDJWkA2xcBqWKPI14MgUb05o1pnpnCnXSxedUXyeq7p8fR5g3pTo2BaswZ9lD9A==} @@ -15307,8 +15311,8 @@ packages: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} - unstorage@1.17.4: - resolution: {integrity: sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==} + unstorage@1.17.5: + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} peerDependencies: '@azure/app-configuration': ^1.8.0 '@azure/cosmos': ^4.2.0 @@ -15559,8 +15563,8 @@ packages: yaml: optional: true - vitefu@1.1.1: - resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} + vitefu@1.1.2: + resolution: {integrity: sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==} peerDependencies: vite: ^6.4.1 peerDependenciesMeta: @@ -16159,10 +16163,10 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod-to-json-schema@3.25.1: - resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} peerDependencies: - zod: ^3.25 || ^4 + zod: ^3.25.28 || ^4 zod-to-ts@1.2.0: resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} @@ -16356,7 +16360,7 @@ snapshots: '@vitejs/plugin-basic-ssl': 2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) beasties: 0.3.5 browserslist: 4.28.1 - esbuild: 0.27.3 + esbuild: 0.27.4 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 jsonc-parser: 3.3.1 @@ -16512,15 +16516,15 @@ snapshots: '@csstools/css-color-parser': 4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.2.5 + lru-cache: 11.2.7 '@asamuzakjp/dom-selector@6.7.8': dependencies: '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 - css-tree: 3.1.0 + css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.5 + lru-cache: 11.2.7 '@asamuzakjp/nwsapi@2.3.9': {} @@ -16541,6 +16545,8 @@ snapshots: '@astrojs/internal-helpers@0.7.5': {} + '@astrojs/internal-helpers@0.7.6': {} + '@astrojs/language-server@2.16.3(prettier@3.8.1)(typescript@5.8.3)': dependencies: '@astrojs/compiler': 2.13.1 @@ -16566,9 +16572,9 @@ snapshots: transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@6.3.10': + '@astrojs/markdown-remark@6.3.11': dependencies: - '@astrojs/internal-helpers': 0.7.5 + '@astrojs/internal-helpers': 0.7.6 '@astrojs/prism': 3.3.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 @@ -16582,8 +16588,8 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 3.22.0 - smol-toml: 1.6.0 + shiki: 3.23.0 + smol-toml: 1.6.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.1.0 @@ -16592,10 +16598,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.5.4(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))': + '@astrojs/node@9.5.4(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))': dependencies: '@astrojs/internal-helpers': 0.7.5 - astro: 5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) send: 1.2.1 server-destroy: 1.0.1 transitivePeerDependencies: @@ -16625,9 +16631,9 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2))': + '@astrojs/tailwind@6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2))': dependencies: - astro: 5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) autoprefixer: 10.4.24(postcss@8.5.6) postcss: 8.5.6 postcss-load-config: 4.0.2(postcss@8.5.6) @@ -16642,20 +16648,20 @@ snapshots: dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 - is-wsl: 3.1.0 + is-wsl: 3.1.1 which-pm-runs: 1.1.0 transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3))': + '@astrojs/vercel@8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.7.4 '@vercel/analytics': 1.6.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@vercel/functions': 2.2.13 '@vercel/nft': 0.30.3(encoding@0.1.13)(rollup@4.57.1) '@vercel/routing-utils': 5.3.2 - astro: 5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) - esbuild: 0.27.3 + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) + esbuild: 0.27.4 tinyglobby: 0.2.15 transitivePeerDependencies: - '@aws-sdk/credential-provider-web-identity' @@ -16700,7 +16706,7 @@ snapshots: '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.3) '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -16719,7 +16725,7 @@ snapshots: '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -16742,7 +16748,7 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -16890,7 +16896,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.29.0': + '@babel/parser@7.29.2': dependencies: '@babel/types': 7.29.0 @@ -17614,7 +17620,7 @@ snapshots: '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@babel/traverse@7.29.0': @@ -17622,7 +17628,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.4.3 @@ -17642,7 +17648,7 @@ snapshots: '@capsizecss/unpack@4.0.0': dependencies: - fontkitten: 1.0.2 + fontkitten: 1.0.3 '@changesets/apply-release-plan@7.0.14': dependencies: @@ -18126,82 +18132,82 @@ snapshots: esquery: 1.7.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.27.4': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-arm64@0.27.4': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/android-arm@0.27.4': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/android-x64@0.27.4': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-arm64@0.27.4': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.27.4': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.27.4': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-x64@0.27.4': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/linux-arm64@0.27.4': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/linux-arm@0.27.4': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-ia32@0.27.4': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-loong64@0.27.4': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-mips64el@0.27.4': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-ppc64@0.27.4': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-riscv64@0.27.4': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-s390x@0.27.4': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-x64@0.27.4': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/netbsd-arm64@0.27.4': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/netbsd-x64@0.27.4': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/openbsd-arm64@0.27.4': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/openbsd-x64@0.27.4': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@esbuild/openharmony-arm64@0.27.4': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/sunos-x64@0.27.4': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/win32-arm64@0.27.4': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/win32-ia32@0.27.4': optional: true - '@esbuild/win32-x64@0.27.3': + '@esbuild/win32-x64@0.27.4': optional: true '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))': @@ -18568,7 +18574,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@expo/config': 10.0.11 '@expo/env': 0.4.2 @@ -18674,10 +18680,10 @@ snapshots: '@gerrit0/mini-shiki@3.22.0': dependencies: - '@shikijs/engine-oniguruma': 3.22.0 - '@shikijs/langs': 3.22.0 - '@shikijs/themes': 3.22.0 - '@shikijs/types': 3.22.0 + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 '@graphql-typed-document-node/core@3.2.0(graphql@16.12.0)': @@ -19269,7 +19275,7 @@ snapshots: pkce-challenge: 5.0.1 raw-body: 3.0.2 zod: 4.1.13 - zod-to-json-schema: 3.25.1(zod@4.1.13) + zod-to-json-schema: 3.25.2(zod@4.1.13) transitivePeerDependencies: - supports-color @@ -19494,7 +19500,7 @@ snapshots: agent-base: 7.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - lru-cache: 11.2.5 + lru-cache: 11.2.7 socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color @@ -19511,7 +19517,7 @@ snapshots: dependencies: '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 - lru-cache: 11.2.5 + lru-cache: 11.2.7 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 promise-retry: 2.0.1 @@ -19757,7 +19763,7 @@ snapshots: '@parcel/watcher-wasm@2.5.6': dependencies: is-glob: 4.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 '@parcel/watcher-win32-arm64@2.5.6': optional: true @@ -19773,7 +19779,7 @@ snapshots: detect-libc: 2.1.2 is-glob: 4.0.3 node-addon-api: 7.1.1 - picomatch: 4.0.3 + picomatch: 4.0.4 optionalDependencies: '@parcel/watcher-android-arm64': 2.5.6 '@parcel/watcher-darwin-arm64': 2.5.6 @@ -19914,7 +19920,7 @@ snapshots: '@react-native/codegen@0.76.9(@babel/preset-env@7.29.0(@babel/core@7.29.0))': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/preset-env': 7.29.0(@babel/core@7.29.0) glob: 7.2.3 hermes-parser: 0.23.1 @@ -20050,10 +20056,10 @@ snapshots: '@rollup/pluginutils': 5.3.0(rollup@4.57.1) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.4) is-reference: 1.2.1 magic-string: 0.30.21 - picomatch: 4.0.3 + picomatch: 4.0.4 optionalDependencies: rollup: 4.57.1 @@ -20099,13 +20105,13 @@ snapshots: '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 2.3.2 '@rollup/pluginutils@5.3.0(rollup@4.57.1)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.3 + picomatch: 4.0.4 optionalDependencies: rollup: 4.57.1 @@ -20306,9 +20312,9 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/core@3.22.0': + '@shikijs/core@3.23.0': dependencies: - '@shikijs/types': 3.22.0 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 @@ -20319,44 +20325,44 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 2.3.0 - '@shikijs/engine-javascript@3.22.0': + '@shikijs/engine-javascript@3.23.0': dependencies: - '@shikijs/types': 3.22.0 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.4 + oniguruma-to-es: 4.3.5 '@shikijs/engine-oniguruma@1.29.2': dependencies: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@3.22.0': + '@shikijs/engine-oniguruma@3.23.0': dependencies: - '@shikijs/types': 3.22.0 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 '@shikijs/langs@1.29.2': dependencies: '@shikijs/types': 1.29.2 - '@shikijs/langs@3.22.0': + '@shikijs/langs@3.23.0': dependencies: - '@shikijs/types': 3.22.0 + '@shikijs/types': 3.23.0 '@shikijs/themes@1.29.2': dependencies: '@shikijs/types': 1.29.2 - '@shikijs/themes@3.22.0': + '@shikijs/themes@3.23.0': dependencies: - '@shikijs/types': 3.22.0 + '@shikijs/types': 3.23.0 '@shikijs/types@1.29.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/types@3.22.0': + '@shikijs/types@3.23.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -20419,7 +20425,7 @@ snapshots: '@size-limit/esbuild@12.0.0(size-limit@12.0.0(jiti@2.6.1))': dependencies: - esbuild: 0.27.3 + esbuild: 0.27.4 nanoid: 5.1.6 size-limit: 12.0.0(jiti@2.6.1) @@ -20552,7 +20558,7 @@ snapshots: eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.3 + picomatch: 4.0.4 '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': dependencies: @@ -20570,7 +20576,7 @@ snapshots: '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 - devalue: 5.6.3 + devalue: 5.6.4 esm-env: 1.2.2 kleur: 4.1.5 magic-string: 0.30.21 @@ -20591,7 +20597,7 @@ snapshots: '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 - devalue: 5.6.3 + devalue: 5.6.4 esm-env: 1.2.2 kleur: 4.1.5 magic-string: 0.30.21 @@ -20642,7 +20648,7 @@ snapshots: magic-string: 0.30.21 svelte: 5.53.5 vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) transitivePeerDependencies: - supports-color optional: true @@ -20656,7 +20662,7 @@ snapshots: magic-string: 0.30.21 svelte: 5.53.5 vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) transitivePeerDependencies: - supports-color @@ -20794,11 +20800,11 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 ansis: 4.2.0 babel-dead-code-elimination: 1.0.12 - diff: 8.0.3 + diff: 8.0.4 pathe: 2.0.3 tinyglobby: 0.2.15 transitivePeerDependencies: @@ -20951,7 +20957,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -20963,7 +20969,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@types/babel__traverse@7.28.0': @@ -20979,7 +20985,7 @@ snapshots: '@types/cookie@0.6.0': {} - '@types/debug@4.1.12': + '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 @@ -21382,7 +21388,7 @@ snapshots: glob: 10.5.0 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.3 + picomatch: 4.0.4 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -21401,7 +21407,7 @@ snapshots: glob: 13.0.1 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.3 + picomatch: 4.0.4 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -21429,7 +21435,7 @@ snapshots: consola: 3.4.2 defu: 6.1.4 get-port-please: 3.2.0 - h3: 1.15.5 + h3: 1.15.10 http-shutdown: 1.2.2 jiti: 1.21.7 mlly: 1.8.0 @@ -21442,7 +21448,7 @@ snapshots: '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) acorn-loose: 8.5.2 @@ -21620,7 +21626,7 @@ snapshots: '@vue/compiler-core@3.5.28': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@vue/shared': 3.5.28 entities: 7.0.1 estree-walker: 2.0.2 @@ -21633,7 +21639,7 @@ snapshots: '@vue/compiler-sfc@2.7.16': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 postcss: 8.5.6 source-map: 0.6.1 optionalDependencies: @@ -21641,7 +21647,7 @@ snapshots: '@vue/compiler-sfc@3.5.28': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@vue/compiler-core': 3.5.28 '@vue/compiler-dom': 3.5.28 '@vue/compiler-ssr': 3.5.28 @@ -21680,19 +21686,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@vue/language-core@2.1.6(typescript@6.0.1-rc)': - dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.28 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.28 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 6.0.1-rc - '@vue/language-core@2.2.12(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.15 @@ -21910,7 +21903,7 @@ snapshots: '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.105.0)': dependencies: - webpack: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.105.0) '@webpack-cli/info@1.5.0(webpack-cli@4.10.0)': @@ -21920,7 +21913,7 @@ snapshots: '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.105.0)': dependencies: - webpack: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.105.0) '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)': @@ -21929,7 +21922,7 @@ snapshots: '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.105.0)': dependencies: - webpack: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.105.0) '@xmldom/xmldom@0.7.13': {} @@ -22136,7 +22129,7 @@ snapshots: anymatch@3.1.3: dependencies: normalize-path: 3.0.0 - picomatch: 2.3.1 + picomatch: 2.3.2 aproba@1.2.0: {} @@ -22300,11 +22293,11 @@ snapshots: astring@1.9.0: {} - astro@5.17.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2): + astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2): dependencies: '@astrojs/compiler': 2.13.1 - '@astrojs/internal-helpers': 0.7.5 - '@astrojs/markdown-remark': 6.3.10 + '@astrojs/internal-helpers': 0.7.6 + '@astrojs/markdown-remark': 6.3.11 '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 4.0.0 '@oslojs/encoding': 1.1.0 @@ -22320,12 +22313,12 @@ snapshots: cssesc: 3.0.0 debug: 4.4.3 deterministic-object-hash: 2.0.2 - devalue: 5.6.3 - diff: 8.0.3 + devalue: 5.6.4 + diff: 8.0.4 dlv: 1.1.3 dset: 3.1.4 es-module-lexer: 1.7.0 - esbuild: 0.27.3 + esbuild: 0.27.4 estree-walker: 3.0.3 flattie: 1.1.1 fontace: 0.4.1 @@ -22342,28 +22335,28 @@ snapshots: p-queue: 8.1.1 package-manager-detector: 1.6.0 piccolore: 0.1.3 - picomatch: 4.0.3 + picomatch: 4.0.4 prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.4 - shiki: 3.22.0 - smol-toml: 1.6.0 - svgo: 4.0.0 - tinyexec: 1.0.2 + shiki: 3.23.0 + smol-toml: 1.6.1 + svgo: 4.0.1 + tinyexec: 1.0.4 tinyglobby: 0.2.15 tsconfck: 3.1.6(typescript@5.8.3) ultrahtml: 1.6.0 - unifont: 0.7.3 + unifont: 0.7.4 unist-util-visit: 5.1.0 - unstorage: 1.17.4(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) + unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) vfile: 6.0.3 vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 zod: 3.25.76 - zod-to-json-schema: 3.25.1(zod@3.25.76) + zod-to-json-schema: 3.25.2(zod@3.25.76) zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.76) optionalDependencies: sharp: 0.34.5 @@ -22451,7 +22444,7 @@ snapshots: babel-dead-code-elimination@1.0.12: dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 transitivePeerDependencies: @@ -22484,7 +22477,7 @@ snapshots: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) babel-plugin-istanbul@6.1.1: dependencies: @@ -22869,9 +22862,9 @@ snapshots: builtin-status-codes@3.0.0: {} - bundle-require@5.1.0(esbuild@0.27.3): + bundle-require@5.1.0(esbuild@0.27.4): dependencies: - esbuild: 0.27.3 + esbuild: 0.27.4 load-tsconfig: 0.2.5 busboy@1.6.0: @@ -22939,7 +22932,7 @@ snapshots: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 glob: 13.0.1 - lru-cache: 11.2.5 + lru-cache: 11.2.7 minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -23212,7 +23205,7 @@ snapshots: clipboardy@4.0.0: dependencies: execa: 8.0.1 - is-wsl: 3.1.0 + is-wsl: 3.1.1 is64bit: 2.0.0 cliui@7.0.4: @@ -23536,7 +23529,7 @@ snapshots: dependencies: '@cspell/cspell-types': 9.6.4 comment-json: 4.5.1 - smol-toml: 1.6.0 + smol-toml: 1.6.1 yaml: 2.8.2 cspell-dictionary@9.6.4: @@ -23550,7 +23543,7 @@ snapshots: cspell-glob@9.6.4: dependencies: '@cspell/url': 9.6.4 - picomatch: 4.0.3 + picomatch: 4.0.4 cspell-grammar@9.6.4: dependencies: @@ -23626,9 +23619,9 @@ snapshots: mdn-data: 2.0.28 source-map-js: 1.2.1 - css-tree@3.1.0: + css-tree@3.2.1: dependencies: - mdn-data: 2.12.2 + mdn-data: 2.27.1 source-map-js: 1.2.1 css-what@6.2.2: {} @@ -23652,8 +23645,8 @@ snapshots: dependencies: '@asamuzakjp/css-color': 4.1.2 '@csstools/css-syntax-patches-for-csstree': 1.0.27 - css-tree: 3.1.0 - lru-cache: 11.2.5 + css-tree: 3.2.1 + lru-cache: 11.2.7 csstype@3.2.3: {} @@ -23825,7 +23818,7 @@ snapshots: dependencies: base-64: 1.0.0 - devalue@5.6.3: {} + devalue@5.6.4: {} devlop@1.1.0: dependencies: @@ -23833,7 +23826,7 @@ snapshots: didyoumean@1.2.2: {} - diff@8.0.3: {} + diff@8.0.4: {} diffie-hellman@5.0.3: dependencies: @@ -23902,7 +23895,7 @@ snapshots: dot-prop@10.1.0: dependencies: - type-fest: 5.4.4 + type-fest: 5.5.0 dotenv-expand@11.0.7: dependencies: @@ -24159,44 +24152,44 @@ snapshots: esbuild-plugin-file-path-extensions@2.1.4: {} - esbuild-plugin-solid@0.5.0(esbuild@0.27.3)(solid-js@1.9.11): + esbuild-plugin-solid@0.5.0(esbuild@0.27.4)(solid-js@1.9.11): dependencies: '@babel/core': 7.29.0 '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) babel-preset-solid: 1.9.10(@babel/core@7.29.0)(solid-js@1.9.11) - esbuild: 0.27.3 + esbuild: 0.27.4 solid-js: 1.9.11 transitivePeerDependencies: - supports-color - esbuild@0.27.3: + esbuild@0.27.4: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 + '@esbuild/aix-ppc64': 0.27.4 + '@esbuild/android-arm': 0.27.4 + '@esbuild/android-arm64': 0.27.4 + '@esbuild/android-x64': 0.27.4 + '@esbuild/darwin-arm64': 0.27.4 + '@esbuild/darwin-x64': 0.27.4 + '@esbuild/freebsd-arm64': 0.27.4 + '@esbuild/freebsd-x64': 0.27.4 + '@esbuild/linux-arm': 0.27.4 + '@esbuild/linux-arm64': 0.27.4 + '@esbuild/linux-ia32': 0.27.4 + '@esbuild/linux-loong64': 0.27.4 + '@esbuild/linux-mips64el': 0.27.4 + '@esbuild/linux-ppc64': 0.27.4 + '@esbuild/linux-riscv64': 0.27.4 + '@esbuild/linux-s390x': 0.27.4 + '@esbuild/linux-x64': 0.27.4 + '@esbuild/netbsd-arm64': 0.27.4 + '@esbuild/netbsd-x64': 0.27.4 + '@esbuild/openbsd-arm64': 0.27.4 + '@esbuild/openbsd-x64': 0.27.4 + '@esbuild/openharmony-arm64': 0.27.4 + '@esbuild/sunos-x64': 0.27.4 + '@esbuild/win32-arm64': 0.27.4 + '@esbuild/win32-ia32': 0.27.4 + '@esbuild/win32-x64': 0.27.4 escalade@3.2.0: {} @@ -24232,7 +24225,7 @@ snapshots: eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.13.6 + get-tsconfig: 4.13.7 stable-hash-x: 0.2.0 optionalDependencies: unrs-resolver: 1.11.1 @@ -24295,7 +24288,7 @@ snapshots: enhanced-resolve: 5.19.0 eslint: 9.39.4(jiti@2.6.1) eslint-plugin-es-x: 7.8.0(eslint@9.39.4(jiti@2.6.1)) - get-tsconfig: 4.13.6 + get-tsconfig: 4.13.7 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 @@ -24345,7 +24338,7 @@ snapshots: eslint-plugin-react-hooks@6.1.1(eslint@9.39.4(jiti@2.6.1)): dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 eslint: 9.39.4(jiti@2.6.1) zod: 4.3.6 zod-validation-error: 4.0.2(zod@4.3.6) @@ -24899,9 +24892,9 @@ snapshots: dependencies: walk-up-path: 4.0.0 - fdir@6.5.0(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 fetch-retry@4.1.1: {} @@ -25023,11 +25016,11 @@ snapshots: fontace@0.4.1: dependencies: - fontkitten: 1.0.2 + fontkitten: 1.0.3 fontfaceobserver@2.3.0: {} - fontkitten@1.0.2: + fontkitten@1.0.3: dependencies: tiny-inflate: 1.0.3 @@ -25198,10 +25191,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.6: - dependencies: - resolve-pkg-maps: 1.0.0 - get-tsconfig@4.13.7: dependencies: resolve-pkg-maps: 1.0.0 @@ -25325,7 +25314,7 @@ snapshots: dependencies: duplexer: 0.1.2 - h3@1.15.3: + h3@1.15.10: dependencies: cookie-es: 1.2.2 crossws: 0.3.5 @@ -25337,7 +25326,7 @@ snapshots: ufo: 1.6.3 uncrypto: 0.1.3 - h3@1.15.5: + h3@1.15.3: dependencies: cookie-es: 1.2.2 crossws: 0.3.5 @@ -25540,7 +25529,7 @@ snapshots: hosted-git-info@9.0.2: dependencies: - lru-cache: 11.2.5 + lru-cache: 11.2.7 html-encoding-sniffer@4.0.0: dependencies: @@ -25607,7 +25596,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) htmlparser2@10.1.0: dependencies: @@ -26042,7 +26031,7 @@ snapshots: dependencies: is-docker: 2.2.1 - is-wsl@3.1.0: + is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 @@ -26069,7 +26058,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -26079,7 +26068,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.4 @@ -26249,7 +26238,7 @@ snapshots: chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 - picomatch: 2.3.1 + picomatch: 2.3.2 jest-util@30.2.0: dependencies: @@ -26258,7 +26247,7 @@ snapshots: chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 - picomatch: 4.0.3 + picomatch: 4.0.4 jest-validate@29.7.0: dependencies: @@ -26326,7 +26315,7 @@ snapshots: jscodeshift@0.14.0(@babel/preset-env@7.29.0(@babel/core@7.29.0)): dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.29.0) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.29.0) @@ -26351,7 +26340,7 @@ snapshots: jscodeshift@17.3.0(@babel/preset-env@7.29.0(@babel/core@7.29.0)): dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) @@ -26513,8 +26502,8 @@ snapshots: oxc-parser: 0.120.0 oxc-resolver: 11.19.1 picocolors: 1.1.1 - picomatch: 4.0.3 - smol-toml: 1.6.0 + picomatch: 4.0.4 + smol-toml: 1.6.1 strip-json-comments: 5.0.3 unbash: 2.2.0 yaml: 2.8.2 @@ -26664,7 +26653,7 @@ snapshots: crossws: 0.3.5 defu: 6.1.4 get-port-please: 3.2.0 - h3: 1.15.5 + h3: 1.15.10 http-shutdown: 1.2.2 jiti: 2.6.1 mlly: 1.8.0 @@ -26805,7 +26794,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.5: {} + lru-cache@11.2.7: {} lru-cache@5.1.1: dependencies: @@ -26829,19 +26818,19 @@ snapshots: magicast@0.2.11: dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 recast: 0.23.11 magicast@0.3.5: dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 source-map-js: 1.2.1 magicast@0.5.2: dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 source-map-js: 1.2.1 @@ -26953,7 +26942,7 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - mdast-util-from-markdown@2.0.2: + mdast-util-from-markdown@2.0.3: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 @@ -26982,7 +26971,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: @@ -26991,7 +26980,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -27001,7 +26990,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -27010,14 +26999,14 @@ snapshots: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color mdast-util-gfm@3.1.0: dependencies: - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-gfm-autolink-literal: 2.0.1 mdast-util-gfm-footnote: 2.1.0 mdast-util-gfm-strikethrough: 2.0.0 @@ -27062,7 +27051,7 @@ snapshots: mdn-data@2.0.28: {} - mdn-data@2.12.2: {} + mdn-data@2.27.1: {} mdurl@2.0.0: {} @@ -27205,7 +27194,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 flow-enums-runtime: 0.0.6 metro: 0.81.5 @@ -27226,7 +27215,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/core': 7.29.0 '@babel/generator': 7.29.1 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -27439,7 +27428,7 @@ snapshots: micromark@4.0.2: dependencies: - '@types/debug': 4.1.12 + '@types/debug': 4.1.13 debug: 4.4.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 @@ -27480,7 +27469,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 2.3.2 miller-rabin@4.0.1: dependencies: @@ -27668,7 +27657,7 @@ snapshots: statuses: 2.0.2 strict-event-emitter: 0.5.1 tough-cookie: 6.0.0 - type-fest: 5.4.4 + type-fest: 5.5.0 until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: @@ -27693,7 +27682,7 @@ snapshots: statuses: 2.0.2 strict-event-emitter: 0.5.1 tough-cookie: 6.0.0 - type-fest: 5.4.4 + type-fest: 5.5.0 until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: @@ -27859,13 +27848,13 @@ snapshots: defu: 6.1.4 destr: 2.0.5 dot-prop: 10.1.0 - esbuild: 0.27.3 + esbuild: 0.27.4 escape-string-regexp: 5.0.0 etag: 1.8.1 exsolve: 1.0.8 globby: 16.1.0 gzip-size: 7.0.0 - h3: 1.15.5 + h3: 1.15.10 hookable: 5.5.3 httpxy: 0.1.7 ioredis: 5.9.2 @@ -27901,7 +27890,7 @@ snapshots: unenv: 2.0.0-rc.24 unimport: 5.6.0 unplugin-utils: 0.3.1 - unstorage: 1.17.4(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) + unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) untyped: 2.0.0 unwasm: 0.5.3 youch: 4.1.0-beta.13 @@ -28188,7 +28177,7 @@ snapshots: dependencies: citty: 0.2.0 pathe: 2.0.3 - tinyexec: 1.0.2 + tinyexec: 1.0.4 ob1@0.81.5: dependencies: @@ -28313,7 +28302,7 @@ snapshots: regex: 5.1.1 regex-recursion: 5.1.1 - oniguruma-to-es@4.3.4: + oniguruma-to-es@4.3.5: dependencies: oniguruma-parser: 0.12.1 regex: 6.1.0 @@ -28678,7 +28667,7 @@ snapshots: path-scurry@2.0.1: dependencies: - lru-cache: 11.2.5 + lru-cache: 11.2.7 minipass: 7.1.2 path-to-regexp@6.1.0: {} @@ -28710,12 +28699,14 @@ snapshots: picocolors@1.1.1: {} - picomatch@2.3.1: {} + picomatch@2.3.2: {} picomatch@3.0.1: {} picomatch@4.0.3: {} + picomatch@4.0.4: {} + pidtree@0.5.0: {} pify@2.3.0: {} @@ -29311,7 +29302,7 @@ snapshots: readdirp@3.6.0: dependencies: - picomatch: 2.3.1 + picomatch: 2.3.2 readdirp@4.1.2: {} @@ -29468,7 +29459,7 @@ snapshots: remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -29654,7 +29645,7 @@ snapshots: rollup-plugin-visualizer@6.0.5(rollup@4.57.1): dependencies: open: 8.4.2 - picomatch: 4.0.3 + picomatch: 4.0.4 source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: @@ -29795,7 +29786,7 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.6 - sax@1.4.4: {} + sax@1.6.0: {} saxes@6.0.0: dependencies: @@ -30060,14 +30051,14 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - shiki@3.22.0: + shiki@3.23.0: dependencies: - '@shikijs/core': 3.22.0 - '@shikijs/engine-javascript': 3.22.0 - '@shikijs/engine-oniguruma': 3.22.0 - '@shikijs/langs': 3.22.0 - '@shikijs/themes': 3.22.0 - '@shikijs/types': 3.22.0 + '@shikijs/core': 3.23.0 + '@shikijs/engine-javascript': 3.23.0 + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -30174,7 +30165,7 @@ snapshots: smob@1.5.0: {} - smol-toml@1.6.0: {} + smol-toml@1.6.1: {} snapdragon-node@2.1.1: dependencies: @@ -30576,11 +30567,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.8.3): + svelte-check@4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 svelte: 5.53.5 @@ -30588,11 +30579,11 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-check@4.4.5(picomatch@4.0.3)(svelte@5.53.5)(typescript@5.9.3): + svelte-check@4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 svelte: 5.53.5 @@ -30629,7 +30620,7 @@ snapshots: aria-query: 5.3.1 axobject-query: 4.1.0 clsx: 2.1.1 - devalue: 5.6.3 + devalue: 5.6.4 esm-env: 1.2.2 esrap: 2.2.3 is-reference: 3.0.3 @@ -30637,15 +30628,15 @@ snapshots: magic-string: 0.30.21 zimmerframe: 1.1.4 - svgo@4.0.0: + svgo@4.0.1: dependencies: commander: 11.1.0 css-select: 5.2.2 - css-tree: 3.1.0 + css-tree: 3.2.1 css-what: 6.2.2 csso: 5.0.5 picocolors: 1.1.1 - sax: 1.4.4 + sax: 1.6.0 symbol-tree@3.2.4: {} @@ -30764,16 +30755,16 @@ snapshots: webpack-sources: 1.4.3 worker-farm: 1.7.0 - terser-webpack-plugin@5.3.16(esbuild@0.27.3)(webpack@5.105.0): + terser-webpack-plugin@5.3.16(esbuild@0.27.4)(webpack@5.105.0): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.46.0 - webpack: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) optionalDependencies: - esbuild: 0.27.3 + esbuild: 0.27.4 terser@4.8.1: dependencies: @@ -30828,17 +30819,17 @@ snapshots: tinyexec@0.3.2: {} - tinyexec@1.0.2: {} + tinyexec@1.0.4: {} tinyglobby@0.2.14: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 tinyrainbow@3.0.3: {} @@ -30924,7 +30915,7 @@ snapshots: ts-declaration-location@1.0.7(typescript@5.9.3): dependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 typescript: 5.9.3 ts-expose-internals-conditionally@1.0.0-empty.0: {} @@ -30941,10 +30932,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsconfck@3.1.6(typescript@6.0.1-rc): - optionalDependencies: - typescript: 6.0.1-rc - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -30953,9 +30940,9 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.27.3)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)): + tsup-preset-solid@2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)): dependencies: - esbuild-plugin-solid: 0.5.0(esbuild@0.27.3)(solid-js@1.9.11) + esbuild-plugin-solid: 0.5.0(esbuild@0.27.4)(solid-js@1.9.11) tsup: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) transitivePeerDependencies: - esbuild @@ -30964,12 +30951,12 @@ snapshots: tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2): dependencies: - bundle-require: 5.1.0(esbuild@0.27.3) + bundle-require: 5.1.0(esbuild@0.27.4) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.3 - esbuild: 0.27.3 + esbuild: 0.27.4 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 @@ -31019,7 +31006,7 @@ snapshots: type-fest@4.41.0: {} - type-fest@5.4.4: + type-fest@5.5.0: dependencies: tagged-tag: 1.0.0 @@ -31199,9 +31186,9 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unifont@0.7.3: + unifont@0.7.4: dependencies: - css-tree: 3.1.0 + css-tree: 3.2.1 ofetch: 1.5.1 ohash: 2.0.11 @@ -31214,7 +31201,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.0 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 pkg-types: 2.3.0 scule: 1.3.0 strip-literal: 3.1.0 @@ -31312,13 +31299,13 @@ snapshots: unplugin-utils@0.3.1: dependencies: pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 acorn: 8.16.0 - picomatch: 4.0.3 + picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 unrs-resolver@1.11.1: @@ -31350,13 +31337,13 @@ snapshots: has-value: 0.3.1 isobject: 3.0.1 - unstorage@1.17.4(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2): + unstorage@1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 destr: 2.0.5 - h3: 1.15.5 - lru-cache: 11.2.5 + h3: 1.15.10 + lru-cache: 11.2.7 node-fetch-native: 1.6.7 ofetch: 1.5.1 ufo: 1.6.3 @@ -31487,7 +31474,7 @@ snapshots: dax-sh: 0.43.2 defu: 6.1.4 es-module-lexer: 1.7.0 - esbuild: 0.27.3 + esbuild: 0.27.4 get-port-please: 3.2.0 h3: 1.15.3 hookable: 5.5.3 @@ -31505,7 +31492,7 @@ snapshots: ufo: 1.6.3 unctx: 2.5.0 unenv: 1.10.0 - unstorage: 1.17.4(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) + unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) zod: 4.3.6 transitivePeerDependencies: @@ -31572,25 +31559,6 @@ snapshots: - rollup - supports-color - vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) - '@volar/typescript': 2.4.28 - '@vue/language-core': 2.1.6(typescript@6.0.1-rc) - compare-versions: 6.1.1 - debug: 4.4.3 - kolorist: 1.8.0 - local-pkg: 0.5.1 - magic-string: 0.30.21 - typescript: 6.0.1-rc - optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): dependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) @@ -31608,7 +31576,7 @@ snapshots: solid-js: 1.9.11 solid-refresh: 0.6.3(solid-js@1.9.11) vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: @@ -31623,7 +31591,7 @@ snapshots: solid-js: 1.9.11 solid-refresh: 0.6.3(solid-js@1.9.11) vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: @@ -31650,22 +31618,11 @@ snapshots: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - debug: 4.4.3 - globrex: 0.1.2 - tsconfck: 3.1.6(typescript@6.0.1-rc) - optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - - typescript - vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): dependencies: - esbuild: 0.27.3 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + esbuild: 0.27.4 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 postcss: 8.5.6 rollup: 4.57.1 tinyglobby: 0.2.15 @@ -31680,9 +31637,9 @@ snapshots: vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): dependencies: - esbuild: 0.27.3 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + esbuild: 0.27.4 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 postcss: 8.5.6 rollup: 4.57.1 tinyglobby: 0.2.15 @@ -31695,11 +31652,11 @@ snapshots: terser: 5.46.0 yaml: 2.8.2 - vitefu@1.1.1(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): optionalDependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu@1.1.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): optionalDependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) @@ -31717,10 +31674,10 @@ snapshots: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 3.10.0 tinybench: 2.9.0 - tinyexec: 1.0.2 + tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) @@ -31981,7 +31938,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4) + webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) webpack-merge: 5.10.0 webpack-merge@5.10.0: @@ -32029,7 +31986,7 @@ snapshots: transitivePeerDependencies: - supports-color - webpack@5.105.0(esbuild@0.27.3)(webpack-cli@5.1.4): + webpack@5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -32053,7 +32010,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(esbuild@0.27.3)(webpack@5.105.0) + terser-webpack-plugin: 5.3.16(esbuild@0.27.4)(webpack@5.105.0) watchpack: 2.5.1 webpack-sources: 3.3.3 optionalDependencies: @@ -32235,7 +32192,7 @@ snapshots: xml2js@0.6.0: dependencies: - sax: 1.4.4 + sax: 1.6.0 xmlbuilder: 11.0.1 xmlbuilder@11.0.1: {} @@ -32349,11 +32306,11 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod-to-json-schema@3.25.1(zod@3.25.76): + zod-to-json-schema@3.25.2(zod@3.25.76): dependencies: zod: 3.25.76 - zod-to-json-schema@3.25.1(zod@4.1.13): + zod-to-json-schema@3.25.2(zod@4.1.13): dependencies: zod: 4.1.13 From a62f695b4e79c8044f79f12e886d92fd3a8d838d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 28 Mar 2026 22:16:06 +0900 Subject: [PATCH 022/414] test(preact-query): apply 'prefer-template', 'no-else-return', 'object-shorthand', 'radix', and 'require-await' eslint rules (#10346) --- .../src/__tests__/useMutationState.test.tsx | 2 +- .../usePrefetchInfiniteQuery.test.tsx | 2 +- .../src/__tests__/useQueries.test.tsx | 24 ++++++------ .../src/__tests__/useQuery.test.tsx | 38 +++++++++---------- .../src/__tests__/useSuspenseQueries.test.tsx | 6 +-- .../src/__tests__/useSuspenseQuery.test.tsx | 1 - 6 files changed, 35 insertions(+), 38 deletions(-) diff --git a/packages/preact-query/src/__tests__/useMutationState.test.tsx b/packages/preact-query/src/__tests__/useMutationState.test.tsx index c8097326486..8618a5d9fd3 100644 --- a/packages/preact-query/src/__tests__/useMutationState.test.tsx +++ b/packages/preact-query/src/__tests__/useMutationState.test.tsx @@ -206,7 +206,7 @@ describe('useMutationState', () => { function Mutate() { const { mutate, data } = useMutation({ mutationKey, - mutationFn: (input: number) => sleep(150).then(() => 'data' + input), + mutationFn: (input: number) => sleep(150).then(() => `data${input}`), }) return ( diff --git a/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx b/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx index a62c2ff16cf..f87cb2a2204 100644 --- a/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx +++ b/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx @@ -25,7 +25,7 @@ const generateInfiniteQueryOptions = ( .mockImplementation(async () => { const currentPageData = data[currentPage] if (!currentPageData) { - throw new Error('No data defined for page ' + currentPage) + throw new Error(`No data defined for page ${currentPage}`) } await sleep(10) diff --git a/packages/preact-query/src/__tests__/useQueries.test.tsx b/packages/preact-query/src/__tests__/useQueries.test.tsx index d0a77bca025..7b6b59c6996 100644 --- a/packages/preact-query/src/__tests__/useQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useQueries.test.tsx @@ -190,7 +190,7 @@ describe('useQueries', () => { queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() - return parseInt(a) + return parseInt(a, 10) }, }, ], @@ -219,7 +219,7 @@ describe('useQueries', () => { queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() - return parseInt(a) + return parseInt(a, 10) }, placeholderData: 'string', // @ts-expect-error (initialData: string) @@ -302,7 +302,7 @@ describe('useQueries', () => { queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() - return parseInt(a) + return parseInt(a, 10) }, }, ], @@ -362,7 +362,7 @@ describe('useQueries', () => { queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() - return parseInt(a) + return parseInt(a, 10) }, placeholderData: 'string', // @ts-expect-error (initialData: string) @@ -404,7 +404,7 @@ describe('useQueries', () => { queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() - return parseInt(a) + return parseInt(a, 10) }, }), ], @@ -556,7 +556,7 @@ describe('useQueries', () => { { queryKey: key4, queryFn: () => 'string', - select: (a: string) => parseInt(a), + select: (a: string) => parseInt(a, 10), }, { queryKey: key5, @@ -596,12 +596,12 @@ describe('useQueries', () => { { queryKey: key4, queryFn: () => 'string', - select: (a: string) => parseInt(a), + select: (a: string) => parseInt(a, 10), }, { queryKey: key5, queryFn: () => 'string', - select: (a: string) => parseInt(a), + select: (a: string) => parseInt(a, 10), throwOnError, }, ], @@ -1138,14 +1138,14 @@ describe('useQueries', () => { queryKey: key1, queryFn: async () => { await sleep(5) - return Promise.resolve('first result ' + count) + return Promise.resolve(`first result ${count}`) }, }, { queryKey: key2, queryFn: async () => { await sleep(50) - return Promise.resolve('second result ' + count) + return Promise.resolve(`second result ${count}`) }, }, ], @@ -1330,14 +1330,14 @@ describe('useQueries', () => { queryKey: key1, queryFn: async () => { await sleep(10) - return 'first result:' + value + return `first result:${value}` }, }, { queryKey: key2, queryFn: async () => { await sleep(20) - return 'second result:' + value + return `second result:${value}` }, }, ], diff --git a/packages/preact-query/src/__tests__/useQuery.test.tsx b/packages/preact-query/src/__tests__/useQuery.test.tsx index c9bfd6a61cb..ae7676a941c 100644 --- a/packages/preact-query/src/__tests__/useQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test.tsx @@ -473,7 +473,7 @@ describe('useQuery', () => { queryKey: key, queryFn: async () => { await sleep(10) - return 'data: ' + value + return `data: ${value}` }, gcTime: 0, @@ -769,7 +769,7 @@ describe('useQuery', () => { queryFn: async () => { await sleep(10) count++ - return 'test' + count + return `test${count}` }, }) @@ -3686,9 +3686,8 @@ describe('useQuery', () => { if (counter < 2) { counter++ return Promise.reject(new Error('error')) - } else { - return Promise.resolve('data') } + return Promise.resolve('data') }, retryDelay: 10, }) @@ -5062,9 +5061,8 @@ describe('useQuery', () => { await sleep(10) if (id % 2 === 1) { return Promise.reject(new Error('Error')) - } else { - return 'data' } + return 'data' }, retry: false, retryOnMount: false, @@ -5300,7 +5298,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data' + count + return `data${count}` }, }) @@ -5363,7 +5361,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data' + count + return `data${count}` }, }) @@ -5411,7 +5409,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data' + count + return `data${count}` }, }) @@ -5457,7 +5455,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data' + count + return `data${count}` }, initialData: 'initial', }) @@ -5505,7 +5503,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data' + count + return `data${count}` }, initialData: 'initial', }) @@ -5565,7 +5563,7 @@ describe('useQuery', () => { queryFn: async (): Promise => { count++ await sleep(10) - throw new Error('failed' + count) + throw new Error(`failed${count}`) }, retry: 2, retryDelay: 10, @@ -5678,7 +5676,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data' + count + return `data${count}` }, }) @@ -5735,7 +5733,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data' + count + return `data${count}` }, refetchOnReconnect: false, }) @@ -5787,7 +5785,7 @@ describe('useQuery', () => { function Component() { const state = useQuery({ queryKey: key, - queryFn: async () => { + queryFn: () => { count++ return `data${count}` }, @@ -5862,7 +5860,7 @@ describe('useQuery', () => { queryFn: async () => { count++ await sleep(10) - return 'data ' + count + return `data ${count}` }, networkMode: 'always', }) @@ -5898,7 +5896,7 @@ describe('useQuery', () => { queryFn: async (): Promise => { count++ await sleep(10) - throw new Error('error ' + count) + throw new Error(`error ${count}`) }, networkMode: 'always', retry: 1, @@ -5942,7 +5940,7 @@ describe('useQuery', () => { queryFn: async (): Promise => { count++ await sleep(10) - throw new Error('failed' + count) + throw new Error(`failed${count}`) }, retry: 2, retryDelay: 1, @@ -6067,7 +6065,7 @@ describe('useQuery', () => { renders++ return (
- {data ? 'has data' + data : 'no data'} + {data ? `has data${data}` : 'no data'}
}> + + , + ) + + // No suspend, cached data shown immediately + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + + // key2 is fresh, no refetch + expect(queryFn2).toHaveBeenCalledTimes(0) + + // key1 background refetch completes + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('data1: data1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + + // key2 is still fresh, no refetch triggered + expect(queryFn2).toHaveBeenCalledTimes(0) + + // after key1 refetch completes, key2 is still fresh with no refetch triggered + await vi.advanceTimersByTimeAsync(10) + + expect(rendered.getByText('data1: data1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + expect(queryFn2).toHaveBeenCalledTimes(0) + }) + it('should not suspend but refetch when all queries have stale cached data', async () => { const key1 = queryKey() const key2 = queryKey() diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 9f114cd94f4..adb1f1c02b3 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -1056,6 +1056,74 @@ describe('useSuspenseQueries 2', () => { expect(queryFn1).toHaveBeenCalledTimes(0) }) + it('should not suspend and only refetch the stale query when one query has stale and the other has fresh cached data', async () => { + const key1 = queryKey() + const key2 = queryKey() + + queryClient.setQueryData(key1, 'cached1') + queryClient.setQueryData(key2, 'cached2') + + // Advance past staleTime (min 1000ms in suspense) so key1 becomes stale before mount + vi.advanceTimersByTime(1000) + + // Make key2 fresh again by resetting its data + queryClient.setQueryData(key2, 'cached2') + + const queryFn2 = vi.fn(() => sleep(20).then(() => 'data2')) + + function Page() { + const [result1, result2] = useSuspenseQueries({ + queries: [ + { + queryKey: key1, + queryFn: () => sleep(10).then(() => 'data1'), + }, + { + queryKey: key2, + queryFn: queryFn2, + }, + ], + }) + + return ( +
+
data1: {result1.data}
+
data2: {result2.data}
+
+ ) + } + + const rendered = renderWithClient( + queryClient, + loading}> + + , + ) + + // No suspend, cached data shown immediately + expect(rendered.getByText('data1: cached1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + + // key2 is fresh, no refetch + expect(queryFn2).toHaveBeenCalledTimes(0) + + // key1 background refetch completes + await act(() => vi.advanceTimersByTimeAsync(11)) + + expect(rendered.getByText('data1: data1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + + // key2 is still fresh, no refetch triggered + expect(queryFn2).toHaveBeenCalledTimes(0) + + // after key1 refetch completes, key2 is still fresh with no refetch triggered + await act(() => vi.advanceTimersByTimeAsync(10)) + + expect(rendered.getByText('data1: data1')).toBeInTheDocument() + expect(rendered.getByText('data2: cached2')).toBeInTheDocument() + expect(queryFn2).toHaveBeenCalledTimes(0) + }) + it('should not suspend but refetch when all queries have stale cached data', async () => { const key1 = queryKey() const key2 = queryKey() From 9e1bb94abcce4839800f782d9b9d7087095e78b3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 29 Mar 2026 15:12:26 +0900 Subject: [PATCH 025/414] test(react-query/useSuspenseQueries): remove unnecessary 'act' wrapper from background refetch assertions (#10350) --- .../react-query/src/__tests__/useSuspenseQueries.test.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index adb1f1c02b3..4ebd32ea90b 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -1040,7 +1040,7 @@ describe('useSuspenseQueries 2', () => { expect(queryFn1).toHaveBeenCalledTimes(0) // key2 background refetch completes - await act(() => vi.advanceTimersByTimeAsync(11)) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('data1: cached1')).toBeInTheDocument() expect(rendered.getByText('data2: data2')).toBeInTheDocument() @@ -1049,7 +1049,7 @@ describe('useSuspenseQueries 2', () => { expect(queryFn1).toHaveBeenCalledTimes(0) // after key2 refetch completes, key1 is still fresh with no refetch triggered - await act(() => vi.advanceTimersByTimeAsync(10)) + await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('data1: cached1')).toBeInTheDocument() expect(rendered.getByText('data2: data2')).toBeInTheDocument() @@ -1108,7 +1108,7 @@ describe('useSuspenseQueries 2', () => { expect(queryFn2).toHaveBeenCalledTimes(0) // key1 background refetch completes - await act(() => vi.advanceTimersByTimeAsync(11)) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('data1: data1')).toBeInTheDocument() expect(rendered.getByText('data2: cached2')).toBeInTheDocument() @@ -1117,7 +1117,7 @@ describe('useSuspenseQueries 2', () => { expect(queryFn2).toHaveBeenCalledTimes(0) // after key1 refetch completes, key2 is still fresh with no refetch triggered - await act(() => vi.advanceTimersByTimeAsync(10)) + await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('data1: data1')).toBeInTheDocument() expect(rendered.getByText('data2: cached2')).toBeInTheDocument() From afb58127a47846f7b2df5a422b428ddfa8decced Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 30 Mar 2026 02:53:39 +0900 Subject: [PATCH 026/414] test({react,preact}-query/useSuspenseQueries): inline test helpers, remove shared 'queryClient', and use 'beforeEach'/'afterEach' for setup and teardown (#10352) * test({react,preact}-query/useSuspenseQueries): inline test helpers, remove shared 'queryClient', and use 'beforeEach'/'afterEach' for setup and teardown * ci: apply automated fixes * test({react,preact}-query/useSuspenseQueries): replace '[1] as const' with 'queryKey()' util and fix 'act' callback type in preact-query --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useSuspenseQueries.test.tsx | 232 +++++++++++++----- .../src/__tests__/useSuspenseQueries.test.tsx | 219 ++++++++++++----- 2 files changed, 322 insertions(+), 129 deletions(-) diff --git a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx index 8fa4072c69c..ac56ae947b0 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx @@ -1,6 +1,5 @@ import { queryKey, sleep } from '@tanstack/query-test-utils' import { act, fireEvent, render } from '@testing-library/preact' -import type { FunctionalComponent } from 'preact' import { Suspense, startTransition, useTransition } from 'preact/compat' import { useEffect, useRef, useState } from 'preact/hooks' import { @@ -24,33 +23,18 @@ import type { UseSuspenseQueryOptions } from '..' import { ErrorBoundary } from './ErrorBoundary' import { renderWithClient } from './utils' -type NumberQueryOptions = UseSuspenseQueryOptions - -const QUERY_DURATION = 1000 - -const createQuery: (id: number) => NumberQueryOptions = (id) => ({ - queryKey: [id], - queryFn: () => sleep(QUERY_DURATION).then(() => id), -}) -const resolveQueries = async () => { - await vi.advanceTimersByTimeAsync(QUERY_DURATION) -} - -const queryClient = new QueryClient() - describe('useSuspenseQueries', () => { + let queryClient: QueryClient const onSuspend = vi.fn() const onQueriesResolution = vi.fn() - beforeAll(() => { + beforeEach(() => { vi.useFakeTimers() - }) - - afterAll(() => { - vi.useRealTimers() + queryClient = new QueryClient() }) afterEach(() => { + vi.useRealTimers() queryClient.clear() onSuspend.mockClear() onQueriesResolution.mockClear() @@ -64,89 +48,199 @@ describe('useSuspenseQueries', () => { return
loading
} - const withSuspenseWrapper = ( - Component: FunctionalComponent, - ) => { - function SuspendedComponent(props: T) { - return ( - }> - - + it('should suspend on mount', () => { + function Page() { + const queriesResults = useSuspenseQueries( + { + queries: [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })), + combine: (results) => results.map((r) => r.data), + }, + queryClient, ) - } - - return SuspendedComponent - } - - function QueriesContainer({ - queries, - }: { - queries: Array - }) { - const queriesResults = useSuspenseQueries( - { queries, combine: (results) => results.map((r) => r.data) }, - queryClient, - ) - - useEffect(() => { - onQueriesResolution(queriesResults) - }, [queriesResults]) - return null - } + useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) - const TestComponent = withSuspenseWrapper(QueriesContainer) + return null + } - it('should suspend on mount', () => { - render() + render( + }> + + , + ) expect(onSuspend).toHaveBeenCalledOnce() }) it('should resolve queries', async () => { - render() + function Page() { + const queriesResults = useSuspenseQueries( + { + queries: [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })), + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) - await act(resolveQueries) + useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) + + return null + } + + render( + }> + + , + ) + + await act(async () => { + await vi.advanceTimersByTimeAsync(1000) + }) expect(onQueriesResolution).toHaveBeenCalledTimes(1) expect(onQueriesResolution).toHaveBeenLastCalledWith([1, 2]) }) it('should not suspend on mount if query has been already fetched', () => { - const query = createQuery(1) + const key = queryKey() + const queryFn = () => sleep(1000).then(() => 1) - queryClient.setQueryData(query.queryKey, query.queryFn) + queryClient.setQueryData(key, queryFn) - render() + function Page() { + const queriesResults = useSuspenseQueries( + { + queries: [{ queryKey: key, queryFn }], + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) + + useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) + + return null + } + + render( + }> + + , + ) expect(onSuspend).not.toHaveBeenCalled() }) it('should not break suspense when queries change without resolving', async () => { - const initQueries = [1, 2].map(createQuery) - const nextQueries = [3, 4, 5, 6].map(createQuery) + const initQueries = [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + const nextQueries = [3, 4, 5, 6].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + + function Page({ + queries, + }: { + queries: Array> + }) { + const queriesResults = useSuspenseQueries( + { + queries, + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) + + useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) - const { rerender } = render() + return null + } - rerender() + const { rerender } = render( + }> + + , + ) - await act(resolveQueries) + rerender( + }> + + , + ) + + await act(async () => { + await vi.advanceTimersByTimeAsync(1000) + }) expect(onSuspend).toHaveBeenCalled() // the test for onQueriesResolution is React-specific and not applicable to Preact }) it('should suspend only once per queries change', async () => { - const initQueries = [1, 2].map(createQuery) - const nextQueries = [3, 4, 5, 6].map(createQuery) + const initQueries = [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + const nextQueries = [3, 4, 5, 6].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + + function Page({ + queries, + }: { + queries: Array> + }) { + const queriesResults = useSuspenseQueries( + { + queries, + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) + + useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) + + return null + } - const { rerender } = render() + const { rerender } = render( + }> + + , + ) - await act(resolveQueries) + await act(async () => { + await vi.advanceTimersByTimeAsync(1000) + }) - rerender() + rerender( + }> + + , + ) - await act(resolveQueries) + await act(async () => { + await vi.advanceTimersByTimeAsync(1000) + }) expect(onSuspend).toHaveBeenCalledTimes(2) expect(onQueriesResolution).toHaveBeenCalledTimes(2) @@ -263,12 +357,16 @@ describe('useSuspenseQueries', () => { }) describe('useSuspenseQueries 2', () => { + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryClient = new QueryClient() }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should suspend all queries in parallel', async () => { diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 4ebd32ea90b..46561056bf6 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -21,31 +21,18 @@ import { import { renderWithClient } from './utils' import type { UseSuspenseQueryOptions } from '..' -type NumberQueryOptions = UseSuspenseQueryOptions - -const QUERY_DURATION = 1000 - -const createQuery: (id: number) => NumberQueryOptions = (id) => ({ - queryKey: [id], - queryFn: () => sleep(QUERY_DURATION).then(() => id), -}) -const resolveQueries = () => vi.advanceTimersByTimeAsync(QUERY_DURATION) - -const queryClient = new QueryClient() - describe('useSuspenseQueries', () => { + let queryClient: QueryClient const onSuspend = vi.fn() const onQueriesResolution = vi.fn() - beforeAll(() => { + beforeEach(() => { vi.useFakeTimers() - }) - - afterAll(() => { - vi.useRealTimers() + queryClient = new QueryClient() }) afterEach(() => { + vi.useRealTimers() queryClient.clear() onSuspend.mockClear() onQueriesResolution.mockClear() @@ -59,71 +46,141 @@ describe('useSuspenseQueries', () => { return
loading
} - const withSuspenseWrapper = (Component: React.FC) => { - function SuspendedComponent(props: T) { - return ( - }> - - + it('should suspend on mount', () => { + function Page() { + const queriesResults = useSuspenseQueries( + { + queries: [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })), + combine: (results) => results.map((r) => r.data), + }, + queryClient, ) - } - - return SuspendedComponent - } - - function QueriesContainer({ - queries, - }: { - queries: Array - }) { - const queriesResults = useSuspenseQueries( - { queries, combine: (results) => results.map((r) => r.data) }, - queryClient, - ) - - React.useEffect(() => { - onQueriesResolution(queriesResults) - }, [queriesResults]) - return null - } + React.useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) - const TestComponent = withSuspenseWrapper(QueriesContainer) + return null + } - it('should suspend on mount', () => { - render() + render( + }> + + , + ) expect(onSuspend).toHaveBeenCalledOnce() }) it('should resolve queries', async () => { - render() + function Page() { + const queriesResults = useSuspenseQueries( + { + queries: [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })), + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) - await act(resolveQueries) + React.useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) + + return null + } + + render( + }> + + , + ) + + await act(() => vi.advanceTimersByTimeAsync(1000)) expect(onQueriesResolution).toHaveBeenCalledTimes(1) expect(onQueriesResolution).toHaveBeenLastCalledWith([1, 2]) }) it('should not suspend on mount if query has been already fetched', () => { - const query = createQuery(1) + const key = queryKey() + const queryFn = () => sleep(1000).then(() => 1) + + queryClient.setQueryData(key, queryFn) + + function Page() { + const queriesResults = useSuspenseQueries( + { + queries: [{ queryKey: key, queryFn }], + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) - queryClient.setQueryData(query.queryKey, query.queryFn) + React.useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) - render() + return null + } + + render( + }> + + , + ) expect(onSuspend).not.toHaveBeenCalled() }) it('should not break suspense when queries change without resolving', async () => { - const initQueries = [1, 2].map(createQuery) - const nextQueries = [3, 4, 5, 6].map(createQuery) + const initQueries = [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + const nextQueries = [3, 4, 5, 6].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + + function Page({ + queries, + }: { + queries: Array> + }) { + const queriesResults = useSuspenseQueries( + { + queries, + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) - const { rerender } = render() + React.useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) - rerender() + return null + } - await act(resolveQueries) + const { rerender } = render( + }> + + , + ) + + rerender( + }> + + , + ) + + await act(() => vi.advanceTimersByTimeAsync(1000)) expect(onSuspend).toHaveBeenCalledTimes(1) expect(onQueriesResolution).toHaveBeenCalledTimes(1) @@ -131,16 +188,50 @@ describe('useSuspenseQueries', () => { }) it('should suspend only once per queries change', async () => { - const initQueries = [1, 2].map(createQuery) - const nextQueries = [3, 4, 5, 6].map(createQuery) + const initQueries = [1, 2].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + const nextQueries = [3, 4, 5, 6].map((id) => ({ + queryKey: [id], + queryFn: () => sleep(1000).then(() => id), + })) + + function Page({ + queries, + }: { + queries: Array> + }) { + const queriesResults = useSuspenseQueries( + { + queries, + combine: (results) => results.map((r) => r.data), + }, + queryClient, + ) + + React.useEffect(() => { + onQueriesResolution(queriesResults) + }, [queriesResults]) + + return null + } - const { rerender } = render() + const { rerender } = render( + }> + + , + ) - await act(resolveQueries) + await act(() => vi.advanceTimersByTimeAsync(1000)) - rerender() + rerender( + }> + + , + ) - await act(resolveQueries) + await act(() => vi.advanceTimersByTimeAsync(1000)) expect(onSuspend).toHaveBeenCalledTimes(2) expect(onQueriesResolution).toHaveBeenCalledTimes(2) @@ -258,12 +349,16 @@ describe('useSuspenseQueries', () => { }) describe('useSuspenseQueries 2', () => { + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryClient = new QueryClient() }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should suspend all queries in parallel', async () => { From 7ca1f723fb0d26fbde5926b5038f93a8a98ef4c0 Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Mon, 30 Mar 2026 13:39:34 +0100 Subject: [PATCH 027/414] docs(examples): clean up angular README package manager commands (#10306) --- examples/angular/auto-refetching/README.md | 4 ++-- examples/angular/basic-persister/README.md | 4 ++-- examples/angular/basic/README.md | 4 ++-- examples/angular/devtools-panel/README.md | 4 ++-- examples/angular/infinite-query-with-max-pages/README.md | 4 ++-- examples/angular/optimistic-updates/README.md | 4 ++-- examples/angular/pagination/README.md | 4 ++-- examples/angular/query-options-from-a-service/README.md | 4 ++-- examples/angular/router/README.md | 4 ++-- examples/angular/rxjs/README.md | 4 ++-- examples/angular/simple/README.md | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/examples/angular/auto-refetching/README.md b/examples/angular/auto-refetching/README.md index 571955a305d..4a70c6af6e7 100644 --- a/examples/angular/auto-refetching/README.md +++ b/examples/angular/auto-refetching/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/basic-persister/README.md b/examples/angular/basic-persister/README.md index 47d5931979a..6c79fc36193 100644 --- a/examples/angular/basic-persister/README.md +++ b/examples/angular/basic-persister/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/basic/README.md b/examples/angular/basic/README.md index 15f2ed2f4a2..61eb487a22c 100644 --- a/examples/angular/basic/README.md +++ b/examples/angular/basic/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/devtools-panel/README.md b/examples/angular/devtools-panel/README.md index 849d0a9d4e0..729ce68dc49 100644 --- a/examples/angular/devtools-panel/README.md +++ b/examples/angular/devtools-panel/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/infinite-query-with-max-pages/README.md b/examples/angular/infinite-query-with-max-pages/README.md index fce960f6a35..4f308448f5f 100644 --- a/examples/angular/infinite-query-with-max-pages/README.md +++ b/examples/angular/infinite-query-with-max-pages/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/optimistic-updates/README.md b/examples/angular/optimistic-updates/README.md index 583897ad45d..bcffae54d27 100644 --- a/examples/angular/optimistic-updates/README.md +++ b/examples/angular/optimistic-updates/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/pagination/README.md b/examples/angular/pagination/README.md index fd58c455860..6e113c75664 100644 --- a/examples/angular/pagination/README.md +++ b/examples/angular/pagination/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/query-options-from-a-service/README.md b/examples/angular/query-options-from-a-service/README.md index f9e940480ac..40bce6275f8 100644 --- a/examples/angular/query-options-from-a-service/README.md +++ b/examples/angular/query-options-from-a-service/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/router/README.md b/examples/angular/router/README.md index 0429048cb9c..ea37ad5d945 100644 --- a/examples/angular/router/README.md +++ b/examples/angular/router/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/rxjs/README.md b/examples/angular/rxjs/README.md index bc63a82b7f2..5603b0de263 100644 --- a/examples/angular/rxjs/README.md +++ b/examples/angular/rxjs/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/simple/README.md b/examples/angular/simple/README.md index 35939257ca9..b2acfd071ab 100644 --- a/examples/angular/simple/README.md +++ b/examples/angular/simple/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` From 2dca719ec7e8c280fe5cb98e77b8ddb2d7be518e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=8F=84=ED=98=84?= <101170386+fe-dudu@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:00:23 +0900 Subject: [PATCH 028/414] docs(community-projects): add React Query Visualizer to the list of community projects (#10351) --- docs/community-resources.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/community-resources.md b/docs/community-resources.md index 9b591ba5cd9..3ce503b41a5 100644 --- a/docs/community-resources.md +++ b/docs/community-resources.md @@ -175,6 +175,11 @@ others: url: 'https://github.com/rametta/rapini', description: '🥬 OpenAPI to React Query (or SWR) & Axios', }, + { + title: 'React Query Visualizer', + url: 'https://marketplace.visualstudio.com/items?itemName=fe-dudu.react-query-visualizer', + description: 'VS Code extension for TanStack Query (React Query): visualize query keys, cache invalidation/refetch flows, and file impact graph', + }, { title: 'Tanstack Query Visualizer', url: 'https://tanstack-query-visualizer.sofi.coop/', From 7e5fe214bda1be2d840cf049848dc2f561ed653c Mon Sep 17 00:00:00 2001 From: Zelys Date: Mon, 30 Mar 2026 08:10:17 -0500 Subject: [PATCH 029/414] test(eslint-plugin-query/no-void-query-fn): add coverage for prefetchQuery, prefetchInfiniteQuery, ensureQueryData, ensureInfiniteQueryData (#10353) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dominik Dorfmeister 🔮 --- .../src/__tests__/no-void-query-fn.test.ts | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts index e26c21de8f6..c47856fbc67 100644 --- a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts @@ -215,6 +215,58 @@ ruleTester.run('no-void-query-fn', rule, { }) `, }, + { + name: 'prefetchQuery queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchQuery({ + queryKey: ['test'], + queryFn: () => fetch('/api/test').then((r) => r.json()), + }) + `, + }, + { + name: 'prefetchInfiniteQuery queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: ['test'], + queryFn: ({ pageParam }: { pageParam: number }) => + fetch(\`/api/test?page=\${pageParam}\`).then((r) => r.json()), + initialPageParam: 0, + }) + `, + }, + { + name: 'ensureQueryData queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureQueryData({ + queryKey: ['test'], + queryFn: () => fetch('/api/test').then((r) => r.json()), + }) + `, + }, + { + name: 'ensureInfiniteQueryData queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureInfiniteQueryData({ + queryKey: ['test'], + queryFn: ({ pageParam }: { pageParam: number }) => + fetch(\`/api/test?page=\${pageParam}\`).then((r) => r.json()), + initialPageParam: 0, + }) + `, + }, ], invalid: [ { @@ -439,5 +491,67 @@ ruleTester.run('no-void-query-fn', rule, { `, errors: [{ messageId: 'noVoidReturn' }], }, + { + name: 'prefetchQuery queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchQuery({ + queryKey: ['test'], + queryFn: async () => { + await fetch('/api/test') + }, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'prefetchInfiniteQuery queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: ['test'], + queryFn: async ({ pageParam }: { pageParam: number }) => { + await fetch(\`/api/test?page=\${pageParam}\`) + }, + initialPageParam: 0, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'ensureQueryData queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureQueryData({ + queryKey: ['test'], + queryFn: async () => { + await fetch('/api/test') + }, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'ensureInfiniteQueryData queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureInfiniteQueryData({ + queryKey: ['test'], + queryFn: async ({ pageParam }: { pageParam: number }) => { + await fetch(\`/api/test?page=\${pageParam}\`) + }, + initialPageParam: 0, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, ], }) From f168555261d73206189bff699a1e54a465b75a42 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 31 Mar 2026 10:55:02 +0900 Subject: [PATCH 030/414] test({react,preact,solid}-query): move 'queryClient' and 'queryCache' to 'beforeEach' for per-test isolation (#10356) * test({react,preact}-query): move 'queryClient' and 'queryCache' to 'beforeEach' for per-test isolation * test(solid-query): move 'queryClient' and 'queryCache' to 'beforeEach' for per-test isolation * test({react,preact}-query): add 'queryClient.clear()' to 'afterEach' in 'useQuery' and 'useMutation' * test({react,preact}-query): add 'queryClient.clear()' to 'afterEach' in 'ssr' and 'suspense' * test({react,preact}-query/ssr): remove redundant 'queryCache.clear()' calls in individual tests * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../QueryResetErrorBoundary.test.tsx | 9 +++++--- .../__tests__/fine-grained-persister.test.tsx | 9 +++++--- .../preact-query/src/__tests__/ssr.test.tsx | 13 +---------- .../src/__tests__/suspense.test.tsx | 1 + .../src/__tests__/useInfiniteQuery.test.tsx | 23 +++++++++++-------- .../src/__tests__/useMutation.test.tsx | 1 + .../usePrefetchInfiniteQuery.test.tsx | 10 ++++---- .../src/__tests__/usePrefetchQuery.test.tsx | 7 ++++-- .../src/__tests__/useQueries.test.tsx | 9 +++++--- .../src/__tests__/useQuery.test.tsx | 1 + .../useSuspenseInfiniteQuery.test.tsx | 15 +++++++++--- .../src/__tests__/useSuspenseQuery.test.tsx | 9 +++++--- .../QueryResetErrorBoundary.test.tsx | 9 +++++--- .../__tests__/fine-grained-persister.test.tsx | 9 +++++--- .../react-query/src/__tests__/ssr.test.tsx | 19 +-------------- .../src/__tests__/suspense.test.tsx | 1 + .../src/__tests__/useInfiniteQuery.test.tsx | 23 +++++++++++-------- .../src/__tests__/useMutation.test.tsx | 1 + .../usePrefetchInfiniteQuery.test.tsx | 9 +++++--- .../src/__tests__/usePrefetchQuery.test.tsx | 7 ++++-- .../src/__tests__/useQueries.test.tsx | 9 +++++--- .../src/__tests__/useQuery.test.tsx | 1 + .../useSuspenseInfiniteQuery.test.tsx | 9 +++++--- .../src/__tests__/useSuspenseQuery.test.tsx | 9 +++++--- .../src/__tests__/suspense.test.tsx | 9 +++++--- .../src/__tests__/transition.test.tsx | 9 +++++--- .../src/__tests__/useInfiniteQuery.test.tsx | 9 +++++--- .../src/__tests__/useMutation.test.tsx | 12 ++++++---- .../src/__tests__/useQueries.test.tsx | 9 +++++--- .../src/__tests__/useQuery.test.tsx | 7 ++++-- 30 files changed, 159 insertions(+), 109 deletions(-) diff --git a/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx index 1f1bb00b8d5..5d873cf1800 100644 --- a/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -17,17 +17,20 @@ import { ErrorBoundary } from './ErrorBoundary' import { renderWithClient } from './utils' describe('QueryErrorResetBoundary', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - describe('useQuery', () => { it('should retry fetch if the reset error boundary has been reset', async () => { const consoleMock = vi diff --git a/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx b/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx index 87bd366253a..a4f7172b5c0 100644 --- a/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx @@ -10,17 +10,20 @@ import { QueryCache, QueryClient, hashKey, useQuery } from '..' import { renderWithClient } from './utils' describe('fine grained persister', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should restore query state from persister and not refetch', async () => { const key = queryKey() const hash = hashKey(key) diff --git a/packages/preact-query/src/__tests__/ssr.test.tsx b/packages/preact-query/src/__tests__/ssr.test.tsx index d543a57501f..deae3ba27e9 100644 --- a/packages/preact-query/src/__tests__/ssr.test.tsx +++ b/packages/preact-query/src/__tests__/ssr.test.tsx @@ -27,6 +27,7 @@ describe('Server Side Rendering', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should not trigger fetch', () => { @@ -53,8 +54,6 @@ describe('Server Side Rendering', () => { expect(markup).toContain('status pending') expect(queryFn).toHaveBeenCalledTimes(0) - - queryCache.clear() }) it('should add prefetched data to cache', async () => { @@ -70,8 +69,6 @@ describe('Server Side Rendering', () => { expect(data).toBe('data') expect(queryCache.find({ queryKey: key })?.state.data).toBe('data') - - queryCache.clear() }) it('should return existing data from the cache', async () => { @@ -101,8 +98,6 @@ describe('Server Side Rendering', () => { expect(markup).toContain('status success') expect(queryFn).toHaveBeenCalledTimes(1) - - queryCache.clear() }) it('should add initialData to the cache', () => { @@ -133,8 +128,6 @@ describe('Server Side Rendering', () => { const keys = queryCache.getAll().map((query) => query.queryKey) expect(keys).toEqual([[key, 1]]) - - queryCache.clear() }) it('useMutationState should return empty array', () => { @@ -151,8 +144,6 @@ describe('Server Side Rendering', () => { ) expect(markup).toContain('mutationState: 0') - - queryCache.clear() }) it('useInfiniteQuery should return the correct state', async () => { @@ -190,7 +181,5 @@ describe('Server Side Rendering', () => { expect(markup).toContain('page 1') expect(queryFn).toHaveBeenCalledTimes(1) - - queryCache.clear() }) }) diff --git a/packages/preact-query/src/__tests__/suspense.test.tsx b/packages/preact-query/src/__tests__/suspense.test.tsx index e731f8121ab..05f50d0abeb 100644 --- a/packages/preact-query/src/__tests__/suspense.test.tsx +++ b/packages/preact-query/src/__tests__/suspense.test.tsx @@ -53,6 +53,7 @@ describe('Suspense Timer Tests', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should enforce minimum staleTime of 1000ms when using suspense with number', async () => { diff --git a/packages/preact-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/preact-query/src/__tests__/useInfiniteQuery.test.tsx index cfbf15e6952..e37238ca7bf 100644 --- a/packages/preact-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useInfiniteQuery.test.tsx @@ -45,22 +45,25 @@ const fetchItems = async ( } describe('useInfiniteQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ + queryCache, + defaultOptions: { + queries: { + experimental_prefetchInRender: true, + }, + }, + }) }) afterEach(() => { vi.useRealTimers() - }) - - const queryCache = new QueryCache() - const queryClient = new QueryClient({ - queryCache, - defaultOptions: { - queries: { - experimental_prefetchInRender: true, - }, - }, + queryClient.clear() }) it('should return the correct states for a successful query', async () => { diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index f6d75e8eaa7..20da59ce502 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -29,6 +29,7 @@ describe('useMutation', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should be able to reset `data`', async () => { diff --git a/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx b/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx index f87cb2a2204..40c88ce47c1 100644 --- a/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx +++ b/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx @@ -42,19 +42,21 @@ const generateInfiniteQueryOptions = ( } describe('usePrefetchInfiniteQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { + vi.useRealTimers() queryClient.clear() Fallback.mockClear() - vi.useRealTimers() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - const Fallback = vi.fn().mockImplementation(() =>
Loading...
) function Suspended(props: { diff --git a/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx b/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx index c8fa85339e0..603d3f4b3ee 100644 --- a/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx +++ b/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx @@ -25,15 +25,18 @@ const generateQueryFn = (data: string) => }) describe('usePrefetchQuery', () => { - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) + let queryCache: QueryCache + let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) function Suspended(props: { diff --git a/packages/preact-query/src/__tests__/useQueries.test.tsx b/packages/preact-query/src/__tests__/useQueries.test.tsx index 7b6b59c6996..83bc5785d85 100644 --- a/packages/preact-query/src/__tests__/useQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useQueries.test.tsx @@ -31,17 +31,20 @@ import { ErrorBoundary } from './ErrorBoundary' import { renderWithClient } from './utils' describe('useQueries', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should return the correct states', async () => { const key1 = queryKey() const key2 = queryKey() diff --git a/packages/preact-query/src/__tests__/useQuery.test.tsx b/packages/preact-query/src/__tests__/useQuery.test.tsx index ae7676a941c..b03b9edea25 100644 --- a/packages/preact-query/src/__tests__/useQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test.tsx @@ -48,6 +48,7 @@ describe('useQuery', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) // See https://github.com/tannerlinsley/react-query/issues/105 diff --git a/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx b/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx index 3c2ef26f7ec..c985edbfe98 100644 --- a/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx @@ -1,6 +1,6 @@ import { queryKey } from '@tanstack/query-test-utils' import { Suspense } from 'preact/compat' -import { describe, expect, it, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryCache, @@ -11,8 +11,17 @@ import { import { renderWithClient } from './utils' describe('useSuspenseInfiniteQuery', () => { - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) + let queryCache: QueryCache + let queryClient: QueryClient + + beforeEach(() => { + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) + }) + + afterEach(() => { + queryClient.clear() + }) it('should log an error when skipToken is passed as queryFn', () => { const consoleErrorSpy = vi diff --git a/packages/preact-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/preact-query/src/__tests__/useSuspenseQuery.test.tsx index fd38f84915e..a523fb45319 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQuery.test.tsx @@ -22,17 +22,20 @@ import { ErrorBoundary } from './ErrorBoundary' import { renderWithClient } from './utils' describe('useSuspenseQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - /** * Preact Suspense handles the rerenders differently than React. * This test only checks for 4 renders (vs. React -> 6) diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index f1506fb0e29..016e7f34d01 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -15,17 +15,20 @@ import { import { renderWithClient } from './utils' describe('QueryErrorResetBoundary', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - describe('useQuery', () => { it('should retry fetch if the reset error boundary has been reset', async () => { const consoleMock = vi diff --git a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx index e2b76a4c42a..e6b455876bc 100644 --- a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx @@ -9,17 +9,20 @@ import { QueryCache, QueryClient, hashKey, useQuery } from '..' import { renderWithClient } from './utils' describe('fine grained persister', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should restore query state from persister and not refetch', async () => { const key = queryKey() const hash = hashKey(key) diff --git a/packages/react-query/src/__tests__/ssr.test.tsx b/packages/react-query/src/__tests__/ssr.test.tsx index 8ca076c5478..3cd16c7ee92 100644 --- a/packages/react-query/src/__tests__/ssr.test.tsx +++ b/packages/react-query/src/__tests__/ssr.test.tsx @@ -29,6 +29,7 @@ describe('Server Side Rendering', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should not trigger fetch', () => { @@ -55,8 +56,6 @@ describe('Server Side Rendering', () => { expect(markup).toContain('status pending') expect(queryFn).toHaveBeenCalledTimes(0) - - queryCache.clear() }) it('should add prefetched data to cache', async () => { @@ -72,8 +71,6 @@ describe('Server Side Rendering', () => { expect(data).toBe('data') expect(queryCache.find({ queryKey: key })?.state.data).toBe('data') - - queryCache.clear() }) it('should return existing data from the cache', async () => { @@ -103,8 +100,6 @@ describe('Server Side Rendering', () => { expect(markup).toContain('status success') expect(queryFn).toHaveBeenCalledTimes(1) - - queryCache.clear() }) it('should add initialData to the cache', () => { @@ -135,8 +130,6 @@ describe('Server Side Rendering', () => { const keys = queryCache.getAll().map((query) => query.queryKey) expect(keys).toEqual([[key, 1]]) - - queryCache.clear() }) it('useInfiniteQuery should return the correct state', async () => { @@ -174,8 +167,6 @@ describe('Server Side Rendering', () => { expect(markup).toContain('page 1') expect(queryFn).toHaveBeenCalledTimes(1) - - queryCache.clear() }) it('useIsFetching should return 0 after prefetch completes', async () => { @@ -205,8 +196,6 @@ describe('Server Side Rendering', () => { expect(markup).toContain('data') expect(markup).toContain('isFetching: 0') - - queryCache.clear() }) it('useQueries should return existing data from the cache', async () => { @@ -247,8 +236,6 @@ describe('Server Side Rendering', () => { expect(markup).toContain('status2: success') expect(markup).toContain('data1: data1') expect(markup).toContain('data2: data2') - - queryCache.clear() }) it('useMutation should return idle status', () => { @@ -267,8 +254,6 @@ describe('Server Side Rendering', () => { ) expect(markup).toContain('status: idle') - - queryCache.clear() }) it('useMutationState should return empty array', () => { @@ -285,7 +270,5 @@ describe('Server Side Rendering', () => { ) expect(markup).toContain('mutationState: 0') - - queryCache.clear() }) }) diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index 41acbb40981..99e9ff7fe9d 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -51,6 +51,7 @@ describe('Suspense Timer Tests', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should enforce minimum staleTime of 1000ms when using suspense with number', async () => { diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index d663eb3177c..d8de686d1a0 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -46,22 +46,25 @@ const fetchItems = async ( } describe('useInfiniteQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ + queryCache, + defaultOptions: { + queries: { + experimental_prefetchInRender: true, + }, + }, + }) }) afterEach(() => { vi.useRealTimers() - }) - - const queryCache = new QueryCache() - const queryClient = new QueryClient({ - queryCache, - defaultOptions: { - queries: { - experimental_prefetchInRender: true, - }, - }, + queryClient.clear() }) it('should return the correct states for a successful query', async () => { diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 7b30546d583..02143c2811e 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -28,6 +28,7 @@ describe('useMutation', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should be able to reset `data`', async () => { diff --git a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx index 7b0a21f271b..6bfe00e0882 100644 --- a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx @@ -43,17 +43,20 @@ const generateInfiniteQueryOptions = ( } describe('usePrefetchInfiniteQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - function Suspended(props: { queryOpts: UseSuspenseInfiniteQueryOptions< T, diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx index e196a2f6201..25f14949751 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx @@ -24,15 +24,18 @@ const generateQueryFn = (data: string) => }) describe('usePrefetchQuery', () => { - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) + let queryCache: QueryCache + let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) function Suspended(props: { diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index 068b22494c6..25b624964dc 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -30,17 +30,20 @@ import type { import type { QueryFunctionContext } from '@tanstack/query-core' describe('useQueries', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should return the correct states', async () => { const key1 = queryKey() const key2 = queryKey() diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 8b7829915d7..0542dfe7eac 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -40,6 +40,7 @@ describe('useQuery', () => { afterEach(() => { vi.useRealTimers() + queryClient.clear() }) // See https://github.com/tannerlinsley/react-query/issues/105 diff --git a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx index df3ae92bf32..962f8b0fa50 100644 --- a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx @@ -12,17 +12,20 @@ import { renderWithClient } from './utils' import type { InfiniteData, UseSuspenseInfiniteQueryResult } from '..' describe('useSuspenseInfiniteQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should return the correct states for a successful infinite query', async () => { const key = queryKey() const states: Array>> = diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index de8d535b7ac..9a01fc784b5 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -20,17 +20,20 @@ import type { } from '..' describe('useSuspenseQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should render the correct amount of times in Suspense mode', async () => { const key = queryKey() const states: Array> = [] diff --git a/packages/solid-query/src/__tests__/suspense.test.tsx b/packages/solid-query/src/__tests__/suspense.test.tsx index 8fbb86e9f3b..b2df435dfc2 100644 --- a/packages/solid-query/src/__tests__/suspense.test.tsx +++ b/packages/solid-query/src/__tests__/suspense.test.tsx @@ -19,17 +19,20 @@ import { import type { InfiniteData, UseInfiniteQueryResult, UseQueryResult } from '..' describe("useQuery's in Suspense mode", () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should render the correct amount of times in Suspense mode', async () => { const key = queryKey() const states: Array> = [] diff --git a/packages/solid-query/src/__tests__/transition.test.tsx b/packages/solid-query/src/__tests__/transition.test.tsx index 81a8c2d9b8f..89c1c182276 100644 --- a/packages/solid-query/src/__tests__/transition.test.tsx +++ b/packages/solid-query/src/__tests__/transition.test.tsx @@ -5,17 +5,20 @@ import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, QueryClientProvider, useQuery } from '..' describe("useQuery's in Suspense mode with transitions", () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should render the content when the transition is done', async () => { const key = queryKey() diff --git a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx index 7e7c1590ce7..0c68ee77ff0 100644 --- a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx @@ -51,17 +51,20 @@ const fetchItems = ( })) describe('useInfiniteQuery', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should return the correct states for a successful query', async () => { const key = queryKey() const states: Array>> = [] diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index 66a1f76a8e3..44bc4879680 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -18,18 +18,22 @@ import { mockOnlineManagerIsOnline, setActTimeout } from './utils' import type { UseMutationResult } from '../types' describe('useMutation', () => { + let queryCache: QueryCache + let mutationCache: MutationCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + mutationCache = new MutationCache() + queryClient = new QueryClient({ queryCache, mutationCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const mutationCache = new MutationCache() - const queryClient = new QueryClient({ queryCache, mutationCache }) - it('should be able to reset `data`', async () => { function Page() { const mutation = useMutation(() => ({ diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index c3838e94f8b..6f48af7861e 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -27,17 +27,20 @@ import type { } from '..' describe('useQueries', () => { + let queryCache: QueryCache + let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) - it('should return the correct states', async () => { const key1 = queryKey() const key2 = queryKey() diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 490426dcb74..d001fbaf5dd 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -44,15 +44,18 @@ import type { Mock } from 'vitest' import type { JSX } from 'solid-js' describe('useQuery', () => { - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) + let queryCache: QueryCache + let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() + queryCache = new QueryCache() + queryClient = new QueryClient({ queryCache }) }) afterEach(() => { vi.useRealTimers() + queryClient.clear() }) it('should return the correct types', () => { From fd8c068c941cc1a8fe530798330c598a8265d64a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 31 Mar 2026 15:19:01 +0900 Subject: [PATCH 031/414] test({react,preact}-query/useSuspenseQueries): merge redundant second 'describe' block into first (#10362) --- .../src/__tests__/useSuspenseQueries.test.tsx | 14 -------------- .../src/__tests__/useSuspenseQueries.test.tsx | 14 -------------- 2 files changed, 28 deletions(-) diff --git a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx index ac56ae947b0..9968d2db5ea 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx @@ -354,20 +354,6 @@ describe('useSuspenseQueries', () => { // Without bug, it should be small (initial suspend + resolution = 2-3) expect(renderCount).toBeLessThan(10) }) -}) - -describe('useSuspenseQueries 2', () => { - let queryClient: QueryClient - - beforeEach(() => { - vi.useFakeTimers() - queryClient = new QueryClient() - }) - - afterEach(() => { - vi.useRealTimers() - queryClient.clear() - }) it('should suspend all queries in parallel', async () => { const key1 = queryKey() diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 46561056bf6..ef79a331fcf 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -346,20 +346,6 @@ describe('useSuspenseQueries', () => { // Without bug, it should be small (initial suspend + resolution = 2-3) expect(renderCount).toBeLessThan(10) }) -}) - -describe('useSuspenseQueries 2', () => { - let queryClient: QueryClient - - beforeEach(() => { - vi.useFakeTimers() - queryClient = new QueryClient() - }) - - afterEach(() => { - vi.useRealTimers() - queryClient.clear() - }) it('should suspend all queries in parallel', async () => { const key1 = queryKey() From 14a97b7ab1060652be2c0197d204d256c196860b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 31 Mar 2026 15:43:22 +0900 Subject: [PATCH 032/414] test(react-query): replace 'import React' with 'import * as React' in 'usePrefetchQuery' and 'usePrefetchInfiniteQuery' (#10363) --- .../react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx | 2 +- packages/react-query/src/__tests__/usePrefetchQuery.test.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx index 6bfe00e0882..af1f1ab0272 100644 --- a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import React from 'react' +import * as React from 'react' import { act, fireEvent } from '@testing-library/react' import { queryKey, sleep } from '@tanstack/query-test-utils' import { diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx index 25f14949751..1dacbeacd0a 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import React from 'react' +import * as React from 'react' import { act, fireEvent } from '@testing-library/react' import { ErrorBoundary } from 'react-error-boundary' import { queryKey, sleep } from '@tanstack/query-test-utils' From ed2f2ab01f593af84df99a83f7ef1882aef533bc Mon Sep 17 00:00:00 2001 From: Eliya Cohen Date: Tue, 31 Mar 2026 13:12:57 +0300 Subject: [PATCH 033/414] feat(eslint-plugin-query): add prefer-query-options rule (#10359) --- .changeset/prefer-query-options-rule.md | 5 + docs/config.json | 4 + docs/eslint/eslint-plugin-query.md | 24 + docs/eslint/prefer-query-options.md | 145 +++ .../react/eslint-plugin-demo/eslint.config.js | 2 +- .../src/prefer-query-options-demo.tsx | 49 + .../react/eslint-plugin-demo/src/queries.tsx | 23 + .../__tests__/prefer-query-options.test.ts | 1019 +++++++++++++++++ packages/eslint-plugin-query/src/index.ts | 50 +- packages/eslint-plugin-query/src/rules.ts | 2 + .../prefer-query-options.rule.ts | 389 +++++++ 11 files changed, 1694 insertions(+), 18 deletions(-) create mode 100644 .changeset/prefer-query-options-rule.md create mode 100644 docs/eslint/prefer-query-options.md create mode 100644 examples/react/eslint-plugin-demo/src/prefer-query-options-demo.tsx create mode 100644 examples/react/eslint-plugin-demo/src/queries.tsx create mode 100644 packages/eslint-plugin-query/src/__tests__/prefer-query-options.test.ts create mode 100644 packages/eslint-plugin-query/src/rules/prefer-query-options/prefer-query-options.rule.ts diff --git a/.changeset/prefer-query-options-rule.md b/.changeset/prefer-query-options-rule.md new file mode 100644 index 00000000000..bd33094aec8 --- /dev/null +++ b/.changeset/prefer-query-options-rule.md @@ -0,0 +1,5 @@ +--- +'@tanstack/eslint-plugin-query': minor +--- + +Add `prefer-query-options` rule and `recommendedStrict` config diff --git a/docs/config.json b/docs/config.json index 54eeb77e838..41200ceaed2 100644 --- a/docs/config.json +++ b/docs/config.json @@ -1293,6 +1293,10 @@ { "label": "Mutation Property Order", "to": "eslint/mutation-property-order" + }, + { + "label": "Prefer Query Options", + "to": "eslint/prefer-query-options" } ] }, diff --git a/docs/eslint/eslint-plugin-query.md b/docs/eslint/eslint-plugin-query.md index 8b6ae637dec..8a1d726884b 100644 --- a/docs/eslint/eslint-plugin-query.md +++ b/docs/eslint/eslint-plugin-query.md @@ -46,6 +46,19 @@ export default [ ] ``` +### Recommended strict setup + +The `flat/recommended-strict` config extends `flat/recommended` with additional opinionated rules that enforce best practices more aggressively. + +```js +import pluginQuery from '@tanstack/eslint-plugin-query' + +export default [ + ...pluginQuery.configs['flat/recommended-strict'], + // Any other config... +] +``` + ### Custom setup Alternatively, you can load the plugin and configure only the rules you want to use: @@ -78,6 +91,16 @@ To enable all of the recommended rules for our plugin, add `plugin:@tanstack/que } ``` +### Recommended strict setup + +The `recommendedStrict` config extends `recommended` with additional opinionated rules: + +```json +{ + "extends": ["plugin:@tanstack/query/recommendedStrict"] +} +``` + ### Custom setup Alternatively, add `@tanstack/query` to the plugins section, and configure the rules you want to use: @@ -100,3 +123,4 @@ Alternatively, add `@tanstack/query` to the plugins section, and configure the r - [@tanstack/query/infinite-query-property-order](./infinite-query-property-order.md) - [@tanstack/query/no-void-query-fn](./no-void-query-fn.md) - [@tanstack/query/mutation-property-order](./mutation-property-order.md) +- [@tanstack/query/prefer-query-options](./prefer-query-options.md) diff --git a/docs/eslint/prefer-query-options.md b/docs/eslint/prefer-query-options.md new file mode 100644 index 00000000000..3228774bf7d --- /dev/null +++ b/docs/eslint/prefer-query-options.md @@ -0,0 +1,145 @@ +--- +id: prefer-query-options +title: Prefer the use of queryOptions +--- + +Separating `queryKey` and `queryFn` can cause unexpected runtime issues when the same query key is accidentally used with more than one `queryFn`. Wrapping them in `queryOptions` (or `infiniteQueryOptions`) co-locates the key and function, making queries safer and easier to reuse. + +## Rule Details + +Examples of **incorrect** code for this rule: + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function Component({ id }) { + const query = useQuery({ + queryKey: ['get', id], + queryFn: () => Api.get(`/foo/${id}`), + }) + // ... +} +``` + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function useFooQuery(id) { + return useQuery({ + queryKey: ['get', id], + queryFn: () => Api.get(`/foo/${id}`), + }) +} +``` + +Examples of **correct** code for this rule: + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function getFooOptions(id) { + return queryOptions({ + queryKey: ['get', id], + queryFn: () => Api.get(`/foo/${id}`), + }) +} + +function Component({ id }) { + const query = useQuery(getFooOptions(id)) + // ... +} +``` + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function getFooOptions(id) { + return queryOptions({ + queryKey: ['get', id], + queryFn: () => Api.get(`/foo/${id}`), + }) +} + +function useFooQuery(id) { + return useQuery({ ...getFooOptions(id), select: (data) => data.foo }) +} +``` + +The rule also enforces reusing `queryKey` from a `queryOptions` result instead of typing it manually in `QueryClient` methods or filters. + +Examples of **incorrect** `queryKey` references for this rule: + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function todoOptions(id) { + return queryOptions({ + queryKey: ['todo', id], + queryFn: () => api.getTodo(id), + }) +} + +function Component({ id }) { + const queryClient = useQueryClient() + return queryClient.getQueryData(['todo', id]) +} +``` + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function todoOptions(id) { + return queryOptions({ + queryKey: ['todo', id], + queryFn: () => api.getTodo(id), + }) +} + +function Component({ id }) { + const queryClient = useQueryClient() + return queryClient.invalidateQueries({ queryKey: ['todo', id] }) +} +``` + +Examples of **correct** `queryKey` references for this rule: + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function todoOptions(id) { + return queryOptions({ + queryKey: ['todo', id], + queryFn: () => api.getTodo(id), + }) +} + +function Component({ id }) { + const queryClient = useQueryClient() + return queryClient.getQueryData(todoOptions(id).queryKey) +} +``` + +```tsx +/* eslint "@tanstack/query/prefer-query-options": "error" */ + +function todoOptions(id) { + return queryOptions({ + queryKey: ['todo', id], + queryFn: () => api.getTodo(id), + }) +} + +function Component({ id }) { + const queryClient = useQueryClient() + return queryClient.invalidateQueries({ queryKey: todoOptions(id).queryKey }) +} +``` + +## When Not To Use It + +If you do not want to enforce the use of `queryOptions` in your codebase, you will not need this rule. + +## Attributes + +- [x] ✅ Recommended (strict) +- [ ] 🔧 Fixable diff --git a/examples/react/eslint-plugin-demo/eslint.config.js b/examples/react/eslint-plugin-demo/eslint.config.js index 1e9a5820b5d..85fa95bb76b 100644 --- a/examples/react/eslint-plugin-demo/eslint.config.js +++ b/examples/react/eslint-plugin-demo/eslint.config.js @@ -3,7 +3,7 @@ import tseslint from 'typescript-eslint' export default [ ...tseslint.configs.recommended, - ...pluginQuery.configs['flat/recommended'], + ...pluginQuery.configs['flat/recommended-strict'], { files: ['src/**/*.ts', 'src/**/*.tsx'], rules: { diff --git a/examples/react/eslint-plugin-demo/src/prefer-query-options-demo.tsx b/examples/react/eslint-plugin-demo/src/prefer-query-options-demo.tsx new file mode 100644 index 00000000000..d992faa55a8 --- /dev/null +++ b/examples/react/eslint-plugin-demo/src/prefer-query-options-demo.tsx @@ -0,0 +1,49 @@ +import { useQuery, useQueryClient } from '@tanstack/react-query' +import { todoOptions, todosOptions } from './queries' + +// ✅ passes: consuming imported queryOptions result directly +export function Todos() { + const query = useQuery(todosOptions) + return query.data +} + +// ✅ passes: spreading imported queryOptions result with additional options +export function Todo({ id }: { id: string }) { + const query = useQuery({ + ...todoOptions(id), + select: (data) => data.title, + }) + return query.data +} + +// ✅ passes: referencing queryKey from imported queryOptions result +export function invalidateTodos() { + const queryClient = useQueryClient() + queryClient.invalidateQueries({ queryKey: todosOptions.queryKey }) +} + +// ❌ fails: inline queryKey + queryFn should use queryOptions() +export function TodosBad() { + const query = useQuery( + // eslint-disable-next-line @tanstack/query/prefer-query-options -- Prefer using queryOptions() or infiniteQueryOptions() to co-locate queryKey and queryFn. + { + queryKey: ['todos'], + queryFn: () => fetch('/api/todos').then((r) => r.json()), + }, + ) + return query.data +} + +// ❌ fails: inline queryKey should reference queryOptions result +export function InvalidateTodosBad() { + const queryClient = useQueryClient() + // eslint-disable-next-line @tanstack/query/prefer-query-options -- Prefer referencing a queryKey from a queryOptions() result instead of typing it manually. + queryClient.invalidateQueries({ queryKey: ['todos'] }) +} + +// ❌ fails: inline queryKey as direct parameter +export function GetTodosDataBad() { + const queryClient = useQueryClient() + // eslint-disable-next-line @tanstack/query/prefer-query-options -- Prefer referencing a queryKey from a queryOptions() result instead of typing it manually. + return queryClient.getQueryData(['todos']) +} diff --git a/examples/react/eslint-plugin-demo/src/queries.tsx b/examples/react/eslint-plugin-demo/src/queries.tsx new file mode 100644 index 00000000000..46a86734eb8 --- /dev/null +++ b/examples/react/eslint-plugin-demo/src/queries.tsx @@ -0,0 +1,23 @@ +import { queryOptions } from '@tanstack/react-query' + +// ✅ passes: queryKey and queryFn are co-located via queryOptions() +export const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), +}) + +// ✅ passes: factory function wrapping queryOptions() +export const todoOptions = (id: string) => + queryOptions({ + queryKey: ['todo', id], + queryFn: () => fetchTodo(id), + }) + +function fetchTodos(): Promise> { + throw new Error('not implemented') +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function fetchTodo(id: string): Promise<{ id: string; title: string }> { + throw new Error('not implemented') +} diff --git a/packages/eslint-plugin-query/src/__tests__/prefer-query-options.test.ts b/packages/eslint-plugin-query/src/__tests__/prefer-query-options.test.ts new file mode 100644 index 00000000000..ff5962623ba --- /dev/null +++ b/packages/eslint-plugin-query/src/__tests__/prefer-query-options.test.ts @@ -0,0 +1,1019 @@ +import { RuleTester } from '@typescript-eslint/rule-tester' +import { afterAll, describe, it } from 'vitest' +import { rule } from '../rules/prefer-query-options/prefer-query-options.rule' +import { normalizeIndent } from './test-utils' + +RuleTester.afterAll = afterAll +RuleTester.describe = describe +RuleTester.it = it + +const ruleTester = new RuleTester() + +describe('prefer-query-options', () => { + describe('queryOptions / infiniteQueryOptions builders', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [ + { + name: 'queryOptions builder is allowed', + code: normalizeIndent` + import { queryOptions } from '@tanstack/react-query' + + const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + `, + }, + { + name: 'infiniteQueryOptions builder is allowed', + code: normalizeIndent` + import { infiniteQueryOptions } from '@tanstack/react-query' + + const todosOptions = infiniteQueryOptions({ + queryKey: ['todos'], + queryFn: ({ pageParam }) => fetchTodos(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + `, + }, + ], + invalid: [], + }) + }) + + describe('hooks consuming queryOptions result', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [ + { + name: 'useQuery with queryOptions result is allowed', + code: normalizeIndent` + import { useQuery, queryOptions } from '@tanstack/react-query' + + const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + + function Component() { + const query = useQuery(todosOptions) + return null + } + `, + }, + { + name: 'useQuery with queryOptions function call result is allowed', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function Component({ id }) { + const query = useQuery(todosOptions(id)) + return null + } + `, + }, + { + name: 'useQuery with imported queryOptions function call is allowed', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + import { getFooOptions } from './foo' + + function Component({ id }) { + const query = useQuery(getFooOptions(id)) + return null + } + `, + }, + { + name: 'useQuery spreading queryOptions result is allowed', + code: normalizeIndent` + import { useQuery, queryOptions } from '@tanstack/react-query' + + const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + + function Component() { + const query = useQuery({ ...todosOptions, select: (data) => data.items }) + return null + } + `, + }, + { + name: 'useQuery spreading queryOptions function call result is allowed', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function Component({ id }) { + const query = useQuery({ ...todosOptions(id), select: (data) => data.items }) + return null + } + `, + }, + { + name: 'useQueries with all entries from queryOptions is allowed', + code: normalizeIndent` + import { useQueries } from '@tanstack/react-query' + + function Component() { + const queries = useQueries({ + queries: [todosOptions, usersOptions], + }) + return null + } + `, + }, + ], + invalid: [], + }) + }) + + describe('queryClient methods referencing queryKey from options', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [ + { + name: 'queryClient.getQueryData with options.queryKey is allowed', + code: normalizeIndent` + import { useQueryClient, queryOptions } from '@tanstack/react-query' + + const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + + function Component() { + const queryClient = useQueryClient() + const data = queryClient.getQueryData(todosOptions.queryKey) + return null + } + `, + }, + { + name: 'queryClient.setQueryData with options.queryKey is allowed', + code: normalizeIndent` + import { useQueryClient, queryOptions } from '@tanstack/react-query' + + const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + + function Component() { + const queryClient = useQueryClient() + queryClient.setQueryData(todosOptions.queryKey, []) + return null + } + `, + }, + { + name: 'queryClient.invalidateQueries with options.queryKey is allowed', + code: normalizeIndent` + import { useQueryClient, queryOptions } from '@tanstack/react-query' + + const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + + function Component() { + const queryClient = useQueryClient() + queryClient.invalidateQueries({ queryKey: todosOptions.queryKey }) + return null + } + `, + }, + { + name: 'queryClient.invalidateQueries with options.queryKey and extra filter props is allowed', + code: normalizeIndent` + import { useQueryClient, queryOptions } from '@tanstack/react-query' + + const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + + function Component() { + const queryClient = useQueryClient() + queryClient.invalidateQueries({ queryKey: todosOptions.queryKey, exact: true }) + return null + } + `, + }, + { + name: 'queryClient.getQueryData with variable queryKey is allowed', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component({ queryKey }) { + const queryClient = useQueryClient() + const data = queryClient.getQueryData(queryKey) + return null + } + `, + }, + { + name: 'shadowed queryClient parameter is ignored', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + + function run(queryClient) { + queryClient.fetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + } + + return null + } + `, + }, + { + name: 'non-queryClient fetchQuery call is ignored', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + const analytics = { + fetchQuery(options) { + return options + }, + } + + function Component() { + useQuery(todosOptions) + + analytics.fetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + + return null + } + `, + }, + ], + invalid: [], + }) + }) + + describe('non-tanstack imports', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [ + { + name: 'non-tanstack useQuery is ignored', + code: normalizeIndent` + import { useQuery } from 'other-library' + + function Component() { + const query = useQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + }, + ], + invalid: [], + }) + }) + + describe('inline lone queryKey or queryFn in hooks', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [], + invalid: [ + { + name: 'useQuery with only inline queryKey (no queryFn)', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function Component() { + const query = useQuery({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useQuery with only inline queryFn (no queryKey)', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function Component() { + const query = useQuery({ queryFn: () => fetchTodos() }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + ], + }) + }) + + describe('spread with inline queryKey or queryFn override in hooks', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [], + invalid: [ + { + name: 'useQuery spreading options but overriding queryKey inline', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function Component() { + const query = useQuery({ ...options, queryKey: ['override'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useQuery spreading options but overriding queryFn inline', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function Component() { + const query = useQuery({ ...options, queryFn: () => fetchOverride() }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + ], + }) + }) + + describe('inline queryKey + queryFn in hooks', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [], + invalid: [ + { + name: 'useQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function Component() { + const query = useQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'aliased useQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useQuery as useTanstackQuery } from '@tanstack/react-query' + + function Component() { + const query = useTanstackQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useInfiniteQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useInfiniteQuery } from '@tanstack/react-query' + + function Component() { + const query = useInfiniteQuery({ + queryKey: ['todos'], + queryFn: ({ pageParam }) => fetchTodos(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useSuspenseQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useSuspenseQuery } from '@tanstack/react-query' + + function Component() { + const query = useSuspenseQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useSuspenseInfiniteQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useSuspenseInfiniteQuery } from '@tanstack/react-query' + + function Component() { + const query = useSuspenseInfiniteQuery({ + queryKey: ['todos'], + queryFn: ({ pageParam }) => fetchTodos(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useQueries with inline queryKey + queryFn in queries array', + code: normalizeIndent` + import { useQueries } from '@tanstack/react-query' + + function Component() { + const queries = useQueries({ + queries: [ + { + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }, + ], + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useQueries with multiple inline entries reports multiple errors', + code: normalizeIndent` + import { useQueries } from '@tanstack/react-query' + + function Component() { + const queries = useQueries({ + queries: [ + { + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }, + { + queryKey: ['users'], + queryFn: () => fetchUsers(), + }, + ], + }) + return null + } + `, + errors: [ + { messageId: 'preferQueryOptions' }, + { messageId: 'preferQueryOptions' }, + ], + }, + { + name: 'useQueries with mapped inline query objects', + code: normalizeIndent` + import { useQueries } from '@tanstack/react-query' + + function Component({ ids }) { + const queries = useQueries({ + queries: ids.map((id) => ({ + queryKey: ['todos', id], + queryFn: () => fetchTodo(id), + })), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useSuspenseQueries with inline queryKey + queryFn in queries array', + code: normalizeIndent` + import { useSuspenseQueries } from '@tanstack/react-query' + + function Component() { + const queries = useSuspenseQueries({ + queries: [ + { + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }, + ], + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'useSuspenseQueries with mapped inline query objects', + code: normalizeIndent` + import { useSuspenseQueries } from '@tanstack/react-query' + + function Component({ ids }) { + const queries = useSuspenseQueries({ + queries: ids.map((id) => ({ + queryKey: ['todos', id], + queryFn: () => fetchTodo(id), + })), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'usePrefetchQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { usePrefetchQuery } from '@tanstack/react-query' + + function Component() { + usePrefetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'usePrefetchInfiniteQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { usePrefetchInfiniteQuery } from '@tanstack/react-query' + + function Component() { + usePrefetchInfiniteQuery({ + queryKey: ['todos'], + queryFn: ({ pageParam }) => fetchTodos(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'inline queryKey + queryFn inside a custom hook', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + function useTodos() { + return useQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + ], + }) + }) + + describe('queryClient with alternate variable names', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [], + invalid: [ + { + name: 'client.fetchQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const client = useQueryClient() + client.fetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'aliased useQueryClient tracks query client variables', + code: normalizeIndent` + import { useQueryClient as getClient } from '@tanstack/react-query' + + function Component() { + const client = getClient() + client.fetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'aliased QueryClient tracks query client instances', + code: normalizeIndent` + import { QueryClient as Client } from '@tanstack/react-query' + + const queryClient = new Client() + + queryClient.fetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'qc.getQueryData with inline queryKey', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const qc = useQueryClient() + const data = qc.getQueryData(['todos']) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'client.invalidateQueries with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const client = useQueryClient() + client.invalidateQueries({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + ], + }) + }) + + describe('inline queryKey + queryFn in queryClient methods', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [], + invalid: [ + { + name: 'queryClient.fetchQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.fetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'queryClient.prefetchQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.prefetchQuery({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'queryClient.fetchInfiniteQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.fetchInfiniteQuery({ + queryKey: ['todos'], + queryFn: ({ pageParam }) => fetchTodos(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'queryClient.prefetchInfiniteQuery with inline queryKey + queryFn', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: ['todos'], + queryFn: ({ pageParam }) => fetchTodos(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'queryClient.ensureQueryData with inline queryKey + queryFn', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.ensureQueryData({ + queryKey: ['todos'], + queryFn: () => fetchTodos(), + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + { + name: 'queryClient.ensureInfiniteQueryData with inline queryKey + queryFn', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.ensureInfiniteQueryData({ + queryKey: ['todos'], + queryFn: ({ pageParam }) => fetchTodos(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptions' }], + }, + ], + }) + }) + + describe('inline queryKey as direct parameter', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [], + invalid: [ + { + name: 'queryClient.getQueryData with inline queryKey', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + const data = queryClient.getQueryData(['todos']) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.getQueryData with inline queryKey as const', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + const data = queryClient.getQueryData(['todos'] as const) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.getQueryData with inline queryKey satisfies', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + const data = queryClient.getQueryData((['todos']) satisfies readonly string[]) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.setQueryData with inline queryKey', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.setQueryData(['todos'], []) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.getQueryState with inline queryKey', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + const state = queryClient.getQueryState(['todos']) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.setQueryDefaults with inline queryKey', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.setQueryDefaults(['todos'], { staleTime: 1000 }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.getQueryDefaults with inline queryKey', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + const defaults = queryClient.getQueryDefaults(['todos']) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + ], + }) + }) + + describe('inline queryKey in filter objects', () => { + ruleTester.run('prefer-query-options', rule, { + valid: [], + invalid: [ + { + name: 'queryClient.invalidateQueries with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.invalidateQueries({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.invalidateQueries with inline queryKey as const in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.invalidateQueries({ queryKey: ['todos'] as const }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.invalidateQueries with inline queryKey satisfies in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.invalidateQueries({ + queryKey: (['todos']) satisfies readonly string[], + }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.cancelQueries with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.cancelQueries({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.refetchQueries with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.refetchQueries({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.removeQueries with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.removeQueries({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.resetQueries with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.resetQueries({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.isFetching with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + const count = queryClient.isFetching({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.getQueriesData with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + const data = queryClient.getQueriesData({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'queryClient.setQueriesData with inline queryKey in filters', + code: normalizeIndent` + import { useQueryClient } from '@tanstack/react-query' + + function Component() { + const queryClient = useQueryClient() + queryClient.setQueriesData({ queryKey: ['todos'] }, []) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + { + name: 'useIsFetching with inline queryKey in filters', + code: normalizeIndent` + import { useIsFetching } from '@tanstack/react-query' + + function Component() { + const count = useIsFetching({ queryKey: ['todos'] }) + return null + } + `, + errors: [{ messageId: 'preferQueryOptionsQueryKey' }], + }, + ], + }) + }) +}) diff --git a/packages/eslint-plugin-query/src/index.ts b/packages/eslint-plugin-query/src/index.ts index 452bc0f5a42..085ba7b9f3d 100644 --- a/packages/eslint-plugin-query/src/index.ts +++ b/packages/eslint-plugin-query/src/index.ts @@ -8,10 +8,27 @@ export interface Plugin extends Omit { rules: Record> configs: { recommended: ESLint.ConfigData + recommendedStrict: ESLint.ConfigData 'flat/recommended': Array + 'flat/recommended-strict': Array } } +const recommendedRules = { + '@tanstack/query/exhaustive-deps': 'error', + '@tanstack/query/no-rest-destructuring': 'warn', + '@tanstack/query/stable-query-client': 'error', + '@tanstack/query/no-unstable-deps': 'error', + '@tanstack/query/infinite-query-property-order': 'error', + '@tanstack/query/no-void-query-fn': 'error', + '@tanstack/query/mutation-property-order': 'error', +} as const + +const recommendedStrictRules = { + ...recommendedRules, + '@tanstack/query/prefer-query-options': 'error', +} as const + export const plugin = { meta: { name: '@tanstack/eslint-plugin-query', @@ -19,15 +36,11 @@ export const plugin = { configs: { recommended: { plugins: ['@tanstack/query'], - rules: { - '@tanstack/query/exhaustive-deps': 'error', - '@tanstack/query/no-rest-destructuring': 'warn', - '@tanstack/query/stable-query-client': 'error', - '@tanstack/query/no-unstable-deps': 'error', - '@tanstack/query/infinite-query-property-order': 'error', - '@tanstack/query/no-void-query-fn': 'error', - '@tanstack/query/mutation-property-order': 'error', - }, + rules: recommendedRules, + }, + recommendedStrict: { + plugins: ['@tanstack/query'], + rules: recommendedStrictRules, }, 'flat/recommended': [ { @@ -35,15 +48,16 @@ export const plugin = { plugins: { '@tanstack/query': {}, // Assigned after plugin object created }, - rules: { - '@tanstack/query/exhaustive-deps': 'error', - '@tanstack/query/no-rest-destructuring': 'warn', - '@tanstack/query/stable-query-client': 'error', - '@tanstack/query/no-unstable-deps': 'error', - '@tanstack/query/infinite-query-property-order': 'error', - '@tanstack/query/no-void-query-fn': 'error', - '@tanstack/query/mutation-property-order': 'error', + rules: recommendedRules, + }, + ], + 'flat/recommended-strict': [ + { + name: 'tanstack/query/flat/recommended-strict', + plugins: { + '@tanstack/query': {}, // Assigned after plugin object created }, + rules: recommendedStrictRules, }, ], }, @@ -51,5 +65,7 @@ export const plugin = { } satisfies Plugin plugin.configs['flat/recommended'][0]!.plugins['@tanstack/query'] = plugin +plugin.configs['flat/recommended-strict'][0]!.plugins['@tanstack/query'] = + plugin export default plugin diff --git a/packages/eslint-plugin-query/src/rules.ts b/packages/eslint-plugin-query/src/rules.ts index d527768ec1d..cbae59eb9c9 100644 --- a/packages/eslint-plugin-query/src/rules.ts +++ b/packages/eslint-plugin-query/src/rules.ts @@ -5,6 +5,7 @@ import * as noUnstableDeps from './rules/no-unstable-deps/no-unstable-deps.rule' import * as infiniteQueryPropertyOrder from './rules/infinite-query-property-order/infinite-query-property-order.rule' import * as noVoidQueryFn from './rules/no-void-query-fn/no-void-query-fn.rule' import * as mutationPropertyOrder from './rules/mutation-property-order/mutation-property-order.rule' +import * as preferQueryOptions from './rules/prefer-query-options/prefer-query-options.rule' import type { ESLintUtils } from '@typescript-eslint/utils' import type { ExtraRuleDocs } from './types' @@ -24,4 +25,5 @@ export const rules: Record< [infiniteQueryPropertyOrder.name]: infiniteQueryPropertyOrder.rule, [noVoidQueryFn.name]: noVoidQueryFn.rule, [mutationPropertyOrder.name]: mutationPropertyOrder.rule, + [preferQueryOptions.name]: preferQueryOptions.rule, } diff --git a/packages/eslint-plugin-query/src/rules/prefer-query-options/prefer-query-options.rule.ts b/packages/eslint-plugin-query/src/rules/prefer-query-options/prefer-query-options.rule.ts new file mode 100644 index 00000000000..b7e65e9907e --- /dev/null +++ b/packages/eslint-plugin-query/src/rules/prefer-query-options/prefer-query-options.rule.ts @@ -0,0 +1,389 @@ +import { AST_NODE_TYPES, ESLintUtils } from '@typescript-eslint/utils' +import { ASTUtils } from '../../utils/ast-utils' +import { detectTanstackQueryImports } from '../../utils/detect-react-query-imports' +import { getDocsUrl } from '../../utils/get-docs-url' +import type { TSESLint, TSESTree } from '@typescript-eslint/utils' +import type { ExtraRuleDocs } from '../../types' + +export const name = 'prefer-query-options' + +const queryHooks = [ + 'useQuery', + 'useInfiniteQuery', + 'useSuspenseQuery', + 'useSuspenseInfiniteQuery', + 'usePrefetchQuery', + 'usePrefetchInfiniteQuery', +] + +const queriesHooks = ['useQueries', 'useSuspenseQueries'] + +const filterHooks = ['useIsFetching'] + +const queryClientOptionMethods = [ + 'fetchQuery', + 'prefetchQuery', + 'fetchInfiniteQuery', + 'prefetchInfiniteQuery', + 'ensureQueryData', + 'ensureInfiniteQueryData', +] + +const queryClientQueryKeyMethods = [ + 'getQueryData', + 'setQueryData', + 'getQueryState', + 'setQueryDefaults', + 'getQueryDefaults', +] + +const queryClientFilterMethods = [ + 'invalidateQueries', + 'cancelQueries', + 'refetchQueries', + 'removeQueries', + 'resetQueries', + 'isFetching', + 'getQueriesData', + 'setQueriesData', +] + +const queryOptionsBuilders = ['queryOptions', 'infiniteQueryOptions'] + +const createRule = ESLintUtils.RuleCreator(getDocsUrl) +type Helpers = { + isTanstackQueryImport: (node: TSESTree.Identifier) => boolean +} + +export const rule = createRule({ + name, + meta: { + type: 'problem', + docs: { + description: + 'Prefer using queryOptions() to co-locate queryKey and queryFn', + recommended: 'strict', + }, + messages: { + preferQueryOptions: + 'Prefer using queryOptions() or infiniteQueryOptions() to co-locate queryKey and queryFn.', + preferQueryOptionsQueryKey: + 'Prefer referencing a queryKey from a queryOptions() result instead of typing it manually.', + }, + schema: [], + }, + defaultOptions: [], + + create: detectTanstackQueryImports((context, _, helpers) => { + function reportInlineQueryOptions(node: TSESTree.Node): void { + if (ASTUtils.isObjectExpression(node) && hasInlineQueryOptions(node)) { + context.report({ + node, + messageId: 'preferQueryOptions', + }) + } + } + + function reportInlineFilterQueryKey(node: TSESTree.Node): void { + if (ASTUtils.isObjectExpression(node) && hasInlineFilterQueryKey(node)) { + context.report({ + node, + messageId: 'preferQueryOptionsQueryKey', + }) + } + } + + return { + CallExpression: (node) => { + if (ASTUtils.isIdentifier(node.callee)) { + const importedName = getTanstackImportName( + context, + helpers, + node.callee, + ) + + if (importedName === null) { + return + } + + if (queryOptionsBuilders.includes(importedName)) { + return + } + + const options = node.arguments[0] + + if (options === undefined) { + return + } + + if (queryHooks.includes(importedName)) { + reportInlineQueryOptions(options) + return + } + + if ( + queriesHooks.includes(importedName) && + ASTUtils.isObjectExpression(options) + ) { + const queries = ASTUtils.findPropertyWithIdentifierKey( + options.properties, + 'queries', + )?.value + + if (queries !== undefined) { + getQueryObjects(queries).forEach((query) => { + reportInlineQueryOptions(query) + }) + } + + return + } + + if (filterHooks.includes(importedName)) { + reportInlineFilterQueryKey(options) + } + + return + } + + if ( + node.callee.type !== AST_NODE_TYPES.MemberExpression || + !ASTUtils.isIdentifier(node.callee.property) || + !isTanstackQueryClient(node.callee.object, context, helpers) + ) { + return + } + + const method = node.callee.property.name + const options = node.arguments[0] + + if (options === undefined) { + return + } + + if (queryClientOptionMethods.includes(method)) { + reportInlineQueryOptions(options) + return + } + + if ( + queryClientQueryKeyMethods.includes(method) && + isInlineArrayExpression(options) + ) { + context.report({ + node: options, + messageId: 'preferQueryOptionsQueryKey', + }) + return + } + + if (queryClientFilterMethods.includes(method)) { + reportInlineFilterQueryKey(options) + } + }, + } + }), +}) + +function hasInlineQueryOptions(node: TSESTree.ObjectExpression): boolean { + return ( + ASTUtils.findPropertyWithIdentifierKey(node.properties, 'queryKey') !== + undefined || + ASTUtils.findPropertyWithIdentifierKey(node.properties, 'queryFn') !== + undefined + ) +} + +function hasInlineFilterQueryKey(node: TSESTree.ObjectExpression): boolean { + const queryKey = ASTUtils.findPropertyWithIdentifierKey( + node.properties, + 'queryKey', + )?.value + + return queryKey !== undefined && isInlineArrayExpression(queryKey) +} + +function isInlineArrayExpression(node: TSESTree.Node): boolean { + return unwrapTypeAssertions(node).type === AST_NODE_TYPES.ArrayExpression +} + +function getReturnedObjectExpressions( + node: TSESTree.Node, +): Array { + if (ASTUtils.isObjectExpression(node)) { + return [node] + } + + if ( + node.type === AST_NODE_TYPES.ArrowFunctionExpression || + node.type === AST_NODE_TYPES.FunctionExpression + ) { + return getReturnedObjectExpressions(node.body) + } + + if (node.type === AST_NODE_TYPES.BlockStatement) { + return node.body.flatMap((statement) => { + if ( + statement.type === AST_NODE_TYPES.ReturnStatement && + statement.argument !== null + ) { + return getReturnedObjectExpressions(statement.argument) + } + + return [] + }) + } + + if (node.type === AST_NODE_TYPES.ConditionalExpression) { + return [ + ...getReturnedObjectExpressions(node.consequent), + ...getReturnedObjectExpressions(node.alternate), + ] + } + + if (node.type === AST_NODE_TYPES.LogicalExpression) { + return [ + ...getReturnedObjectExpressions(node.left), + ...getReturnedObjectExpressions(node.right), + ] + } + + if (node.type === AST_NODE_TYPES.SequenceExpression) { + return node.expressions.flatMap((expression) => + getReturnedObjectExpressions(expression), + ) + } + + return [] +} + +function getQueryObjects( + node: TSESTree.Node, +): Array { + if (node.type === AST_NODE_TYPES.ArrayExpression) { + return node.elements.flatMap((element) => { + if (element !== null && ASTUtils.isObjectExpression(element)) { + return [element] + } + + return [] + }) + } + + if ( + node.type === AST_NODE_TYPES.CallExpression && + node.callee.type === AST_NODE_TYPES.MemberExpression && + ASTUtils.isIdentifierWithName(node.callee.property, 'map') + ) { + const mapper = node.arguments[0] + + if ( + mapper?.type === AST_NODE_TYPES.ArrowFunctionExpression || + mapper?.type === AST_NODE_TYPES.FunctionExpression + ) { + return getReturnedObjectExpressions(mapper) + } + } + + return [] +} + +function isTanstackQueryClient( + node: TSESTree.Node, + context: Readonly>>, + helpers: Helpers, +): boolean { + const source = resolveQueryClientSource(node, context) + + if ( + source.type === AST_NODE_TYPES.CallExpression && + ASTUtils.isIdentifier(source.callee) + ) { + return ( + getTanstackImportName(context, helpers, source.callee) === + 'useQueryClient' + ) + } + + if ( + source.type === AST_NODE_TYPES.NewExpression && + ASTUtils.isIdentifier(source.callee) + ) { + return ( + getTanstackImportName(context, helpers, source.callee) === 'QueryClient' + ) + } + + return false +} + +function getTanstackImportName( + context: Readonly>>, + helpers: Helpers, + node: TSESTree.Identifier, +): string | null { + if (!helpers.isTanstackQueryImport(node)) { + return null + } + + const definition = context.sourceCode + .getScope(node) + .references.find((reference) => reference.identifier === node)?.resolved + ?.defs[0]?.node + + if ( + definition?.type !== AST_NODE_TYPES.ImportSpecifier || + definition.imported.type !== AST_NODE_TYPES.Identifier + ) { + return null + } + + return definition.imported.name +} + +function resolveQueryClientSource( + node: TSESTree.Node, + context: Readonly>>, +): TSESTree.Node { + const visitedNodes = new Set() + + while (!visitedNodes.has(node)) { + visitedNodes.add(node) + + if (node.type === AST_NODE_TYPES.ChainExpression) { + node = node.expression + continue + } + + node = unwrapTypeAssertions(node) + + if (node.type !== AST_NODE_TYPES.Identifier) { + return node + } + + const expression = ASTUtils.getReferencedExpressionByIdentifier({ + context, + node, + }) + + if (expression === null) { + return node + } + + node = expression + } + + return node +} + +function unwrapTypeAssertions(node: TSESTree.Node): TSESTree.Node { + while ( + node.type === AST_NODE_TYPES.TSAsExpression || + node.type === AST_NODE_TYPES.TSSatisfiesExpression || + node.type === AST_NODE_TYPES.TSTypeAssertion + ) { + node = node.expression + } + + return node +} From 73e783bd8677a1011d95d34a896e1bf93cbb11a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 12:42:54 +0200 Subject: [PATCH 034/414] ci: Version Packages (#10364) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/prefer-query-options-rule.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 6 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 297 ++++++++++-------- 108 files changed, 487 insertions(+), 276 deletions(-) delete mode 100644 .changeset/prefer-query-options-rule.md diff --git a/.changeset/prefer-query-options-rule.md b/.changeset/prefer-query-options-rule.md deleted file mode 100644 index bd33094aec8..00000000000 --- a/.changeset/prefer-query-options-rule.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/eslint-plugin-query': minor ---- - -Add `prefer-query-options` rule and `recommendedStrict` config diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 903d3253bf4..e7d6d844cef 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index e44b1b0c448..03f2b9a40aa 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", - "@tanstack/angular-query-persist-client": "^5.95.2", - "@tanstack/query-async-storage-persister": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-persist-client": "^5.96.0", + "@tanstack/query-async-storage-persister": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 3e40f4c27a2..6acf51b4cf1 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index a9f31870a14..7295e62cc2c 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index bd71538ef99..df249d4399f 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 74fb6231358..ed9324aac39 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 3d3d47bc9fb..da4749a7418 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index f5a0be6bb7f..2e4367d3e8b 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 4eb9722e85e..0e475811338 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index b118696fe71..82ddf07cd76 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 46cfe6069eb..c069dbc54f1 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 5d73214fefb..1c1f5e256a1 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.2", + "@tanstack/eslint-plugin-query": "^5.96.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 7bc24a1f570..b2de0121f28 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 913e77a87bf..05c60b392e2 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 9adbb6e2f8c..9f590266750 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.2", - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", - "@tanstack/react-query-persist-client": "^5.95.2", + "@tanstack/query-async-storage-persister": "^5.96.0", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query-persist-client": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.2", + "@tanstack/eslint-plugin-query": "^5.96.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 5e05c23684f..7802bf9d708 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 1fc7e778f6a..f88a128579b 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 5c2b7bd40b1..5e840a1ae4e 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 3ae1a59303f..584653cb176 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.2", - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", - "@tanstack/react-query-persist-client": "^5.95.2", + "@tanstack/query-async-storage-persister": "^5.96.0", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query-persist-client": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.2", + "@tanstack/eslint-plugin-query": "^5.96.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index c48efd8f489..6194a31690b 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query": "^5.96.0", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.2", + "@tanstack/eslint-plugin-query": "^5.96.0", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index cdf078aaf9e..ef12664ca18 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index eaa11f8c146..dff41b73b46 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 69f3a6c2412..c9cf7ed4949 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 99f9aa7ab6d..a308c1a49a7 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", - "@tanstack/react-query-next-experimental": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query-next-experimental": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 49273964aa8..3e14d0b250a 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 7ab04b3f08d..9afc1ebfee7 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.2", + "@tanstack/query-async-storage-persister": "^5.96.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", - "@tanstack/react-query-persist-client": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query-persist-client": "^5.96.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index c007d7aadc4..3b59fec924e 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 98254a1d554..f6b2f6e53ac 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 7bf4094570a..2990e601112 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 9d8750044ab..3497b5658b5 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index aba01da4c5d..3ad9d68c586 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 9ccc5dec5a5..5bf1454e5fd 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 8e6e3875cfe..26548409ce9 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 08223349923..f8c9a2a33f1 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index d71d077c885..65b21f40864 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 8e1548883e7..72306ffff6f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 2c5e84a3cb9..78915563b42 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 057f4f367c6..b8d3014ac42 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.95.2", - "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query-devtools": "^5.96.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a754e7067ca..3ef9cc76409 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.95.2", - "@tanstack/solid-query-devtools": "^5.95.2", + "@tanstack/solid-query": "^5.96.0", + "@tanstack/solid-query-devtools": "^5.96.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 44a3e35f0cd..350f5c318fa 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.2", - "@tanstack/solid-query-devtools": "^5.95.2", + "@tanstack/solid-query": "^5.96.0", + "@tanstack/solid-query-devtools": "^5.96.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index f86e3d6b2e9..b41fa9ebd59 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.2", - "@tanstack/solid-query-devtools": "^5.95.2", + "@tanstack/solid-query": "^5.96.0", + "@tanstack/solid-query-devtools": "^5.96.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 98e62b07e7f..97f5534aad1 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.2", - "@tanstack/solid-query-devtools": "^5.95.2", + "@tanstack/solid-query": "^5.96.0", + "@tanstack/solid-query-devtools": "^5.96.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 587a859f78d..530fbaf697d 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.2", - "@tanstack/solid-query": "^5.95.2", - "@tanstack/solid-query-devtools": "^5.95.2", - "@tanstack/solid-query-persist-client": "^5.95.2", + "@tanstack/query-async-storage-persister": "^5.96.0", + "@tanstack/solid-query": "^5.96.0", + "@tanstack/solid-query-devtools": "^5.96.0", + "@tanstack/solid-query-persist-client": "^5.96.0", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index fe1678886b2..448b17bb0a2 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.95.2", - "@tanstack/solid-query-devtools": "^5.95.2", + "@tanstack/solid-query": "^5.96.0", + "@tanstack/solid-query-devtools": "^5.96.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.95.2", + "@tanstack/eslint-plugin-query": "^5.96.0", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index fc176c710af..91bd5aa4844 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.95.2", - "@tanstack/solid-query-devtools": "^5.95.2", + "@tanstack/solid-query": "^5.96.0", + "@tanstack/solid-query-devtools": "^5.96.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index c9a20b043af..55c9e0166f2 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10" + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 00fbe765dae..e03cb0f3a0a 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.95.2", - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10", - "@tanstack/svelte-query-persist-client": "^6.1.10" + "@tanstack/query-async-storage-persister": "^5.96.0", + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11", + "@tanstack/svelte-query-persist-client": "^6.1.11" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 6f59db8f7ea..bc3b8e12dde 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10" + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index be6b942663b..88951ab65d9 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10" + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index babe8dfc01e..efa650c9078 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10" + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 1e1f300e45f..38f193b256e 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10" + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index b1b4c92419b..47bc3828861 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10" + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 532539568a0..4e2125c20f5 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.10", - "@tanstack/svelte-query-devtools": "^6.1.10" + "@tanstack/svelte-query": "^6.1.11", + "@tanstack/svelte-query-devtools": "^6.1.11" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 48899dad84c..182090c14c5 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.2", - "@tanstack/vue-query-devtools": "^6.1.10", + "@tanstack/vue-query": "^5.96.0", + "@tanstack/vue-query-devtools": "^6.1.11", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 5381a58aeed..20e77ba9a81 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.2", + "@tanstack/vue-query": "^5.96.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index a8d69e6f6ef..4aa7410ef67 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.95.2", - "@tanstack/query-persist-client-core": "^5.95.2", - "@tanstack/query-sync-storage-persister": "^5.95.2", - "@tanstack/vue-query": "^5.95.2", + "@tanstack/query-core": "^5.96.0", + "@tanstack/query-persist-client-core": "^5.96.0", + "@tanstack/query-sync-storage-persister": "^5.96.0", + "@tanstack/vue-query": "^5.96.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 1ab089d7772..071b6d5e8ba 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.95.2", - "@tanstack/vue-query-devtools": "^6.1.10", + "@tanstack/vue-query": "^5.96.0", + "@tanstack/vue-query-devtools": "^6.1.11", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 949a93b0afe..afaec49545d 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.95.2", + "@tanstack/angular-query-experimental": "^5.96.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index a07c5e7f93b..0d9bff40aad 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 6613b1e96ce..0a2a00cebac 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.95.2", + "version": "5.96.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index f9e263e929d..f24deb33d2b 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.96.0 + - @tanstack/query-persist-client-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 44577c80468..640debf2ed4 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.95.2", + "version": "5.96.0", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 1261c0cefe6..840ebe9c35d 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/eslint-plugin-query +## 5.96.0 + +### Minor Changes + +- Add `prefer-query-options` rule and `recommendedStrict` config ([#10359](https://github.com/TanStack/query/pull/10359)) + ## 5.95.2 ## 5.95.1 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index bb729cd58b0..e2b308ac725 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.95.2", + "version": "5.96.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index c55afec3bca..e42f9ec1c54 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.96.0 + - @tanstack/query-devtools@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 00463014ce3..cd55ae5723b 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.95.2", + "version": "5.96.0", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 80e5e66147f..07b33b0f85f 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.96.0 + - @tanstack/query-persist-client-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 14d318ae737..91a12f0c726 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.95.2", + "version": "5.96.0", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 39334670d0d..5dfc2dfb407 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index a54ffab332a..f100624a6fd 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.95.2", + "version": "5.96.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index d7e95f022cd..6a7421e9dc0 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + - @tanstack/query-persist-client-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index d8c96122ab1..cef2fbc219e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.95.2", + "version": "5.96.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 3a620eda66a..77a076c46d2 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index bc9dcd0659f..9f32c994832 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.95.2", + "version": "5.96.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index f093c891c8e..36c0cd0ed92 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 8375b125c0b..cfb06e095cf 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.95.2", + "version": "5.96.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index b6b2b0d3cb3..c7ea82dc1f7 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.96.0 + ## 5.95.2 ## 5.95.1 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 8423f38243b..a308de6d164 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.95.2", + "version": "5.96.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 5d172047df0..b7eaf40d091 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index bbf5207f2dd..c552a11c0a9 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.95.2", + "version": "5.96.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 7810a26392a..9fe5ac637a9 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + - @tanstack/query-persist-client-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index c7faea7baba..da79288d8c2 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.95.2", + "version": "5.96.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 1640b4934dd..2accfe47ead 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.0 + - @tanstack/react-query@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index dbfcdd67e1b..2f33bb13fa8 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.95.2", + "version": "5.96.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 237f6dc259b..85f57f4994f 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 9ea7f2a2a65..24e61ce5867 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.95.2", + "version": "5.96.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 16928740b73..1fcee425ea8 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.0 + - @tanstack/react-query@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 486a31ea8aa..3424e78e170 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.95.2", + "version": "5.96.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 1ba42415992..4af4f4dd440 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 90fdb483bbf..90dac0df1b9 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.95.2", + "version": "5.96.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 50a9249b30e..3c7ddf2f9bd 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.0 + - @tanstack/solid-query@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index b23fa1aa0f2..9862c3acdce 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.95.2", + "version": "5.96.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 80e259fe273..95171c022a8 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.0 + - @tanstack/solid-query@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 06f671d3c30..54d45eb787b 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.95.2", + "version": "5.96.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index a54560c74d5..ae4812bbb61 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 4fe7ba43c50..c30591ad850 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.95.2", + "version": "5.96.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index c690133aa40..92a76f98c91 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.0 + - @tanstack/svelte-query@6.1.11 + ## 6.1.10 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c4eaada4804..34ef456cc6f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.10", + "version": "6.1.11", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 642ae33a90a..90edc62e8ad 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.0 + - @tanstack/svelte-query@6.1.11 + ## 6.1.10 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 308420aaa4e..1c5dea528c0 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.10", + "version": "6.1.11", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index ca25457602b..9f823ff8225 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 6.1.10 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 391ebb5015b..e9e3746e898 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.10", + "version": "6.1.11", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index f1b1b911be4..878a9880307 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.0 + - @tanstack/vue-query@5.96.0 + ## 6.1.10 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index f63e46b1d78..4c725eced3f 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.10", + "version": "6.1.11", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index f2d25a96056..4c4daa6d34a 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.96.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.0 + ## 5.95.2 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index ce5f500febe..c4d46a299df 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.95.2", + "version": "5.96.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7117237cdb1..7bd3852f208 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.11 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) '@tanstack/solid-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.10 + specifier: ^6.1.11 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.95.2 + specifier: ^5.96.0 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 @@ -2373,13 +2373,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-plugin-externalize-deps: specifier: ^0.9.0 version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -4789,7 +4789,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -21686,6 +21686,19 @@ snapshots: optionalDependencies: typescript: 5.9.3 + '@vue/language-core@2.1.6(typescript@6.0.1-rc)': + dependencies: + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.28 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.28 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 6.0.1-rc + '@vue/language-core@2.2.12(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.15 @@ -30932,6 +30945,10 @@ snapshots: optionalDependencies: typescript: 5.9.3 + tsconfck@3.1.6(typescript@6.0.1-rc): + optionalDependencies: + typescript: 6.0.1-rc + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -31559,6 +31576,25 @@ snapshots: - rollup - supports-color + vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + dependencies: + '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) + '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@volar/typescript': 2.4.28 + '@vue/language-core': 2.1.6(typescript@6.0.1-rc) + compare-versions: 6.1.1 + debug: 4.4.3 + kolorist: 1.8.0 + local-pkg: 0.5.1 + magic-string: 0.30.21 + typescript: 6.0.1-rc + optionalDependencies: + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): dependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) @@ -31618,6 +31654,17 @@ snapshots: - supports-color - typescript + vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + dependencies: + debug: 4.4.3 + globrex: 0.1.2 + tsconfck: 3.1.6(typescript@6.0.1-rc) + optionalDependencies: + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + transitivePeerDependencies: + - supports-color + - typescript + vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): dependencies: esbuild: 0.27.4 From 3fd34606ebc6c7152a06e7d81ca621108c7c21d2 Mon Sep 17 00:00:00 2001 From: Zelys Date: Tue, 31 Mar 2026 09:11:02 -0500 Subject: [PATCH 035/414] docs(react): clarify staleTime 'static' vs Infinity with 'always' triggers (#10354) * docs(react): clarify staleTime 'static' vs Infinity with 'always' triggers * docs(react): lead with invalidateQueries() distinction for staleTime: 'static' vs Infinity --- docs/framework/react/guides/important-defaults.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md index f17e777e566..6829882a536 100644 --- a/docs/framework/react/guides/important-defaults.md +++ b/docs/framework/react/guides/important-defaults.md @@ -14,6 +14,8 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul - set `staleTime` to `Infinity` to never trigger a refetch until the Query is [invalidated manually](./query-invalidation.md). - set `staleTime` to `'static'` to **never** trigger a refetch, even if the Query is [invalidated manually](./query-invalidation.md). +> `'static'` and `Infinity` both prevent staleness-based refetches, but `'static'` is stricter: `queryClient.invalidateQueries()` can invalidate a query with `staleTime: Infinity`, but has no effect on `staleTime: 'static'`. `refetchOnMount`, `refetchOnWindowFocus`, and `refetchOnReconnect` set to `"always"` are also blocked by `'static'`. Use `'static'` for data that cannot change while the app is running: feature flags fetched at boot, user permissions loaded at login, static reference tables. Use `Infinity` when you still want manual invalidation to work. + - Stale queries are refetched automatically in the background when: - New instances of the query mount - The window is refocused From 2853bfb07f78a86791cf595c98e9aabd99c50fde Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 04:03:07 +0000 Subject: [PATCH 036/414] chore(deps): lock file maintenance (#10367) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 6301 +++++++++++++++++++++++++----------------------- 1 file changed, 3237 insertions(+), 3064 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7bd3852f208..ce1ef3d30ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,19 +32,19 @@ importers: version: 0.15.4 '@changesets/cli': specifier: ^2.29.8 - version: 2.29.8(@types/node@22.19.15) + version: 2.30.0(@types/node@22.19.15) '@cspell/eslint-plugin': specifier: ^9.2.1 - version: 9.6.4(eslint@9.39.4(jiti@2.6.1)) + version: 9.7.0(eslint@9.39.4(jiti@2.6.1)) '@eslint-react/eslint-plugin': specifier: ^2.0.1 - version: 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@size-limit/preset-small-lib': specifier: ^12.0.0 - version: 12.0.0(size-limit@12.0.0(jiti@2.6.1)) + version: 12.0.1(size-limit@12.0.1(jiti@2.6.1)) '@svitejs/changesets-changelog-github-compact': specifier: ^1.2.0 - version: 1.2.0(encoding@0.1.13) + version: 1.2.0 '@tanstack/eslint-config': specifier: 0.3.2 version: 0.3.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -53,7 +53,7 @@ importers: version: 0.3.1(typescript@5.9.3) '@tanstack/vite-config': specifier: 0.4.3 - version: 0.4.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 0.4.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@testing-library/jest-dom': specifier: ^6.8.0 version: 6.9.1 @@ -62,16 +62,16 @@ importers: version: 22.19.15 '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) '@vitest/coverage-istanbul': specifier: 4.0.6 - version: 4.0.6(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.0.6(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@vitest/eslint-plugin': specifier: ^1.4.0 - version: 1.6.7(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 1.6.14(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) esbuild-plugin-file-path-extensions: specifier: ^2.1.4 version: 2.1.4 @@ -86,7 +86,7 @@ importers: version: 27.4.0 knip: specifier: ^6.0.2 - version: 6.0.2 + version: 6.1.1(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) markdown-link-extractor: specifier: ^4.0.2 version: 4.0.3 @@ -101,10 +101,10 @@ importers: version: 3.8.1 prettier-plugin-svelte: specifier: ^3.4.0 - version: 3.4.1(prettier@3.8.1)(svelte@5.53.5) + version: 3.5.1(prettier@3.8.1)(svelte@5.55.1) publint: specifier: ^0.3.13 - version: 0.3.17 + version: 0.3.18 react: specifier: ^19.2.1 version: 19.2.4 @@ -113,16 +113,16 @@ importers: version: 19.2.4(react@19.2.4) sherif: specifier: ^1.6.1 - version: 1.10.0 + version: 1.11.1 size-limit: specifier: ^12.0.0 - version: 12.0.0(jiti@2.6.1) + version: 12.0.1(jiti@2.6.1) tinyglobby: specifier: ^0.2.15 version: 0.2.15 tsup: specifier: ^8.4.0 - version: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -149,16 +149,16 @@ importers: version: typescript@6.0.1-rc vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) examples/angular/auto-refetching: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -167,7 +167,7 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -183,13 +183,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -198,7 +198,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -207,7 +207,7 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -223,13 +223,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -238,7 +238,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -247,7 +247,7 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -269,13 +269,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -284,7 +284,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -293,10 +293,10 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/router': specifier: ^20.0.0 - version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -312,13 +312,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -327,7 +327,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -336,7 +336,7 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -352,13 +352,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -367,7 +367,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -376,10 +376,10 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': specifier: ^20.0.0 - version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -395,13 +395,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -410,7 +410,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -419,7 +419,7 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -435,13 +435,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -450,7 +450,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -459,10 +459,10 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/router': specifier: ^20.0.0 - version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -478,13 +478,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -493,7 +493,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -502,10 +502,10 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/router': specifier: ^20.0.0 - version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -521,13 +521,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -536,7 +536,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -545,10 +545,10 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': specifier: ^20.0.0 - version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -564,13 +564,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -579,7 +579,7 @@ importers: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -588,7 +588,7 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../../packages/angular-query-experimental @@ -604,13 +604,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -622,11 +622,11 @@ importers: version: link:../../../packages/preact-query preact: specifier: ^10.28.0 - version: 10.28.3 + version: 10.29.0 devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.3(@babel/core@7.29.0)(preact@10.28.3)(rollup@4.57.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) eslint: specifier: ^9.36.0 version: 9.39.4(jiti@2.6.1) @@ -638,7 +638,7 @@ importers: version: 5.9.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/algolia: dependencies: @@ -663,19 +663,19 @@ importers: version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/auto-refetching: dependencies: @@ -687,7 +687,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -697,10 +697,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -731,19 +731,19 @@ importers: version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/basic-graphql-request: dependencies: @@ -755,10 +755,10 @@ importers: version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 - version: 16.12.0 + version: 16.13.2 graphql-request: specifier: ^7.1.2 - version: 7.4.0(graphql@16.12.0) + version: 7.4.0(graphql@16.13.2) react: specifier: ^19.0.0 version: 19.2.4 @@ -768,10 +768,10 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/chat: dependencies: @@ -790,19 +790,19 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.0.14 - version: 4.1.18(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) tailwindcss: specifier: ^4.0.14 - version: 4.1.18 + version: 4.2.2 typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/default-query-function: dependencies: @@ -821,13 +821,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/devtools-panel: dependencies: @@ -846,13 +846,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/eslint-legacy: dependencies: @@ -880,19 +880,19 @@ importers: version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/eslint-plugin-demo: dependencies: @@ -926,7 +926,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -936,10 +936,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -954,7 +954,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -967,10 +967,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -985,7 +985,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -995,10 +995,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1013,7 +1013,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -1023,10 +1023,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1044,7 +1044,7 @@ importers: version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -1054,10 +1054,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1081,7 +1081,7 @@ importers: version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 - version: 2.12.9(@types/node@22.19.15)(typescript@5.8.3) + version: 2.12.14(@types/node@22.19.15)(typescript@5.8.3) react: specifier: ^19.0.0 version: 19.2.4 @@ -1094,13 +1094,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/optimistic-updates-cache: dependencies: @@ -1112,7 +1112,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -1122,10 +1122,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1140,7 +1140,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -1150,10 +1150,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1168,7 +1168,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -1178,10 +1178,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1203,13 +1203,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/prefetching: dependencies: @@ -1221,7 +1221,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -1231,10 +1231,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1243,13 +1243,13 @@ importers: dependencies: '@react-native-community/netinfo': specifier: ^11.4.1 - version: 11.5.2(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 11.5.2(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@react-navigation/native': specifier: ^6.1.18 - version: 6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': specifier: ^5.96.0 version: link:../../../packages/react-query @@ -1258,37 +1258,37 @@ importers: version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 - version: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) expo-constants: specifier: ^17.0.3 - version: 17.1.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4)) + version: 17.1.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4)) expo-status-bar: specifier: ^2.0.0 - version: 2.2.3(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 2.2.3(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react: specifier: ^19.0.0 version: 19.2.4 react-native: specifier: ^0.76.3 - version: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + version: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) react-native-gesture-handler: specifier: ^2.20.2 - version: 2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react-native-paper: specifier: ^5.12.5 - version: 5.15.0(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 5.15.0(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react-native-reanimated: specifier: ^3.16.2 - version: 3.19.5(@babel/core@7.29.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 3.19.5(@babel/core@7.29.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react-native-safe-area-context: specifier: ^4.12.0 - version: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react-native-screens: specifier: ^4.1.0 - version: 4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + version: 4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react-native-web: specifier: ^0.19.13 - version: 0.19.13(encoding@0.1.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 0.19.13(react-dom@19.2.4(react@19.2.4))(react@19.2.4) devDependencies: '@babel/core': specifier: ^7.24.9 @@ -1335,22 +1335,22 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) '@types/sort-by': specifier: ^1.2.3 version: 1.2.3 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/rick-morty: dependencies: @@ -1375,19 +1375,19 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.1.13 - version: 4.1.18(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) tailwindcss: specifier: ^4.1.13 - version: 4.1.18 + version: 4.2.2 typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/shadow-dom: dependencies: @@ -1406,19 +1406,19 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/simple: dependencies: @@ -1437,13 +1437,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/star-wars: dependencies: @@ -1468,19 +1468,19 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.1.13 - version: 4.1.18(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) tailwindcss: specifier: ^4.1.13 - version: 4.1.18 + version: 4.2.2 typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/react/suspense: dependencies: @@ -1505,31 +1505,31 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/solid/astro: dependencies: '@astrojs/check': specifier: ^0.9.4 - version: 0.9.6(prettier@3.8.1)(typescript@5.8.3) + version: 0.9.8(prettier@3.8.1)(typescript@5.8.3) '@astrojs/node': specifier: ^9.1.3 - version: 9.5.4(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2)) + version: 9.5.5(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3)) '@astrojs/solid-js': specifier: ^5.0.7 - version: 5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(solid-js@1.9.11)(terser@5.46.0)(yaml@2.8.2) + version: 5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(solid-js@1.9.12)(terser@5.46.1)(yaml@2.8.3) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2)) + version: 6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) + version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': specifier: ^5.96.0 version: link:../../../packages/solid-query @@ -1538,13 +1538,13 @@ importers: version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 - version: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) + version: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 tailwindcss: specifier: ^3.4.7 - version: 3.4.19(yaml@2.8.2) + version: 3.4.19(yaml@2.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1559,17 +1559,17 @@ importers: version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 devDependencies: typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) examples/solid/basic-graphql-request: dependencies: @@ -1581,23 +1581,23 @@ importers: version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 - version: 16.12.0 + version: 16.13.2 graphql-request: specifier: ^7.1.2 - version: 7.4.0(graphql@16.12.0) + version: 7.4.0(graphql@16.13.2) solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 devDependencies: typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) examples/solid/default-query-function: dependencies: @@ -1609,17 +1609,17 @@ importers: version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 devDependencies: typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) examples/solid/offline: dependencies: @@ -1637,20 +1637,20 @@ importers: version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 - version: 2.12.9(@types/node@22.19.15)(typescript@5.8.3) + version: 2.12.14(@types/node@22.19.15)(typescript@5.8.3) solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 devDependencies: typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) examples/solid/simple: dependencies: @@ -1662,7 +1662,7 @@ importers: version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': specifier: ^5.96.0 @@ -1672,22 +1672,22 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) examples/solid/solid-start-streaming: dependencies: '@solidjs/meta': specifier: ^0.29.4 - version: 0.29.4(solid-js@1.9.11) + version: 0.29.4(solid-js@1.9.12) '@solidjs/router': specifier: ^0.15.3 - version: 0.15.4(solid-js@1.9.11) + version: 0.15.4(solid-js@1.9.12) '@solidjs/start': specifier: ^1.1.3 - version: 1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': specifier: ^5.96.0 version: link:../../../packages/solid-query @@ -1696,10 +1696,10 @@ importers: version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 vinxi: specifier: ^0.5.3 - version: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/auto-refetching: dependencies: @@ -1712,25 +1712,25 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/basic: dependencies: @@ -1749,25 +1749,25 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/load-more-infinite-scroll: dependencies: @@ -1780,25 +1780,25 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/optimistic-updates: dependencies: @@ -1811,25 +1811,25 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/playground: dependencies: @@ -1842,25 +1842,25 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/simple: dependencies: @@ -1873,22 +1873,22 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tsconfig/svelte': specifier: ^5.0.4 - version: 5.0.7 + version: 5.0.8 svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/ssr: dependencies: @@ -1901,25 +1901,25 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/svelte/star-wars: dependencies: @@ -1932,31 +1932,31 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tailwindcss/vite': specifier: ^4.1.13 - version: 4.1.18(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.3.1 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3) tailwindcss: specifier: ^4.1.13 - version: 4.1.18 + version: 4.2.2 typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/vue/basic: dependencies: @@ -1968,17 +1968,17 @@ importers: version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 - version: 3.5.28(typescript@5.8.3) + version: 3.5.31(typescript@5.8.3) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/vue/dependent-queries: dependencies: @@ -1987,17 +1987,17 @@ importers: version: link:../../../packages/vue-query vue: specifier: ^3.4.27 - version: 3.5.28(typescript@5.8.3) + version: 3.5.31(typescript@5.8.3) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/vue/persister: dependencies: @@ -2018,17 +2018,17 @@ importers: version: 6.2.2 vue: specifier: ^3.4.27 - version: 3.5.28(typescript@5.8.3) + version: 3.5.31(typescript@5.8.3) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) examples/vue/simple: dependencies: @@ -2040,23 +2040,23 @@ importers: version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 - version: 3.5.28(typescript@5.8.3) + version: 3.5.31(typescript@5.8.3) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) integrations/angular-cli-20: dependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -2065,13 +2065,13 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': specifier: ^20.0.0 - version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/router': specifier: ^20.0.0 - version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: ^5.96.0 version: link:../../packages/angular-query-experimental @@ -2087,13 +2087,13 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.16(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^20.0.0 - version: 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) typescript: specifier: ~5.8.2 version: 5.8.3 @@ -2118,10 +2118,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) integrations/react-next-15: dependencies: @@ -2136,7 +2136,7 @@ importers: version: link:../../packages/react-query-devtools next: specifier: ^15.4.8 - version: 15.5.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -2149,10 +2149,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) integrations/react-next-16: dependencies: @@ -2167,7 +2167,7 @@ importers: version: link:../../packages/react-query-devtools next: specifier: ^16.0.7 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: specifier: ^19.2.1 version: 19.2.4 @@ -2180,10 +2180,10 @@ importers: devDependencies: '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) integrations/react-vite: dependencies: @@ -2195,7 +2195,7 @@ importers: version: link:../../packages/react-query-devtools '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) react: specifier: ^19.0.0 version: 19.2.4 @@ -2204,7 +2204,7 @@ importers: version: 19.2.4(react@19.2.4) vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) integrations/react-webpack-4: dependencies: @@ -2226,7 +2226,7 @@ importers: version: 7.29.0 '@babel/preset-env': specifier: ^7.26.0 - version: 7.29.0(@babel/core@7.29.0) + version: 7.29.2(@babel/core@7.29.0) '@babel/preset-react': specifier: ^7.25.9 version: 7.28.5(@babel/core@7.29.0) @@ -2266,22 +2266,22 @@ importers: version: 7.29.0 '@babel/preset-env': specifier: ^7.26.0 - version: 7.29.0(@babel/core@7.29.0) + version: 7.29.2(@babel/core@7.29.0) '@babel/preset-react': specifier: ^7.25.9 version: 7.28.5(@babel/core@7.29.0) babel-loader: specifier: ^9.2.1 - version: 9.2.1(@babel/core@7.29.0)(webpack@5.105.0) + version: 9.2.1(@babel/core@7.29.0)(webpack@5.105.4) html-webpack-plugin: specifier: ^5.6.3 - version: 5.6.6(webpack@5.105.0) + version: 5.6.6(webpack@5.105.4) webpack: specifier: ^5.96.1 - version: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) + version: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack@5.105.0) + version: 5.1.4(webpack@5.105.4) integrations/solid-vite: dependencies: @@ -2293,19 +2293,19 @@ importers: version: link:../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) integrations/svelte-vite: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/svelte-query': specifier: workspace:* version: link:../../packages/svelte-query @@ -2314,10 +2314,10 @@ importers: version: link:../../packages/svelte-query-devtools svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) integrations/vue-vite: dependencies: @@ -2326,17 +2326,17 @@ importers: version: link:../../packages/vue-query vue: specifier: ^3.4.27 - version: 3.5.28(typescript@5.8.3) + version: 3.5.31(typescript@5.8.3) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vue-tsc: specifier: ^2.2.8 version: 2.2.12(typescript@5.8.3) @@ -2349,7 +2349,7 @@ importers: devDependencies: '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -2358,13 +2358,13 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils '@testing-library/angular': specifier: ^18.0.0 - version: 18.1.1(59e8d0d75f189c65baadf2466933ed4e) + version: 18.1.1(3436010aec00f8e828978cdcb451dc36) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2373,13 +2373,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) vite-plugin-externalize-deps: specifier: ^0.9.0 - version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -2394,10 +2394,10 @@ importers: devDependencies: '@angular/animations': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': specifier: ^20.0.0 - version: 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.0.0 version: 20.3.18 @@ -2406,7 +2406,7 @@ importers: version: 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^20.0.0 - version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../angular-query-experimental @@ -2415,7 +2415,7 @@ importers: version: link:../query-test-utils '@testing-library/angular': specifier: ^18.0.0 - version: 18.1.1(59e8d0d75f189c65baadf2466933ed4e) + version: 18.1.1(3436010aec00f8e828978cdcb451dc36) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.1 @@ -2459,7 +2459,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.3(@babel/core@7.29.0)(preact@10.28.3)(rollup@4.57.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/query-persist-client-core': specifier: workspace:* version: link:../query-persist-client-core @@ -2468,7 +2468,7 @@ importers: version: link:../query-test-utils '@testing-library/preact': specifier: ^3.2.4 - version: 3.2.4(preact@10.28.3) + version: 3.2.4(preact@10.29.0) cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -2480,10 +2480,10 @@ importers: version: 5.0.2 preact: specifier: ^10.28.0 - version: 10.28.3 + version: 10.29.0 preact-render-to-string: specifier: ^6.6.4 - version: 6.6.5(preact@10.28.3) + version: 6.6.7(preact@10.29.0) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2499,13 +2499,13 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.3(@babel/core@7.29.0)(preact@10.28.3)(rollup@4.57.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/preact-query': specifier: workspace:* version: link:../preact-query '@testing-library/preact': specifier: ^3.2.4 - version: 3.2.4(preact@10.28.3) + version: 3.2.4(preact@10.29.0) eslint-config-preact: specifier: ^2.0.0 version: 2.0.0(eslint@9.39.4(jiti@2.6.1)) @@ -2514,7 +2514,7 @@ importers: version: 5.0.2 preact: specifier: ^10.28.0 - version: 10.28.3 + version: 10.29.0 typescript: specifier: 5.9.3 version: 5.9.3 @@ -2530,7 +2530,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.3(@babel/core@7.29.0)(preact@10.28.3)(rollup@4.57.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/preact-query': specifier: workspace:* version: link:../preact-query @@ -2539,7 +2539,7 @@ importers: version: link:../query-test-utils '@testing-library/preact': specifier: ^3.2.4 - version: 3.2.4(preact@10.28.3) + version: 3.2.4(preact@10.29.0) eslint-config-preact: specifier: ^2.0.0 version: 2.0.0(eslint@9.39.4(jiti@2.6.1)) @@ -2548,7 +2548,7 @@ importers: version: 5.0.2 preact: specifier: ^10.28.0 - version: 10.28.3 + version: 10.29.0 typescript: specifier: 5.9.3 version: 5.9.3 @@ -2583,10 +2583,10 @@ importers: devDependencies: '@testing-library/react': specifier: ^16.1.0 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2598,7 +2598,7 @@ importers: version: 17.3.0 jscodeshift: specifier: 17.3.0 - version: 17.3.0(@babel/preset-env@7.29.0(@babel/core@7.29.0)) + version: 17.3.0(@babel/preset-env@7.29.2(@babel/core@7.29.0)) packages/query-core: devDependencies: @@ -2613,16 +2613,16 @@ importers: devDependencies: '@kobalte/core': specifier: ^0.13.4 - version: 0.13.11(solid-js@1.9.11) + version: 0.13.11(solid-js@1.9.12) '@solid-primitives/keyed': specifier: ^1.2.2 - version: 1.5.3(solid-js@1.9.11) + version: 1.5.3(solid-js@1.9.12) '@solid-primitives/resize-observer': specifier: ^2.0.26 - version: 2.1.3(solid-js@1.9.11) + version: 2.1.5(solid-js@1.9.12) '@solid-primitives/storage': specifier: ^1.3.11 - version: 1.3.11(solid-js@1.9.11) + version: 1.3.11(solid-js@1.9.12) '@tanstack/match-sorter-utils': specifier: ^8.19.4 version: 8.19.4 @@ -2640,19 +2640,19 @@ importers: version: 5.0.2 solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 solid-transition-group: specifier: ^0.2.3 - version: 0.2.3(solid-js@1.9.11) + version: 0.2.3(solid-js@1.9.12) superjson: specifier: ^2.2.2 version: 2.2.6 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) packages/query-persist-client-core: dependencies: @@ -2703,19 +2703,19 @@ importers: version: link:../query-test-utils '@testing-library/react': specifier: ^16.1.0 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@testing-library/react-render-stream': specifier: ^2.0.2 - version: 2.0.2(@jest/globals@30.2.0)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(expect@30.2.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.0.2(@jest/globals@30.3.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(expect@30.3.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.13) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -2743,13 +2743,13 @@ importers: version: link:../react-query '@testing-library/react': specifier: ^16.1.0 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2764,13 +2764,13 @@ importers: version: link:../react-query '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) next: specifier: ^16.0.1 - version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2792,13 +2792,13 @@ importers: version: link:../react-query '@testing-library/react': specifier: ^16.1.0 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/react': specifier: ^19.2.7 - version: 19.2.13 + version: 19.2.14 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2814,7 +2814,7 @@ importers: devDependencies: '@solidjs/testing-library': specifier: ^0.8.10 - version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11) + version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.12))(solid-js@1.9.12) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2823,13 +2823,13 @@ importers: version: 5.0.2 solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) packages/solid-query-devtools: dependencies: @@ -2839,7 +2839,7 @@ importers: devDependencies: '@solidjs/testing-library': specifier: ^0.8.10 - version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11) + version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.12))(solid-js@1.9.12) '@tanstack/solid-query': specifier: workspace:* version: link:../solid-query @@ -2848,13 +2848,13 @@ importers: version: 5.0.2 solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) packages/solid-query-persist-client: dependencies: @@ -2864,7 +2864,7 @@ importers: devDependencies: '@solidjs/testing-library': specifier: ^0.8.10 - version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11) + version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.12))(solid-js@1.9.12) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2876,13 +2876,13 @@ importers: version: 5.0.2 solid-js: specifier: ^1.9.7 - version: 1.9.11 + version: 1.9.12 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) packages/svelte-query: dependencies: @@ -2892,28 +2892,28 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.4.0 - version: 2.5.7(svelte@5.53.5)(typescript@5.9.3) + version: 2.5.7(svelte@5.55.1)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils '@testing-library/svelte': specifier: ^5.2.8 - version: 5.3.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@typescript-eslint/parser': specifier: 8.56.1 version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-svelte: specifier: ^3.11.0 - version: 3.14.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.53.5) + version: 3.16.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.55.1) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.4.5 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2929,10 +2929,10 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.4.0 - version: 2.5.7(svelte@5.53.5)(typescript@5.9.3) + version: 2.5.7(svelte@5.55.1)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query @@ -2941,13 +2941,13 @@ importers: version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-svelte: specifier: ^3.11.0 - version: 3.14.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.53.5) + version: 3.16.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.55.1) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.4.5 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2960,10 +2960,10 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.4.0 - version: 2.5.7(svelte@5.53.5)(typescript@5.9.3) + version: 2.5.7(svelte@5.55.1)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2972,19 +2972,19 @@ importers: version: link:../svelte-query '@testing-library/svelte': specifier: ^5.2.8 - version: 5.3.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@typescript-eslint/parser': specifier: 8.56.1 version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-svelte: specifier: ^3.11.0 - version: 3.14.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.53.5) + version: 3.16.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.55.1) svelte: specifier: ^5.39.3 - version: 5.53.5 + version: 5.55.1 svelte-check: specifier: ^4.4.5 - version: 4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -3002,23 +3002,23 @@ importers: version: 6.6.4 vue-demi: specifier: ^0.14.10 - version: 0.14.10(@vue/composition-api@1.7.2(vue@3.5.28(typescript@5.9.3)))(vue@3.5.28(typescript@5.9.3)) + version: 0.14.10(@vue/composition-api@1.7.2(vue@3.5.31(typescript@5.9.3)))(vue@3.5.31(typescript@5.9.3)) devDependencies: '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3)) '@vue/composition-api': specifier: 1.7.2 - version: 1.7.2(vue@3.5.28(typescript@5.9.3)) + version: 1.7.2(vue@3.5.31(typescript@5.9.3)) eslint-plugin-vue: specifier: ^10.5.0 - version: 10.7.0(@stylistic/eslint-plugin@5.8.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.4(jiti@2.6.1))) + version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))) vue: specifier: ^3.4.27 - version: 3.5.28(typescript@5.9.3) + version: 3.5.31(typescript@5.9.3) vue2: specifier: npm:vue@2.6 version: vue@2.6.14 @@ -3037,19 +3037,19 @@ importers: version: link:../vue-query '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) eslint-plugin-vue: specifier: ^10.5.0 - version: 10.7.0(@stylistic/eslint-plugin@5.8.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.4(jiti@2.6.1))) + version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) vue: specifier: ^3.4.27 - version: 3.5.28(typescript@5.8.3) + version: 3.5.31(typescript@5.8.3) vue-tsc: specifier: ^2.2.8 version: 2.2.12(typescript@5.8.3) @@ -3153,12 +3153,12 @@ packages: '@andrewbranch/untar.js@1.0.3': resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} - '@angular-devkit/architect@0.2003.16': - resolution: {integrity: sha512-W7FPVhZzIeHVP/duuKepfZU66LpQ0k9YMHFhrGpzaUuHPOwKmza6+pjVvvti3g6jzT8b1uVlb+XlYgNPZ5jrPQ==} + '@angular-devkit/architect@0.2003.22': + resolution: {integrity: sha512-gxVOslVweD+Co6gpRVlByHus/3HVAnsl99MobS9PBh8vh2g6bJ011PBgl0TKsP/pqBGawZOkJXYrRPeMKnobYA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/core@20.3.16': - resolution: {integrity: sha512-6L9Lpe3lbkyz32gzqxZGVC8MhXxXht+yV+4LUsb4+6T/mG/V9lW6UTW0dhwVOS3vpWMEwpy75XHT298t7HcKEg==} + '@angular-devkit/core@20.3.22': + resolution: {integrity: sha512-1vZnZTAjGcCM+86v2al+2eiROiSw0uAWeVllfHSQe0KsKOP1FE8UUUiWChhxVn7vIxypphlfGunkeeIn1C/ZFw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 @@ -3166,18 +3166,18 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.16': - resolution: {integrity: sha512-3K8QwTpKjnLo3hIvNzB9sTjrlkeRyMK0TxdwgTbwJseewGhXLl98oBoTCWM2ygtpskiWNpYqXJNIhoslNN65WQ==} + '@angular-devkit/schematics@20.3.22': + resolution: {integrity: sha512-gN2XSXRn3eErGEJlH0iSfQZZ7NdxVZNdjSxuVEGBEFhe3cVeC21LzM3GTWW6xwtBb4pxHglFyc7BUFiYtZiYtg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular/animations@20.3.16': - resolution: {integrity: sha512-N83/GFY5lKNyWgPV3xHHy2rb3/eP1ZLzSVI+dmMVbf3jbqwY1YPQcMiAG8UDzaILY1Dkus91kWLF8Qdr3nHAzg==} + '@angular/animations@20.3.18': + resolution: {integrity: sha512-XFxgSyjfs0SRD2vQVFJljmM4z9nTvUoI8TRqSre/+l8D2FgzD5pG67Aj2BgDgpSFAUkIcI37G48ijK7a3ZZ3WA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.16 + '@angular/core': 20.3.18 - '@angular/build@20.3.16': - resolution: {integrity: sha512-p1W3wwMG1Bs4tkPW7ceXO4woO1KCP28sjfpBJg32dIMW3dYSC+iWNmUkYS/wb4YEkqCV0wd6Apnd98mZjL6rNg==} + '@angular/build@20.3.22': + resolution: {integrity: sha512-sxjVZU6AZHXyKRHJUMawXOj4qMf3vm8XK6wUejr01UKj6BqW2YWaQO26RpRJssXD2ITTqn6+UBwL7pEwe2a4Jg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^20.0.0 @@ -3187,7 +3187,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.16 + '@angular/ssr': ^20.3.22 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -3222,24 +3222,24 @@ packages: vitest: optional: true - '@angular/cli@20.3.16': - resolution: {integrity: sha512-kjGp0ywIWebWrH6U5eCRkS4Tx1D/yMe2iT7DXMfEcLc8iMSrBozEriMJppbot9ou8O2LeEH5d1Nw0efNNo78Kw==} + '@angular/cli@20.3.22': + resolution: {integrity: sha512-0uyQPF0gGuzioWJKNyOzWSQrrC5GiidR+8gz1lODoJTnJZZdsP5n3nvccbcRmhy55B1WByHvQBE+6eDBbh06/g==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/common@20.3.16': - resolution: {integrity: sha512-GRAziNlntwdnJy3F+8zCOvDdy7id0gITjDnM6P9+n2lXvtDuBLGJKU3DWBbvxcCjtD6JK/g/rEX5fbCxbUHkQQ==} + '@angular/common@20.3.18': + resolution: {integrity: sha512-M62oQbSTRmnGavIVCwimoadg/PDWadgNhactMm9fgH0eM9rx+iWBAYJk4VufO0bwOhysFpRZpJgXlFjOifz/Jw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.16 + '@angular/core': 20.3.18 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.16': - resolution: {integrity: sha512-l3xF/fXfJAl/UrNnH9Ufkr79myjMgXdHq1mmmph2UnpeqilRB1b8lC9sLBV9MipQHVn3dwocxMIvtrcryfOaXw==} + '@angular/compiler-cli@20.3.18': + resolution: {integrity: sha512-zsoEgLgnblmRbi47YwMghKirJ8IBKJ3+I8TxLBRIBrhx+KHFp+6oeDeLyu9H+djdyk88zexVd09wzR/YK73F0g==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.16 + '@angular/compiler': 20.3.18 typescript: '>=5.8 <6.0' peerDependenciesMeta: typescript: @@ -3262,33 +3262,33 @@ packages: zone.js: optional: true - '@angular/forms@20.3.16': - resolution: {integrity: sha512-1yzbXpExTqATpVcqA3wGrq4ACFIP3mRxA4pbso5KoJU+/4JfzNFwLsDaFXKpm5uxwchVnj8KM2vPaDOkvtp7NA==} + '@angular/forms@20.3.18': + resolution: {integrity: sha512-x6/99LfxolyZIFUL3Wr0OrtuXHEDwEz/rwx+WzE7NL+n35yO40t3kp0Sn5uMFwI94i91QZJmXHltMpZhrVLuYg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.16 - '@angular/core': 20.3.16 - '@angular/platform-browser': 20.3.16 + '@angular/common': 20.3.18 + '@angular/core': 20.3.18 + '@angular/platform-browser': 20.3.18 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser@20.3.16': - resolution: {integrity: sha512-YsrLS6vyS77i4pVHg4gdSBW74qvzHjpQRTVQ5Lv/OxIjJdYYYkMmjNalCNgy1ZuyY6CaLIB11ccxhrNnxfKGOQ==} + '@angular/platform-browser@20.3.18': + resolution: {integrity: sha512-q6s5rEN1yYazpHYp+k4pboXRzMsRB9auzTRBEhyXSGYxqzrnn3qHN0DqgsLC9WAdyhCgnIEMFA8kRT+W277DqQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.16 - '@angular/common': 20.3.16 - '@angular/core': 20.3.16 + '@angular/animations': 20.3.18 + '@angular/common': 20.3.18 + '@angular/core': 20.3.18 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/router@20.3.16': - resolution: {integrity: sha512-e1LiQFZaajKqc00cY5FboIrWJZSMnZ64GDp5R0UejritYrqorQQQNOqP1W85BMuY2owibMmxVfX+dJg/Mc8PuQ==} + '@angular/router@20.3.18': + resolution: {integrity: sha512-3CWejsEYr+ze+ktvWN/qHdyq5WLrj96QZpGYJyxh1pchIcpMPE9MmLpdjf0CUrWYB7g/85u0Geq/xsz72JrGng==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.16 - '@angular/core': 20.3.16 - '@angular/platform-browser': 20.3.16 + '@angular/common': 20.3.18 + '@angular/core': 20.3.18 + '@angular/platform-browser': 20.3.18 rxjs: ^6.5.3 || ^7.4.0 '@arethetypeswrong/cli@0.15.4': @@ -3306,14 +3306,14 @@ packages: '@asamuzakjp/css-color@4.1.2': resolution: {integrity: sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==} - '@asamuzakjp/dom-selector@6.7.8': - resolution: {integrity: sha512-stisC1nULNc9oH5lakAj8MH88ZxeGxzyWNDfbdCxvJSJIvDsHNZqYvscGTgy/ysgXWLJPt6K/4t0/GjvtKcFJQ==} + '@asamuzakjp/dom-selector@6.8.1': + resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@astrojs/check@0.9.6': - resolution: {integrity: sha512-jlaEu5SxvSgmfGIFfNgcn5/f+29H61NJzEMfAZ82Xopr4XBchXB1GVlcJsE+elUlsYSbXlptZLX+JMG3b/wZEA==} + '@astrojs/check@0.9.8': + resolution: {integrity: sha512-LDng8446QLS5ToKjRHd3bgUdirvemVVExV7nRyJfW2wV36xuv7vDxwy5NWN9zqeSEDgg0Tv84sP+T3yEq+Zlkw==} hasBin: true peerDependencies: typescript: ^5.0.0 @@ -3324,14 +3324,11 @@ packages: '@astrojs/internal-helpers@0.7.4': resolution: {integrity: sha512-lDA9MqE8WGi7T/t2BMi+EAXhs4Vcvr94Gqx3q15cFEz8oFZMO4/SFBqYr/UcmNlvW+35alowkVj+w9VhLvs5Cw==} - '@astrojs/internal-helpers@0.7.5': - resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} - '@astrojs/internal-helpers@0.7.6': resolution: {integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==} - '@astrojs/language-server@2.16.3': - resolution: {integrity: sha512-yO5K7RYCMXUfeDlnU6UnmtnoXzpuQc0yhlaCNZ67k1C/MiwwwvMZz+LGa+H35c49w5QBfvtr4w4Zcf5PcH8uYA==} + '@astrojs/language-server@2.16.6': + resolution: {integrity: sha512-N990lu+HSFiG57owR0XBkr02BYMgiLCshLf+4QG4v6jjSWkBeQGnzqi+E1L08xFPPJ7eEeXnxPXGLaVv5pa4Ug==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -3345,8 +3342,8 @@ packages: '@astrojs/markdown-remark@6.3.11': resolution: {integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==} - '@astrojs/node@9.5.4': - resolution: {integrity: sha512-AbPSZsMGu8hXPR2XxV79RaKy8h6wijhtoqZGeUf4OXg2w1mxXlx4VnIc1D+QvtsgauSz7P5PLhmvf6w/J41GJg==} + '@astrojs/node@9.5.5': + resolution: {integrity: sha512-rtU2BGU5u3SfGURpANfMxVzCIoR86MkaN05ncza9rbtuMKJ/XnRJt/BbyVknDbOJ71hoci0SIsJwKcJR8vvi/A==} peerDependencies: astro: ^5.17.3 @@ -3379,8 +3376,8 @@ packages: peerDependencies: astro: ^5.0.0 - '@astrojs/yaml2ts@0.2.2': - resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} + '@astrojs/yaml2ts@0.2.3': + resolution: {integrity: sha512-PJzRmgQzUxI2uwpdX2lXSHtP4G8ocp24/t+bZyf5Fy0SZLSF9f9KXZoMlFM/XCGue+B0nH/2IZ7FpBYQATBsCg==} '@babel/code-frame@7.10.4': resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} @@ -3436,8 +3433,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.6': - resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} + '@babel/helper-define-polyfill-provider@0.6.8': + resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -3507,8 +3504,8 @@ packages: resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.25.9': @@ -4075,8 +4072,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.29.0': - resolution: {integrity: sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==} + '@babel/preset-env@7.29.2': + resolution: {integrity: sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -4114,6 +4111,10 @@ packages: resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.29.2': + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} + engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} @@ -4135,8 +4136,8 @@ packages: resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} engines: {node: '>=18'} - '@changesets/apply-release-plan@7.0.14': - resolution: {integrity: sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA==} + '@changesets/apply-release-plan@7.1.0': + resolution: {integrity: sha512-yq8ML3YS7koKQ/9bk1PqO0HMzApIFNwjlwCnwFEXMzNe8NpzeeYYKCmnhWJGkN8g7E51MnWaSbqRcTcdIxUgnQ==} '@changesets/assemble-release-plan@6.0.9': resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} @@ -4144,12 +4145,12 @@ packages: '@changesets/changelog-git@0.2.1': resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - '@changesets/cli@2.29.8': - resolution: {integrity: sha512-1weuGZpP63YWUYjay/E84qqwcnt5yJMM0tep10Up7Q5cS/DGe2IZ0Uj3HNMxGhCINZuR7aO9WBMdKnPit5ZDPA==} + '@changesets/cli@2.30.0': + resolution: {integrity: sha512-5D3Nk2JPqMI1wK25pEymeWRSlSMdo5QOGlyfrKg0AOufrUcjEE3RQgaCpHoBiM31CSNrtSgdJ0U6zL1rLDDfBA==} hasBin: true - '@changesets/config@3.1.2': - resolution: {integrity: sha512-CYiRhA4bWKemdYi/uwImjPxqWNpqGPNbEBdX1BdONALFIDK7MCUj6FPkzD+z9gJcvDFUQJn9aDVf4UG7OT6Kog==} + '@changesets/config@3.1.3': + resolution: {integrity: sha512-vnXjcey8YgBn2L1OPWd3ORs0bGC4LoYcK/ubpgvzNVr53JXV5GiTVj7fWdMRsoKUH7hhhMAQnsJUqLr21EncNw==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} @@ -4160,8 +4161,8 @@ packages: '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.14': - resolution: {integrity: sha512-yjZMHpUHgl4Xl5gRlolVuxDkm4HgSJqT93Ri1Uz8kGrQb+5iJ8dkXJ20M2j/Y4iV5QzS2c5SeTxVSKX+2eMI0g==} + '@changesets/get-release-plan@4.0.15': + resolution: {integrity: sha512-Q04ZaRPuEVZtA+auOYgFaVQQSA98dXiVe/yFaZfY7hoSmQICHGvP0TF4u3EDNHWmmCS4ekA/XSpKlSM2PyTS2g==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -4172,14 +4173,14 @@ packages: '@changesets/logger@0.1.1': resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - '@changesets/parse@0.4.2': - resolution: {integrity: sha512-Uo5MC5mfg4OM0jU3up66fmSn6/NE9INK+8/Vn/7sMVcdWg46zfbvvUSjD9EMonVqPi9fbrJH9SXHn48Tr1f2yA==} + '@changesets/parse@0.4.3': + resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} '@changesets/pre@2.0.2': resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - '@changesets/read@0.6.6': - resolution: {integrity: sha512-P5QaN9hJSQQKJShzzpBT13FzOSPyHbqdoIBUd2DJdgvnECCyO6LmAOWSV+O8se2TaZJVwSXjL+v9yhb+a9JeJg==} + '@changesets/read@0.6.7': + resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} '@changesets/should-skip-package@0.1.2': resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} @@ -4206,28 +4207,28 @@ packages: peerDependencies: solid-js: ^1.8 - '@cspell/cspell-bundled-dicts@9.6.4': - resolution: {integrity: sha512-OIiPQuB7XQ6rnUv4KaCwHr9vNwbh6VZ4GfgQjcThT0oz0hkL6E5Ar3tq54K9jyqE9ylcHqpRuXUgnKgio6Hlig==} + '@cspell/cspell-bundled-dicts@9.7.0': + resolution: {integrity: sha512-s7h1vo++Q3AsfQa3cs0u/KGwm3SYInuIlC4kjlCBWjQmb4KddiZB5O1u0+3TlA7GycHb5M4CR7MDfHUICgJf+w==} engines: {node: '>=20'} - '@cspell/cspell-performance-monitor@9.6.4': - resolution: {integrity: sha512-exuqxV1IVfZkasg57ZjUbaHeZDd6Mdbsbe5FBT3+XaVnRij+wpY2oEW9+kIOL5MOQE3bgQKgu37iMtA1NlCrGA==} + '@cspell/cspell-performance-monitor@9.7.0': + resolution: {integrity: sha512-w1PZIFXuvjnC6mQHyYAFnrsn5MzKnEcEkcK1bj4OG00bAt7WX2VUA/eNNt9c1iHozCQ+FcRYlfbGxuBmNyzSgw==} engines: {node: '>=20.18'} - '@cspell/cspell-pipe@9.6.4': - resolution: {integrity: sha512-vVxajTG9Ko01oHk8HPsMLajcLrd9AfkOk6vdgFI4FD7ZPq1CY0hfTmfmJ8bzZ4/QkqXglTvePdSgHQVJeltwWw==} + '@cspell/cspell-pipe@9.7.0': + resolution: {integrity: sha512-iiisyRpJciU9SOHNSi0ZEK0pqbEMFRatI/R4O+trVKb+W44p4MNGClLVRWPGUmsFbZKPJL3jDtz0wPlG0/JCZA==} engines: {node: '>=20'} - '@cspell/cspell-resolver@9.6.4': - resolution: {integrity: sha512-3xsgZEqqH9Uj8ZYLBnWbnsHz8wphgaeuWKcNDqgwoMjvwTMQLGoXjHht8Jx5yxd2e080lB7fJax8TaBdCzmFFA==} + '@cspell/cspell-resolver@9.7.0': + resolution: {integrity: sha512-uiEgS238mdabDnwavo6HXt8K98jlh/jpm7NONroM9NTr9rzck2VZKD2kXEj85wDNMtRsRXNoywTjwQ8WTB6/+w==} engines: {node: '>=20'} - '@cspell/cspell-service-bus@9.6.4': - resolution: {integrity: sha512-oGNEzP1gJ43rLklJQjOk5PsfX0mZkLjV19djGptb9xZQeC2qAUxnaAbZtWt5CE8ni2iiTaRmgNRbUqAhRCnjew==} + '@cspell/cspell-service-bus@9.7.0': + resolution: {integrity: sha512-fkqtaCkg4jY/FotmzjhIavbXuH0AgUJxZk78Ktf4XlhqOZ4wDeUWrCf220bva4mh3TWiLx/ae9lIlpl59Vx6hA==} engines: {node: '>=20'} - '@cspell/cspell-types@9.6.4': - resolution: {integrity: sha512-lf6d+BdMkJIFCxx2FpajLpqVGGyaGUNFU6jhEM6QUPeGuoA5et2kJXrL0NSY2uWLOVyYYc/FPjzlbe8trA9tBQ==} + '@cspell/cspell-types@9.7.0': + resolution: {integrity: sha512-Tdfx4eH2uS+gv9V9NCr3Rz+c7RSS6ntXp3Blliud18ibRUlRxO9dTaOjG4iv4x0nAmMeedP1ORkEpeXSkh2QiQ==} engines: {node: '>=20'} '@cspell/dict-ada@4.1.1': @@ -4242,8 +4243,8 @@ packages: '@cspell/dict-bash@4.2.2': resolution: {integrity: sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==} - '@cspell/dict-companies@3.2.10': - resolution: {integrity: sha512-bJ1qnO1DkTn7JYGXvxp8FRQc4yq6tRXnrII+jbP8hHmq5TX5o1Wu+rdfpoUQaMWTl6balRvcMYiINDesnpR9Bw==} + '@cspell/dict-companies@3.2.11': + resolution: {integrity: sha512-0cmafbcz2pTHXLd59eLR1gvDvN6aWAOM0+cIL4LLF9GX9yB2iKDNrKsvs4tJRqutoaTdwNFBbV0FYv+6iCtebQ==} '@cspell/dict-cpp@7.0.2': resolution: {integrity: sha512-dfbeERiVNeqmo/npivdR6rDiBCqZi3QtjH2Z0HFcXwpdj6i97dX1xaKyK2GUsO/p4u1TOv63Dmj5Vm48haDpuA==} @@ -4254,8 +4255,8 @@ packages: '@cspell/dict-csharp@4.0.8': resolution: {integrity: sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==} - '@cspell/dict-css@4.0.19': - resolution: {integrity: sha512-VYHtPnZt/Zd/ATbW3rtexWpBnHUohUrQOHff/2JBhsVgxOrksAxJnLAO43Q1ayLJBJUUwNVo+RU0sx0aaysZfg==} + '@cspell/dict-css@4.1.1': + resolution: {integrity: sha512-y/Vgo6qY08e1t9OqR56qjoFLBCpi4QfWMf2qzD1l9omRZwvSMQGRPz4x0bxkkkU4oocMAeztjzCsmLew//c/8w==} '@cspell/dict-dart@2.3.2': resolution: {integrity: sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==} @@ -4269,8 +4270,8 @@ packages: '@cspell/dict-docker@1.1.17': resolution: {integrity: sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==} - '@cspell/dict-dotnet@5.0.11': - resolution: {integrity: sha512-LSVKhpFf/ASTWJcfYeS0Sykcl1gVMsv2Z5Eo0TnTMSTLV3738HH+66pIsjUTChqU6SF3gKPuCe6EOaRYqb/evA==} + '@cspell/dict-dotnet@5.0.13': + resolution: {integrity: sha512-xPp7jMnFpOri7tzmqmm/dXMolXz1t2bhNqxYkOyMqXhvs08oc7BFs+EsbDY0X7hqiISgeFZGNqn0dOCr+ncPYw==} '@cspell/dict-elixir@4.0.8': resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} @@ -4278,26 +4279,26 @@ packages: '@cspell/dict-en-common-misspellings@2.1.12': resolution: {integrity: sha512-14Eu6QGqyksqOd4fYPuRb58lK1Va7FQK9XxFsRKnZU8LhL3N+kj7YKDW+7aIaAN/0WGEqslGP6lGbQzNti8Akw==} - '@cspell/dict-en-gb-mit@3.1.18': - resolution: {integrity: sha512-AXaMzbaxhSc32MSzKX0cpwT+Thv1vPfxQz1nTly1VHw3wQcwPqVFSqrLOYwa8VNqAPR45583nnhD6iqJ9YESoQ==} + '@cspell/dict-en-gb-mit@3.1.22': + resolution: {integrity: sha512-xE5Vg6gGdMkZ1Ep6z9SJMMioGkkT1GbxS5Mm0U3Ey1/H68P0G7cJcyiVr1CARxFbLqKE4QUpoV1o6jz1Z5Yl9Q==} - '@cspell/dict-en_us@4.4.29': - resolution: {integrity: sha512-G3B27++9ziRdgbrY/G/QZdFAnMzzx17u8nCb2Xyd4q6luLpzViRM/CW3jA+Mb/cGT5zR/9N+Yz9SrGu1s0bq7g==} + '@cspell/dict-en_us@4.4.33': + resolution: {integrity: sha512-zWftVqfUStDA37wO1ZNDN1qMJOfcxELa8ucHW8W8wBAZY3TK5Nb6deLogCK/IJi/Qljf30dwwuqqv84Qqle9Tw==} - '@cspell/dict-filetypes@3.0.15': - resolution: {integrity: sha512-uDMeqYlLlK476w/muEFQGBy9BdQWS0mQ7BJiy/iQv5XUWZxE2O54ZQd9nW8GyQMzAgoyg5SG4hf9l039Qt66oA==} + '@cspell/dict-filetypes@3.0.18': + resolution: {integrity: sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==} '@cspell/dict-flutter@1.1.1': resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} - '@cspell/dict-fonts@4.0.5': - resolution: {integrity: sha512-BbpkX10DUX/xzHs6lb7yzDf/LPjwYIBJHJlUXSBXDtK/1HaeS+Wqol4Mlm2+NAgZ7ikIE5DQMViTgBUY3ezNoQ==} + '@cspell/dict-fonts@4.0.6': + resolution: {integrity: sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==} '@cspell/dict-fsharp@1.1.1': resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} - '@cspell/dict-fullstack@3.2.8': - resolution: {integrity: sha512-J6EeoeThvx/DFrcA2rJiCA6vfqwJMbkG0IcXhlsmRZmasIpanmxgt90OEaUazbZahFiuJT8wrhgQ1QgD1MsqBw==} + '@cspell/dict-fullstack@3.2.9': + resolution: {integrity: sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==} '@cspell/dict-gaming-terms@1.1.2': resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} @@ -4317,8 +4318,8 @@ packages: '@cspell/dict-html-symbol-entities@4.0.5': resolution: {integrity: sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==} - '@cspell/dict-html@4.0.14': - resolution: {integrity: sha512-2bf7n+kS92g+cMKV0wr9o/Oq9n8JzU7CcrB96gIh2GHgnF+0xDOqO2W/1KeFAqOfqosoOVE48t+4dnEMkkoJ2Q==} + '@cspell/dict-html@4.0.15': + resolution: {integrity: sha512-GJYnYKoD9fmo2OI0aySEGZOjThnx3upSUvV7mmqUu8oG+mGgzqm82P/f7OqsuvTaInZZwZbo+PwJQd/yHcyFIw==} '@cspell/dict-java@5.0.12': resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} @@ -4332,8 +4333,8 @@ packages: '@cspell/dict-kotlin@1.1.1': resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} - '@cspell/dict-latex@5.0.0': - resolution: {integrity: sha512-HUrIqUVohM6P0+5b7BsdAdb0STIv0aaFBvguI7pLcreljlcX3FSPUxea7ticzNlCNeVrEaiEn/ws9m6rYUeuNw==} + '@cspell/dict-latex@5.1.0': + resolution: {integrity: sha512-qxT4guhysyBt0gzoliXYEBYinkAdEtR2M7goRaUH0a7ltCsoqqAeEV8aXYRIdZGcV77gYSobvu3jJL038tlPAw==} '@cspell/dict-lorem-ipsum@4.0.5': resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} @@ -4344,11 +4345,11 @@ packages: '@cspell/dict-makefile@1.0.5': resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} - '@cspell/dict-markdown@2.0.14': - resolution: {integrity: sha512-uLKPNJsUcumMQTsZZgAK9RgDLyQhUz/uvbQTEkvF/Q4XfC1i/BnA8XrOrd0+Vp6+tPOKyA+omI5LRWfMu5K/Lw==} + '@cspell/dict-markdown@2.0.16': + resolution: {integrity: sha512-976RRqKv6cwhrxdFCQP2DdnBVB86BF57oQtPHy4Zbf4jF/i2Oy29MCrxirnOBalS1W6KQeto7NdfDXRAwkK4PQ==} peerDependencies: - '@cspell/dict-css': ^4.0.19 - '@cspell/dict-html': ^4.0.14 + '@cspell/dict-css': ^4.1.1 + '@cspell/dict-html': ^4.0.15 '@cspell/dict-html-symbol-entities': ^4.0.5 '@cspell/dict-typescript': ^3.2.3 @@ -4358,8 +4359,8 @@ packages: '@cspell/dict-node@5.0.9': resolution: {integrity: sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==} - '@cspell/dict-npm@5.2.33': - resolution: {integrity: sha512-U1gfDxdFR6nnojvtdkF2Ati3jfIlnW5nJkFb2jS1JunlhrSYdZXwz/4bI//h1W3aaeYQoSlvTIqk3vlnIDrNng==} + '@cspell/dict-npm@5.2.38': + resolution: {integrity: sha512-21ucGRPYYhr91C2cDBoMPTrcIOStQv33xOqJB0JLoC5LAs2Sfj9EoPGhGb+gIFVHz6Ia7JQWE2SJsOVFJD1wmg==} '@cspell/dict-php@4.1.1': resolution: {integrity: sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==} @@ -4367,17 +4368,17 @@ packages: '@cspell/dict-powershell@5.0.15': resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} - '@cspell/dict-public-licenses@2.0.15': - resolution: {integrity: sha512-cJEOs901H13Pfy0fl4dCD1U+xpWIMaEPq8MeYU83FfDZvellAuSo4GqWCripfIqlhns/L6+UZEIJSOZnjgy7Wg==} + '@cspell/dict-public-licenses@2.0.16': + resolution: {integrity: sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==} - '@cspell/dict-python@4.2.25': - resolution: {integrity: sha512-hDdN0YhKgpbtZVRjQ2c8jk+n0wQdidAKj1Fk8w7KEHb3YlY5uPJ0mAKJk7AJKPNLOlILoUmN+HAVJz+cfSbWYg==} + '@cspell/dict-python@4.2.26': + resolution: {integrity: sha512-hbjN6BjlSgZOG2dA2DtvYNGBM5Aq0i0dHaZjMOI9K/9vRicVvKbcCiBSSrR3b+jwjhQL5ff7HwG5xFaaci0GQA==} '@cspell/dict-r@2.1.1': resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} - '@cspell/dict-ruby@5.1.0': - resolution: {integrity: sha512-9PJQB3cfkBULrMLp5kSAcFPpzf8oz9vFN+QYZABhQwWkGbuzCIXSorHrmWSASlx4yejt3brjaWS57zZ/YL5ZQQ==} + '@cspell/dict-ruby@5.1.1': + resolution: {integrity: sha512-LHrp84oEV6q1ZxPPyj4z+FdKyq1XAKYPtmGptrd+uwHbrF/Ns5+fy6gtSi7pS+uc0zk3JdO9w/tPK+8N1/7WUA==} '@cspell/dict-rust@4.1.2': resolution: {integrity: sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==} @@ -4388,8 +4389,8 @@ packages: '@cspell/dict-shell@1.1.2': resolution: {integrity: sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==} - '@cspell/dict-software-terms@5.1.20': - resolution: {integrity: sha512-TEk1xHvetTI4pv7Vzje1D322m6QEjaH2P6ucOOf6q7EJCppQIdC0lZSXkgHJAFU5HGSvEXSzvnVeW2RHW86ziQ==} + '@cspell/dict-software-terms@5.2.2': + resolution: {integrity: sha512-0CaYd6TAsKtEoA7tNswm1iptEblTzEe3UG8beG2cpSTHk7afWIVMtJLgXDv0f/Li67Lf3Z1Jf3JeXR7GsJ2TRw==} '@cspell/dict-sql@2.2.1': resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} @@ -4412,38 +4413,38 @@ packages: '@cspell/dict-zig@1.0.0': resolution: {integrity: sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==} - '@cspell/dynamic-import@9.6.4': - resolution: {integrity: sha512-1VnL9ahT3s17DLWl4MeO1pYg7zcVT3X9cKynI2/U86zNK5xMGS5icvjp7X65tsCAVNcWOtkqVFfrxi7kWxn67g==} + '@cspell/dynamic-import@9.7.0': + resolution: {integrity: sha512-Ws36IYvtS/8IN3x6K9dPLvTmaArodRJmzTn2Rkf2NaTnIYWhRuFzsP3SVVO59NN3fXswAEbmz5DSbVUe8bPZHg==} engines: {node: '>=20'} - '@cspell/eslint-plugin@9.6.4': - resolution: {integrity: sha512-MldCPtfj7XWQY7bnnLS/7A/YfLKWGUQALg2hSNy6AQ28R26o1HesGYY27lzePa2sbgTTy2X1tONCyaOIkmnSmQ==} + '@cspell/eslint-plugin@9.7.0': + resolution: {integrity: sha512-VUF+FSQ8hnZcezM+6Ae0m2ENlqE2nxp5UMoNfd2L+UXzVTS+1NrSPdqF/k8iQv6xgDJcHvtAE0r3td2EQSZhaw==} engines: {node: '>=20'} peerDependencies: - eslint: ^7 || ^8 || ^9 + eslint: ^8 || ^9 || ^10 - '@cspell/filetypes@9.6.4': - resolution: {integrity: sha512-a1aZ/8vGnhTknxTukjzo3m8CISyHW2MWnbedywg5SDEl5RMJitmzX90QZiQdSvEcqzqmtoAgSEZNBT2LX2gIKg==} + '@cspell/filetypes@9.7.0': + resolution: {integrity: sha512-Ln9e/8wGOyTeL3DCCs6kwd18TSpTw3kxsANjTrzLDASrX4cNmAdvc9J5dcIuBHPaqOAnRQxuZbzUlpRh73Y24w==} engines: {node: '>=20'} - '@cspell/rpc@9.6.4': - resolution: {integrity: sha512-vGI1788Rx5Yml9N1/pD4zGd8Vrchi2Y01ADf9NiiOaNVVdf4PU1GCssLCsiIzhYQneErpQ8pJi/mS2F/QMZbRA==} + '@cspell/rpc@9.7.0': + resolution: {integrity: sha512-VnZ4ABgQeoS4RwofcePkDP7L6tf3Kh5D7LQKoyRM4R6XtfSsYefym6XKaRl3saGtthH5YyjgNJ0Tgdjen4wAAw==} engines: {node: '>=20.18'} - '@cspell/strong-weak-map@9.6.4': - resolution: {integrity: sha512-AQrUbA0JUOEQgwItnfUQ6Ydk0hWY/uV3VhLwZWyrnT9eiQynmTnRTHtOCkkSl9+M4P0N4Raa2eGFRLcPAFksaw==} + '@cspell/strong-weak-map@9.7.0': + resolution: {integrity: sha512-5xbvDASjklrmy88O6gmGXgYhpByCXqOj5wIgyvwZe2l83T1bE+iOfGI4pGzZJ/mN+qTn1DNKq8BPBPtDgb7Q2Q==} engines: {node: '>=20'} - '@cspell/url@9.6.4': - resolution: {integrity: sha512-h6VMlb7bDyGJfwLtipxxtHlT+ojzUXZz14AqZ/NEzY3LfOhfJTGpRcWLYFsgG/L0Ma4qjsYbPJt/Sj1C14j0VA==} + '@cspell/url@9.7.0': + resolution: {integrity: sha512-ZaaBr0pTvNxmyUbIn+nVPXPr383VqJzfUDMWicgTjJIeo2+T2hOq2kNpgpvTIrWtZrsZnSP8oXms1+sKTjcvkw==} engines: {node: '>=20'} '@csstools/color-helpers@5.1.0': resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} engines: {node: '>=18'} - '@csstools/color-helpers@6.0.1': - resolution: {integrity: sha512-NmXRccUJMk2AWA5A7e5a//3bCIMyOu2hAtdRYrhPPHjDxINuCwX1w6rnIZ4xjLcp0ayv6h8Pc3X0eJUGiAAXHQ==} + '@csstools/color-helpers@6.0.2': + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} engines: {node: '>=20.19.0'} '@csstools/css-calc@2.1.4': @@ -4453,8 +4454,8 @@ packages: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-calc@3.0.0': - resolution: {integrity: sha512-q4d82GTl8BIlh/dTnVsWmxnbWJeb3kiU8eUH71UxlxnS+WIaALmtzTL8gR15PkYOexMQYVk0CO4qIG93C1IvPA==} + '@csstools/css-calc@3.1.1': + resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -4467,8 +4468,8 @@ packages: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@4.0.1': - resolution: {integrity: sha512-vYwO15eRBEkeF6xjAno/KQ61HacNhfQuuU/eGwH67DplL0zD5ZixUa563phQvUelA07yDczIXdtmYojCphKJcw==} + '@csstools/css-color-parser@4.0.2': + resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -4486,8 +4487,13 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.0.27': - resolution: {integrity: sha512-sxP33Jwg1bviSUXAV43cVYdmjt2TLnLXNqCWl9xmxHawWVjGz/kEbdkr7F9pxJNBN2Mh+dq0crgItbW6tQvyow==} + '@csstools/css-syntax-patches-for-csstree@1.1.2': + resolution: {integrity: sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==} + peerDependencies: + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true '@csstools/css-tokenizer@3.0.4': resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} @@ -4532,14 +4538,14 @@ packages: '@emmetio/stream-reader@2.2.0': resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - '@emnapi/core@1.8.1': - resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/core@1.9.1': + resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/runtime@1.9.1': + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.0': + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} '@es-joy/jsdoccomment@0.50.2': resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} @@ -4711,40 +4717,40 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@2.12.2': - resolution: {integrity: sha512-OMpEIJguhDOaMDr6U4/qmoSQCjNcqCteiv4okA6a0p5ACX9s1uulmK2tcm7sep4RR+nPYkZUag3sXOi3R0oFmw==} + '@eslint-react/ast@2.13.0': + resolution: {integrity: sha512-43+5gmqV3MpatTzKnu/V2i/jXjmepvwhrb9MaGQvnXHQgq9J7/C7VVCCcwp6Rvp2QHAFquAAdvQDSL8IueTpeA==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@eslint-react/core@2.12.2': - resolution: {integrity: sha512-lS2a1I3G7JXjFfdlOWXJoid8kPstcgMyL3rVQFcZVJF569JwF/VRZ7DDdH7JKrnFPAu1CtkLl8Acqy6Q8+mbdA==} + '@eslint-react/core@2.13.0': + resolution: {integrity: sha512-m62XDzkf1hpzW4sBc7uh7CT+8rBG2xz/itSADuEntlsg4YA7Jhb8hjU6VHf3wRFDwyfx5VnbV209sbJ7Azey0Q==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@eslint-react/eff@2.12.2': - resolution: {integrity: sha512-UWN/mtvu8gPVwZzg77h3zV0GEnKHjN/2yAI++UGGlVQ9x6en4/LFbn/9J2aM61lwyU4CvPUKpQ1KcYTTwJeJ0A==} + '@eslint-react/eff@2.13.0': + resolution: {integrity: sha512-rEH2R8FQnUAblUW+v3ZHDU1wEhatbL1+U2B1WVuBXwSKqzF7BGaLqCPIU7o9vofumz5MerVfaCtJgI8jYe2Btg==} engines: {node: '>=20.19.0'} - '@eslint-react/eslint-plugin@2.12.2': - resolution: {integrity: sha512-7P2cGKwfTABeBnTac6PpLupE30+TmEbF3jTnGaziMwCzpPS1WAJtyvZw27RDSzb7pfx6GjTNBBHGg3dwfK+nhg==} + '@eslint-react/eslint-plugin@2.13.0': + resolution: {integrity: sha512-iaMXpqnJCTW7317hg8L4wx7u5aIiPzZ+d1p59X8wXFgMHzFX4hNu4IfV8oygyjmWKdLsjKE9sEpv/UYWczlb+A==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@eslint-react/shared@2.12.2': - resolution: {integrity: sha512-/40s8neS142nMN9l7SDzwncqh/PNSzeYJ0Gc3h/eacQcUrjLx1NWWvPs1CNA3EbtqJRCvS2gflvzkzM2w6HURA==} + '@eslint-react/shared@2.13.0': + resolution: {integrity: sha512-IOloCqrZ7gGBT4lFf9+0/wn7TfzU7JBRjYwTSyb9SDngsbeRrtW95ZpgUpS8/jen1wUEm6F08duAooTZ2FtsWA==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@eslint-react/var@2.12.2': - resolution: {integrity: sha512-d+s6G1HAghVA25io3Vtj8237mQZUGozH+3UwEboNl+8XE3oTJMYv0T3X9U96GbxrV2S1BPFSYQEMwl6Z0RYgmA==} + '@eslint-react/var@2.13.0': + resolution: {integrity: sha512-dM+QaeiHR16qPQoJYg205MkdHYSWVa2B7ore5OFpOPlSwqDV3tLW7I+475WjbK7potq5QNPTxRa7VLp9FGeQqA==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -4778,8 +4784,8 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@exodus/bytes@1.12.0': - resolution: {integrity: sha512-BuCOHA/EJdPN0qQ5MdgAiJSt9fYDHbghlgrj33gRdy/Yp1/FMCDhU6vJfcKrLC0TPWGSrfH3vYXBQWmFHxlddw==} + '@exodus/bytes@1.15.0': + resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: '@noble/hashes': ^1.8.0 || ^2.0.0 @@ -4789,7 +4795,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {'0': node >=0.10.0} + engines: {node: '>=0.10.0'} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -4832,8 +4838,8 @@ packages: '@expo/image-utils@0.6.5': resolution: {integrity: sha512-RsS/1CwJYzccvlprYktD42KjyfWZECH6PPIEowvoSmXfGLfdViwcUEI4RvBfKX5Jli6P67H+6YmHvPTbGOboew==} - '@expo/json-file@10.0.8': - resolution: {integrity: sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ==} + '@expo/json-file@10.0.12': + resolution: {integrity: sha512-inbDycp1rMAelAofg7h/mMzIe+Owx6F7pur3XdQ3EPTy00tme+4P6FWgHKUcjN8dBSrnbRNpSyh5/shzHyVCyQ==} '@expo/json-file@9.0.2': resolution: {integrity: sha512-yAznIUrybOIWp3Uax7yRflB0xsEpvIwIEqIjao9SGi2Gaa+N0OamWfe0fnXBSWF+2zzF4VvqwT4W5zwelchfgw==} @@ -4844,12 +4850,12 @@ packages: '@expo/metro-config@0.19.12': resolution: {integrity: sha512-fhT3x1ikQWHpZgw7VrEghBdscFPz1laRYa8WcVRB18nTTqorF6S8qPYslkJu1faEziHZS7c2uyDzTYnrg/CKbg==} - '@expo/osascript@2.3.8': - resolution: {integrity: sha512-/TuOZvSG7Nn0I8c+FcEaoHeBO07yu6vwDgk7rZVvAXoeAK5rkA09jRyjYsZo+0tMEFaToBeywA6pj50Mb3ny9w==} + '@expo/osascript@2.4.2': + resolution: {integrity: sha512-/XP7PSYF2hzOZzqfjgkoWtllyeTN8dW3aM4P6YgKcmmPikKL5FdoyQhti4eh6RK5a5VrUXJTOlTNIpIHsfB5Iw==} engines: {node: '>=12'} - '@expo/package-manager@1.9.10': - resolution: {integrity: sha512-axJm+NOj3jVxep49va/+L3KkF3YW/dkV+RwzqUJedZrv4LeTqOG4rhrCaCPXHTvLqCTDKu6j0Xyd28N7mnxsGA==} + '@expo/package-manager@1.10.3': + resolution: {integrity: sha512-ZuXiK/9fCrIuLjPSe1VYmfp0Sa85kCMwd8QQpgyi5ufppYKRtLBg14QOgUqj8ZMbJTxE0xqzd0XR7kOs3vAK9A==} '@expo/plist@0.2.2': resolution: {integrity: sha512-ZZGvTO6vEWq02UAPs3LIdja+HRO18+LRI5QuDl6Hs3Ps7KX7xU6Y6kjahWKY37Rx2YjNpX07dGpBFzzC+vKa2g==} @@ -4880,29 +4886,33 @@ packages: '@expo/ws-tunnel@1.0.6': resolution: {integrity: sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==} - '@expo/xcpretty@4.4.0': - resolution: {integrity: sha512-o2qDlTqJ606h4xR36H2zWTywmZ3v3842K6TU8Ik2n1mfW0S580VHlt3eItVYdLYz+klaPp7CXqanja8eASZjRw==} + '@expo/xcpretty@4.4.1': + resolution: {integrity: sha512-KZNxZvnGCtiM2aYYZ6Wz0Ix5r47dAvpNLApFtZWnSoERzAdOMzVBOPysBoM0JlF6FKWZ8GPqgn6qt3dV/8Zlpg==} hasBin: true - '@floating-ui/core@1.7.4': - resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} - '@floating-ui/dom@1.7.5': - resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@floating-ui/utils@0.2.10': - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@gar/promise-retry@1.0.3': + resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} + engines: {node: ^20.17.0 || >=22.9.0} - '@gerrit0/mini-shiki@3.22.0': - resolution: {integrity: sha512-jMpciqEVUBKE1QwU64S4saNMzpsSza6diNCk4MWAeCxO2+LFi2FIFmL2S0VDLzEJCxuvCbU783xi8Hp/gkM5CQ==} + '@gerrit0/mini-shiki@3.23.0': + resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} '@graphql-typed-document-node/core@3.2.0': resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@hono/node-server@1.19.9': - resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} + '@hono/node-server@1.19.12': + resolution: {integrity: sha512-txsUW4SQ1iilgE0l9/e9VQWmELXifEFvmdA1j6WFh/aFPj99hIntrSsq/if0UWyGVkmrRPKA1wCeP+UCr1B9Uw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -4923,8 +4933,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@img/colour@1.0.0': - resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} '@img/sharp-darwin-arm64@0.34.5': @@ -5203,14 +5213,14 @@ packages: '@types/node': optional: true - '@internationalized/date@3.11.0': - resolution: {integrity: sha512-BOx5huLAWhicM9/ZFs84CzP+V3gBW6vlpM02yzsdYC7TGlZJX1OJiEEHcSayF00Z+3jLlm4w79amvSt6RqKN3Q==} + '@internationalized/date@3.12.0': + resolution: {integrity: sha512-/PyIMzK29jtXaGU23qTvNZxvBXRtKbNnGDFD+PY6CZw/Y8Ex8pFUzkuCJCG9aOqmShjqhS9mPqP6Dk5onQY8rQ==} '@internationalized/number@3.6.5': resolution: {integrity: sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==} - '@ioredis/commands@1.5.0': - resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==} + '@ioredis/commands@1.5.1': + resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -5236,40 +5246,40 @@ packages: resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/diff-sequences@30.0.1': - resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + '@jest/diff-sequences@30.3.0': + resolution: {integrity: sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/environment@29.7.0': resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/environment@30.2.0': - resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} + '@jest/environment@30.3.0': + resolution: {integrity: sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@30.2.0': - resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} + '@jest/expect-utils@30.3.0': + resolution: {integrity: sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@30.2.0': - resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==} + '@jest/expect@30.3.0': + resolution: {integrity: sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/fake-timers@29.7.0': resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/fake-timers@30.2.0': - resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} + '@jest/fake-timers@30.3.0': + resolution: {integrity: sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/get-type@30.1.0': resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@30.2.0': - resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==} + '@jest/globals@30.3.0': + resolution: {integrity: sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/pattern@30.0.1': @@ -5284,24 +5294,24 @@ packages: resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/snapshot-utils@30.2.0': - resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==} + '@jest/snapshot-utils@30.3.0': + resolution: {integrity: sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/transform@29.7.0': resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/transform@30.2.0': - resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} + '@jest/transform@30.3.0': + resolution: {integrity: sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/types@30.2.0': - resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + '@jest/types@30.3.0': + resolution: {integrity: sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jridgewell/gen-mapping@0.3.13': @@ -5449,8 +5459,8 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.41.2': - resolution: {integrity: sha512-7G0Uf0yK3f2bjElBLGHIQzgRgMESczOMyYVasq1XK8P5HaXtlW4eQhz9MBL+TQILZLaruq+ClGId+hH0w4jvWw==} + '@mswjs/interceptors@0.41.3': + resolution: {integrity: sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==} engines: {node: '>=18'} '@napi-rs/nice-android-arm-eabi@1.1.1': @@ -5565,17 +5575,20 @@ packages: '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@1.1.1': - resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} + '@napi-rs/wasm-runtime@1.1.2': + resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 '@next/env@14.2.35': resolution: {integrity: sha512-DuhvCtj4t9Gwrx80dmz2F4t/zKQ4ktN8WrMwOuVzkJfBilwAwGr6v16M5eI8yCuZ63H9TTuEU09Iu2HqkzFPVQ==} - '@next/env@15.5.12': - resolution: {integrity: sha512-pUvdJN1on574wQHjaBfNGDt9Mz5utDSZFsIIQkMzPgNS8ZvT4H2mwOrOIClwsQOb6EGx5M76/CZr6G8i6pSpLg==} + '@next/env@15.5.14': + resolution: {integrity: sha512-aXeirLYuASxEgi4X4WhfXsShCFxWDfNn/8ZeC5YXAS2BB4A8FJi1kwwGL6nvMVboE7fZCzmJPNdMvVHc8JpaiA==} - '@next/env@16.1.6': - resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==} + '@next/env@16.2.2': + resolution: {integrity: sha512-LqSGz5+xGk9EL/iBDr2yo/CgNQV6cFsNhRR2xhSXYh7B/hb4nePCxlmDvGEKG30NMHDFf0raqSyOZiQrO7BkHQ==} '@next/swc-darwin-arm64@14.2.33': resolution: {integrity: sha512-HqYnb6pxlsshoSTubdXKu15g3iivcbsMXg4bYpjL2iS/V6aQot+iyF4BUc2qA/J/n55YtvE4PHMKWBKGCF/+wA==} @@ -5583,14 +5596,14 @@ packages: cpu: [arm64] os: [darwin] - '@next/swc-darwin-arm64@15.5.12': - resolution: {integrity: sha512-RnRjBtH8S8eXCpUNkQ+543DUc7ys8y15VxmFU9HRqlo9BG3CcBUiwNtF8SNoi2xvGCVJq1vl2yYq+3oISBS0Zg==} + '@next/swc-darwin-arm64@15.5.14': + resolution: {integrity: sha512-Y9K6SPzobnZvrRDPO2s0grgzC+Egf0CqfbdvYmQVaztV890zicw8Z8+4Vqw8oPck8r1TjUHxVh8299Cg4TrxXg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-arm64@16.1.6': - resolution: {integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==} + '@next/swc-darwin-arm64@16.2.2': + resolution: {integrity: sha512-B92G3ulrwmkDSEJEp9+XzGLex5wC1knrmCSIylyVeiAtCIfvEJYiN3v5kXPlYt5R4RFlsfO/v++aKV63Acrugg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -5601,14 +5614,14 @@ packages: cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@15.5.12': - resolution: {integrity: sha512-nqa9/7iQlboF1EFtNhWxQA0rQstmYRSBGxSM6g3GxvxHxcoeqVXfGNr9stJOme674m2V7r4E3+jEhhGvSQhJRA==} + '@next/swc-darwin-x64@15.5.14': + resolution: {integrity: sha512-aNnkSMjSFRTOmkd7qoNI2/rETQm/vKD6c/Ac9BZGa9CtoOzy3c2njgz7LvebQJ8iPxdeTuGnAjagyis8a9ifBw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@16.1.6': - resolution: {integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==} + '@next/swc-darwin-x64@16.2.2': + resolution: {integrity: sha512-7ZwSgNKJNQiwW0CKhNm9B1WS2L1Olc4B2XY0hPYCAL3epFnugMhuw5TMWzMilQ3QCZcCHoYm9NGWTHbr5REFxw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -5619,14 +5632,14 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-gnu@15.5.12': - resolution: {integrity: sha512-dCzAjqhDHwmoB2M4eYfVKqXs99QdQxNQVpftvP1eGVppamXh/OkDAwV737Zr0KPXEqRUMN4uCjh6mjO+XtF3Mw==} + '@next/swc-linux-arm64-gnu@15.5.14': + resolution: {integrity: sha512-tjlpia+yStPRS//6sdmlVwuO1Rioern4u2onafa5n+h2hCS9MAvMXqpVbSrjgiEOoCs0nJy7oPOmWgtRRNSM5Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-gnu@16.1.6': - resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==} + '@next/swc-linux-arm64-gnu@16.2.2': + resolution: {integrity: sha512-c3m8kBHMziMgo2fICOP/cd/5YlrxDU5YYjAJeQLyFsCqVF8xjOTH/QYG4a2u48CvvZZSj1eHQfBCbyh7kBr30Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5637,14 +5650,14 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.5.12': - resolution: {integrity: sha512-+fpGWvQiITgf7PUtbWY1H7qUSnBZsPPLyyq03QuAKpVoTy/QUx1JptEDTQMVvQhvizCEuNLEeghrQUyXQOekuw==} + '@next/swc-linux-arm64-musl@15.5.14': + resolution: {integrity: sha512-8B8cngBaLadl5lbDRdxGCP1Lef8ipD6KlxS3v0ElDAGil6lafrAM3B258p1KJOglInCVFUjk751IXMr2ixeQOQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@16.1.6': - resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==} + '@next/swc-linux-arm64-musl@16.2.2': + resolution: {integrity: sha512-VKLuscm0P/mIfzt+SDdn2+8TNNJ7f0qfEkA+az7OqQbjzKdBxAHs0UvuiVoCtbwX+dqMEL9U54b5wQ/aN3dHeg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5655,14 +5668,14 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@15.5.12': - resolution: {integrity: sha512-jSLvgdRRL/hrFAPqEjJf1fFguC719kmcptjNVDJl26BnJIpjL3KH5h6mzR4mAweociLQaqvt4UyzfbFjgAdDcw==} + '@next/swc-linux-x64-gnu@15.5.14': + resolution: {integrity: sha512-bAS6tIAg8u4Gn3Nz7fCPpSoKAexEt2d5vn1mzokcqdqyov6ZJ6gu6GdF9l8ORFrBuRHgv3go/RfzYz5BkZ6YSQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@16.1.6': - resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==} + '@next/swc-linux-x64-gnu@16.2.2': + resolution: {integrity: sha512-kU3OPHJq6sBUjOk7wc5zJ7/lipn8yGldMoAv4z67j6ov6Xo/JvzA7L7LCsyzzsXmgLEhk3Qkpwqaq/1+XpNR3g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -5673,14 +5686,14 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.5.12': - resolution: {integrity: sha512-/uaF0WfmYqQgLfPmN6BvULwxY0dufI2mlN2JbOKqqceZh1G4hjREyi7pg03zjfyS6eqNemHAZPSoP84x17vo6w==} + '@next/swc-linux-x64-musl@15.5.14': + resolution: {integrity: sha512-mMxv/FcrT7Gfaq4tsR22l17oKWXZmH/lVqcvjX0kfp5I0lKodHYLICKPoX1KRnnE+ci6oIUdriUhuA3rBCDiSw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@16.1.6': - resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==} + '@next/swc-linux-x64-musl@16.2.2': + resolution: {integrity: sha512-CKXRILyErMtUftp+coGcZ38ZwE/Aqq45VMCcRLr2I4OXKrgxIBDXHnBgeX/UMil0S09i2JXaDL3Q+TN8D/cKmg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -5691,14 +5704,14 @@ packages: cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@15.5.12': - resolution: {integrity: sha512-xhsL1OvQSfGmlL5RbOmU+FV120urrgFpYLq+6U8C6KIym32gZT6XF/SDE92jKzzlPWskkbjOKCpqk5m4i8PEfg==} + '@next/swc-win32-arm64-msvc@15.5.14': + resolution: {integrity: sha512-OTmiBlYThppnvnsqx0rBqjDRemlmIeZ8/o4zI7veaXoeO1PVHoyj2lfTfXTiiGjCyRDhA10y4h6ZvZvBiynr2g==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@16.1.6': - resolution: {integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==} + '@next/swc-win32-arm64-msvc@16.2.2': + resolution: {integrity: sha512-sS/jSk5VUoShUqINJFvNjVT7JfR5ORYj/+/ZpOYbbIohv/lQfduWnGAycq2wlknbOql2xOR0DoV0s6Xfcy49+g==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -5715,14 +5728,14 @@ packages: cpu: [x64] os: [win32] - '@next/swc-win32-x64-msvc@15.5.12': - resolution: {integrity: sha512-Z1Dh6lhFkxvBDH1FoW6OU/L6prYwPSlwjLiZkExIAh8fbP6iI/M7iGTQAJPYJ9YFlWobCZ1PHbchFhFYb2ADkw==} + '@next/swc-win32-x64-msvc@15.5.14': + resolution: {integrity: sha512-+W7eFf3RS7m4G6tppVTOSyP9Y6FsJXfOuKzav1qKniiFm3KFByQfPEcouHdjlZmysl4zJGuGLQ/M9XyVeyeNEg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@next/swc-win32-x64-msvc@16.1.6': - resolution: {integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==} + '@next/swc-win32-x64-msvc@16.2.2': + resolution: {integrity: sha512-aHaKceJgdySReT7qeck5oShucxWRiiEuwCGK8HHALe6yZga8uyFpLkPgaRw3kkF04U7ROogL/suYCNt/+CuXGA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -5754,8 +5767,8 @@ packages: resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/git@7.0.1': - resolution: {integrity: sha512-+XTFxK2jJF/EJJ5SoAzXk3qwIDfvFc5/g+bD274LZ7uY7LE8sTfG6Z8rOanPl2ZEvZWqNvmEdtXC25cE54VcoA==} + '@npmcli/git@7.0.2': + resolution: {integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==} engines: {node: ^20.17.0 || >=22.9.0} '@npmcli/installed-package-contents@4.0.0': @@ -5767,8 +5780,8 @@ packages: resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/package-json@7.0.4': - resolution: {integrity: sha512-0wInJG3j/K40OJt/33ax47WfWMzZTm6OQxB9cDhTt5huCP2a9g2GnlsxmfN+PulItNPIpPrZ+kfwwUil7eHcZQ==} + '@npmcli/package-json@7.0.5': + resolution: {integrity: sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==} engines: {node: ^20.17.0 || >=22.9.0} '@npmcli/promise-spawn@9.0.1': @@ -5779,8 +5792,8 @@ packages: resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/run-script@10.0.3': - resolution: {integrity: sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==} + '@npmcli/run-script@10.0.4': + resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} engines: {node: ^20.17.0 || >=22.9.0} '@nx/nx-darwin-arm64@22.1.3': @@ -5845,127 +5858,127 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - '@oxc-parser/binding-android-arm-eabi@0.120.0': - resolution: {integrity: sha512-WU3qtINx802wOl8RxAF1v0VvmC2O4D9M8Sv486nLeQ7iPHVmncYZrtBhB4SYyX+XZxj2PNnCcN+PW21jHgiOxg==} + '@oxc-parser/binding-android-arm-eabi@0.121.0': + resolution: {integrity: sha512-n07FQcySwOlzap424/PLMtOkbS7xOu8nsJduKL8P3COGHKgKoDYXwoAHCbChfgFpHnviehrLWIPX0lKGtbEk/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm64@0.120.0': - resolution: {integrity: sha512-SEf80EHdhlbjZEgzeWm0ZA/br4GKMenDW3QB/gtyeTV1gStvvZeFi40ioHDZvds2m4Z9J1bUAUL8yn1/+A6iGg==} + '@oxc-parser/binding-android-arm64@0.121.0': + resolution: {integrity: sha512-/Dd1xIXboYAicw+twT2utxPD7bL8qh7d3ej0qvaYIMj3/EgIrGR+tSnjCUkiCT6g6uTC0neSS4JY8LxhdSU/sA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.120.0': - resolution: {integrity: sha512-xVrrbCai8R8CUIBu3CjryutQnEYhZqs1maIqDvtUCFZb8vY33H7uh9mHpL3a0JBIKoBUKjPH8+rzyAeXnS2d6A==} + '@oxc-parser/binding-darwin-arm64@0.121.0': + resolution: {integrity: sha512-A0jNEvv7QMtCO1yk205t3DWU9sWUjQ2KNF0hSVO5W9R9r/R1BIvzG01UQAfmtC0dQm7sCrs5puixurKSfr2bRQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.120.0': - resolution: {integrity: sha512-xyHBbnJ6mydnQUH7MAcafOkkrNzQC6T+LXgDH/3InEq2BWl/g424IMRiJVSpVqGjB+p2bd0h0WRR8iIwzjU7rw==} + '@oxc-parser/binding-darwin-x64@0.121.0': + resolution: {integrity: sha512-SsHzipdxTKUs3I9EOAPmnIimEeJOemqRlRDOp9LIj+96wtxZejF51gNibmoGq8KoqbT1ssAI5po/E3J+vEtXGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.120.0': - resolution: {integrity: sha512-UMnVRllquXUYTeNfFKmxTTEdZ/ix1nLl0ducDzMSREoWYGVIHnOOxoKMWlCOvRr9Wk/HZqo2rh1jeumbPGPV9A==} + '@oxc-parser/binding-freebsd-x64@0.121.0': + resolution: {integrity: sha512-v1APOTkCp+RWOIDAHRoaeW/UoaHF15a60E8eUL6kUQXh+i4K7PBwq2Wi7jm8p0ymID5/m/oC1w3W31Z/+r7HQw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': - resolution: {integrity: sha512-tkvn2CQ7QdcsMnpfiX3fd3wA3EFsWKYlcQzq9cFw/xc89Al7W6Y4O0FgLVkVQpo0Tnq/qtE1XfkJOnRRA9S/NA==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.121.0': + resolution: {integrity: sha512-PmqPQuqHZyFVWA4ycr0eu4VnTMmq9laOHZd+8R359w6kzuNZPvmmunmNJ8ybkm769A0nCoVp3TJ6dUz7B3FYIQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': - resolution: {integrity: sha512-WN5y135Ic42gQDk9grbwY9++fDhqf8knN6fnP+0WALlAUh4odY/BDK1nfTJRSfpJD9P3r1BwU0m3pW2DU89whQ==} + '@oxc-parser/binding-linux-arm-musleabihf@0.121.0': + resolution: {integrity: sha512-vF24htj+MOH+Q7y9A8NuC6pUZu8t/C2Fr/kDOi2OcNf28oogr2xadBPXAbml802E8wRAVfbta6YLDQTearz+jw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.120.0': - resolution: {integrity: sha512-1GgQBCcXvFMw99EPdMy+4NZ3aYyXsxjf9kbUUg8HuAy3ZBXzOry5KfFEzT9nqmgZI1cuetvApkiJBZLAPo8uaw==} + '@oxc-parser/binding-linux-arm64-gnu@0.121.0': + resolution: {integrity: sha512-wjH8cIG2Lu/3d64iZpbYr73hREMgKAfu7fqpXjgM2S16y2zhTfDIp8EQjxO8vlDtKP5Rc7waZW72lh8nZtWrpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-arm64-musl@0.120.0': - resolution: {integrity: sha512-gmMQ70gsPdDBgpcErvJEoWNBr7bJooSLlvOBVBSGfOzlP5NvJ3bFvnUeZZ9d+dPrqSngtonf7nyzWUTUj/U+lw==} + '@oxc-parser/binding-linux-arm64-musl@0.121.0': + resolution: {integrity: sha512-qT663J/W8yQFw3dtscbEi9LKJevr20V7uWs2MPGTnvNZ3rm8anhhE16gXGpxDOHeg9raySaSHKhd4IGa3YZvuw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': - resolution: {integrity: sha512-T/kZuU0ajop0xhzVMwH5r3srC9Nqup5HaIo+3uFjIN5uPxa0LvSxC1ZqP4aQGJVW5G0z8/nCkjIfSMS91P/wzw==} + '@oxc-parser/binding-linux-ppc64-gnu@0.121.0': + resolution: {integrity: sha512-mYNe4NhVvDBbPkAP8JaVS8lC1dsoJZWH5WCjpw5E+sjhk1R08wt3NnXYUzum7tIiWPfgQxbCMcoxgeemFASbRw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': - resolution: {integrity: sha512-vn21KXLAXzaI3N5CZWlBr1iWeXLl9QFIMor7S1hUjUGTeUuWCoE6JZB040/ZNDwf+JXPX8Ao9KbmJq9FMC2iGw==} + '@oxc-parser/binding-linux-riscv64-gnu@0.121.0': + resolution: {integrity: sha512-+QiFoGxhAbaI/amqX567784cDyyuZIpinBrJNxUzb+/L2aBRX67mN6Jv40pqduHf15yYByI+K5gUEygCuv0z9w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-parser/binding-linux-riscv64-musl@0.120.0': - resolution: {integrity: sha512-SUbUxlar007LTGmSLGIC5x/WJvwhdX+PwNzFJ9f/nOzZOrCFbOT4ikt7pJIRg1tXVsEfzk5mWpGO1NFiSs4PIw==} + '@oxc-parser/binding-linux-riscv64-musl@0.121.0': + resolution: {integrity: sha512-9ykEgyTa5JD/Uhv2sttbKnCfl2PieUfOjyxJC/oDL2UO0qtXOtjPLl7H8Kaj5G7p3hIvFgu3YWvAxvE0sqY+hQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-parser/binding-linux-s390x-gnu@0.120.0': - resolution: {integrity: sha512-hYiPJTxyfJY2+lMBFk3p2bo0R9GN+TtpPFlRqVchL1qvLG+pznstramHNvJlw9AjaoRUHwp9IKR7UZQnRPGjgQ==} + '@oxc-parser/binding-linux-s390x-gnu@0.121.0': + resolution: {integrity: sha512-DB1EW5VHZdc1lIRjOI3bW/wV6R6y0xlfvdVrqj6kKi7Ayu2U3UqUBdq9KviVkcUGd5Oq+dROqvUEEFRXGAM7EQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxc-parser/binding-linux-x64-gnu@0.120.0': - resolution: {integrity: sha512-q+5jSVZkprJCIy3dzJpApat0InJaoxQLsJuD6DkX8hrUS61z2lHQ1Fe9L2+TYbKHXCLWbL0zXe7ovkIdopBGMQ==} + '@oxc-parser/binding-linux-x64-gnu@0.121.0': + resolution: {integrity: sha512-s4lfobX9p4kPTclvMiH3gcQUd88VlnkMTF6n2MTMDAyX5FPNRhhRSFZK05Ykhf8Zy5NibV4PbGR6DnK7FGNN6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-parser/binding-linux-x64-musl@0.120.0': - resolution: {integrity: sha512-D9QDDZNnH24e7X4ftSa6ar/2hCavETfW3uk0zgcMIrZNy459O5deTbWrjGzZiVrSWigGtlQwzs2McBP0QsfV1w==} + '@oxc-parser/binding-linux-x64-musl@0.121.0': + resolution: {integrity: sha512-P9KlyTpuBuMi3NRGpJO8MicuGZfOoqZVRP1WjOecwx8yk4L/+mrCRNc5egSi0byhuReblBF2oVoDSMgV9Bj4Hw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-parser/binding-openharmony-arm64@0.120.0': - resolution: {integrity: sha512-TBU8ZwOUWAOUWVfmI16CYWbvh4uQb9zHnGBHsw5Cp2JUVG044OIY1CSHODLifqzQIMTXvDvLzcL89GGdUIqNrA==} + '@oxc-parser/binding-openharmony-arm64@0.121.0': + resolution: {integrity: sha512-R+4jrWOfF2OAPPhj3Eb3U5CaKNAH9/btMveMULIrcNW/hjfysFQlF8wE0GaVBr81dWz8JLgQlsxwctoL78JwXw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-wasm32-wasi@0.120.0': - resolution: {integrity: sha512-WG/FOZgDJCpJnuF3ToG/K28rcOmSY7FmFmfBKYb2fmLyhDzPpUldFGV7/Fz4ru0Iz/v4KPmf8xVgO8N3lO4KHA==} + '@oxc-parser/binding-wasm32-wasi@0.121.0': + resolution: {integrity: sha512-5TFISkPTymKvsmIlKasPVTPuWxzCcrT8pM+p77+mtQbIZDd1UC8zww4CJcRI46kolmgrEX6QpKO8AvWMVZ+ifw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.120.0': - resolution: {integrity: sha512-1T0HKGcsz/BKo77t7+89L8Qvu4f9DoleKWHp3C5sJEcbCjDOLx3m9m722bWZTY+hANlUEs+yjlK+lBFsA+vrVQ==} + '@oxc-parser/binding-win32-arm64-msvc@0.121.0': + resolution: {integrity: sha512-V0pxh4mql4XTt3aiEtRNUeBAUFOw5jzZNxPABLaOKAWrVzSr9+XUaB095lY7jqMf5t8vkfh8NManGB28zanYKw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.120.0': - resolution: {integrity: sha512-L7vfLzbOXsjBXV0rv/6Y3Jd9BRjPeCivINZAqrSyAOZN3moCopDN+Psq9ZrGNZtJzP8946MtlRFZ0Als0wBCOw==} + '@oxc-parser/binding-win32-ia32-msvc@0.121.0': + resolution: {integrity: sha512-4Ob1qvYMPnlF2N9rdmKdkQFdrq16QVcQwBsO8yiPZXof0fHKFF+LmQV501XFbi7lHyrKm8rlJRfQ/M8bZZPVLw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.120.0': - resolution: {integrity: sha512-ys+upfqNtSu58huAhJMBKl3XCkGzyVFBlMlGPzHeFKgpFF/OdgNs1MMf8oaJIbgMH8ZxgGF7qfue39eJohmKIg==} + '@oxc-parser/binding-win32-x64-msvc@0.121.0': + resolution: {integrity: sha512-BOp1KCzdboB1tPqoCPXgntgFs0jjeSyOXHzgxVFR7B/qfr3F8r4YDacHkTOUNXtDgM8YwKnkf3rE5gwALYX7NA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxc-project/types@0.120.0': - resolution: {integrity: sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==} + '@oxc-project/types@0.121.0': + resolution: {integrity: sha512-CGtOARQb9tyv7ECgdAlFxi0Fv7lmzvmlm2rpD/RdijOO9rfk/JvB1CjT8EnoD+tjna/IYgKKw3IV7objRb+aYw==} '@oxc-resolver/binding-android-arm-eabi@11.19.1': resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} @@ -6067,6 +6080,9 @@ packages: cpu: [x64] os: [win32] + '@package-json/types@0.0.12': + resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} + '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} @@ -6175,20 +6191,20 @@ packages: '@poppinss/colors@4.1.6': resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} - '@poppinss/dumper@0.6.5': - resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} + '@poppinss/dumper@0.7.0': + resolution: {integrity: sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==} '@poppinss/exception@1.2.3': resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} - '@preact/preset-vite@2.10.3': - resolution: {integrity: sha512-1SiS+vFItpkNdBs7q585PSAIln0wBeBdcpJYbzPs1qipsb/FssnkUioNXuRsb8ZnU8YEQHr+3v8+/mzWSnTQmg==} + '@preact/preset-vite@2.10.5': + resolution: {integrity: sha512-p0vJpxiVO7KWWazWny3LUZ+saXyZKWv6Ju0bYMWNJRp2YveufRPgSUB1C4MTqGJfz07EehMgfN+AJNwQy+w6Iw==} peerDependencies: '@babel/core': 7.x vite: ^6.4.1 - '@prefresh/babel-plugin@0.5.2': - resolution: {integrity: sha512-AOl4HG6dAxWkJ5ndPHBgBa49oo/9bOiJuRDKHLSTyH+Fd9x00shTXpdiTj1W41l6oQIwUOAgJeHMn4QwIDpHkA==} + '@prefresh/babel-plugin@0.5.3': + resolution: {integrity: sha512-57LX2SHs4BX2s1IwCjNzTE2OJeEepRCNf1VTEpbNcUyHfMO68eeOWGDIt4ob9aYlW6PEWZ1SuwNikuoIXANDtQ==} '@prefresh/core@1.5.9': resolution: {integrity: sha512-IKBKCPaz34OFVC+adiQ2qaTF5qdztO2/4ZPf4KsRTgjKosWqxVXmEbxCiUydYZRY8GVie+DQlKzQr9gt6HQ+EQ==} @@ -6198,8 +6214,8 @@ packages: '@prefresh/utils@1.2.1': resolution: {integrity: sha512-vq/sIuN5nYfYzvyayXI4C2QkprfNaHUQ9ZX+3xLD8nL3rWyzpxOm1+K7RtMbhd+66QcaISViK7amjnheQ/4WZw==} - '@prefresh/vite@2.4.11': - resolution: {integrity: sha512-/XjURQqdRiCG3NpMmWqE9kJwrg9IchIOWHzulCfqg2sRe/8oQ1g5De7xrk9lbqPIQLn7ntBkKdqWXIj4E9YXyg==} + '@prefresh/vite@2.4.12': + resolution: {integrity: sha512-FY1fzXpUjiuosznMV0YM7XAOPZjB5FIdWS0W24+XnlxYkt9hNAwwsiKYn+cuTEoMtD/ZVazS5QVssBr9YhpCQA==} peerDependencies: preact: ^10.4.0 || ^11.0.0-0 vite: ^6.4.1 @@ -6330,8 +6346,8 @@ packages: rollup: optional: true - '@rollup/plugin-commonjs@29.0.0': - resolution: {integrity: sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==} + '@rollup/plugin-commonjs@29.0.2': + resolution: {integrity: sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==} engines: {node: '>=16.0.0 || 14 >= 14.17'} peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 @@ -6375,9 +6391,9 @@ packages: rollup: optional: true - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} + '@rollup/plugin-terser@1.0.0': + resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==} + engines: {node: '>=20.0.0'} peerDependencies: rollup: ^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -6397,238 +6413,253 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.52.3': - resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==} + '@rollup/rollup-android-arm-eabi@4.59.0': + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.57.1': - resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} + '@rollup/rollup-android-arm-eabi@4.60.1': + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.52.3': - resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} + '@rollup/rollup-android-arm64@4.59.0': + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.57.1': - resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} + '@rollup/rollup-android-arm64@4.60.1': + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.52.3': - resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} + '@rollup/rollup-darwin-arm64@4.59.0': + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.57.1': - resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} + '@rollup/rollup-darwin-arm64@4.60.1': + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.52.3': - resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} + '@rollup/rollup-darwin-x64@4.59.0': + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.57.1': - resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} + '@rollup/rollup-darwin-x64@4.60.1': + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.52.3': - resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} + '@rollup/rollup-freebsd-arm64@4.59.0': + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.57.1': - resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} + '@rollup/rollup-freebsd-arm64@4.60.1': + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.52.3': - resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} + '@rollup/rollup-freebsd-x64@4.59.0': + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.57.1': - resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} + '@rollup/rollup-freebsd-x64@4.60.1': + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.52.3': - resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': - resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.52.3': - resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.57.1': - resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.52.3': - resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} + '@rollup/rollup-linux-arm64-gnu@4.59.0': + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.57.1': - resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} + '@rollup/rollup-linux-arm64-gnu@4.60.1': + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.52.3': - resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} + '@rollup/rollup-linux-arm64-musl@4.59.0': + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.57.1': - resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} + '@rollup/rollup-linux-arm64-musl@4.60.1': + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.52.3': - resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} + '@rollup/rollup-linux-loong64-gnu@4.59.0': + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.57.1': - resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + '@rollup/rollup-linux-loong64-gnu@4.60.1': + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loong64-musl@4.57.1': - resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} + '@rollup/rollup-linux-loong64-musl@4.59.0': + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.52.3': - resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} + '@rollup/rollup-linux-loong64-musl@4.60.1': + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.57.1': - resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-ppc64-musl@4.57.1': - resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + '@rollup/rollup-linux-ppc64-musl@4.59.0': + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.52.3': - resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} + '@rollup/rollup-linux-ppc64-musl@4.60.1': + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.57.1': - resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.52.3': - resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} + '@rollup/rollup-linux-riscv64-musl@4.59.0': + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.57.1': - resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} + '@rollup/rollup-linux-riscv64-musl@4.60.1': + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.52.3': - resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} + '@rollup/rollup-linux-s390x-gnu@4.59.0': + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.57.1': - resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} + '@rollup/rollup-linux-s390x-gnu@4.60.1': + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.52.3': - resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} + '@rollup/rollup-linux-x64-gnu@4.59.0': + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.57.1': - resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} + '@rollup/rollup-linux-x64-gnu@4.60.1': + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.52.3': - resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} + '@rollup/rollup-linux-x64-musl@4.59.0': + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.57.1': - resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} + '@rollup/rollup-linux-x64-musl@4.60.1': + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} cpu: [x64] os: [linux] - '@rollup/rollup-openbsd-x64@4.57.1': - resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + '@rollup/rollup-openbsd-x64@4.59.0': + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.52.3': - resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} + '@rollup/rollup-openbsd-x64@4.60.1': + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.59.0': + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-openharmony-arm64@4.57.1': - resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} + '@rollup/rollup-openharmony-arm64@4.60.1': + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.52.3': - resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} + '@rollup/rollup-win32-arm64-msvc@4.59.0': + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.57.1': - resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} + '@rollup/rollup-win32-arm64-msvc@4.60.1': + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.52.3': - resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} + '@rollup/rollup-win32-ia32-msvc@4.59.0': + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.57.1': - resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} + '@rollup/rollup-win32-ia32-msvc@4.60.1': + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.52.3': - resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} + '@rollup/rollup-win32-x64-gnu@4.59.0': + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.57.1': - resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} + '@rollup/rollup-win32-x64-gnu@4.60.1': + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.52.3': - resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} + '@rollup/rollup-win32-x64-msvc@4.59.0': + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.57.1': - resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} + '@rollup/rollup-win32-x64-msvc@4.60.1': + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} cpu: [x64] os: [win32] @@ -6654,8 +6685,8 @@ packages: '@rushstack/ts-command-line@4.22.6': resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} - '@schematics/angular@20.3.16': - resolution: {integrity: sha512-KeOcsM5piwv/6tUKBmLD1zXTwtJlZBnR2WM/4T9ImaQbmFGe1MMHUABT5SQ3Bifv1YKCw58ImxiaQUY9sdNqEQ==} + '@schematics/angular@20.3.22': + resolution: {integrity: sha512-wXTdFaPIBnSSNj/m0kclvPCYQOc2EGTQN1+Q3j9RIghS9gKgPxI1unSfgieJldZWKzcl8+WdB2zUuDzE7tEshQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@segment/loosely-validate-event@2.0.0': @@ -6704,20 +6735,20 @@ packages: resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/core@3.1.0': - resolution: {integrity: sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==} + '@sigstore/core@3.2.0': + resolution: {integrity: sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==} engines: {node: ^20.17.0 || >=22.9.0} '@sigstore/protobuf-specs@0.5.0': resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} engines: {node: ^18.17.0 || >=20.5.0} - '@sigstore/sign@4.1.0': - resolution: {integrity: sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==} + '@sigstore/sign@4.1.1': + resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/tuf@4.0.1': - resolution: {integrity: sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==} + '@sigstore/tuf@4.0.2': + resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} engines: {node: ^20.17.0 || >=22.9.0} '@sigstore/verify@3.1.0': @@ -6727,8 +6758,8 @@ packages: '@sinclair/typebox@0.27.10': resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} - '@sinclair/typebox@0.34.48': - resolution: {integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==} + '@sinclair/typebox@0.34.49': + resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -6748,28 +6779,28 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@sinonjs/fake-timers@13.0.5': - resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + '@sinonjs/fake-timers@15.2.0': + resolution: {integrity: sha512-+SM3gQi95RWZLlD+Npy/UC5mHftlXwnVJMRpMyiqjrF4yNnbvi/Ubh3x9sLw6gxWSuibOn00uiLu1CKozehWlQ==} - '@size-limit/esbuild@12.0.0': - resolution: {integrity: sha512-r9i+HrtunIu7wAPtqD3t4DqfYin3kxPoMAv8cidkzlCS69IYCe3EG2UbQa10AdvQyaHTEK+MPkr9ifUd3W29og==} + '@size-limit/esbuild@12.0.1': + resolution: {integrity: sha512-Z6km06//90REJ30+WmMWvngG9dZnY52z3bhGxkoOwyXaAwPuQgx6ZdD1edNDABXIZMatbeMejigBPNEl4OaFsQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - size-limit: 12.0.0 + size-limit: 12.0.1 - '@size-limit/file@12.0.0': - resolution: {integrity: sha512-OzKYpDzWJ2jo6cAIzVsaPuvzZTmMLDoVCViEvsctmImxpXzwJZcuBEpPohFKKdgVdZuNTU8WstmvywPq55Njdw==} + '@size-limit/file@12.0.1': + resolution: {integrity: sha512-Kvbnz46iV7WeHaANf1HmWjXBVMU2KkCU+0xJ78FzIjZwlVKKEqy+QCZprdBMfIWrzrvYeqP4cfuzKG8z6xVivg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - size-limit: 12.0.0 + size-limit: 12.0.1 - '@size-limit/preset-small-lib@12.0.0': - resolution: {integrity: sha512-HHHVQjZmj+8vg7qsHs1dd3Hmn8ygUsE5O2CfxnbCbHOGyUw7VodZGERh/+5ogVrF2DYza/DIo2PnCJZZETdTRA==} + '@size-limit/preset-small-lib@12.0.1': + resolution: {integrity: sha512-WqA87RAzGgYOWk0K7WPbgWKlT98eDf5I0DHFD+CNwOck+Cfcchp+rh3QQNTdW5WKDjSZLqGd+rK2ZSca7DPJCg==} peerDependencies: - size-limit: 12.0.0 + size-limit: 12.0.1 - '@solid-primitives/event-listener@2.4.3': - resolution: {integrity: sha512-h4VqkYFv6Gf+L7SQj+Y6puigL/5DIi7x5q07VZET7AWcS+9/G3WfIE9WheniHWJs51OEkRB43w6lDys5YeFceg==} + '@solid-primitives/event-listener@2.4.5': + resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} peerDependencies: solid-js: ^1.6.12 @@ -6783,33 +6814,33 @@ packages: peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/media@2.3.3': - resolution: {integrity: sha512-hQ4hLOGvfbugQi5Eu1BFWAIJGIAzztq9x0h02xgBGl2l0Jaa3h7tg6bz5tV1NSuNYVGio4rPoa7zVQQLkkx9dA==} + '@solid-primitives/media@2.3.5': + resolution: {integrity: sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/props@3.2.2': - resolution: {integrity: sha512-lZOTwFJajBrshSyg14nBMEP0h8MXzPowGO0s3OeiR3z6nXHTfj0FhzDtJMv+VYoRJKQHG2QRnJTgCzK6erARAw==} + '@solid-primitives/props@3.2.3': + resolution: {integrity: sha512-XzG6en9gSFwmvbKcATm2BxL63HegZ+BAG5fmHi8jyBppQHcaths7ffz+6vYvwYy3nlgLa20ufJLj7tst+PcHFA==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/refs@1.1.2': - resolution: {integrity: sha512-K7tf2thy7L+YJjdqXspXOg5xvNEOH8tgEWsp0+1mQk3obHBRD6hEjYZk7p7FlJphSZImS35je3UfmWuD7MhDfg==} + '@solid-primitives/refs@1.1.3': + resolution: {integrity: sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/resize-observer@2.1.3': - resolution: {integrity: sha512-zBLje5E06TgOg93S7rGPldmhDnouNGhvfZVKOp+oG2XU8snA+GoCSSCz1M+jpNAg5Ek2EakU5UVQqL152WmdXQ==} + '@solid-primitives/resize-observer@2.1.5': + resolution: {integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/rootless@1.5.2': - resolution: {integrity: sha512-9HULb0QAzL2r47CCad0M+NKFtQ+LrGGNHZfteX/ThdGvKIg2o2GYhBooZubTCd/RTu2l2+Nw4s+dEfiDGvdrrQ==} + '@solid-primitives/rootless@1.5.3': + resolution: {integrity: sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/static-store@0.1.2': - resolution: {integrity: sha512-ReK+5O38lJ7fT+L6mUFvUr6igFwHBESZF+2Ug842s7fvlVeBdIVEdTCErygff6w7uR6+jrr7J8jQo+cYrEq4Iw==} + '@solid-primitives/static-store@0.1.3': + resolution: {integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==} peerDependencies: solid-js: ^1.6.12 @@ -6823,13 +6854,13 @@ packages: peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/trigger@1.2.2': - resolution: {integrity: sha512-IWoptVc0SWYgmpBPpCMehS5b07+tpFcvw15tOQ3QbXedSYn6KP8zCjPkHNzMxcOvOicTneleeZDP7lqmz+PQ6g==} + '@solid-primitives/trigger@1.2.3': + resolution: {integrity: sha512-Za2JebEiDyfamjmDwRaESYqBBYOlgYGzB8kHYH0QrkXyLf2qNADlKdGN+z3vWSLCTDcKxChS43Kssjuc0OZhng==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/utils@6.3.2': - resolution: {integrity: sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ==} + '@solid-primitives/utils@6.4.0': + resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==} peerDependencies: solid-js: ^1.6.12 @@ -6843,8 +6874,8 @@ packages: peerDependencies: solid-js: ^1.8.6 - '@solidjs/start@1.2.1': - resolution: {integrity: sha512-O5E7rcCwm2f8GlXKgS2xnU37Ld5vMVXJgo/qR7UI5iR5uFo9V2Ac+SSVNXkM98CeHKHt55h1UjbpxxTANEsHmA==} + '@solidjs/start@1.3.2': + resolution: {integrity: sha512-tasDl3utVbtP0rr4InB3ntBIFV2upvEiFrOOCkRrAA3yBfjx9elpxnc94sJQXo65PNYdAAAkPIC6h93vLrtwHg==} peerDependencies: vinxi: ^0.5.7 @@ -6858,17 +6889,17 @@ packages: '@solidjs/router': optional: true - '@speed-highlight/core@1.2.14': - resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==} + '@speed-highlight/core@1.2.15': + resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==} '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@stylistic/eslint-plugin@5.8.0': - resolution: {integrity: sha512-WNPVF/FfBAjyi3OA7gok8swRiImNLKI4dmV3iK/GC/0xSJR7eCzBFsw9hLZVgb1+MYNLy7aDsjohxN1hA/FIfQ==} + '@stylistic/eslint-plugin@5.10.0': + resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=9.0.0' + eslint: ^9.0.0 || ^10.0.0 '@sveltejs/acorn-typescript@1.0.9': resolution: {integrity: sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==} @@ -6880,8 +6911,8 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/kit@2.53.3': - resolution: {integrity: sha512-tshOeBUid2v5LAblUpatIdFm5Cyykbw2EiKWOunAAX0A/oJaR7DOdC9wLR5Qqh9zUf3QUISA2m9A3suBdQSYQg==} + '@sveltejs/kit@2.55.0': + resolution: {integrity: sha512-MdFRjevVxmAknf2NbaUkDF16jSIzXMWd4Nfah0Qp8TtQVoSp3bV4jKt8mX7z7qTUTWvgSaxtR0EG5WJf53gcuA==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -6928,71 +6959,71 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@swc/helpers@0.5.18': - resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} + '@swc/helpers@0.5.20': + resolution: {integrity: sha512-2egEBHUMasdypIzrprsu8g+OEVd7Vp2MM3a2eVlM/cyFYto0nGz5BX5BTgh/ShZZI9ed+ozEq+Ngt+rgmUs8tw==} '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - '@tailwindcss/node@4.1.18': - resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} + '@tailwindcss/node@4.2.2': + resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} - '@tailwindcss/oxide-android-arm64@4.1.18': - resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-android-arm64@4.2.2': + resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + engines: {node: '>= 20'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.18': - resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-darwin-arm64@4.2.2': + resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + engines: {node: '>= 20'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.18': - resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-darwin-x64@4.2.2': + resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + engines: {node: '>= 20'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.18': - resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-freebsd-x64@4.2.2': + resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + engines: {node: '>= 20'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': - resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + engines: {node: '>= 20'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': - resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + engines: {node: '>= 20'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.18': - resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + engines: {node: '>= 20'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.18': - resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + engines: {node: '>= 20'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.18': - resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + engines: {node: '>= 20'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.18': - resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -7003,24 +7034,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': - resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + engines: {node: '>= 20'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.18': - resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + engines: {node: '>= 20'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.18': - resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} - engines: {node: '>= 10'} + '@tailwindcss/oxide@4.2.2': + resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + engines: {node: '>= 20'} - '@tailwindcss/vite@4.1.18': - resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==} + '@tailwindcss/vite@4.2.2': + resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} peerDependencies: vite: ^6.4.1 @@ -7045,9 +7076,9 @@ packages: react: '>=16' react-dom: '>=16' - '@tanstack/router-utils@1.158.0': - resolution: {integrity: sha512-qZ76eaLKU6Ae9iI/mc5zizBX149DXXZkBVVO3/QRIll79uKLJZHQlMKR++2ba7JsciBWz1pgpIBcCJPE9S0LVg==} - engines: {node: '>=12'} + '@tanstack/router-utils@1.161.6': + resolution: {integrity: sha512-nRcYw+w2OEgK6VfjirYvGyPLOK+tZQz1jkYcmH5AjMamQ9PycnlxZF2aEZtPpNoUsaceX2bHptn6Ub5hGXqNvw==} + engines: {node: '>=20.19'} '@tanstack/server-functions-plugin@1.121.21': resolution: {integrity: sha512-a05fzK+jBGacsSAc1vE8an7lpBh4H0PyIEcivtEyHLomgSeElAJxm9E2It/0nYRZ5Lh23m0okbhzJNaYWZpAOg==} @@ -7132,8 +7163,8 @@ packages: vitest: optional: true - '@tsconfig/svelte@5.0.7': - resolution: {integrity: sha512-NOtJF9LQnV7k6bpzcXwL/rXdlFHvAT9e0imrftiMc6/+FUNBHRZ8UngDrM+jciA6ENzFYNoFs8rfwumuGF+Dhw==} + '@tsconfig/svelte@5.0.8': + resolution: {integrity: sha512-UkNnw1/oFEfecR8ypyHIQuWYdkPvHiwcQ78sh+ymIiYoF+uc5H1UBetbjyqT+vgGJ3qQN6nhucJviX6HesWtKQ==} '@tufjs/canonical-json@2.0.0': resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} @@ -7188,6 +7219,9 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -7247,8 +7281,8 @@ packages: peerDependencies: '@types/react': ^19.2.7 - '@types/react@19.2.13': - resolution: {integrity: sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==} + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -7500,8 +7534,8 @@ packages: engines: {node: '>=18'} hasBin: true - '@vercel/nft@1.3.0': - resolution: {integrity: sha512-i4EYGkCsIjzu4vorDUbqglZc5eFtQI2syHb++9ZUDm6TU4edVywGpVnYDein35x9sevONOn9/UabfQXuNXtuzQ==} + '@vercel/nft@1.5.0': + resolution: {integrity: sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==} engines: {node: '>=20'} hasBin: true @@ -7509,8 +7543,8 @@ packages: resolution: {integrity: sha512-59PBFx3T+k5hLTEWa3ggiMpGRz1OVvl9eN8SUai+A43IsqiOuAe7qPBf+cray/Fj6mkgnxm/D7IAtjc8zSHi7g==} engines: {node: '>= 18'} - '@vercel/routing-utils@5.3.2': - resolution: {integrity: sha512-OKKhHKAON4vcwuPQvtxFRv7Ney0IGlp9CTsScKGbUsYYutRValK2GVdj7y4RRqm7RgzhuUMT/fSoK0ENKwrx9A==} + '@vercel/routing-utils@5.3.3': + resolution: {integrity: sha512-KYm2sLNUD48gDScv8ob4ejc3Gww2jcJyW80hTdYlenAPz/5BQar1Gyh38xrUuZ532TUwSb5mV1uRbAuiykq0EQ==} '@vinxi/listhen@1.5.6': resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} @@ -7550,24 +7584,27 @@ packages: peerDependencies: vitest: 4.0.6 - '@vitest/eslint-plugin@1.6.7': - resolution: {integrity: sha512-sd2QJirEscSQk3Pywtelbs7z8RQp1gyF5BfeZVtTHE8y3suyzbAA71NuT9z01uTRMHoCf5p6M2t2WYNJ7m5FlA==} + '@vitest/eslint-plugin@1.6.14': + resolution: {integrity: sha512-PXZ5ysw4eHU9h8nDtBvVcGC7Z2C/T9CFdheqSw1NNXFYqViojub0V9bgdYI67iBTOcra2mwD0EYldlY9bGPf2Q==} engines: {node: '>=18'} peerDependencies: + '@typescript-eslint/eslint-plugin': 8.56.1 eslint: '>=8.57.0' typescript: '>=5.0.0' vitest: '*' peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true typescript: optional: true vitest: optional: true - '@vitest/expect@4.0.18': - resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} + '@vitest/expect@4.1.2': + resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==} - '@vitest/mocker@4.0.18': - resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} + '@vitest/mocker@4.1.2': + resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} peerDependencies: msw: ^2.4.9 vite: ^6.4.1 @@ -7577,20 +7614,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.0.18': - resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} + '@vitest/pretty-format@4.1.2': + resolution: {integrity: sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==} - '@vitest/runner@4.0.18': - resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} + '@vitest/runner@4.1.2': + resolution: {integrity: sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==} - '@vitest/snapshot@4.0.18': - resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} + '@vitest/snapshot@4.1.2': + resolution: {integrity: sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==} - '@vitest/spy@4.0.18': - resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} + '@vitest/spy@4.1.2': + resolution: {integrity: sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==} - '@vitest/utils@4.0.18': - resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} + '@vitest/utils@4.1.2': + resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} '@volar/kit@2.4.28': resolution: {integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==} @@ -7627,20 +7664,20 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - '@vue/compiler-core@3.5.28': - resolution: {integrity: sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ==} + '@vue/compiler-core@3.5.31': + resolution: {integrity: sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==} - '@vue/compiler-dom@3.5.28': - resolution: {integrity: sha512-/1ZepxAb159jKR1btkefDP+J2xuWL5V3WtleRmxaT+K2Aqiek/Ab/+Ebrw2pPj0sdHO8ViAyyJWfhXXOP/+LQA==} + '@vue/compiler-dom@3.5.31': + resolution: {integrity: sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==} '@vue/compiler-sfc@2.7.16': resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} - '@vue/compiler-sfc@3.5.28': - resolution: {integrity: sha512-6TnKMiNkd6u6VeVDhZn/07KhEZuBSn43Wd2No5zaP5s3xm8IqFTHBj84HJah4UepSUJTro5SoqqlOY22FKY96g==} + '@vue/compiler-sfc@3.5.31': + resolution: {integrity: sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==} - '@vue/compiler-ssr@3.5.28': - resolution: {integrity: sha512-JCq//9w1qmC6UGLWJX7RXzrGpKkroubey/ZFqTpvEIDJEKGgntuDMqkuWiZvzTzTA5h2qZvFBFHY7fAAa9475g==} + '@vue/compiler-ssr@3.5.31': + resolution: {integrity: sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -7669,22 +7706,22 @@ packages: typescript: optional: true - '@vue/reactivity@3.5.28': - resolution: {integrity: sha512-gr5hEsxvn+RNyu9/9o1WtdYdwDjg5FgjUSBEkZWqgTKlo/fvwZ2+8W6AfKsc9YN2k/+iHYdS9vZYAhpi10kNaw==} + '@vue/reactivity@3.5.31': + resolution: {integrity: sha512-DtKXxk9E/KuVvt8VxWu+6Luc9I9ETNcqR1T1oW1gf02nXaZ1kuAx58oVu7uX9XxJR0iJCro6fqBLw9oSBELo5g==} - '@vue/runtime-core@3.5.28': - resolution: {integrity: sha512-POVHTdbgnrBBIpnbYU4y7pOMNlPn2QVxVzkvEA2pEgvzbelQq4ZOUxbp2oiyo+BOtiYlm8Q44wShHJoBvDPAjQ==} + '@vue/runtime-core@3.5.31': + resolution: {integrity: sha512-AZPmIHXEAyhpkmN7aWlqjSfYynmkWlluDNPHMCZKFHH+lLtxP/30UJmoVhXmbDoP1Ng0jG0fyY2zCj1PnSSA6Q==} - '@vue/runtime-dom@3.5.28': - resolution: {integrity: sha512-4SXxSF8SXYMuhAIkT+eBRqOkWEfPu6nhccrzrkioA6l0boiq7sp18HCOov9qWJA5HML61kW8p/cB4MmBiG9dSA==} + '@vue/runtime-dom@3.5.31': + resolution: {integrity: sha512-xQJsNRmGPeDCJq/u813tyonNgWBFjzfVkBwDREdEWndBnGdHLHgkwNBQxLtg4zDrzKTEcnikUy1UUNecb3lJ6g==} - '@vue/server-renderer@3.5.28': - resolution: {integrity: sha512-pf+5ECKGj8fX95bNincbzJ6yp6nyzuLDhYZCeFxUNp8EBrQpPpQaLX3nNCp49+UbgbPun3CeVE+5CXVV1Xydfg==} + '@vue/server-renderer@3.5.31': + resolution: {integrity: sha512-GJuwRvMcdZX/CriUnyIIOGkx3rMV3H6sOu0JhdKbduaeCji6zb60iOGMY7tFoN24NfsUYoFBhshZtGxGpxO4iA==} peerDependencies: - vue: 3.5.28 + vue: 3.5.31 - '@vue/shared@3.5.28': - resolution: {integrity: sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==} + '@vue/shared@3.5.31': + resolution: {integrity: sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7833,10 +7870,10 @@ packages: '@xmldom/xmldom@0.7.13': resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==} engines: {node: '>=10.0.0'} - deprecated: this version is no longer supported, please update to at least 0.8.* + deprecated: this version has critical issues, please update to the latest version - '@xmldom/xmldom@0.8.11': - resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} + '@xmldom/xmldom@0.8.12': + resolution: {integrity: sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==} engines: {node: '>=10.0.0'} '@xtuc/ieee754@1.2.0': @@ -7971,8 +8008,8 @@ packages: ajv@8.13.0: resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} algoliasearch@5.35.0: resolution: {integrity: sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==} @@ -8210,8 +8247,8 @@ packages: engines: {node: '>= 4.5.0'} hasBin: true - autoprefixer@10.4.24: - resolution: {integrity: sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==} + autoprefixer@10.4.27: + resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -8221,15 +8258,15 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.13.5: - resolution: {integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==} + axios@1.14.0: + resolution: {integrity: sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - b4a@1.7.3: - resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} + b4a@1.8.0: + resolution: {integrity: sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==} peerDependencies: react-native-b4a: '*' peerDependenciesMeta: @@ -8276,13 +8313,13 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-plugin-jsx-dom-expressions@0.40.3: - resolution: {integrity: sha512-5HOwwt0BYiv/zxl7j8Pf2bGL6rDXfV6nUhLs8ygBX+EFJXzBPHM/euj9j/6deMZ6wa52Wb2PBaAV5U/jKwIY1w==} + babel-plugin-jsx-dom-expressions@0.40.6: + resolution: {integrity: sha512-v3P1MW46Lm7VMpAkq0QfyzLWWkC8fh+0aE5Km4msIgDx5kjenHU0pF2s+4/NH8CQn/kla6+Hvws+2AF7bfV5qQ==} peerDependencies: '@babel/core': ^7.20.12 - babel-plugin-polyfill-corejs2@0.4.15: - resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} + babel-plugin-polyfill-corejs2@0.4.17: + resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -8291,13 +8328,13 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.14.0: - resolution: {integrity: sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==} + babel-plugin-polyfill-corejs3@0.14.2: + resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.6: - resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} + babel-plugin-polyfill-regenerator@0.6.8: + resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -8340,11 +8377,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - babel-preset-solid@1.9.10: - resolution: {integrity: sha512-HCelrgua/Y+kqO8RyL04JBWS/cVdrtUv/h45GntgQY+cJl4eBcKkCDV3TdMjtKx1nXwRaR9QXslM/Npm1dxdZQ==} + babel-preset-solid@1.9.12: + resolution: {integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==} peerDependencies: '@babel/core': ^7.0.0 - solid-js: ^1.9.10 + solid-js: ^1.9.12 peerDependenciesMeta: solid-js: optional: true @@ -8367,6 +8404,39 @@ packages: bare-abort-controller: optional: true + bare-fs@4.5.6: + resolution: {integrity: sha512-1QovqDrR80Pmt5HPAsMsXTCFcDYr+NSUKW6nd6WO5v0JBmnItc/irNRzm2KOQ5oZ69P37y+AMujNyNtG+1Rggw==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.8.6: + resolution: {integrity: sha512-l8xaNWWb/bXuzgsrlF5jaa5QYDJ9S0ddd54cP6CH+081+5iPrbJiCfBWQqrWYzmUhCbsH+WR6qxo9MeHVCr0MQ==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.12.0: + resolution: {integrity: sha512-w28i8lkBgREV3rPXGbgK+BO66q+ZpKqRWrZLiCdmmUlLPrQ45CzkvRhN+7lnv00Gpi2zy5naRxnUFAxCECDm9g==} + peerDependencies: + bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.4.0: + resolution: {integrity: sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==} + base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -8377,8 +8447,9 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} - baseline-browser-mapping@2.9.19: - resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} + baseline-browser-mapping@2.10.13: + resolution: {integrity: sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==} + engines: {node: '>=6.0.0'} hasBin: true beasties@0.3.5: @@ -8423,11 +8494,11 @@ packages: bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - bn.js@4.12.2: - resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} + bn.js@4.12.3: + resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} - bn.js@5.2.2: - resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} + bn.js@5.2.3: + resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} body-parser@2.2.2: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} @@ -8454,14 +8525,14 @@ packages: resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} engines: {node: '>= 5.10.0'} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.13: + resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.0.3: + resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@2.3.2: @@ -8498,8 +8569,8 @@ packages: browserify-zlib@0.2.0: resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -8537,6 +8608,10 @@ packages: builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8574,8 +8649,8 @@ packages: resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} - cacache@20.0.3: - resolution: {integrity: sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==} + cacache@20.0.4: + resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} engines: {node: ^20.17.0 || >=22.9.0} cache-base@1.0.1: @@ -8629,8 +8704,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001769: - resolution: {integrity: sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==} + caniuse-lite@1.0.30001782: + resolution: {integrity: sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -8733,8 +8808,8 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - citty@0.2.0: - resolution: {integrity: sha512-8csy5IBFI2ex2hTVpaHN2j+LNE199AgiI7y4dMintrr8i0lQiFn+0AWMZrWdHKIgMOer65f8IThysYhoReqjWA==} + citty@0.2.1: + resolution: {integrity: sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==} class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} @@ -8902,16 +8977,16 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - comment-json@4.5.1: - resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} + comment-json@4.6.2: + resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} engines: {node: '>= 6'} comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} - comment-parser@1.4.5: - resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} + comment-parser@1.4.6: + resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} engines: {node: '>= 12.0.0'} common-ancestor-path@1.0.1: @@ -8997,6 +9072,9 @@ packages: cookie-es@2.0.0: resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==} + cookie-es@3.1.1: + resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} + cookie-signature@1.2.2: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} @@ -9025,8 +9103,8 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} - core-js-compat@3.48.0: - resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} + core-js-compat@3.49.0: + resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -9070,8 +9148,8 @@ packages: create-hmac@1.1.7: resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - croner@9.1.0: - resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} + croner@10.0.1: + resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} engines: {node: '>=18.0'} cross-env@7.0.3: @@ -9104,36 +9182,36 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - cspell-config-lib@9.6.4: - resolution: {integrity: sha512-MecJNR9bIlcPBhyZFsXP6Q2n8qQ2IR9N9HiIz0yh0gBNVydp3LR5JITP5Ji8m7hexmZzVeoXms/dVN74XbS95g==} + cspell-config-lib@9.7.0: + resolution: {integrity: sha512-pguh8A3+bSJ1OOrKCiQan8bvaaY125de76OEFz7q1Pq309lIcDrkoL/W4aYbso/NjrXaIw6OjkgPMGRBI/IgGg==} engines: {node: '>=20'} - cspell-dictionary@9.6.4: - resolution: {integrity: sha512-Ik9ZQVqV/fJfMt5X6IkC7yHGVH46/qjcqCNWwrMSwvROLM3SemNxxZoLvh0wi0GXz9WF1lHcxLJVdeKUk6QB8g==} + cspell-dictionary@9.7.0: + resolution: {integrity: sha512-k/Wz0so32+0QEqQe21V9m4BNXM5ZN6lz3Ix/jLCbMxFIPl6wT711ftjOWIEMFhvUOP0TWXsbzcuE9mKtS5mTig==} engines: {node: '>=20'} - cspell-glob@9.6.4: - resolution: {integrity: sha512-253VrjbR8QU15h8GtpDQLX5Ti9uNSuNod2T7f8YEElQOb9I/kUXoCj3Cq4P390IC99klqSHIDxHsxd77ex19lA==} + cspell-glob@9.7.0: + resolution: {integrity: sha512-LUeAoEsoCJ+7E3TnUmWBscpVQOmdwBejMlFn0JkXy6LQzxrybxXBKf65RSdIv1o5QtrhQIMa358xXYQG0sv/tA==} engines: {node: '>=20'} - cspell-grammar@9.6.4: - resolution: {integrity: sha512-rvZyTB45/XSRWx7eAsrvTTAZvBTREr/2G2JWVMdqrptFyq1XReAKHhw/x1HJkNgWC9LKAK3bVQJpjLsNG37U9A==} + cspell-grammar@9.7.0: + resolution: {integrity: sha512-oEYME+7MJztfVY1C06aGcJgEYyqBS/v/ETkQGPzf/c6ObSAPRcUbVtsXZgnR72Gru9aBckc70xJcD6bELdoWCA==} engines: {node: '>=20'} hasBin: true - cspell-io@9.6.4: - resolution: {integrity: sha512-bmvJ4yn5QK2FZWTkZA4sx2qJqIi8BrUUUV7W209drSwkYjhJtXqP0RyF6Qx4Xuu2D1s0UilEtO5Jd+E9UJkQ6w==} + cspell-io@9.7.0: + resolution: {integrity: sha512-V7x0JHAUCcJPRCH8c0MQkkaKmZD2yotxVyrNEx2SZTpvnKrYscLEnUUTWnGJIIf9znzISqw116PLnYu2c+zd6Q==} engines: {node: '>=20'} - cspell-lib@9.6.4: - resolution: {integrity: sha512-fUodKcIHTwvokuowB25XyFzBxlk73yj1QRw2por3BxDz9fAim1zAIohAPAnGuzj3LowYnTMjHLYE7RFDUSxy5A==} + cspell-lib@9.7.0: + resolution: {integrity: sha512-aTx/aLRpnuY1RJnYAu+A8PXfm1oIUdvAQ4W9E66bTgp1LWI+2G2++UtaPxRIgI0olxE9vcXqUnKpjOpO+5W9bQ==} engines: {node: '>=20'} - cspell-trie-lib@9.6.4: - resolution: {integrity: sha512-JKwyRtyybbaTrixwI1OgU5Hvva2Z5zHVWl92WBa9U7KijAyiD/Ehp3T3DCYuBwGks7egw7MgWPySkXXnpme6mw==} + cspell-trie-lib@9.7.0: + resolution: {integrity: sha512-a2YqmcraL3g6I/4gY7SYWEZfP73oLluUtxO7wxompk/kOG2K1FUXyQfZXaaR7HxVv10axT1+NrjhOmXpfbI6LA==} engines: {node: '>=20'} peerDependencies: - '@cspell/cspell-types': 9.6.4 + '@cspell/cspell-types': 9.7.0 css-in-js-utils@3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} @@ -9299,6 +9377,14 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} + default-gateway@4.2.0: resolution: {integrity: sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==} engines: {node: '>=6'} @@ -9314,6 +9400,10 @@ packages: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -9462,8 +9552,8 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@17.2.4: - resolution: {integrity: sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==} + dotenv@17.3.1: + resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} engines: {node: '>=12'} dset@3.1.4: @@ -9486,8 +9576,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.286: - resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} + electron-to-chromium@1.5.329: + resolution: {integrity: sha512-/4t+AS1l4S3ZC0Ja7PHFIWeBIxGA3QGqV8/yKsP36v7NcyUCl+bIcmw6s5zVuMIECWwBrAK/6QLzTmbJChBboQ==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -9525,9 +9615,6 @@ packages: encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -9535,8 +9622,8 @@ packages: resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} engines: {node: '>=6.9.0'} - enhanced-resolve@5.19.0: - resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} engines: {node: '>=10.13.0'} enquirer@2.3.6: @@ -9617,8 +9704,8 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-iterator-helpers@1.2.2: - resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} + es-iterator-helpers@1.3.1: + resolution: {integrity: sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: @@ -9701,11 +9788,11 @@ packages: unrs-resolver: optional: true - eslint-plugin-compat@6.1.0: - resolution: {integrity: sha512-xiwHz7mj6+Zj7NWOO/uaWdrQ6zP0zL5CPyKVCNlB4JaoUFeYPYwejf5toqyHGlXzhuPUdCpg31uBRiWqcgiS0A==} + eslint-plugin-compat@6.2.1: + resolution: {integrity: sha512-gLKqUH+lQcCL+HzsROUjBDvakc5Zaga51Y4ZAkPCXc41pzKBfyluqTr2j8zOx8QQQb7zyglu1LVoL5aSNWf2SQ==} engines: {node: '>=18.x'} peerDependencies: - eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 eslint-plugin-es-x@7.8.0: resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} @@ -9713,12 +9800,12 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.16.1: - resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} + eslint-plugin-import-x@4.16.2: + resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/utils': 8.56.1 - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint-import-resolver-node: '*' peerDependenciesMeta: '@typescript-eslint/utils': @@ -9732,21 +9819,21 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-n@17.23.2: - resolution: {integrity: sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==} + eslint-plugin-n@17.24.0: + resolution: {integrity: sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-react-dom@2.12.2: - resolution: {integrity: sha512-Tvz+YETB0MQiPHR3KYhkwCioGfXQ6aUXpNOFpgZ70wx5/QuU1lemTWdmXuxgAPifsl150OOZmM2MJ0ElkwBUOw==} + eslint-plugin-react-dom@2.13.0: + resolution: {integrity: sha512-+2IZzQ1WEFYOWatW+xvNUqmZn55YBCufzKA7hX3XQ/8eu85Mp4vnlOyNvdVHEOGhUnGuC6+9+zLK+IlEHKdKLQ==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - eslint-plugin-react-hooks-extra@2.12.2: - resolution: {integrity: sha512-I3L/iVgyMRbbmMxRZNIxlxMrXUnV74ZHOsmSfzB/ue9hivdd5yN8JhMe+I5PNOw9L0gJHUCo2mgkKV6lMEE5DA==} + eslint-plugin-react-hooks-extra@2.13.0: + resolution: {integrity: sha512-qIbha1nzuyhXM9SbEfrcGVqmyvQu7GAOB2sy9Y4Qo5S8nCqw4fSBxq+8lSce5Tk5Y7XzIkgHOhNyXEvUHRWFMQ==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -9764,29 +9851,29 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-naming-convention@2.12.2: - resolution: {integrity: sha512-IsPmSs+AZo11uR47UoSRv9tVntUDL9Ah5F8Zj4HVC4HTxJlFZHC0gbm43q36Xw6c65J0LqA75oDA2h6jvhqSQQ==} + eslint-plugin-react-naming-convention@2.13.0: + resolution: {integrity: sha512-uSd25JzSg2R4p81s3Wqck0AdwRlO9Yc+cZqTEXv7vW8exGGAM3mWnF6hgrgdqVJqBEGJIbS/Vx1r5BdKcY/MHA==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - eslint-plugin-react-rsc@2.12.2: - resolution: {integrity: sha512-37Z4u6bBddO2wz8wrelYapOoDHhdEyF2pt8pbzFs0nW2USOxoA34/Gv73Dos0Kb6Ul4fFuwEHH2Tu8hZoki5jQ==} + eslint-plugin-react-rsc@2.13.0: + resolution: {integrity: sha512-RaftgITDLQm1zIgYyvR51sBdy4FlVaXFts5VISBaKbSUB0oqXyzOPxMHasfr9BCSjPLKus9zYe+G/Hr6rjFLXQ==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - eslint-plugin-react-web-api@2.12.2: - resolution: {integrity: sha512-bnpobQ6pjGdo4sJpd/PDlVM/wTqHt29fsW3uExuB+9ta6LSJjJo0/nXhV/o7q/MU/04QZB8WOw+k9ws8HU1sPQ==} + eslint-plugin-react-web-api@2.13.0: + resolution: {integrity: sha512-nmJbzIAte7PeAkp22CwcKEASkKi49MshSdiDGO1XuN3f4N4/8sBfDcWbQuLPde6JiuzDT/0+l7Gi8wwTHtR1kg==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - eslint-plugin-react-x@2.12.2: - resolution: {integrity: sha512-0zA48OyHKHePa3mhV/tRxT26LvEhRC7ROQ02sdwoyv/JOYgLX+5Z9o85sneFB7SmkZul4TubxUf+EvHTXdUmVg==} + eslint-plugin-react-x@2.13.0: + resolution: {integrity: sha512-cMNX0+ws/fWTgVxn52qAQbaFF2rqvaDAtjrPUzY6XOzPjY0rJQdR2tSlWJttz43r2yBfqu+LGvHlGpWL2wfpTQ==} engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -9798,23 +9885,23 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-svelte@3.14.0: - resolution: {integrity: sha512-Isw0GvaMm0yHxAj71edAdGFh28ufYs+6rk2KlbbZphnqZAzrH3Se3t12IFh2H9+1F/jlDhBBL4oiOJmLqmYX0g==} + eslint-plugin-svelte@3.16.0: + resolution: {integrity: sha512-DJXxqpYZUxcE0SfYo8EJzV2ZC+zAD7fJp1n1HwcEMRR1cOEUYvjT9GuzJeNghMjgb7uxuK3IJAzI+x6zzUxO5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.1 || ^9.0.0 + eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true - eslint-plugin-vue@10.7.0: - resolution: {integrity: sha512-r2XFCK4qlo1sxEoAMIoTTX0PZAdla0JJDt1fmYiworZUX67WeEGqm+JbyAg3M+pGiJ5U6Mp5WQbontXWtIW7TA==} + eslint-plugin-vue@10.8.0: + resolution: {integrity: sha512-f1J/tcbnrpgC8suPN5AtdJ5MQjuXbSU9pGRSSYAuF3SHoiYCOdEX6O22pLaRyLHXvDcOe+O5ENgc1owQ587agA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 '@typescript-eslint/parser': 8.56.1 - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 vue-eslint-parser: ^10.0.0 peerDependenciesMeta: '@stylistic/eslint-plugin': @@ -9834,6 +9921,10 @@ packages: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} @@ -9867,6 +9958,10 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -9876,8 +9971,8 @@ packages: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} - esrap@2.2.3: - resolution: {integrity: sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==} + esrap@2.2.4: + resolution: {integrity: sha512-suICpxAmZ9A8bzJjEl/+rLJiDKC0X4gYWUxT6URAWBLvlXmtbZd5ySMu/N2ZGEtMCAmflUDPSehrP9BQcsGcSg==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -9933,9 +10028,6 @@ packages: evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - exec-async@2.2.0: - resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==} - execa@1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -9956,8 +10048,8 @@ packages: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} - expect@30.2.0: - resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} + expect@30.3.0: + resolution: {integrity: sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} expo-asset@11.0.5: @@ -10030,8 +10122,8 @@ packages: exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - express-rate-limit@8.2.1: - resolution: {integrity: sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==} + express-rate-limit@8.3.2: + resolution: {integrity: sha512-77VmFeJkO0/rvimEDuUC5H30oqUC4EyOhyGccfqoLebB0oiEYfM7nwPrsDsBL1gsTpwfzX8SFy2MT3TDyRq+bg==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -10198,8 +10290,8 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} @@ -10208,8 +10300,8 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - flow-parser@0.299.0: - resolution: {integrity: sha512-phGMRoNt6SNglPHGRbCyWm9/pxfe6t/t4++EIYPaBGWT6e0lphLBgUMrvpL62NbRo9R549o3oqrbKHq82kANCw==} + flow-parser@0.307.1: + resolution: {integrity: sha512-MIkG26VVtubK0OKgqY17oaMDgCIPgeEMt+XcdNho+aHldUH0uWkQ1uhf8TGxac99vOPTPpUh5OSK5LAmtXUvZQ==} engines: {node: '>=0.4.0'} flush-write-stream@1.1.1: @@ -10363,8 +10455,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.4.0: - resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + get-east-asian-width@1.5.0: + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -10439,17 +10531,17 @@ packages: deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - glob@13.0.1: - resolution: {integrity: sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==} - engines: {node: 20 || >=22} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} + global-directory@5.0.0: + resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} + engines: {node: '>=20'} globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} @@ -10475,8 +10567,8 @@ packages: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - globby@16.1.0: - resolution: {integrity: sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==} + globby@16.2.0: + resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==} engines: {node: '>=20'} globrex@0.1.2: @@ -10499,8 +10591,8 @@ packages: peerDependencies: graphql: 14 - 16 - graphql@16.12.0: - resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} + graphql@16.13.2: + resolution: {integrity: sha512-5bJ+nf/UCpAjHM8i06fl7eLyVC9iuNAjm9qzkiu2ZGhM0VscSvS6WDPfAwkdkBuoXGM9FJSbKl6wylMwP9Ktig==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} gzip-size@7.0.0: @@ -10632,8 +10724,8 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hono@4.11.9: - resolution: {integrity: sha512-Eaw2YTGM6WOxA6CXbckaEvslr2Ne4NFsKrvc0v97JD5awbmeBLO5w9Ho9L9kmKonrwF9RJlW6BxT1PVv/agBHQ==} + hono@4.12.9: + resolution: {integrity: sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==} engines: {node: '>=16.9.0'} hookable@5.5.3: @@ -10736,8 +10828,8 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - httpxy@0.1.7: - resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==} + httpxy@0.3.1: + resolution: {integrity: sha512-XjG/CEoofEisMrnFr0D6U6xOZ4mRfnwcYQ9qvvnT4lvnX8BoeA3x3WofB75D+vZwpaobFVkBIHrZzoK40w8XSw==} human-id@4.1.3: resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} @@ -10791,8 +10883,8 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - immutable@5.1.4: - resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + immutable@5.1.5: + resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==} import-fresh@2.0.0: resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} @@ -10842,10 +10934,6 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ini@5.0.0: resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} engines: {node: ^18.17.0 || >=20.5.0} @@ -10876,14 +10964,10 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ioredis@5.9.2: - resolution: {integrity: sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==} + ioredis@5.10.1: + resolution: {integrity: sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==} engines: {node: '>=12.22.0'} - ip-address@10.0.1: - resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} - engines: {node: '>= 12'} - ip-address@10.1.0: resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} @@ -11028,6 +11112,10 @@ packages: eslint: '*' typescript: '>=4.7.4' + is-in-ssh@1.0.0: + resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} + engines: {node: '>=20'} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -11208,6 +11296,10 @@ packages: resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} engines: {node: '>=18'} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + isobject@2.1.0: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} engines: {node: '>=0.10.0'} @@ -11247,8 +11339,8 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jest-diff@30.2.0: - resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + jest-diff@30.3.0: + resolution: {integrity: sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-environment-node@29.7.0: @@ -11263,28 +11355,28 @@ packages: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-haste-map@30.2.0: - resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} + jest-haste-map@30.3.0: + resolution: {integrity: sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@30.2.0: - resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} + jest-matcher-utils@30.3.0: + resolution: {integrity: sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-message-util@30.2.0: - resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} + jest-message-util@30.3.0: + resolution: {integrity: sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock@30.2.0: - resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} + jest-mock@30.3.0: + resolution: {integrity: sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-regex-util@29.6.3: @@ -11295,16 +11387,16 @@ packages: resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@30.2.0: - resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==} + jest-snapshot@30.3.0: + resolution: {integrity: sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-util@30.2.0: - resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} + jest-util@30.3.0: + resolution: {integrity: sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-validate@29.7.0: @@ -11319,8 +11411,8 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@30.2.0: - resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} + jest-worker@30.3.0: + resolution: {integrity: sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jimp-compact@0.16.1: @@ -11340,8 +11432,8 @@ packages: join-component@1.1.0: resolution: {integrity: sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==} - jose@6.1.3: - resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + jose@6.2.2: + resolution: {integrity: sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==} joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} @@ -11501,8 +11593,8 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - knip@6.0.2: - resolution: {integrity: sha512-W17Bo5N9AYn0ZkgWHGBmK/01SrSmr3B6iStr3zudDa2eqi+Kc8VmPjSpTYKDV2Uy/kojrlcH/gS1wypAXfXRRA==} + knip@6.1.1: + resolution: {integrity: sha512-BC/kbdxwCgv+p/3YkGbtlLxbOXhQDuR+CeKKFEpJyKb3BFwG1gZa+CMWSqAnPi+kUexz74m327d3zWxyn2fMew==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -11533,8 +11625,8 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} - lightningcss-android-arm64@1.30.2: - resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [android] @@ -11545,8 +11637,8 @@ packages: cpu: [arm64] os: [darwin] - lightningcss-darwin-arm64@1.30.2: - resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] @@ -11557,8 +11649,8 @@ packages: cpu: [x64] os: [darwin] - lightningcss-darwin-x64@1.30.2: - resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] @@ -11569,8 +11661,8 @@ packages: cpu: [x64] os: [freebsd] - lightningcss-freebsd-x64@1.30.2: - resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] @@ -11581,8 +11673,8 @@ packages: cpu: [arm] os: [linux] - lightningcss-linux-arm-gnueabihf@1.30.2: - resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] @@ -11593,8 +11685,8 @@ packages: cpu: [arm64] os: [linux] - lightningcss-linux-arm64-gnu@1.30.2: - resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -11605,8 +11697,8 @@ packages: cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.30.2: - resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -11617,8 +11709,8 @@ packages: cpu: [x64] os: [linux] - lightningcss-linux-x64-gnu@1.30.2: - resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -11629,8 +11721,8 @@ packages: cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.30.2: - resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -11641,8 +11733,8 @@ packages: cpu: [arm64] os: [win32] - lightningcss-win32-arm64-msvc@1.30.2: - resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] @@ -11653,8 +11745,8 @@ packages: cpu: [x64] os: [win32] - lightningcss-win32-x64-msvc@1.30.2: - resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] @@ -11663,8 +11755,8 @@ packages: resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} engines: {node: '>= 12.0.0'} - lightningcss@1.30.2: - resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} lilconfig@2.1.0: @@ -11771,9 +11863,6 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} - log-symbols@2.2.0: resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} engines: {node: '>=4'} @@ -11848,8 +11937,8 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-fetch-happen@15.0.3: - resolution: {integrity: sha512-iyyEpDty1mwW3dGlYXAJqC/azFn5PPvgKVwXayOGBSmKLxhKZ9fg4qIan2ePpp1vJIwfFiO34LAPZgq9SZW9Aw==} + make-fetch-happen@15.0.5: + resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} engines: {node: ^20.17.0 || >=22.9.0} makeerror@1.0.12: @@ -11863,8 +11952,8 @@ packages: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + markdown-it@14.1.1: + resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} hasBin: true markdown-link-extractor@4.0.3: @@ -11879,8 +11968,8 @@ packages: peerDependencies: marked: '>=1 <16' - marked@17.0.1: - resolution: {integrity: sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==} + marked@17.0.5: + resolution: {integrity: sha512-6hLvc0/JEbRjRgzI6wnT2P1XuM1/RrrDEX0kPt0N7jGm1133g6X7DlxFasUIx+72aKAr904GTxhSLDrd5DIlZg==} engines: {node: '>= 20'} hasBin: true @@ -12210,8 +12299,8 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.0.8: @@ -12220,16 +12309,16 @@ packages: minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} engines: {node: '>=10'} minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: @@ -12239,12 +12328,12 @@ packages: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} - minipass-fetch@5.0.1: - resolution: {integrity: sha512-yHK8pb0iCGat0lDrs/D6RZmCdaBT64tULXjdxjSMAqoDi18Q3qKEUTHypHQZQd9+FYpIS+lkvpq6C/R6SbUeRw==} + minipass-fetch@5.0.2: + resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} engines: {node: ^20.17.0 || >=22.9.0} - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + minipass-flush@1.0.7: + resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} engines: {node: '>= 8'} minipass-pipeline@1.2.4: @@ -12263,8 +12352,8 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} minizlib@2.1.2: @@ -12292,8 +12381,8 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.8.0: - resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} @@ -12317,11 +12406,11 @@ packages: resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} hasBin: true - msgpackr@1.11.8: - resolution: {integrity: sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==} + msgpackr@1.11.9: + resolution: {integrity: sha512-FkoAAyyA6HM8wL882EcEyFZ9s7hVADSwG9xrVx3dxxNQAtgADTrJoEWivID82Iv1zWDsv/OtbrrcZAzGzOMdNw==} - msw@2.12.9: - resolution: {integrity: sha512-NYbi51C6M3dujGmcmuGemu68jy12KqQPoVWGeroKToLGsBgrwG5ErM8WctoIIg49/EV49SEvYM9WSqO4G7kNeQ==} + msw@2.12.14: + resolution: {integrity: sha512-4KXa4nVBIBjbDbd7vfQNuQ25eFxug0aropCQFoI0JdOBuJWamkT1yLVIWReFI8SiTRc+H1hKzaNk+cLk2N9rtQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -12340,16 +12429,16 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.25.0: - resolution: {integrity: sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==} + nan@2.26.2: + resolution: {integrity: sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==} nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.6: - resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} + nanoid@5.1.7: + resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==} engines: {node: ^18 || >=20} hasBin: true @@ -12411,8 +12500,8 @@ packages: sass: optional: true - next@15.5.12: - resolution: {integrity: sha512-Fi/wQ4Etlrn60rz78bebG1i1SR20QxvV8tVp6iJspjLUSHcZoeUXCt+vmWoEcza85ElZzExK/jJ/F6SvtGktjA==} + next@15.5.14: + resolution: {integrity: sha512-M6S+4JyRjmKic2Ssm7jHUPkE6YUJ6lv4507jprsSZLulubz0ihO2E+S4zmQK3JZ2ov81JrugukKU4Tz0ivgqqQ==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -12432,8 +12521,8 @@ packages: sass: optional: true - next@16.1.6: - resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} + next@16.2.2: + resolution: {integrity: sha512-i6AJdyVa4oQjyvX/6GeER8dpY/xlIV+4NMv/svykcLtURJSy/WzDnnUk/TM4d0uewFHK7xSQz4TbIwPgjky+3A==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -12456,8 +12545,8 @@ packages: nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - nitropack@2.13.1: - resolution: {integrity: sha512-2dDj89C4wC2uzG7guF3CnyG+zwkZosPEp7FFBGHB3AJo11AywOolWhyQJFHDzve8COvGxJaqscye9wW2IrUsNw==} + nitropack@2.13.2: + resolution: {integrity: sha512-R5TMzSBoTDG4gi6Y+pvvyCNnooShHePHsHxMLP9EXDGdrlR5RvNdSd4e5k8z0/EzP9Ske7ABRMDWg6O7Dm2OYw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -12486,6 +12575,10 @@ packages: resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} engines: {node: '>=18'} + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} @@ -12498,8 +12591,8 @@ packages: encoding: optional: true - node-forge@1.3.3: - resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} engines: {node: '>= 6.13.0'} node-gyp-build-optional-packages@5.2.2: @@ -12530,8 +12623,8 @@ packages: node-mock-http@1.0.4: resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + node-releases@2.0.36: + resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} @@ -12574,8 +12667,8 @@ packages: resolution: {integrity: sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==} engines: {node: ^20.17.0 || >=22.9.0} - npm-packlist@10.0.3: - resolution: {integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==} + npm-packlist@10.0.4: + resolution: {integrity: sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==} engines: {node: ^20.17.0 || >=22.9.0} npm-pick-manifest@11.0.3: @@ -12742,6 +12835,10 @@ packages: oniguruma-to-es@4.3.5: resolution: {integrity: sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==} + open@11.0.0: + resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} + engines: {node: '>=20'} + open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -12782,8 +12879,8 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-parser@0.120.0: - resolution: {integrity: sha512-WyPWZlcIm+Fkte63FGfgFB8mAAk33aH9h5N9lphXVOHSXEBFFsmYdOBedVKly363aWABjZdaj/m9lBfEY4wt+w==} + oxc-parser@0.121.0: + resolution: {integrity: sha512-ek9o58+SCv6AV7nchiAcUJy1DNE2CC5WRdBcO0mF+W4oRjNQfPO7b3pLjTHSFECpHkKGOZSQxx3hk8viIL5YCg==} engines: {node: ^20.19.0 || >=22.12.0} oxc-resolver@11.19.1: @@ -13019,9 +13116,9 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.1: - resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} - engines: {node: 20 || >=22} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} path-to-regexp@6.1.0: resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} @@ -13029,8 +13126,8 @@ packages: path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - path-to-regexp@8.3.0: - resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-to-regexp@8.4.1: + resolution: {integrity: sha512-fvU78fIjZ+SBM9YwCknCvKOUKkLVqtWDVctl0s7xIqfmfb38t2TT4ZU2gHm+Z8xGwgW+QWEU3oQSAzIbo89Ggw==} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -13062,14 +13159,10 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@3.0.1: - resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + picomatch@3.0.2: + resolution: {integrity: sha512-cfDHL6LStTEKlNilboNtobT/kEa30PtAf2Q1OgszfrG/rpVl1xaFWT9ktfkS306GmHgmnad1Sw4wabhlvFtsTw==} engines: {node: '>=10'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -13227,17 +13320,21 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} - preact-render-to-string@6.6.5: - resolution: {integrity: sha512-O6MHzYNIKYaiSX3bOw0gGZfEbOmlIDtDfWwN1JJdc/T3ihzRT6tGGSEWE088dWrEDGa1u7101q+6fzQnO9XCPA==} + powershell-utils@0.1.0: + resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} + engines: {node: '>=20'} + + preact-render-to-string@6.6.7: + resolution: {integrity: sha512-3XdbsX3+vn9dQW+jJI/FsI9rlkgl6dbeUpqLsChak6jp3j3auFqBCkno7VChbMFs5Q8ylBj6DrUkKRwtVN3nvw==} peerDependencies: preact: '>=10 || >= 11.0.0-0' - preact@10.28.3: - resolution: {integrity: sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA==} + preact@10.29.0: + resolution: {integrity: sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -13248,8 +13345,8 @@ packages: engines: {node: '>=6'} hasBin: true - prettier-plugin-svelte@3.4.1: - resolution: {integrity: sha512-xL49LCloMoZRvSwa6IEdN2GV6cq2IqpYGstYtMT+5wmml1/dClEoI0MZR78MiVPpu6BdQFfN0/y73yO6+br5Pg==} + prettier-plugin-svelte@3.5.1: + resolution: {integrity: sha512-65+fr5+cgIKWKiqM1Doum4uX6bY8iFCdztvvp2RcF+AJoieaw9kJOFMNcJo/bkmKYsxFaM9OsVZK/gWauG/5mg==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 @@ -13286,8 +13383,8 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-format@30.2.0: - resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + pretty-format@30.3.0: + resolution: {integrity: sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} prismjs@1.30.0: @@ -13349,8 +13446,9 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} @@ -13358,16 +13456,16 @@ packages: public-encrypt@4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} - publint@0.3.17: - resolution: {integrity: sha512-Q3NLegA9XM6usW+dYQRG1g9uEHiYUzcCVBJDJ7yMcWRqVU9LYZUWdqbwMZfmTCFC5PZLQpLAmhvRcQRl3exqkw==} + publint@0.3.18: + resolution: {integrity: sha512-JRJFeBTrfx4qLwEuGFPk+haJOJN97KnPuK01yj+4k/Wj5BgoOK5uNsivporiqBjk2JDaslg7qJOhGRnpltGeog==} engines: {node: '>=18'} hasBin: true pump@2.0.1: resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} @@ -13387,8 +13485,8 @@ packages: resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} hasBin: true - qs@6.14.1: - resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + qs@6.15.0: + resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} quansync@0.2.11: @@ -13490,8 +13588,8 @@ packages: react: '*' react-native: '*' - react-native-gesture-handler@2.30.0: - resolution: {integrity: sha512-5YsnKHGa0X9C8lb5oCnKm0fLUPM6CRduvUUw2Bav4RIj/C3HcFh4RIUnF8wgG6JQWCL1//gRx4v+LVWgcIQdGA==} + react-native-gesture-handler@2.30.1: + resolution: {integrity: sha512-xIUBDo5ktmJs++0fZlavQNvDEE4PsihWhSeJsJtoz4Q6p0MiTM9TgrTgfEgzRR36qGPytFoeq+ShLrVwGdpUdA==} peerDependencies: react: '*' react-native: '*' @@ -13502,8 +13600,8 @@ packages: react: '*' react-native: '*' - react-native-is-edge-to-edge@1.2.1: - resolution: {integrity: sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==} + react-native-is-edge-to-edge@1.3.1: + resolution: {integrity: sha512-NIXU/iT5+ORyCc7p0z2nnlkouYKX425vuU1OEm6bMMtWWR9yvb+Xg5AZmImTKoF9abxCPqrKC3rOZsKzUYgYZA==} peerDependencies: react: '*' react-native: '*' @@ -13528,8 +13626,8 @@ packages: react: '*' react-native: '*' - react-native-screens@4.23.0: - resolution: {integrity: sha512-XhO3aK0UeLpBn4kLecd+J+EDeRRJlI/Ro9Fze06vo1q163VeYtzfU9QS09/VyDFMWR1qxDC1iazCArTPSFFiPw==} + react-native-screens@4.24.0: + resolution: {integrity: sha512-SyoiGaDofiyGPFrUkn1oGsAzkRuX1JUvTD9YQQK3G1JGQ5VWkvHgYSsc1K9OrLsDQxN7NmV71O0sHCAh8cBetA==} peerDependencies: react: '*' react-native: '*' @@ -13833,8 +13931,9 @@ packages: resolve@1.7.1: resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + resolve@2.0.0-next.6: + resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + engines: {node: '>= 0.4'} hasBin: true restore-cursor@2.0.0: @@ -13903,12 +14002,12 @@ packages: peerDependencies: rollup: 2.x || 3.x || 4.x - rollup-plugin-visualizer@6.0.5: - resolution: {integrity: sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==} - engines: {node: '>=18'} + rollup-plugin-visualizer@7.0.1: + resolution: {integrity: sha512-UJUT4+1Ho4OcWmPYU3sYXgUqI8B8Ayfe06MX7y0qCJ1K8aGoKtR/NDd/2nZqM7ADkrzny+I99Ul7GgyoiVNAgg==} + engines: {node: '>=22'} hasBin: true peerDependencies: - rolldown: 1.x || ^1.0.0-beta + rolldown: 1.x || ^1.0.0-beta || ^1.0.0-rc rollup: 2.x || 3.x || 4.x peerDependenciesMeta: rolldown: @@ -13916,13 +14015,13 @@ packages: rollup: optional: true - rollup@4.52.3: - resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==} + rollup@4.59.0: + resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.57.1: - resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} + rollup@4.60.1: + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -13943,6 +14042,10 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -14059,17 +14162,18 @@ packages: serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serialize-javascript@7.0.5: + resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + engines: {node: '>=20.0.0'} - seroval-plugins@1.5.0: - resolution: {integrity: sha512-EAHqADIQondwRZIdeW2I636zgsODzoBDwb3PT/+7TLDWyw1Dy/Xv7iGUIEXXav7usHDE9HVhOU61irI3EnyyHA==} + seroval-plugins@1.5.1: + resolution: {integrity: sha512-4FbuZ/TMl02sqv0RTFexu0SP6V+ywaIe5bAWCCEik0fk17BhALgwvUDVF7e3Uvf9pxmwCEJsRPmlkUE6HdzLAw==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.5.0: - resolution: {integrity: sha512-OE4cvmJ1uSPrKorFIH9/w/Qwuvi/IMcGbv5RKgcJ/zjA/IohDLU6SVaxFN9FwajbP7nsX0dQqMDes1whk3y+yw==} + seroval@1.5.1: + resolution: {integrity: sha512-OwrZRZAfhHww0WEnKHDY8OM0U/Qs8OTfIDWhUD4BLpNJUfXK4cGmjiagGze086m+mhI+V2nD0gfbHEnJjb9STA==} engines: {node: '>=10'} serve-placeholder@2.0.2: @@ -14086,8 +14190,8 @@ packages: server-destroy@1.0.1: resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} - set-cookie-parser@3.0.1: - resolution: {integrity: sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q==} + set-cookie-parser@3.1.0: + resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -14144,48 +14248,48 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - sherif-darwin-arm64@1.10.0: - resolution: {integrity: sha512-fHRg/fgyxHebCH9vuGEhImyGqmwlBq67BVyI8Ugda8GM+W+Ofj1cQnzDX82cYuCHU+KJ7hQFq8iPHkRizXWOrA==} + sherif-darwin-arm64@1.11.1: + resolution: {integrity: sha512-VoMrUv5QY6hQ2rByNa3AAhr/KGQsCb6pvAUNKa1iCh1jvnY836hQr6zNBw9hYCDkVv6t9sITFGJljwdTCQD4xw==} cpu: [arm64] os: [darwin] - sherif-darwin-x64@1.10.0: - resolution: {integrity: sha512-7rhayQ+jlIj3SscnHMi6JVCYR9od/HiqIGIBgOQeux31YRzc/XvfKjE9X+FrCRU+72qz7sqw5ZY7jl7bRxbOUg==} + sherif-darwin-x64@1.11.1: + resolution: {integrity: sha512-7j3yOCBkvVbltVT3lXoiazGfG2nb36FteYT5VZPEBSf8sTn1pPTScukAQ1Fdl+MphadGyici7XlRbDrtZ/wnvA==} cpu: [x64] os: [darwin] - sherif-linux-arm64-musl@1.10.0: - resolution: {integrity: sha512-TsaQSefkaIJ+oFGGaaPm5BzrjVRnvcquh4q3/e5LB6JdhPTveNPo3o2Pzmq6sKry9dzk3p7sKtzJpLz4q5V/+Q==} + sherif-linux-arm64-musl@1.11.1: + resolution: {integrity: sha512-DCf87RFqBh8ZrYgu3y+fv0x4kFn/np84m2jAEgygznwozH/VCfrXbHFVdhxW7762JCYkXbHO9dUj/ff5fkvkvw==} cpu: [arm64] os: [linux] - sherif-linux-arm64@1.10.0: - resolution: {integrity: sha512-QtEju3eLPpEb7hv9QRVdsi2J3bhIFEBbRk0vjdnAEKyRb3q9MjyqEhps69JgaCv8olEiBjGcU1hGP7vl5QVG4A==} + sherif-linux-arm64@1.11.1: + resolution: {integrity: sha512-vCZFS7RxhZ/8g9bdj3UPNVPTcZiKiWigW+FIlVQEUKEKfG0MfSOMBJqEWPVVUniyJa3rdIxtmZKSdWkG0e1x3w==} cpu: [arm64] os: [linux] - sherif-linux-x64-musl@1.10.0: - resolution: {integrity: sha512-iSYRYEFE0xfOJVwPjsUN4o8CoNSEyxJHsSliBDxfEZQubN0rmE9f1hs83HPPAkEozGestI7PxKFKcyTgTxEoXg==} + sherif-linux-x64-musl@1.11.1: + resolution: {integrity: sha512-f8xitqXdHObUFPZo4QVbz3o30Y4+gHA3B5ZobsOWocnSfJBaUGutBzJsUsjG6w2tccSRn6+mugiMUGKIbIPZmQ==} cpu: [x64] os: [linux] - sherif-linux-x64@1.10.0: - resolution: {integrity: sha512-/1ydjgJxXbqnGWViAENHxlX9lEDhATO99qtFcMseUFkPpEAxQ9qFctWf3OB2rciPlHLuPzhphkJAt7ZkX1R5eA==} + sherif-linux-x64@1.11.1: + resolution: {integrity: sha512-9t+p1X3SyhU75BrJNHBbj9i/aQxHC/sF+Mdkf17V5AlokCznFgYKQUXq5EVmcmRDDhDl69RMzCTLD95EBqUSYA==} cpu: [x64] os: [linux] - sherif-windows-arm64@1.10.0: - resolution: {integrity: sha512-CBNys+m7TsWD/1/5WQRJCNjfm08VhmBP9JSmecoHCsfDF+o0vt52NDrzVOOeai/c/yYunCBvAAx9EIFXBmgpHw==} + sherif-windows-arm64@1.11.1: + resolution: {integrity: sha512-Dnffgcyz9zLq/8UTY2REchJzRJWcWAuMWo5Vl5O17IZGkhl71dwa7/Vi2wC3EQd8WAVK/O82yArOYggWA0dj5w==} cpu: [arm64] os: [win32] - sherif-windows-x64@1.10.0: - resolution: {integrity: sha512-XRN4SuZQud0X4UKZZxLe4IyVkbo9qa8rvmFhgCoULaRScucNdJJ4r6hnjZ7DR0spl7zSPJNZUNcgnnJmxWfs1Q==} + sherif-windows-x64@1.11.1: + resolution: {integrity: sha512-xjfYUL/IQ65DwHkRsWIxiZWtglKtL5/E3UHpnLwOui3jqW1V2K88SMct415dnlBQiL3U9VEIVUo1i+KmToOBgQ==} cpu: [x64] os: [win32] - sherif@1.10.0: - resolution: {integrity: sha512-DHg6+Pj7ORhYyC+CaSAr8DeRxqf9GXB90yqLmUILPtY7WhZuJatMir3id2MNjuF5I/1313SbrTTItIDu//G4jg==} + sherif@1.11.1: + resolution: {integrity: sha512-HBFce8NGaPuWPg5NXb6+aI7hJQFjTilhtbrgo+Y/BvtGlkuJAzLnkmC8nyD+p3v7oIAq4KQeA8qySKGga28xZg==} hasBin: true shiki@1.29.2: @@ -14240,8 +14344,8 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - size-limit@12.0.0: - resolution: {integrity: sha512-JBG8dioIs0m2kHOhs9jD6E/tZKD08vmbf2bfqj/rJyNWqJxk/ZcakixjhYtsqdbi+AKVbfPkt3g2RRZiKaizYA==} + size-limit@12.0.1: + resolution: {integrity: sha512-vuFj+6lDOoBJQu6OLhcMQv7jnbXjuoEn4WsQHlSLOV/8EFfOka/tfjtLQ/rZig5Gagi3R0GnU/0kd4EY/y2etg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -14274,16 +14378,17 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} - slugify@1.6.6: - resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + slugify@1.6.8: + resolution: {integrity: sha512-HVk9X1E0gz3mSpoi60h/saazLKXKaZThMLU3u/aNwoYn8/xQyX2MGxL0ui2eaokkD7tF+Zo+cKTHUbe1mmmGzA==} engines: {node: '>=8.0.0'} smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + smob@1.6.1: + resolution: {integrity: sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==} + engines: {node: '>=20.0.0'} smol-toml@1.6.1: resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} @@ -14309,8 +14414,8 @@ packages: resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - solid-js@1.9.11: - resolution: {integrity: sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q==} + solid-js@1.9.12: + resolution: {integrity: sha512-QzKaSJq2/iDrWR1As6MHZQ8fQkdOBf8GReYb7L5iKwMGceg7HxDcaOHk0at66tNgn9U2U7dXo8ZZpLIAmGMzgw==} solid-presence@0.1.8: resolution: {integrity: sha512-pWGtXUFWYYUZNbg5YpG5vkQJyOtzn2KXhxYaMx/4I+lylTLYkITOLevaCwMRN+liCVk0pqB6EayLWojNqBFECA==} @@ -14390,8 +14495,8 @@ packages: spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - spdx-license-ids@3.0.22: - resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + spdx-license-ids@3.0.23: + resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} @@ -14455,6 +14560,9 @@ packages: std-env@3.10.0: resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + std-env@4.0.0: + resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==} + stdin-discarder@0.2.2: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} @@ -14483,8 +14591,8 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - streamx@2.23.0: - resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + streamx@2.25.0: + resolution: {integrity: sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==} strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -14552,8 +14660,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} strip-bom@3.0.0: @@ -14665,31 +14773,31 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@4.4.5: - resolution: {integrity: sha512-1bSwIRCvvmSHrlK52fOlZmVtUZgil43jNL/2H18pRpa+eQjzGt6e3zayxhp1S7GajPFKNM/2PMCG+DZFHlG9fw==} + svelte-check@4.4.6: + resolution: {integrity: sha512-kP1zG81EWaFe9ZyTv4ZXv44Csi6Pkdpb7S3oj6m+K2ec/IcDg/a8LsFsnVLqm2nxtkSwsd5xPj/qFkTBgXHXjg==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte-eslint-parser@1.4.1: - resolution: {integrity: sha512-1eqkfQ93goAhjAXxZiu1SaKI9+0/sxp4JIWQwUpsz7ybehRE5L8dNuz7Iry7K22R47p5/+s9EM+38nHV2OlgXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.24.0} + svelte-eslint-parser@1.6.0: + resolution: {integrity: sha512-qoB1ehychT6OxEtQAqc/guSqLS20SlA53Uijl7x375s8nlUT0lb9ol/gzraEEatQwsyPTJo87s2CmKL9Xab+Uw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.30.3} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true - svelte2tsx@0.7.47: - resolution: {integrity: sha512-1aw/MFKVPM96OBevJdC12do2an9t5Zwr3Va9amLgTLpJje36ibD1iIHpuqCYWUrdR9vw6g6btKGQPmsqE8ZYCw==} + svelte2tsx@0.7.53: + resolution: {integrity: sha512-ljVSwmnYRDHRm8+7ICP6QoAN7U7vgOFfPBLN6T745YWNYqRRSzHxlrzUVqMjYls2Un8MzJissfziy/38e6Deeg==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.53.5: - resolution: {integrity: sha512-YkqERnF05g8KLdDZwZrF8/i1eSbj6Eoat8Jjr2IfruZz9StLuBqo8sfCSzjosNKd+ZrQ8DkKZDjpO5y3ht1Pow==} + svelte@5.55.1: + resolution: {integrity: sha512-QjvU7EFemf6mRzdMGlAFttMWtAAVXrax61SZYHdkD6yoVGQ89VeyKfZD4H1JrV1WLmJBxWhFch9H6ig/87VGjw==} engines: {node: '>=18'} svgo@4.0.1: @@ -14717,33 +14825,35 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tailwindcss@4.1.18: - resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} + tailwindcss@4.2.2: + resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} tapable@1.1.3: resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} engines: {node: '>=6'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} engines: {node: '>=6'} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar-stream@3.1.8: + resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - tar@7.5.7: - resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} + tar@7.5.13: + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} engines: {node: '>=18'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} @@ -14777,8 +14887,8 @@ packages: peerDependencies: webpack: ^4.0.0 - terser-webpack-plugin@5.3.16: - resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} + terser-webpack-plugin@5.4.0: + resolution: {integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -14798,8 +14908,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - terser@5.46.0: - resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} engines: {node: '>=10'} hasBin: true @@ -14807,8 +14917,8 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -14851,22 +14961,22 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinyrainbow@3.0.3: - resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} tldts-core@6.1.86: resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} - tldts-core@7.0.23: - resolution: {integrity: sha512-0g9vrtDQLrNIiCj22HSe9d4mLVG3g5ph5DZ8zCKBr4OtrspmNB6ss7hVyzArAeE88ceZocIEGkyW1Ime7fxPtQ==} + tldts-core@7.0.27: + resolution: {integrity: sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==} tldts@6.1.86: resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} hasBin: true - tldts@7.0.23: - resolution: {integrity: sha512-ASdhgQIBSay0R/eXggAkQ53G4nTJqTXqC2kbaBbdDwM7SkjyZyO0OaaN1/FH7U/yCeqOHDwFO5j8+Os/IS1dXw==} + tldts@7.0.27: + resolution: {integrity: sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==} hasBin: true tmp@0.2.5: @@ -14911,8 +15021,8 @@ packages: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} - tough-cookie@6.0.0: - resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + tough-cookie@6.0.1: + resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} engines: {node: '>=16'} tr46@0.0.3: @@ -14936,8 +15046,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -15172,12 +15282,12 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici@6.23.0: - resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} + undici@6.24.1: + resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} engines: {node: '>=18.17'} - undici@7.21.0: - resolution: {integrity: sha512-Hn2tCQpoDt1wv23a68Ctc8Cr/BHpUSfaPYrkajTXOS9IKpxVRx/X5m1K2YkbK2ipgZgxXSgsUinl3x+2YdSSfg==} + undici@7.24.6: + resolution: {integrity: sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==} engines: {node: '>=20.18.1'} unenv@1.10.0: @@ -15216,8 +15326,8 @@ packages: unifont@0.7.4: resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} - unimport@5.6.0: - resolution: {integrity: sha512-8rqAmtJV8o60x46kBAJKtHpJDJWkA2xcBqWKPI14MgUb05o1pnpnCnXSxedUXyeq7p8fR5g3pTo2BaswZ9lD9A==} + unimport@6.0.2: + resolution: {integrity: sha512-ZSOkrDw380w+KIPniY3smyXh2h7H9v2MNr9zejDuh239o5sdea44DRAYrv+rfUi2QGT186P2h0GPGKvy8avQ5g==} engines: {node: '>=18.12.0'} union-value@1.0.1: @@ -15231,10 +15341,6 @@ packages: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - unique-filename@5.0.0: - resolution: {integrity: sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==} - engines: {node: ^20.17.0 || >=22.9.0} - unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} @@ -15242,10 +15348,6 @@ packages: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - unique-slug@6.0.0: - resolution: {integrity: sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==} - engines: {node: ^20.17.0 || >=22.9.0} - unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -15304,6 +15406,10 @@ packages: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} + unplugin@3.0.0: + resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} + engines: {node: ^20.19.0 || >=22.12.0} + unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} @@ -15500,8 +15606,8 @@ packages: peerDependencies: vite: ^6.4.1 - vite-plugin-solid@2.11.10: - resolution: {integrity: sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw==} + vite-plugin-solid@2.11.11: + resolution: {integrity: sha512-YMZCXsLw9kyuvQFEdwLP27fuTQJLmjNoHy90AOJnbRuJ6DwShUxKFo38gdFrWn9v11hnGicKCZEaeI/TFs6JKw==} peerDependencies: '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* solid-js: ^1.7.2 @@ -15510,8 +15616,8 @@ packages: '@testing-library/jest-dom': optional: true - vite-prerender-plugin@0.5.12: - resolution: {integrity: sha512-EiwhbMn+flg14EysbLTmZSzq8NGTxhytgK3bf4aGRF1evWLGwZiHiUJ1KZDvbxgKbMf2pG6fJWGEa3UZXOnR1g==} + vite-prerender-plugin@0.5.13: + resolution: {integrity: sha512-IKSpYkzDBsKAxa05naRbj7GvNVMSdww/Z/E89oO3xndz+gWnOBOKOAbEXv7qDhktY/j3vHgJmoV1pPzqU2tx9g==} peerDependencies: vite: ^6.4.1 @@ -15571,20 +15677,21 @@ packages: vite: optional: true - vitest@4.0.18: - resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} + vitest@4.1.2: + resolution: {integrity: sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^22.15.3 - '@vitest/browser-playwright': 4.0.18 - '@vitest/browser-preview': 4.0.18 - '@vitest/browser-webdriverio': 4.0.18 - '@vitest/ui': 4.0.18 + '@vitest/browser-playwright': 4.1.2 + '@vitest/browser-preview': 4.1.2 + '@vitest/browser-webdriverio': 4.1.2 + '@vitest/ui': 4.1.2 happy-dom: '*' jsdom: '*' + vite: ^6.4.1 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -15611,32 +15718,32 @@ packages: vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} - volar-service-css@0.0.68: - resolution: {integrity: sha512-lJSMh6f3QzZ1tdLOZOzovLX0xzAadPhx8EKwraDLPxBndLCYfoTvnNuiFFV8FARrpAlW5C0WkH+TstPaCxr00Q==} + volar-service-css@0.0.70: + resolution: {integrity: sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.68: - resolution: {integrity: sha512-nHvixrRQ83EzkQ4G/jFxu9Y4eSsXS/X2cltEPDM+K9qZmIv+Ey1w0tg1+6caSe8TU5Hgw4oSTwNMf/6cQb3LzQ==} + volar-service-emmet@0.0.70: + resolution: {integrity: sha512-xi5bC4m/VyE3zy/n2CXspKeDZs3qA41tHLTw275/7dNWM/RqE2z3BnDICQybHIVp/6G1iOQj5c1qXMgQC08TNg==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.68: - resolution: {integrity: sha512-fru9gsLJxy33xAltXOh4TEdi312HP80hpuKhpYQD4O5hDnkNPEBdcQkpB+gcX0oK0VxRv1UOzcGQEUzWCVHLfA==} + volar-service-html@0.0.70: + resolution: {integrity: sha512-eR6vCgMdmYAo4n+gcT7DSyBQbwB8S3HZZvSagTf0sxNaD4WppMCFfpqWnkrlGStPKMZvMiejRRVmqsX9dYcTvQ==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-prettier@0.0.68: - resolution: {integrity: sha512-grUmWHkHlebMOd6V8vXs2eNQUw/bJGJMjekh/EPf/p2ZNTK0Uyz7hoBRngcvGfJHMsSXZH8w/dZTForIW/4ihw==} + volar-service-prettier@0.0.70: + resolution: {integrity: sha512-Z6BCFSpGVCd8BPAsZ785Kce1BGlWd5ODqmqZGVuB14MJvrR4+CYz6cDy4F+igmE1gMifqfvMhdgT8Aud4M5ngg==} peerDependencies: '@volar/language-service': ~2.4.0 prettier: ^2.2 || ^3.0 @@ -15646,35 +15753,35 @@ packages: prettier: optional: true - volar-service-typescript-twoslash-queries@0.0.68: - resolution: {integrity: sha512-NugzXcM0iwuZFLCJg47vI93su5YhTIweQuLmZxvz5ZPTaman16JCvmDZexx2rd5T/75SNuvvZmrTOTNYUsfe5w==} + volar-service-typescript-twoslash-queries@0.0.70: + resolution: {integrity: sha512-IdD13Z9N2Bu8EM6CM0fDV1E69olEYGHDU25X51YXmq8Y0CmJ2LNj6gOiBJgpS5JGUqFzECVhMNBW7R0sPdRTMQ==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.68: - resolution: {integrity: sha512-z7B/7CnJ0+TWWFp/gh2r5/QwMObHNDiQiv4C9pTBNI2Wxuwymd4bjEORzrJ/hJ5Yd5+OzeYK+nFCKevoGEEeKw==} + volar-service-typescript@0.0.70: + resolution: {integrity: sha512-l46Bx4cokkUedTd74ojO5H/zqHZJ8SUuyZ0IB8JN4jfRqUM3bQFBHoOwlZCyZmOeO0A3RQNkMnFclxO4c++gsg==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-yaml@0.0.68: - resolution: {integrity: sha512-84XgE02LV0OvTcwfqhcSwVg4of3MLNUWPMArO6Aj8YXqyEVnPu8xTEMY2btKSq37mVAPuaEVASI4e3ptObmqcA==} + volar-service-yaml@0.0.70: + resolution: {integrity: sha512-0c8bXDBeoATF9F6iPIlOuYTuZAC4c+yi0siQo920u7eiBJk8oQmUmg9cDUbR4+Gl++bvGP4plj3fErbJuPqdcQ==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - vscode-css-languageservice@6.3.9: - resolution: {integrity: sha512-1tLWfp+TDM5ZuVWht3jmaY5y7O6aZmpeXLoHl5bv1QtRsRKt4xYGRMmdJa5Pqx/FTkgRbsna9R+Gn2xE+evVuA==} + vscode-css-languageservice@6.3.10: + resolution: {integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==} - vscode-html-languageservice@5.6.1: - resolution: {integrity: sha512-5Mrqy5CLfFZUgkyhNZLA1Ye5g12Cb/v6VM7SxUzZUaRKWMDz4md+y26PrfRTSU0/eQAl3XpO9m2og+GGtDMuaA==} + vscode-html-languageservice@5.6.2: + resolution: {integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==} vscode-json-languageservice@4.1.8: resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} @@ -15714,11 +15821,11 @@ packages: '@vue/composition-api': optional: true - vue-eslint-parser@10.2.0: - resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} + vue-eslint-parser@10.4.0: + resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 vue-tsc@2.2.12: resolution: {integrity: sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==} @@ -15734,8 +15841,8 @@ packages: resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. - vue@3.5.28: - resolution: {integrity: sha512-BRdrNfeoccSoIZeIhyPBfvWSLFP4q8J3u8Ju8Ug5vu3LdD+yTM13Sg4sKtljxozbnuMu1NB1X5HBHRYUzFocKg==} + vue@3.5.31: + resolution: {integrity: sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -15842,8 +15949,8 @@ packages: webpack-sources@1.4.3: resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} - webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + webpack-sources@3.3.4: + resolution: {integrity: sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==} engines: {node: '>=10.13.0'} webpack-virtual-modules@0.6.2: @@ -15862,8 +15969,8 @@ packages: webpack-command: optional: true - webpack@5.105.0: - resolution: {integrity: sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==} + webpack@5.105.4: + resolution: {integrity: sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -15937,8 +16044,8 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true - which@6.0.0: - resolution: {integrity: sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==} + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true @@ -15954,8 +16061,8 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - wonka@6.3.5: - resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} + wonka@6.3.6: + resolution: {integrity: sha512-MXH+6mDHAZ2GuMpgKS055FR6v0xVP3XwquxIMYXgiW+FejHQlMGlvVRZT4qMCxR+bEo/FCtIdKxwej9WV3YQag==} word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} @@ -16017,8 +16124,8 @@ packages: utf-8-validate: optional: true - ws@8.19.0: - resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -16029,6 +16136,10 @@ packages: utf-8-validate: optional: true + wsl-utils@0.3.1: + resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} + engines: {node: '>=20'} + xcode@3.0.1: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} @@ -16088,12 +16199,12 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml-language-server@1.19.2: - resolution: {integrity: sha512-9F3myNmJzUN/679jycdMxqtydPSDRAarSj3wPiF7pchEPnO9Dg07Oc+gIYLqXR4L+g+FSEVXXv2+mr54StLFOg==} + yaml-language-server@1.20.0: + resolution: {integrity: sha512-qhjK/bzSRZ6HtTvgeFvjNPJGWdZ0+x5NREV/9XZWFjIGezew2b4r5JPy66IfOhd5OA7KeFwk1JfmEbnTvev0cA==} hasBin: true - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} yaml@2.7.1: @@ -16101,8 +16212,8 @@ packages: engines: {node: '>= 14'} hasBin: true - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + yaml@2.8.3: + resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} hasBin: true @@ -16153,8 +16264,8 @@ packages: youch-core@0.3.3: resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - youch@4.1.0-beta.13: - resolution: {integrity: sha512-3+AG1Xvt+R7M7PSDudhbfbwiyveW6B8PLBIwTyEC598biEYIjHhC89i6DBEvR0EZUjGY3uGSnC429HpIa2Z09g==} + youch@4.1.1: + resolution: {integrity: sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==} zimmerframe@1.1.4: resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} @@ -16197,9 +16308,9 @@ packages: snapshots: - '@0no-co/graphql.web@1.2.0(graphql@16.12.0)': + '@0no-co/graphql.web@1.2.0(graphql@16.13.2)': optionalDependencies: - graphql: 16.12.0 + graphql: 16.13.2 '@acemir/cssom@0.9.31': {} @@ -16314,27 +16425,27 @@ snapshots: '@andrewbranch/untar.js@1.0.3': {} - '@angular-devkit/architect@0.2003.16(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.22(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.16(chokidar@4.0.3) + '@angular-devkit/core': 20.3.22(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.16(chokidar@4.0.3)': + '@angular-devkit/core@20.3.22(chokidar@4.0.3)': dependencies: - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) jsonc-parser: 3.3.1 - picomatch: 4.0.3 + picomatch: 4.0.4 rxjs: 7.8.2 source-map: 0.7.6 optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.16(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.22(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.16(chokidar@4.0.3) + '@angular-devkit/core': 20.3.22(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -16342,24 +16453,24 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))': + '@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.3.16(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.46.0)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2)': + '@angular/build@20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.16(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.22(chokidar@4.0.3) '@angular/compiler': 20.3.18 - '@angular/compiler-cli': 20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3) + '@angular/compiler-cli': 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.14(@types/node@22.19.15) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) beasties: 0.3.5 - browserslist: 4.28.1 + browserslist: 4.28.2 esbuild: 0.27.4 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 @@ -16368,24 +16479,24 @@ snapshots: magic-string: 0.30.17 mrmime: 2.0.1 parse5-html-rewriting-stream: 8.0.0 - picomatch: 4.0.3 + picomatch: 4.0.4 piscina: 5.1.3 - rollup: 4.52.3 + rollup: 4.59.0 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.8.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) watchpack: 2.4.4 optionalDependencies: '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser': 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) lmdb: 3.4.2 - postcss: 8.5.6 - tailwindcss: 4.1.18 - vitest: 4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + postcss: 8.5.8 + tailwindcss: 4.2.2 + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@types/node' - chokidar @@ -16399,15 +16510,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.16(@types/node@22.19.15)(chokidar@4.0.3)': + '@angular/cli@20.3.22(@types/node@22.19.15)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.16(chokidar@4.0.3) - '@angular-devkit/core': 20.3.16(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.16(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.22(chokidar@4.0.3) + '@angular-devkit/core': 20.3.22(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.22(chokidar@4.0.3) '@inquirer/prompts': 7.8.2(@types/node@22.19.15) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@22.19.15))(@types/node@22.19.15)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.26.0(zod@4.1.13) - '@schematics/angular': 20.3.16(chokidar@4.0.3) + '@schematics/angular': 20.3.22(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -16425,13 +16536,13 @@ snapshots: - chokidar - supports-color - '@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2)': + '@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2)': dependencies: '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.16(@angular/compiler@20.3.18)(typescript@5.8.3)': + '@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3)': dependencies: '@angular/compiler': 20.3.18 '@babel/core': 7.28.3 @@ -16459,27 +16570,27 @@ snapshots: '@angular/compiler': 20.3.18 zone.js: 0.15.0 - '@angular/forms@20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': + '@angular/forms@20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/common': 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser': 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))': + '@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: - '@angular/common': 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/common': 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/animations': 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/router@20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': + '@angular/router@20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/common': 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser': 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) rxjs: 7.8.2 tslib: 2.8.1 @@ -16512,13 +16623,13 @@ snapshots: '@asamuzakjp/css-color@4.1.2': dependencies: - '@csstools/css-calc': 3.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 lru-cache: 11.2.7 - '@asamuzakjp/dom-selector@6.7.8': + '@asamuzakjp/dom-selector@6.8.1': dependencies: '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 @@ -16528,9 +16639,9 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@astrojs/check@0.9.6(prettier@3.8.1)(typescript@5.8.3)': + '@astrojs/check@0.9.8(prettier@3.8.1)(typescript@5.8.3)': dependencies: - '@astrojs/language-server': 2.16.3(prettier@3.8.1)(typescript@5.8.3) + '@astrojs/language-server': 2.16.6(prettier@3.8.1)(typescript@5.8.3) chokidar: 4.0.3 kleur: 4.1.5 typescript: 5.8.3 @@ -16543,14 +16654,12 @@ snapshots: '@astrojs/internal-helpers@0.7.4': {} - '@astrojs/internal-helpers@0.7.5': {} - '@astrojs/internal-helpers@0.7.6': {} - '@astrojs/language-server@2.16.3(prettier@3.8.1)(typescript@5.8.3)': + '@astrojs/language-server@2.16.6(prettier@3.8.1)(typescript@5.8.3)': dependencies: '@astrojs/compiler': 2.13.1 - '@astrojs/yaml2ts': 0.2.2 + '@astrojs/yaml2ts': 0.2.3 '@jridgewell/sourcemap-codec': 1.5.5 '@volar/kit': 2.4.28(typescript@5.8.3) '@volar/language-core': 2.4.28 @@ -16558,14 +16667,14 @@ snapshots: '@volar/language-service': 2.4.28 muggle-string: 0.4.1 tinyglobby: 0.2.15 - volar-service-css: 0.0.68(@volar/language-service@2.4.28) - volar-service-emmet: 0.0.68(@volar/language-service@2.4.28) - volar-service-html: 0.0.68(@volar/language-service@2.4.28) - volar-service-prettier: 0.0.68(@volar/language-service@2.4.28)(prettier@3.8.1) - volar-service-typescript: 0.0.68(@volar/language-service@2.4.28) - volar-service-typescript-twoslash-queries: 0.0.68(@volar/language-service@2.4.28) - volar-service-yaml: 0.0.68(@volar/language-service@2.4.28) - vscode-html-languageservice: 5.6.1 + volar-service-css: 0.0.70(@volar/language-service@2.4.28) + volar-service-emmet: 0.0.70(@volar/language-service@2.4.28) + volar-service-html: 0.0.70(@volar/language-service@2.4.28) + volar-service-prettier: 0.0.70(@volar/language-service@2.4.28)(prettier@3.8.1) + volar-service-typescript: 0.0.70(@volar/language-service@2.4.28) + volar-service-typescript-twoslash-queries: 0.0.70(@volar/language-service@2.4.28) + volar-service-yaml: 0.0.70(@volar/language-service@2.4.28) + vscode-html-languageservice: 5.6.2 vscode-uri: 3.1.0 optionalDependencies: prettier: 3.8.1 @@ -16598,10 +16707,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.5.4(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))': + '@astrojs/node@9.5.5(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))': dependencies: - '@astrojs/internal-helpers': 0.7.5 - astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) + '@astrojs/internal-helpers': 0.7.6 + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) send: 1.2.1 server-destroy: 1.0.1 transitivePeerDependencies: @@ -16611,11 +16720,11 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/solid-js@5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(solid-js@1.9.11)(terser@5.46.0)(yaml@2.8.2)': + '@astrojs/solid-js@5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(solid-js@1.9.12)(terser@5.46.1)(yaml@2.8.3)': dependencies: - solid-js: 1.9.11 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + solid-js: 1.9.12 + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite-plugin-solid: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -16631,13 +16740,13 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2))': + '@astrojs/tailwind@6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3))': dependencies: - astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) - autoprefixer: 10.4.24(postcss@8.5.6) - postcss: 8.5.6 - postcss-load-config: 4.0.2(postcss@8.5.6) - tailwindcss: 3.4.19(yaml@2.8.2) + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) + autoprefixer: 10.4.27(postcss@8.5.8) + postcss: 8.5.8 + postcss-load-config: 4.0.2(postcss@8.5.8) + tailwindcss: 3.4.19(yaml@2.8.3) transitivePeerDependencies: - ts-node @@ -16653,14 +16762,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.2.11(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2))(encoding@0.1.13)(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.57.1)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3))': + '@astrojs/vercel@8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.7.4 - '@vercel/analytics': 1.6.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3)) + '@vercel/analytics': 1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@vercel/functions': 2.2.13 - '@vercel/nft': 0.30.3(encoding@0.1.13)(rollup@4.57.1) - '@vercel/routing-utils': 5.3.2 - astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2) + '@vercel/nft': 0.30.3(rollup@4.60.1) + '@vercel/routing-utils': 5.3.3 + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) esbuild: 0.27.4 tinyglobby: 0.2.15 transitivePeerDependencies: @@ -16676,9 +16785,9 @@ snapshots: - vue - vue-router - '@astrojs/yaml2ts@0.2.2': + '@astrojs/yaml2ts@0.2.3': dependencies: - yaml: 2.8.2 + yaml: 2.8.3 '@babel/code-frame@7.10.4': dependencies: @@ -16705,7 +16814,7 @@ snapshots: '@babel/generator': 7.29.1 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.3) - '@babel/helpers': 7.28.6 + '@babel/helpers': 7.29.2 '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 @@ -16724,7 +16833,7 @@ snapshots: '@babel/generator': 7.29.1 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 + '@babel/helpers': 7.29.2 '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 @@ -16762,7 +16871,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 + browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -16786,7 +16895,7 @@ snapshots: regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.29.0)': + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-compilation-targets': 7.28.6 @@ -16884,7 +16993,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.6': + '@babel/helpers@7.29.2': dependencies: '@babel/template': 7.28.6 '@babel/types': 7.29.0 @@ -17424,9 +17533,9 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 - babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -17493,7 +17602,7 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 - '@babel/preset-env@7.29.0(@babel/core@7.29.0)': + '@babel/preset-env@7.29.2(@babel/core@7.29.0)': dependencies: '@babel/compat-data': 7.29.0 '@babel/core': 7.29.0 @@ -17561,10 +17670,10 @@ snapshots: '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) - babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.29.0) - babel-plugin-polyfill-corejs3: 0.14.0(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.29.0) - core-js-compat: 3.48.0 + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -17617,6 +17726,8 @@ snapshots: '@babel/runtime@7.28.6': {} + '@babel/runtime@7.29.2': {} + '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 @@ -17650,9 +17761,9 @@ snapshots: dependencies: fontkitten: 1.0.3 - '@changesets/apply-release-plan@7.0.14': + '@changesets/apply-release-plan@7.1.0': dependencies: - '@changesets/config': 3.1.2 + '@changesets/config': 3.1.3 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.4 '@changesets/should-skip-package': 0.1.2 @@ -17679,30 +17790,28 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.29.8(@types/node@22.19.15)': + '@changesets/cli@2.30.0(@types/node@22.19.15)': dependencies: - '@changesets/apply-release-plan': 7.0.14 + '@changesets/apply-release-plan': 7.1.0 '@changesets/assemble-release-plan': 6.0.9 '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.2 + '@changesets/config': 3.1.3 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.14 + '@changesets/get-release-plan': 4.0.15 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 + '@changesets/read': 0.6.7 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 '@inquirer/external-editor': 1.0.3(@types/node@22.19.15) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 - ci-info: 3.9.0 enquirer: 2.4.1 fs-extra: 7.0.1 mri: 1.2.0 - p-limit: 2.3.0 package-manager-detector: 0.2.11 picocolors: 1.1.1 resolve-from: 5.0.0 @@ -17712,11 +17821,12 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@changesets/config@3.1.2': + '@changesets/config@3.1.3': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 @@ -17733,19 +17843,19 @@ snapshots: picocolors: 1.1.1 semver: 7.7.4 - '@changesets/get-github-info@0.6.0(encoding@0.1.13)': + '@changesets/get-github-info@0.6.0': dependencies: dataloader: 1.4.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.14': + '@changesets/get-release-plan@4.0.15': dependencies: '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.2 + '@changesets/config': 3.1.3 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 + '@changesets/read': 0.6.7 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 @@ -17763,7 +17873,7 @@ snapshots: dependencies: picocolors: 1.1.1 - '@changesets/parse@0.4.2': + '@changesets/parse@0.4.3': dependencies: '@changesets/types': 6.1.0 js-yaml: 4.1.1 @@ -17775,11 +17885,11 @@ snapshots: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.6': + '@changesets/read@0.6.7': dependencies: '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.2 + '@changesets/parse': 0.4.3 '@changesets/types': 6.1.0 fs-extra: 7.0.1 p-filter: 2.1.0 @@ -17806,65 +17916,65 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@corvu/utils@0.4.2(solid-js@1.9.11)': + '@corvu/utils@0.4.2(solid-js@1.9.12)': dependencies: - '@floating-ui/dom': 1.7.5 - solid-js: 1.9.11 + '@floating-ui/dom': 1.7.6 + solid-js: 1.9.12 - '@cspell/cspell-bundled-dicts@9.6.4': + '@cspell/cspell-bundled-dicts@9.7.0': dependencies: '@cspell/dict-ada': 4.1.1 '@cspell/dict-al': 1.1.1 '@cspell/dict-aws': 4.0.17 '@cspell/dict-bash': 4.2.2 - '@cspell/dict-companies': 3.2.10 + '@cspell/dict-companies': 3.2.11 '@cspell/dict-cpp': 7.0.2 '@cspell/dict-cryptocurrencies': 5.0.5 '@cspell/dict-csharp': 4.0.8 - '@cspell/dict-css': 4.0.19 + '@cspell/dict-css': 4.1.1 '@cspell/dict-dart': 2.3.2 '@cspell/dict-data-science': 2.0.13 '@cspell/dict-django': 4.1.6 '@cspell/dict-docker': 1.1.17 - '@cspell/dict-dotnet': 5.0.11 + '@cspell/dict-dotnet': 5.0.13 '@cspell/dict-elixir': 4.0.8 '@cspell/dict-en-common-misspellings': 2.1.12 - '@cspell/dict-en-gb-mit': 3.1.18 - '@cspell/dict-en_us': 4.4.29 - '@cspell/dict-filetypes': 3.0.15 + '@cspell/dict-en-gb-mit': 3.1.22 + '@cspell/dict-en_us': 4.4.33 + '@cspell/dict-filetypes': 3.0.18 '@cspell/dict-flutter': 1.1.1 - '@cspell/dict-fonts': 4.0.5 + '@cspell/dict-fonts': 4.0.6 '@cspell/dict-fsharp': 1.1.1 - '@cspell/dict-fullstack': 3.2.8 + '@cspell/dict-fullstack': 3.2.9 '@cspell/dict-gaming-terms': 1.1.2 '@cspell/dict-git': 3.1.0 '@cspell/dict-golang': 6.0.26 '@cspell/dict-google': 1.0.9 '@cspell/dict-haskell': 4.0.6 - '@cspell/dict-html': 4.0.14 + '@cspell/dict-html': 4.0.15 '@cspell/dict-html-symbol-entities': 4.0.5 '@cspell/dict-java': 5.0.12 '@cspell/dict-julia': 1.1.1 '@cspell/dict-k8s': 1.0.12 '@cspell/dict-kotlin': 1.1.1 - '@cspell/dict-latex': 5.0.0 + '@cspell/dict-latex': 5.1.0 '@cspell/dict-lorem-ipsum': 4.0.5 '@cspell/dict-lua': 4.0.8 '@cspell/dict-makefile': 1.0.5 - '@cspell/dict-markdown': 2.0.14(@cspell/dict-css@4.0.19)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.14)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-markdown': 2.0.16(@cspell/dict-css@4.1.1)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3) '@cspell/dict-monkeyc': 1.0.12 '@cspell/dict-node': 5.0.9 - '@cspell/dict-npm': 5.2.33 + '@cspell/dict-npm': 5.2.38 '@cspell/dict-php': 4.1.1 '@cspell/dict-powershell': 5.0.15 - '@cspell/dict-public-licenses': 2.0.15 - '@cspell/dict-python': 4.2.25 + '@cspell/dict-public-licenses': 2.0.16 + '@cspell/dict-python': 4.2.26 '@cspell/dict-r': 2.1.1 - '@cspell/dict-ruby': 5.1.0 + '@cspell/dict-ruby': 5.1.1 '@cspell/dict-rust': 4.1.2 '@cspell/dict-scala': 5.0.9 '@cspell/dict-shell': 1.1.2 - '@cspell/dict-software-terms': 5.1.20 + '@cspell/dict-software-terms': 5.2.2 '@cspell/dict-sql': 2.2.1 '@cspell/dict-svelte': 1.0.7 '@cspell/dict-swift': 2.0.6 @@ -17873,17 +17983,17 @@ snapshots: '@cspell/dict-vue': 3.0.5 '@cspell/dict-zig': 1.0.0 - '@cspell/cspell-performance-monitor@9.6.4': {} + '@cspell/cspell-performance-monitor@9.7.0': {} - '@cspell/cspell-pipe@9.6.4': {} + '@cspell/cspell-pipe@9.7.0': {} - '@cspell/cspell-resolver@9.6.4': + '@cspell/cspell-resolver@9.7.0': dependencies: - global-directory: 4.0.1 + global-directory: 5.0.0 - '@cspell/cspell-service-bus@9.6.4': {} + '@cspell/cspell-service-bus@9.7.0': {} - '@cspell/cspell-types@9.6.4': {} + '@cspell/cspell-types@9.7.0': {} '@cspell/dict-ada@4.1.1': {} @@ -17895,7 +18005,7 @@ snapshots: dependencies: '@cspell/dict-shell': 1.1.2 - '@cspell/dict-companies@3.2.10': {} + '@cspell/dict-companies@3.2.11': {} '@cspell/dict-cpp@7.0.2': {} @@ -17903,7 +18013,7 @@ snapshots: '@cspell/dict-csharp@4.0.8': {} - '@cspell/dict-css@4.0.19': {} + '@cspell/dict-css@4.1.1': {} '@cspell/dict-dart@2.3.2': {} @@ -17913,25 +18023,25 @@ snapshots: '@cspell/dict-docker@1.1.17': {} - '@cspell/dict-dotnet@5.0.11': {} + '@cspell/dict-dotnet@5.0.13': {} '@cspell/dict-elixir@4.0.8': {} '@cspell/dict-en-common-misspellings@2.1.12': {} - '@cspell/dict-en-gb-mit@3.1.18': {} + '@cspell/dict-en-gb-mit@3.1.22': {} - '@cspell/dict-en_us@4.4.29': {} + '@cspell/dict-en_us@4.4.33': {} - '@cspell/dict-filetypes@3.0.15': {} + '@cspell/dict-filetypes@3.0.18': {} '@cspell/dict-flutter@1.1.1': {} - '@cspell/dict-fonts@4.0.5': {} + '@cspell/dict-fonts@4.0.6': {} '@cspell/dict-fsharp@1.1.1': {} - '@cspell/dict-fullstack@3.2.8': {} + '@cspell/dict-fullstack@3.2.9': {} '@cspell/dict-gaming-terms@1.1.2': {} @@ -17945,7 +18055,7 @@ snapshots: '@cspell/dict-html-symbol-entities@4.0.5': {} - '@cspell/dict-html@4.0.14': {} + '@cspell/dict-html@4.0.15': {} '@cspell/dict-java@5.0.12': {} @@ -17955,7 +18065,7 @@ snapshots: '@cspell/dict-kotlin@1.1.1': {} - '@cspell/dict-latex@5.0.0': {} + '@cspell/dict-latex@5.1.0': {} '@cspell/dict-lorem-ipsum@4.0.5': {} @@ -17963,10 +18073,10 @@ snapshots: '@cspell/dict-makefile@1.0.5': {} - '@cspell/dict-markdown@2.0.14(@cspell/dict-css@4.0.19)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.14)(@cspell/dict-typescript@3.2.3)': + '@cspell/dict-markdown@2.0.16(@cspell/dict-css@4.1.1)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3)': dependencies: - '@cspell/dict-css': 4.0.19 - '@cspell/dict-html': 4.0.14 + '@cspell/dict-css': 4.1.1 + '@cspell/dict-html': 4.0.15 '@cspell/dict-html-symbol-entities': 4.0.5 '@cspell/dict-typescript': 3.2.3 @@ -17974,21 +18084,21 @@ snapshots: '@cspell/dict-node@5.0.9': {} - '@cspell/dict-npm@5.2.33': {} + '@cspell/dict-npm@5.2.38': {} '@cspell/dict-php@4.1.1': {} '@cspell/dict-powershell@5.0.15': {} - '@cspell/dict-public-licenses@2.0.15': {} + '@cspell/dict-public-licenses@2.0.16': {} - '@cspell/dict-python@4.2.25': + '@cspell/dict-python@4.2.26': dependencies: '@cspell/dict-data-science': 2.0.13 '@cspell/dict-r@2.1.1': {} - '@cspell/dict-ruby@5.1.0': {} + '@cspell/dict-ruby@5.1.1': {} '@cspell/dict-rust@4.1.2': {} @@ -17996,7 +18106,7 @@ snapshots: '@cspell/dict-shell@1.1.2': {} - '@cspell/dict-software-terms@5.1.20': {} + '@cspell/dict-software-terms@5.2.2': {} '@cspell/dict-sql@2.2.1': {} @@ -18012,37 +18122,37 @@ snapshots: '@cspell/dict-zig@1.0.0': {} - '@cspell/dynamic-import@9.6.4': + '@cspell/dynamic-import@9.7.0': dependencies: - '@cspell/url': 9.6.4 + '@cspell/url': 9.7.0 import-meta-resolve: 4.2.0 - '@cspell/eslint-plugin@9.6.4(eslint@9.39.4(jiti@2.6.1))': + '@cspell/eslint-plugin@9.7.0(eslint@9.39.4(jiti@2.6.1))': dependencies: - '@cspell/cspell-types': 9.6.4 - '@cspell/url': 9.6.4 - cspell-lib: 9.6.4 + '@cspell/cspell-types': 9.7.0 + '@cspell/url': 9.7.0 + cspell-lib: 9.7.0 eslint: 9.39.4(jiti@2.6.1) synckit: 0.11.12 - '@cspell/filetypes@9.6.4': {} + '@cspell/filetypes@9.7.0': {} - '@cspell/rpc@9.6.4': {} + '@cspell/rpc@9.7.0': {} - '@cspell/strong-weak-map@9.6.4': {} + '@cspell/strong-weak-map@9.7.0': {} - '@cspell/url@9.6.4': {} + '@cspell/url@9.7.0': {} '@csstools/color-helpers@5.1.0': {} - '@csstools/color-helpers@6.0.1': {} + '@csstools/color-helpers@6.0.2': {} '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-calc@3.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 @@ -18054,10 +18164,10 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/color-helpers': 6.0.1 - '@csstools/css-calc': 3.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/color-helpers': 6.0.2 + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 @@ -18069,7 +18179,9 @@ snapshots: dependencies: '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.0.27': {} + '@csstools/css-syntax-patches-for-csstree@1.1.2(css-tree@3.2.1)': + optionalDependencies: + css-tree: 3.2.1 '@csstools/css-tokenizer@3.0.4': {} @@ -18111,16 +18223,16 @@ snapshots: '@emmetio/stream-reader@2.2.0': {} - '@emnapi/core@1.8.1': + '@emnapi/core@1.9.1': dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.2.0 tslib: 2.8.1 - '@emnapi/runtime@1.8.1': + '@emnapi/runtime@1.9.1': dependencies: tslib: 2.8.1 - '@emnapi/wasi-threads@1.1.0': + '@emnapi/wasi-threads@1.2.0': dependencies: tslib: 2.8.1 @@ -18217,9 +18329,9 @@ snapshots: '@eslint-community/regexpp@4.12.2': {} - '@eslint-react/ast@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/ast@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/eff': 2.12.2 + '@eslint-react/eff': 2.13.0 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -18229,12 +18341,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint-react/core@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/core@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -18244,31 +18356,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint-react/eff@2.12.2': {} + '@eslint-react/eff@2.13.0': {} - '@eslint-react/eslint-plugin@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/eslint-plugin@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.56.1 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) - eslint-plugin-react-dom: 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-hooks-extra: 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-naming-convention: 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-rsc: 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-web-api: 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-x: 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - ts-api-utils: 2.4.0(typescript@5.9.3) + eslint-plugin-react-dom: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-hooks-extra: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-naming-convention: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-rsc: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-web-api: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-x: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@eslint-react/shared@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/shared@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/eff': 2.12.2 + '@eslint-react/eff': 2.13.0 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 @@ -18277,11 +18389,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint-react/var@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/var@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -18330,16 +18442,16 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@exodus/bytes@1.12.0': {} + '@exodus/bytes@1.15.0': {} '@expo/bunyan@4.0.1': dependencies: uuid: 8.3.2 - '@expo/cli@0.22.28(encoding@0.1.13)(graphql@16.12.0)': + '@expo/cli@0.22.28(graphql@16.13.2)': dependencies: - '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) - '@babel/runtime': 7.28.6 + '@0no-co/graphql.web': 1.2.0(graphql@16.13.2) + '@babel/runtime': 7.29.2 '@expo/code-signing-certificates': 0.0.6 '@expo/config': 10.0.11 '@expo/config-plugins': 9.0.17 @@ -18348,17 +18460,17 @@ snapshots: '@expo/image-utils': 0.6.5 '@expo/json-file': 9.1.5 '@expo/metro-config': 0.19.12 - '@expo/osascript': 2.3.8 - '@expo/package-manager': 1.9.10 + '@expo/osascript': 2.4.2 + '@expo/package-manager': 1.10.3 '@expo/plist': 0.2.2 '@expo/prebuild-config': 8.2.0 - '@expo/rudder-sdk-node': 1.1.1(encoding@0.1.13) + '@expo/rudder-sdk-node': 1.1.1 '@expo/spawn-async': 1.7.2 '@expo/ws-tunnel': 1.0.6 - '@expo/xcpretty': 4.4.0 + '@expo/xcpretty': 4.4.1 '@react-native/dev-middleware': 0.76.9 - '@urql/core': 5.2.0(graphql@16.12.0) - '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0(graphql@16.12.0)) + '@urql/core': 5.2.0(graphql@16.13.2) + '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0(graphql@16.13.2)) accepts: 1.3.8 arg: 5.0.2 better-opn: 3.0.2 @@ -18382,10 +18494,10 @@ snapshots: is-wsl: 2.2.0 lodash.debounce: 4.0.8 minimatch: 3.1.5 - node-forge: 1.3.3 + node-forge: 1.4.0 npm-package-arg: 11.0.3 ora: 3.4.0 - picomatch: 3.0.1 + picomatch: 3.0.2 pretty-bytes: 5.6.0 pretty-format: 29.7.0 progress: 2.0.3 @@ -18398,7 +18510,7 @@ snapshots: resolve.exports: 2.0.3 semver: 7.7.4 send: 0.19.2 - slugify: 1.6.6 + slugify: 1.6.8 source-map-support: 0.5.21 stacktrace-parser: 0.1.11 structured-headers: 0.4.1 @@ -18406,10 +18518,10 @@ snapshots: temp-dir: 2.0.0 tempy: 0.7.1 terminal-link: 2.1.1 - undici: 6.23.0 + undici: 6.24.1 unique-string: 2.0.0 wrap-ansi: 7.0.0 - ws: 8.19.0 + ws: 8.20.0 transitivePeerDependencies: - bufferutil - encoding @@ -18419,7 +18531,7 @@ snapshots: '@expo/code-signing-certificates@0.0.6': dependencies: - node-forge: 1.3.3 + node-forge: 1.4.0 '@expo/config-plugins@10.1.2': dependencies: @@ -18434,7 +18546,7 @@ snapshots: resolve-from: 5.0.0 semver: 7.7.4 slash: 3.0.0 - slugify: 1.6.6 + slugify: 1.6.8 xcode: 3.0.1 xml2js: 0.6.0 transitivePeerDependencies: @@ -18453,7 +18565,7 @@ snapshots: resolve-from: 5.0.0 semver: 7.7.4 slash: 3.0.0 - slugify: 1.6.6 + slugify: 1.6.8 xcode: 3.0.1 xml2js: 0.6.0 transitivePeerDependencies: @@ -18476,7 +18588,7 @@ snapshots: resolve-from: 5.0.0 resolve-workspace-root: 2.0.1 semver: 7.7.4 - slugify: 1.6.6 + slugify: 1.6.8 sucrase: 3.35.0 transitivePeerDependencies: - supports-color @@ -18494,7 +18606,7 @@ snapshots: resolve-from: 5.0.0 resolve-workspace-root: 2.0.1 semver: 7.7.4 - slugify: 1.6.6 + slugify: 1.6.8 sucrase: 3.35.0 transitivePeerDependencies: - supports-color @@ -18554,9 +18666,9 @@ snapshots: temp-dir: 2.0.0 unique-string: 2.0.0 - '@expo/json-file@10.0.8': + '@expo/json-file@10.0.12': dependencies: - '@babel/code-frame': 7.10.4 + '@babel/code-frame': 7.29.0 json5: 2.2.3 '@expo/json-file@9.0.2': @@ -18593,14 +18705,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/osascript@2.3.8': + '@expo/osascript@2.4.2': dependencies: '@expo/spawn-async': 1.7.2 - exec-async: 2.2.0 - '@expo/package-manager@1.9.10': + '@expo/package-manager@1.10.3': dependencies: - '@expo/json-file': 10.0.8 + '@expo/json-file': 10.0.12 '@expo/spawn-async': 1.7.2 chalk: 4.1.2 npm-package-arg: 11.0.3 @@ -18615,7 +18726,7 @@ snapshots: '@expo/plist@0.3.5': dependencies: - '@xmldom/xmldom': 0.8.11 + '@xmldom/xmldom': 0.8.12 base64-js: 1.5.1 xmlbuilder: 15.1.1 @@ -18635,13 +18746,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/rudder-sdk-node@1.1.1(encoding@0.1.13)': + '@expo/rudder-sdk-node@1.1.1': dependencies: '@expo/bunyan': 4.0.1 '@segment/loosely-validate-event': 2.0.0 fetch-retry: 4.1.1 md5: 2.3.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 remove-trailing-slash: 0.1.1 uuid: 8.3.2 transitivePeerDependencies: @@ -18661,24 +18772,26 @@ snapshots: '@expo/ws-tunnel@1.0.6': {} - '@expo/xcpretty@4.4.0': + '@expo/xcpretty@4.4.1': dependencies: '@babel/code-frame': 7.29.0 chalk: 4.1.2 js-yaml: 4.1.1 - '@floating-ui/core@1.7.4': + '@floating-ui/core@1.7.5': dependencies: - '@floating-ui/utils': 0.2.10 + '@floating-ui/utils': 0.2.11 - '@floating-ui/dom@1.7.5': + '@floating-ui/dom@1.7.6': dependencies: - '@floating-ui/core': 1.7.4 - '@floating-ui/utils': 0.2.10 + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 - '@floating-ui/utils@0.2.10': {} + '@floating-ui/utils@0.2.11': {} - '@gerrit0/mini-shiki@3.22.0': + '@gar/promise-retry@1.0.3': {} + + '@gerrit0/mini-shiki@3.23.0': dependencies: '@shikijs/engine-oniguruma': 3.23.0 '@shikijs/langs': 3.23.0 @@ -18686,13 +18799,13 @@ snapshots: '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 - '@graphql-typed-document-node/core@3.2.0(graphql@16.12.0)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.13.2)': dependencies: - graphql: 16.12.0 + graphql: 16.13.2 - '@hono/node-server@1.19.9(hono@4.11.9)': + '@hono/node-server@1.19.12(hono@4.12.9)': dependencies: - hono: 4.11.9 + hono: 4.12.9 '@humanfs/core@0.19.1': {} @@ -18705,7 +18818,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@img/colour@1.0.0': + '@img/colour@1.1.0': optional: true '@img/sharp-darwin-arm64@0.34.5': @@ -18790,7 +18903,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.9.1 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -18934,28 +19047,28 @@ snapshots: optionalDependencies: '@types/node': 22.19.15 - '@internationalized/date@3.11.0': + '@internationalized/date@3.12.0': dependencies: - '@swc/helpers': 0.5.18 + '@swc/helpers': 0.5.20 '@internationalized/number@3.6.5': dependencies: - '@swc/helpers': 0.5.18 + '@swc/helpers': 0.5.20 - '@ioredis/commands@1.5.0': {} + '@ioredis/commands@1.5.1': {} '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 '@isaacs/fs-minipass@4.0.1': dependencies: - minipass: 7.1.2 + minipass: 7.1.3 '@isaacs/ttlcache@1.4.1': {} @@ -18973,7 +19086,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 - '@jest/diff-sequences@30.0.1': {} + '@jest/diff-sequences@30.3.0': {} '@jest/environment@29.7.0': dependencies: @@ -18982,21 +19095,21 @@ snapshots: '@types/node': 22.19.15 jest-mock: 29.7.0 - '@jest/environment@30.2.0': + '@jest/environment@30.3.0': dependencies: - '@jest/fake-timers': 30.2.0 - '@jest/types': 30.2.0 + '@jest/fake-timers': 30.3.0 + '@jest/types': 30.3.0 '@types/node': 22.19.15 - jest-mock: 30.2.0 + jest-mock: 30.3.0 - '@jest/expect-utils@30.2.0': + '@jest/expect-utils@30.3.0': dependencies: '@jest/get-type': 30.1.0 - '@jest/expect@30.2.0': + '@jest/expect@30.3.0': dependencies: - expect: 30.2.0 - jest-snapshot: 30.2.0 + expect: 30.3.0 + jest-snapshot: 30.3.0 transitivePeerDependencies: - supports-color @@ -19009,23 +19122,23 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - '@jest/fake-timers@30.2.0': + '@jest/fake-timers@30.3.0': dependencies: - '@jest/types': 30.2.0 - '@sinonjs/fake-timers': 13.0.5 + '@jest/types': 30.3.0 + '@sinonjs/fake-timers': 15.2.0 '@types/node': 22.19.15 - jest-message-util: 30.2.0 - jest-mock: 30.2.0 - jest-util: 30.2.0 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 '@jest/get-type@30.1.0': {} - '@jest/globals@30.2.0': + '@jest/globals@30.3.0': dependencies: - '@jest/environment': 30.2.0 - '@jest/expect': 30.2.0 - '@jest/types': 30.2.0 - jest-mock: 30.2.0 + '@jest/environment': 30.3.0 + '@jest/expect': 30.3.0 + '@jest/types': 30.3.0 + jest-mock: 30.3.0 transitivePeerDependencies: - supports-color @@ -19040,11 +19153,11 @@ snapshots: '@jest/schemas@30.0.5': dependencies: - '@sinclair/typebox': 0.34.48 + '@sinclair/typebox': 0.34.49 - '@jest/snapshot-utils@30.2.0': + '@jest/snapshot-utils@30.3.0': dependencies: - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 chalk: 4.1.2 graceful-fs: 4.2.11 natural-compare: 1.4.0 @@ -19069,20 +19182,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/transform@30.2.0': + '@jest/transform@30.3.0': dependencies: '@babel/core': 7.29.0 - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 7.0.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 30.2.0 + jest-haste-map: 30.3.0 jest-regex-util: 30.0.1 - jest-util: 30.2.0 - micromatch: 4.0.8 + jest-util: 30.3.0 pirates: 4.0.7 slash: 3.0.0 write-file-atomic: 5.0.1 @@ -19098,7 +19210,7 @@ snapshots: '@types/yargs': 17.0.35 chalk: 4.1.2 - '@jest/types@30.2.0': + '@jest/types@30.3.0': dependencies: '@jest/pattern': 30.0.1 '@jest/schemas': 30.0.5 @@ -19137,28 +19249,28 @@ snapshots: jsbi: 4.3.2 tslib: 2.8.1 - '@kobalte/core@0.13.11(solid-js@1.9.11)': + '@kobalte/core@0.13.11(solid-js@1.9.12)': dependencies: - '@floating-ui/dom': 1.7.5 - '@internationalized/date': 3.11.0 + '@floating-ui/dom': 1.7.6 + '@internationalized/date': 3.12.0 '@internationalized/number': 3.6.5 - '@kobalte/utils': 0.9.1(solid-js@1.9.11) - '@solid-primitives/props': 3.2.2(solid-js@1.9.11) - '@solid-primitives/resize-observer': 2.1.3(solid-js@1.9.11) - solid-js: 1.9.11 - solid-presence: 0.1.8(solid-js@1.9.11) - solid-prevent-scroll: 0.1.10(solid-js@1.9.11) - - '@kobalte/utils@0.9.1(solid-js@1.9.11)': - dependencies: - '@solid-primitives/event-listener': 2.4.3(solid-js@1.9.11) - '@solid-primitives/keyed': 1.5.3(solid-js@1.9.11) - '@solid-primitives/map': 0.4.13(solid-js@1.9.11) - '@solid-primitives/media': 2.3.3(solid-js@1.9.11) - '@solid-primitives/props': 3.2.2(solid-js@1.9.11) - '@solid-primitives/refs': 1.1.2(solid-js@1.9.11) - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@kobalte/utils': 0.9.1(solid-js@1.9.12) + '@solid-primitives/props': 3.2.3(solid-js@1.9.12) + '@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.12) + solid-js: 1.9.12 + solid-presence: 0.1.8(solid-js@1.9.12) + solid-prevent-scroll: 0.1.10(solid-js@1.9.12) + + '@kobalte/utils@0.9.1(solid-js@1.9.12)': + dependencies: + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.12) + '@solid-primitives/keyed': 1.5.3(solid-js@1.9.12) + '@solid-primitives/map': 0.4.13(solid-js@1.9.12) + '@solid-primitives/media': 2.3.5(solid-js@1.9.12) + '@solid-primitives/props': 3.2.3(solid-js@1.9.12) + '@solid-primitives/refs': 1.1.3(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@22.19.15))(@types/node@22.19.15)(listr2@9.0.1)': dependencies: @@ -19191,29 +19303,29 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 '@types/node': 22.19.15 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 - '@mapbox/node-pre-gyp@2.0.3(encoding@0.1.13)': + '@mapbox/node-pre-gyp@2.0.3': dependencies: consola: 3.4.2 detect-libc: 2.1.2 https-proxy-agent: 7.0.6 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 nopt: 8.1.0 semver: 7.7.4 - tar: 7.5.7 + tar: 7.5.13 transitivePeerDependencies: - encoding - supports-color @@ -19239,7 +19351,7 @@ snapshots: '@rushstack/rig-package': 0.5.3 '@rushstack/terminal': 0.14.0(@types/node@22.19.15) '@rushstack/ts-command-line': 4.22.6(@types/node@22.19.15) - lodash: 4.17.23 + lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.11 semver: 7.5.4 @@ -19259,18 +19371,18 @@ snapshots: '@modelcontextprotocol/sdk@1.26.0(zod@4.1.13)': dependencies: - '@hono/node-server': 1.19.9(hono@4.11.9) - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) + '@hono/node-server': 1.19.12(hono@4.12.9) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 eventsource: 3.0.7 eventsource-parser: 3.0.6 express: 5.2.1 - express-rate-limit: 8.2.1(express@5.2.1) - hono: 4.11.9 - jose: 6.1.3 + express-rate-limit: 8.3.2(express@5.2.1) + hono: 4.12.9 + jose: 6.2.2 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -19297,7 +19409,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@mswjs/interceptors@0.41.2': + '@mswjs/interceptors@0.41.3': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -19380,91 +19492,91 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 '@tybys/wasm-util': 0.10.1 optional: true '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@1.1.1': + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 '@tybys/wasm-util': 0.10.1 optional: true '@next/env@14.2.35': {} - '@next/env@15.5.12': {} + '@next/env@15.5.14': {} - '@next/env@16.1.6': {} + '@next/env@16.2.2': {} '@next/swc-darwin-arm64@14.2.33': optional: true - '@next/swc-darwin-arm64@15.5.12': + '@next/swc-darwin-arm64@15.5.14': optional: true - '@next/swc-darwin-arm64@16.1.6': + '@next/swc-darwin-arm64@16.2.2': optional: true '@next/swc-darwin-x64@14.2.33': optional: true - '@next/swc-darwin-x64@15.5.12': + '@next/swc-darwin-x64@15.5.14': optional: true - '@next/swc-darwin-x64@16.1.6': + '@next/swc-darwin-x64@16.2.2': optional: true '@next/swc-linux-arm64-gnu@14.2.33': optional: true - '@next/swc-linux-arm64-gnu@15.5.12': + '@next/swc-linux-arm64-gnu@15.5.14': optional: true - '@next/swc-linux-arm64-gnu@16.1.6': + '@next/swc-linux-arm64-gnu@16.2.2': optional: true '@next/swc-linux-arm64-musl@14.2.33': optional: true - '@next/swc-linux-arm64-musl@15.5.12': + '@next/swc-linux-arm64-musl@15.5.14': optional: true - '@next/swc-linux-arm64-musl@16.1.6': + '@next/swc-linux-arm64-musl@16.2.2': optional: true '@next/swc-linux-x64-gnu@14.2.33': optional: true - '@next/swc-linux-x64-gnu@15.5.12': + '@next/swc-linux-x64-gnu@15.5.14': optional: true - '@next/swc-linux-x64-gnu@16.1.6': + '@next/swc-linux-x64-gnu@16.2.2': optional: true '@next/swc-linux-x64-musl@14.2.33': optional: true - '@next/swc-linux-x64-musl@15.5.12': + '@next/swc-linux-x64-musl@15.5.14': optional: true - '@next/swc-linux-x64-musl@16.1.6': + '@next/swc-linux-x64-musl@16.2.2': optional: true '@next/swc-win32-arm64-msvc@14.2.33': optional: true - '@next/swc-win32-arm64-msvc@15.5.12': + '@next/swc-win32-arm64-msvc@15.5.14': optional: true - '@next/swc-win32-arm64-msvc@16.1.6': + '@next/swc-win32-arm64-msvc@16.2.2': optional: true '@next/swc-win32-ia32-msvc@14.2.33': @@ -19473,10 +19585,10 @@ snapshots: '@next/swc-win32-x64-msvc@14.2.33': optional: true - '@next/swc-win32-x64-msvc@15.5.12': + '@next/swc-win32-x64-msvc@15.5.14': optional: true - '@next/swc-win32-x64-msvc@16.1.6': + '@next/swc-win32-x64-msvc@16.2.2': optional: true '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': @@ -19513,16 +19625,16 @@ snapshots: dependencies: semver: 7.7.4 - '@npmcli/git@7.0.1': + '@npmcli/git@7.0.2': dependencies: + '@gar/promise-retry': 1.0.3 '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 lru-cache: 11.2.7 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - promise-retry: 2.0.1 semver: 7.7.4 - which: 6.0.0 + which: 6.0.1 '@npmcli/installed-package-contents@4.0.0': dependencies: @@ -19531,30 +19643,29 @@ snapshots: '@npmcli/node-gyp@5.0.0': {} - '@npmcli/package-json@7.0.4': + '@npmcli/package-json@7.0.5': dependencies: - '@npmcli/git': 7.0.1 - glob: 13.0.1 + '@npmcli/git': 7.0.2 + glob: 13.0.6 hosted-git-info: 9.0.2 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 semver: 7.7.4 - validate-npm-package-license: 3.0.4 + spdx-expression-parse: 4.0.0 '@npmcli/promise-spawn@9.0.1': dependencies: - which: 6.0.0 + which: 6.0.1 '@npmcli/redact@4.0.0': {} - '@npmcli/run-script@10.0.3': + '@npmcli/run-script@10.0.4': dependencies: '@npmcli/node-gyp': 5.0.0 - '@npmcli/package-json': 7.0.4 + '@npmcli/package-json': 7.0.5 '@npmcli/promise-spawn': 9.0.1 node-gyp: 12.2.0 proc-log: 6.1.0 - which: 6.0.0 transitivePeerDependencies: - supports-color @@ -19599,69 +19710,72 @@ snapshots: '@oslojs/encoding@1.1.0': {} - '@oxc-parser/binding-android-arm-eabi@0.120.0': + '@oxc-parser/binding-android-arm-eabi@0.121.0': optional: true - '@oxc-parser/binding-android-arm64@0.120.0': + '@oxc-parser/binding-android-arm64@0.121.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.120.0': + '@oxc-parser/binding-darwin-arm64@0.121.0': optional: true - '@oxc-parser/binding-darwin-x64@0.120.0': + '@oxc-parser/binding-darwin-x64@0.121.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.120.0': + '@oxc-parser/binding-freebsd-x64@0.121.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.121.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': + '@oxc-parser/binding-linux-arm-musleabihf@0.121.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.120.0': + '@oxc-parser/binding-linux-arm64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.120.0': + '@oxc-parser/binding-linux-arm64-musl@0.121.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': + '@oxc-parser/binding-linux-ppc64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.120.0': + '@oxc-parser/binding-linux-riscv64-musl@0.121.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.120.0': + '@oxc-parser/binding-linux-s390x-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.120.0': + '@oxc-parser/binding-linux-x64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.120.0': + '@oxc-parser/binding-linux-x64-musl@0.121.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.120.0': + '@oxc-parser/binding-openharmony-arm64@0.121.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.120.0': + '@oxc-parser/binding-wasm32-wasi@0.121.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.120.0': + '@oxc-parser/binding-win32-arm64-msvc@0.121.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.120.0': + '@oxc-parser/binding-win32-ia32-msvc@0.121.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.120.0': + '@oxc-parser/binding-win32-x64-msvc@0.121.0': optional: true - '@oxc-project/types@0.120.0': {} + '@oxc-project/types@0.121.0': {} '@oxc-resolver/binding-android-arm-eabi@11.19.1': optional: true @@ -19711,9 +19825,12 @@ snapshots: '@oxc-resolver/binding-openharmony-arm64@11.19.1': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.19.1': + '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': @@ -19725,6 +19842,8 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.19.1': optional: true + '@package-json/types@0.0.12': {} + '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -19806,7 +19925,7 @@ snapshots: dependencies: kleur: 4.1.5 - '@poppinss/dumper@0.6.5': + '@poppinss/dumper@0.7.0': dependencies: '@poppinss/colors': 4.1.6 '@sindresorhus/is': 7.2.0 @@ -19814,60 +19933,62 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@preact/preset-vite@2.10.3(@babel/core@7.29.0)(preact@10.28.3)(rollup@4.57.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) - '@prefresh/vite': 2.4.11(preact@10.28.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@prefresh/vite': 2.4.12(preact@10.29.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.0) debug: 4.4.3 + magic-string: 0.30.21 picocolors: 1.1.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vite-prerender-plugin: 0.5.12(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite-prerender-plugin: 0.5.13(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + zimmerframe: 1.1.4 transitivePeerDependencies: - preact - rollup - supports-color - '@prefresh/babel-plugin@0.5.2': {} + '@prefresh/babel-plugin@0.5.3': {} - '@prefresh/core@1.5.9(preact@10.28.3)': + '@prefresh/core@1.5.9(preact@10.29.0)': dependencies: - preact: 10.28.3 + preact: 10.29.0 '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.11(preact@10.28.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@prefresh/vite@2.4.12(preact@10.29.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 - '@prefresh/babel-plugin': 0.5.2 - '@prefresh/core': 1.5.9(preact@10.28.3) + '@prefresh/babel-plugin': 0.5.3 + '@prefresh/core': 1.5.9(preact@10.29.0) '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 - preact: 10.28.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + preact: 10.29.0 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color '@publint/pack@0.1.4': {} - '@react-native-community/netinfo@11.5.2(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4)': + '@react-native-community/netinfo@11.5.2(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4)': dependencies: react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) '@react-native/assets-registry@0.76.9': {} - '@react-native/babel-plugin-codegen@0.76.9(@babel/preset-env@7.29.0(@babel/core@7.29.0))': + '@react-native/babel-plugin-codegen@0.76.9(@babel/preset-env@7.29.2(@babel/core@7.29.0))': dependencies: - '@react-native/codegen': 0.76.9(@babel/preset-env@7.29.0(@babel/core@7.29.0)) + '@react-native/codegen': 0.76.9(@babel/preset-env@7.29.2(@babel/core@7.29.0)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))': + '@react-native/babel-preset@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) @@ -19910,7 +20031,7 @@ snapshots: '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) '@babel/template': 7.28.6 - '@react-native/babel-plugin-codegen': 0.76.9(@babel/preset-env@7.29.0(@babel/core@7.29.0)) + '@react-native/babel-plugin-codegen': 0.76.9(@babel/preset-env@7.29.2(@babel/core@7.29.0)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) react-refresh: 0.14.2 @@ -19918,31 +20039,31 @@ snapshots: - '@babel/preset-env' - supports-color - '@react-native/codegen@0.76.9(@babel/preset-env@7.29.0(@babel/core@7.29.0))': + '@react-native/codegen@0.76.9(@babel/preset-env@7.29.2(@babel/core@7.29.0))': dependencies: '@babel/parser': 7.29.2 - '@babel/preset-env': 7.29.0(@babel/core@7.29.0) + '@babel/preset-env': 7.29.2(@babel/core@7.29.0) glob: 7.2.3 hermes-parser: 0.23.1 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.29.0(@babel/core@7.29.0)) + jscodeshift: 0.14.0(@babel/preset-env@7.29.2(@babel/core@7.29.0)) mkdirp: 0.5.6 nullthrows: 1.1.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)': + '@react-native/community-cli-plugin@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))': dependencies: '@react-native/dev-middleware': 0.76.9 - '@react-native/metro-babel-transformer': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0)) + '@react-native/metro-babel-transformer': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0)) chalk: 4.1.2 execa: 5.1.1 invariant: 2.2.4 metro: 0.81.5 metro-config: 0.81.5 metro-core: 0.81.5 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 readline: 1.3.0 semver: 7.7.4 transitivePeerDependencies: @@ -19978,10 +20099,10 @@ snapshots: '@react-native/js-polyfills@0.76.9': {} - '@react-native/metro-babel-transformer@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))': + '@react-native/metro-babel-transformer@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))': dependencies: '@babel/core': 7.29.0 - '@react-native/babel-preset': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0)) + '@react-native/babel-preset': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0)) hermes-parser: 0.23.1 nullthrows: 1.1.1 transitivePeerDependencies: @@ -19992,14 +20113,14 @@ snapshots: '@react-native/normalize-colors@0.76.9': {} - '@react-native/virtualized-lists@0.76.9(@types/react@19.2.13)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4)': + '@react-native/virtualized-lists@0.76.9(@types/react@19.2.14)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.13 + '@types/react': 19.2.14 '@react-navigation/core@6.4.17(react@19.2.4)': dependencies: @@ -20011,49 +20132,49 @@ snapshots: react-is: 16.13.1 use-latest-callback: 0.2.6(react@19.2.4) - '@react-navigation/elements@1.3.31(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4)': + '@react-navigation/elements@1.3.31(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4)': dependencies: - '@react-navigation/native': 6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + '@react-navigation/native': 6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) - react-native-safe-area-context: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) + react-native-safe-area-context: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) - '@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4)': + '@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4)': dependencies: '@react-navigation/core': 6.4.17(react@19.2.4) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) '@react-navigation/routers@6.1.9': dependencies: nanoid: 3.3.11 - '@react-navigation/stack@6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4)': + '@react-navigation/stack@6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4)': dependencies: - '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - '@react-navigation/native': 6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + '@react-navigation/native': 6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) color: 4.2.3 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) - react-native-gesture-handler: 2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - react-native-safe-area-context: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - react-native-screens: 4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) + react-native-gesture-handler: 2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + react-native-safe-area-context: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + react-native-screens: 4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) warn-once: 0.1.1 '@remix-run/router@1.23.2': {} '@rolldown/pluginutils@1.0.0-beta.27': {} - '@rollup/plugin-alias@6.0.0(rollup@4.57.1)': + '@rollup/plugin-alias@6.0.0(rollup@4.60.1)': optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 - '@rollup/plugin-commonjs@29.0.0(rollup@4.57.1)': + '@rollup/plugin-commonjs@29.0.2(rollup@4.60.1)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.4) @@ -20061,199 +20182,208 @@ snapshots: magic-string: 0.30.21 picomatch: 4.0.4 optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 - '@rollup/plugin-inject@5.0.5(rollup@4.57.1)': + '@rollup/plugin-inject@5.0.5(rollup@4.60.1)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) estree-walker: 2.0.2 magic-string: 0.30.21 optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 - '@rollup/plugin-json@6.1.0(rollup@4.57.1)': + '@rollup/plugin-json@6.1.0(rollup@4.60.1)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 - '@rollup/plugin-node-resolve@16.0.3(rollup@4.57.1)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.60.1)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.11 optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 - '@rollup/plugin-replace@6.0.3(rollup@4.57.1)': + '@rollup/plugin-replace@6.0.3(rollup@4.60.1)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) magic-string: 0.30.21 optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 - '@rollup/plugin-terser@0.4.4(rollup@4.57.1)': + '@rollup/plugin-terser@1.0.0(rollup@4.60.1)': dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.46.0 + serialize-javascript: 7.0.5 + smob: 1.6.1 + terser: 5.46.1 optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 picomatch: 2.3.2 - '@rollup/pluginutils@5.3.0(rollup@4.57.1)': + '@rollup/pluginutils@5.3.0(rollup@4.60.1)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 + + '@rollup/rollup-android-arm-eabi@4.59.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.60.1': + optional: true + + '@rollup/rollup-android-arm64@4.59.0': + optional: true - '@rollup/rollup-android-arm-eabi@4.52.3': + '@rollup/rollup-android-arm64@4.60.1': optional: true - '@rollup/rollup-android-arm-eabi@4.57.1': + '@rollup/rollup-darwin-arm64@4.59.0': optional: true - '@rollup/rollup-android-arm64@4.52.3': + '@rollup/rollup-darwin-arm64@4.60.1': optional: true - '@rollup/rollup-android-arm64@4.57.1': + '@rollup/rollup-darwin-x64@4.59.0': optional: true - '@rollup/rollup-darwin-arm64@4.52.3': + '@rollup/rollup-darwin-x64@4.60.1': optional: true - '@rollup/rollup-darwin-arm64@4.57.1': + '@rollup/rollup-freebsd-arm64@4.59.0': optional: true - '@rollup/rollup-darwin-x64@4.52.3': + '@rollup/rollup-freebsd-arm64@4.60.1': optional: true - '@rollup/rollup-darwin-x64@4.57.1': + '@rollup/rollup-freebsd-x64@4.59.0': optional: true - '@rollup/rollup-freebsd-arm64@4.52.3': + '@rollup/rollup-freebsd-x64@4.60.1': optional: true - '@rollup/rollup-freebsd-arm64@4.57.1': + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': optional: true - '@rollup/rollup-freebsd-x64@4.52.3': + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': optional: true - '@rollup/rollup-freebsd-x64@4.57.1': + '@rollup/rollup-linux-arm-musleabihf@4.59.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.52.3': + '@rollup/rollup-linux-arm-musleabihf@4.60.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + '@rollup/rollup-linux-arm64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.52.3': + '@rollup/rollup-linux-arm64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.57.1': + '@rollup/rollup-linux-arm64-musl@4.59.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.52.3': + '@rollup/rollup-linux-arm64-musl@4.60.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.57.1': + '@rollup/rollup-linux-loong64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.52.3': + '@rollup/rollup-linux-loong64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.57.1': + '@rollup/rollup-linux-loong64-musl@4.59.0': optional: true - '@rollup/rollup-linux-loong64-gnu@4.52.3': + '@rollup/rollup-linux-loong64-musl@4.60.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.57.1': + '@rollup/rollup-linux-ppc64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-loong64-musl@4.57.1': + '@rollup/rollup-linux-ppc64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.52.3': + '@rollup/rollup-linux-ppc64-musl@4.59.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.57.1': + '@rollup/rollup-linux-ppc64-musl@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-musl@4.57.1': + '@rollup/rollup-linux-riscv64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.52.3': + '@rollup/rollup-linux-riscv64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.57.1': + '@rollup/rollup-linux-riscv64-musl@4.59.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.52.3': + '@rollup/rollup-linux-riscv64-musl@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.57.1': + '@rollup/rollup-linux-s390x-gnu@4.59.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.52.3': + '@rollup/rollup-linux-s390x-gnu@4.60.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.57.1': + '@rollup/rollup-linux-x64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.52.3': + '@rollup/rollup-linux-x64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.57.1': + '@rollup/rollup-linux-x64-musl@4.59.0': optional: true - '@rollup/rollup-linux-x64-musl@4.52.3': + '@rollup/rollup-linux-x64-musl@4.60.1': optional: true - '@rollup/rollup-linux-x64-musl@4.57.1': + '@rollup/rollup-openbsd-x64@4.59.0': optional: true - '@rollup/rollup-openbsd-x64@4.57.1': + '@rollup/rollup-openbsd-x64@4.60.1': optional: true - '@rollup/rollup-openharmony-arm64@4.52.3': + '@rollup/rollup-openharmony-arm64@4.59.0': optional: true - '@rollup/rollup-openharmony-arm64@4.57.1': + '@rollup/rollup-openharmony-arm64@4.60.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.52.3': + '@rollup/rollup-win32-arm64-msvc@4.59.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.57.1': + '@rollup/rollup-win32-arm64-msvc@4.60.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.52.3': + '@rollup/rollup-win32-ia32-msvc@4.59.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.57.1': + '@rollup/rollup-win32-ia32-msvc@4.60.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.52.3': + '@rollup/rollup-win32-x64-gnu@4.59.0': optional: true - '@rollup/rollup-win32-x64-gnu@4.57.1': + '@rollup/rollup-win32-x64-gnu@4.60.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.52.3': + '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.57.1': + '@rollup/rollup-win32-x64-msvc@4.60.1': optional: true '@rushstack/node-core-library@5.7.0(@types/node@22.19.15)': @@ -20290,10 +20420,10 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@schematics/angular@20.3.16(chokidar@4.0.3)': + '@schematics/angular@20.3.22(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.16(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.16(chokidar@4.0.3) + '@angular-devkit/core': 20.3.22(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.22(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -20373,22 +20503,22 @@ snapshots: dependencies: '@sigstore/protobuf-specs': 0.5.0 - '@sigstore/core@3.1.0': {} + '@sigstore/core@3.2.0': {} '@sigstore/protobuf-specs@0.5.0': {} - '@sigstore/sign@4.1.0': + '@sigstore/sign@4.1.1': dependencies: + '@gar/promise-retry': 1.0.3 '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 + '@sigstore/core': 3.2.0 '@sigstore/protobuf-specs': 0.5.0 - make-fetch-happen: 15.0.3 + make-fetch-happen: 15.0.5 proc-log: 6.1.0 - promise-retry: 2.0.1 transitivePeerDependencies: - supports-color - '@sigstore/tuf@4.0.1': + '@sigstore/tuf@4.0.2': dependencies: '@sigstore/protobuf-specs': 0.5.0 tuf-js: 4.1.0 @@ -20398,12 +20528,12 @@ snapshots: '@sigstore/verify@3.1.0': dependencies: '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 + '@sigstore/core': 3.2.0 '@sigstore/protobuf-specs': 0.5.0 '@sinclair/typebox@0.27.10': {} - '@sinclair/typebox@0.34.48': {} + '@sinclair/typebox@0.34.49': {} '@sindresorhus/is@4.6.0': {} @@ -20419,138 +20549,138 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers@13.0.5': + '@sinonjs/fake-timers@15.2.0': dependencies: '@sinonjs/commons': 3.0.1 - '@size-limit/esbuild@12.0.0(size-limit@12.0.0(jiti@2.6.1))': + '@size-limit/esbuild@12.0.1(size-limit@12.0.1(jiti@2.6.1))': dependencies: esbuild: 0.27.4 - nanoid: 5.1.6 - size-limit: 12.0.0(jiti@2.6.1) + nanoid: 5.1.7 + size-limit: 12.0.1(jiti@2.6.1) - '@size-limit/file@12.0.0(size-limit@12.0.0(jiti@2.6.1))': + '@size-limit/file@12.0.1(size-limit@12.0.1(jiti@2.6.1))': dependencies: - size-limit: 12.0.0(jiti@2.6.1) + size-limit: 12.0.1(jiti@2.6.1) - '@size-limit/preset-small-lib@12.0.0(size-limit@12.0.0(jiti@2.6.1))': + '@size-limit/preset-small-lib@12.0.1(size-limit@12.0.1(jiti@2.6.1))': dependencies: - '@size-limit/esbuild': 12.0.0(size-limit@12.0.0(jiti@2.6.1)) - '@size-limit/file': 12.0.0(size-limit@12.0.0(jiti@2.6.1)) - size-limit: 12.0.0(jiti@2.6.1) + '@size-limit/esbuild': 12.0.1(size-limit@12.0.1(jiti@2.6.1)) + '@size-limit/file': 12.0.1(size-limit@12.0.1(jiti@2.6.1)) + size-limit: 12.0.1(jiti@2.6.1) - '@solid-primitives/event-listener@2.4.3(solid-js@1.9.11)': + '@solid-primitives/event-listener@2.4.5(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/keyed@1.5.3(solid-js@1.9.11)': + '@solid-primitives/keyed@1.5.3(solid-js@1.9.12)': dependencies: - solid-js: 1.9.11 + solid-js: 1.9.12 - '@solid-primitives/map@0.4.13(solid-js@1.9.11)': + '@solid-primitives/map@0.4.13(solid-js@1.9.12)': dependencies: - '@solid-primitives/trigger': 1.2.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/trigger': 1.2.3(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/media@2.3.3(solid-js@1.9.11)': + '@solid-primitives/media@2.3.5(solid-js@1.9.12)': dependencies: - '@solid-primitives/event-listener': 2.4.3(solid-js@1.9.11) - '@solid-primitives/rootless': 1.5.2(solid-js@1.9.11) - '@solid-primitives/static-store': 0.1.2(solid-js@1.9.11) - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.12) + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.12) + '@solid-primitives/static-store': 0.1.3(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/props@3.2.2(solid-js@1.9.11)': + '@solid-primitives/props@3.2.3(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/refs@1.1.2(solid-js@1.9.11)': + '@solid-primitives/refs@1.1.3(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/resize-observer@2.1.3(solid-js@1.9.11)': + '@solid-primitives/resize-observer@2.1.5(solid-js@1.9.12)': dependencies: - '@solid-primitives/event-listener': 2.4.3(solid-js@1.9.11) - '@solid-primitives/rootless': 1.5.2(solid-js@1.9.11) - '@solid-primitives/static-store': 0.1.2(solid-js@1.9.11) - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.12) + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.12) + '@solid-primitives/static-store': 0.1.3(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/rootless@1.5.2(solid-js@1.9.11)': + '@solid-primitives/rootless@1.5.3(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/static-store@0.1.2(solid-js@1.9.11)': + '@solid-primitives/static-store@0.1.3(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/storage@1.3.11(solid-js@1.9.11)': + '@solid-primitives/storage@1.3.11(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/transition-group@1.1.2(solid-js@1.9.11)': + '@solid-primitives/transition-group@1.1.2(solid-js@1.9.12)': dependencies: - solid-js: 1.9.11 + solid-js: 1.9.12 - '@solid-primitives/trigger@1.2.2(solid-js@1.9.11)': + '@solid-primitives/trigger@1.2.3(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.3.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + solid-js: 1.9.12 - '@solid-primitives/utils@6.3.2(solid-js@1.9.11)': + '@solid-primitives/utils@6.4.0(solid-js@1.9.12)': dependencies: - solid-js: 1.9.11 + solid-js: 1.9.12 - '@solidjs/meta@0.29.4(solid-js@1.9.11)': + '@solidjs/meta@0.29.4(solid-js@1.9.12)': dependencies: - solid-js: 1.9.11 + solid-js: 1.9.12 - '@solidjs/router@0.15.4(solid-js@1.9.11)': + '@solidjs/router@0.15.4(solid-js@1.9.12)': dependencies: - solid-js: 1.9.11 + solid-js: 1.9.12 - '@solidjs/start@1.2.1(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@solidjs/start@1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@tanstack/server-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) - '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@tanstack/server-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) cookie-es: 2.0.0 defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.13 radix3: 1.1.2 - seroval: 1.5.0 - seroval-plugins: 1.5.0(seroval@1.5.0) + seroval: 1.5.1 + seroval-plugins: 1.5.1(seroval@1.5.1) shiki: 1.29.2 source-map-js: 1.2.1 - terracotta: 1.1.0(solid-js@1.9.11) + terracotta: 1.1.0(solid-js@1.9.12) tinyglobby: 0.2.15 - vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite-plugin-solid: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@testing-library/jest-dom' - solid-js - supports-color - vite - '@solidjs/testing-library@0.8.10(@solidjs/router@0.15.4(solid-js@1.9.11))(solid-js@1.9.11)': + '@solidjs/testing-library@0.8.10(@solidjs/router@0.15.4(solid-js@1.9.12))(solid-js@1.9.12)': dependencies: '@testing-library/dom': 10.4.1 - solid-js: 1.9.11 + solid-js: 1.9.12 optionalDependencies: - '@solidjs/router': 0.15.4(solid-js@1.9.11) + '@solidjs/router': 0.15.4(solid-js@1.9.12) - '@speed-highlight/core@1.2.14': {} + '@speed-highlight/core@1.2.15': {} '@standard-schema/spec@1.1.0': {} - '@stylistic/eslint-plugin@5.8.0(eslint@9.39.4(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) '@typescript-eslint/types': 8.56.1 @@ -20564,15 +20694,15 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))': + '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': dependencies: - '@sveltejs/kit': 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) - '@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -20581,19 +20711,19 @@ snapshots: kleur: 4.1.5 magic-string: 0.30.21 mrmime: 2.0.1 - set-cookie-parser: 3.0.1 + set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.53.5 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + svelte: 5.55.1 + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) optionalDependencies: typescript: 5.8.3 optional: true - '@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -20602,73 +20732,73 @@ snapshots: kleur: 4.1.5 magic-string: 0.30.21 mrmime: 2.0.1 - set-cookie-parser: 3.0.1 + set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.53.5 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + svelte: 5.55.1 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) optionalDependencies: typescript: 5.8.3 - '@sveltejs/package@2.5.7(svelte@5.53.5)(typescript@5.9.3)': + '@sveltejs/package@2.5.7(svelte@5.55.1)(typescript@5.9.3)': dependencies: chokidar: 5.0.0 kleur: 4.1.5 sade: 1.8.1 semver: 7.7.4 - svelte: 5.53.5 - svelte2tsx: 0.7.47(svelte@5.53.5)(typescript@5.9.3) + svelte: 5.55.1 + svelte2tsx: 0.7.53(svelte@5.55.1)(typescript@5.9.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) debug: 4.4.3 - svelte: 5.53.5 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + svelte: 5.55.1 + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color optional: true - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) debug: 4.4.3 - svelte: 5.53.5 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + svelte: 5.55.1 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) debug: 4.4.3 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.21 - svelte: 5.53.5 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + svelte: 5.55.1 + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - supports-color optional: true - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) debug: 4.4.3 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.21 - svelte: 5.53.5 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + svelte: 5.55.1 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - '@svitejs/changesets-changelog-github-compact@1.2.0(encoding@0.1.13)': + '@svitejs/changesets-changelog-github-compact@1.2.0': dependencies: - '@changesets/get-github-info': 0.6.0(encoding@0.1.13) + '@changesets/get-github-info': 0.6.0 dotenv: 16.6.1 transitivePeerDependencies: - encoding @@ -20679,7 +20809,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@swc/helpers@0.5.18': + '@swc/helpers@0.5.20': dependencies: tslib: 2.8.1 @@ -20688,96 +20818,96 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.8.1 - '@tailwindcss/node@4.1.18': + '@tailwindcss/node@4.2.2': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.19.0 + enhanced-resolve: 5.20.1 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.32.0 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.1.18 + tailwindcss: 4.2.2 - '@tailwindcss/oxide-android-arm64@4.1.18': + '@tailwindcss/oxide-android-arm64@4.2.2': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.18': + '@tailwindcss/oxide-darwin-arm64@4.2.2': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.18': + '@tailwindcss/oxide-darwin-x64@4.2.2': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.18': + '@tailwindcss/oxide-freebsd-x64@4.2.2': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.18': + '@tailwindcss/oxide-linux-x64-musl@4.2.2': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.18': + '@tailwindcss/oxide-wasm32-wasi@4.2.2': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': optional: true - '@tailwindcss/oxide@4.1.18': + '@tailwindcss/oxide@4.2.2': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.18 - '@tailwindcss/oxide-darwin-arm64': 4.1.18 - '@tailwindcss/oxide-darwin-x64': 4.1.18 - '@tailwindcss/oxide-freebsd-x64': 4.1.18 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.18 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.18 - '@tailwindcss/oxide-linux-x64-musl': 4.1.18 - '@tailwindcss/oxide-wasm32-wasi': 4.1.18 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 - - '@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': - dependencies: - '@tailwindcss/node': 4.1.18 - '@tailwindcss/oxide': 4.1.18 - tailwindcss: 4.1.18 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - - '@tanstack/directive-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@tailwindcss/oxide-android-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-x64': 4.2.2 + '@tailwindcss/oxide-freebsd-x64': 4.2.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-x64-musl': 4.2.2 + '@tailwindcss/oxide-wasm32-wasi': 4.2.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 + + '@tailwindcss/vite@4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + dependencies: + '@tailwindcss/node': 4.2.2 + '@tailwindcss/oxide': 4.2.2 + tailwindcss: 4.2.2 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + + '@tanstack/directive-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.29.0 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 - '@tanstack/router-utils': 1.158.0 + '@tanstack/router-utils': 1.161.6 babel-dead-code-elimination: 1.0.12 tiny-invariant: 1.3.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint/js': 9.39.4 - '@stylistic/eslint-plugin': 5.8.0(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-n: 17.23.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-n: 17.24.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) globals: 16.5.0 typescript-eslint: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - vue-eslint-parser: 10.2.0(eslint@9.39.4(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint @@ -20791,12 +20921,12 @@ snapshots: '@tanstack/react-location@3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 history: 5.3.0 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - '@tanstack/router-utils@1.158.0': + '@tanstack/router-utils@1.161.6': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -20810,7 +20940,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@tanstack/server-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.29.0 @@ -20819,7 +20949,7 @@ snapshots: '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 - '@tanstack/directive-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@tanstack/directive-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) babel-dead-code-elimination: 1.0.12 tiny-invariant: 1.3.3 transitivePeerDependencies: @@ -20834,32 +20964,32 @@ snapshots: transitivePeerDependencies: - typescript - '@tanstack/vite-config@0.4.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@tanstack/vite-config@0.4.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - rollup-plugin-preserve-directives: 0.4.0(rollup@4.57.1) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-dts: 4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) - vite-plugin-externalize-deps: 0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) - vite-tsconfig-paths: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + rollup-plugin-preserve-directives: 0.4.0(rollup@4.60.1) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite-plugin-dts: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite-plugin-externalize-deps: 0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite-tsconfig-paths: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@types/node' - rollup - supports-color - typescript - '@testing-library/angular@18.1.1(59e8d0d75f189c65baadf2466933ed4e)': + '@testing-library/angular@18.1.1(3436010aec00f8e828978cdcb451dc36)': dependencies: - '@angular/common': 20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/common': 20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/router': 20.3.16(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.16(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/router': 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@testing-library/dom': 10.4.1 tslib: 2.8.1 '@testing-library/dom@10.4.1': dependencies: '@babel/code-frame': 7.29.0 - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -20870,7 +21000,7 @@ snapshots: '@testing-library/dom@8.20.1': dependencies: '@babel/code-frame': 7.29.0 - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -20887,21 +21017,21 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/preact@3.2.4(preact@10.28.3)': + '@testing-library/preact@3.2.4(preact@10.29.0)': dependencies: '@testing-library/dom': 8.20.1 - preact: 10.28.3 + preact: 10.29.0 - '@testing-library/react-render-stream@2.0.2(@jest/globals@30.2.0)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(expect@30.2.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@testing-library/react-render-stream@2.0.2(@jest/globals@30.3.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(expect@30.3.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@jest/globals': 30.2.0 + '@jest/globals': 30.3.0 '@testing-library/dom': 10.4.1 - '@testing-library/react': 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - expect: 30.2.0 + '@testing-library/react': 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + expect: 30.3.0 jsdom: 25.0.1 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - rehackt: 0.1.0(@types/react@19.2.13)(react@19.2.4) + rehackt: 0.1.0(@types/react@19.2.14)(react@19.2.4) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -20910,37 +21040,37 @@ snapshots: - supports-color - utf-8-validate - '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 '@testing-library/dom': 10.4.1 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.13 - '@types/react-dom': 19.2.3(@types/react@19.2.13) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@testing-library/svelte-core@1.0.0(svelte@5.53.5)': + '@testing-library/svelte-core@1.0.0(svelte@5.55.1)': dependencies: - svelte: 5.53.5 + svelte: 5.55.1 - '@testing-library/svelte@5.3.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@testing-library/svelte@5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': dependencies: '@testing-library/dom': 10.4.1 - '@testing-library/svelte-core': 1.0.0(svelte@5.53.5) - svelte: 5.53.5 + '@testing-library/svelte-core': 1.0.0(svelte@5.55.1) + svelte: 5.55.1 optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitest: 4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) - '@tsconfig/svelte@5.0.7': {} + '@tsconfig/svelte@5.0.8': {} '@tufjs/canonical-json@2.0.0': {} '@tufjs/models@4.1.0': dependencies: '@tufjs/canonical-json': 2.0.0 - minimatch: 10.2.4 + minimatch: 10.2.5 '@tybys/wasm-util@0.10.1': dependencies: @@ -21001,6 +21131,8 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 + '@types/esrecurse@4.3.1': {} + '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': @@ -21058,11 +21190,11 @@ snapshots: '@types/normalize-package-data@2.4.4': {} - '@types/react-dom@19.2.3(@types/react@19.2.13)': + '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: - '@types/react': 19.2.13 + '@types/react': 19.2.14 - '@types/react@19.2.13': + '@types/react@19.2.14': dependencies: csstype: 3.2.3 @@ -21118,7 +21250,7 @@ snapshots: eslint: 9.39.4(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.8.3) + ts-api-utils: 2.5.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -21134,7 +21266,7 @@ snapshots: eslint: 9.39.4(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -21215,7 +21347,7 @@ snapshots: '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.8.3) + ts-api-utils: 2.5.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -21227,7 +21359,7 @@ snapshots: '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -21241,10 +21373,10 @@ snapshots: '@typescript-eslint/types': 8.56.1 '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.8.3) + ts-api-utils: 2.5.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -21256,10 +21388,10 @@ snapshots: '@typescript-eslint/types': 8.56.1 '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -21352,34 +21484,34 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@urql/core@5.2.0(graphql@16.12.0)': + '@urql/core@5.2.0(graphql@16.13.2)': dependencies: - '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) - wonka: 6.3.5 + '@0no-co/graphql.web': 1.2.0(graphql@16.13.2) + wonka: 6.3.6 transitivePeerDependencies: - graphql - '@urql/exchange-retry@1.3.2(@urql/core@5.2.0(graphql@16.12.0))': + '@urql/exchange-retry@1.3.2(@urql/core@5.2.0(graphql@16.13.2))': dependencies: - '@urql/core': 5.2.0(graphql@16.12.0) - wonka: 6.3.5 + '@urql/core': 5.2.0(graphql@16.13.2) + wonka: 6.3.6 - '@vercel/analytics@1.6.1(@sveltejs/kit@2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.53.5)(vue@3.5.28(typescript@5.8.3))': + '@vercel/analytics@1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': optionalDependencies: - '@sveltejs/kit': 2.53.3(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.5)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.53.5)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) - next: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) + '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + next: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: 19.2.4 - svelte: 5.53.5 - vue: 3.5.28(typescript@5.8.3) + svelte: 5.55.1 + vue: 3.5.31(typescript@5.8.3) '@vercel/functions@2.2.13': dependencies: '@vercel/oidc': 2.0.2 - '@vercel/nft@0.30.3(encoding@0.1.13)(rollup@4.57.1)': + '@vercel/nft@0.30.3(rollup@4.60.1)': dependencies: - '@mapbox/node-pre-gyp': 2.0.3(encoding@0.1.13) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@mapbox/node-pre-gyp': 2.0.3 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) acorn: 8.16.0 acorn-import-attributes: 1.9.5(acorn@8.16.0) async-sema: 3.1.1 @@ -21395,16 +21527,16 @@ snapshots: - rollup - supports-color - '@vercel/nft@1.3.0(encoding@0.1.13)(rollup@4.57.1)': + '@vercel/nft@1.5.0(rollup@4.60.1)': dependencies: - '@mapbox/node-pre-gyp': 2.0.3(encoding@0.1.13) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@mapbox/node-pre-gyp': 2.0.3 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) acorn: 8.16.0 acorn-import-attributes: 1.9.5(acorn@8.16.0) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 - glob: 13.0.1 + glob: 13.0.6 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 picomatch: 4.0.4 @@ -21419,7 +21551,7 @@ snapshots: '@types/ms': 2.1.0 ms: 2.1.3 - '@vercel/routing-utils@5.3.2': + '@vercel/routing-utils@5.3.3': dependencies: path-to-regexp: 6.1.0 path-to-regexp-updated: path-to-regexp@6.3.0 @@ -21438,15 +21570,15 @@ snapshots: h3: 1.15.10 http-shutdown: 1.2.2 jiti: 1.21.7 - mlly: 1.8.0 - node-forge: 1.3.3 + mlly: 1.8.2 + node-forge: 1.4.0 pathe: 1.1.2 std-env: 3.10.0 ufo: 1.6.3 untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@babel/parser': 7.29.2 acorn: 8.16.0 @@ -21457,24 +21589,24 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - '@vinxi/server-components@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@vinxi/server-components@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) acorn: 8.16.0 acorn-loose: 8.5.2 acorn-typescript: 1.4.13(acorn@8.16.0) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - '@vitejs/plugin-basic-ssl@2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -21482,21 +21614,21 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3))': dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vue: 3.5.28(typescript@5.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vue: 3.5.31(typescript@5.8.3) - '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3))': dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vue: 3.5.28(typescript@5.9.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vue: 3.5.31(typescript@5.9.3) - '@vitest/coverage-istanbul@4.0.6(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@vitest/coverage-istanbul@4.0.6(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.3 @@ -21506,61 +21638,64 @@ snapshots: istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 magicast: 0.3.5 - tinyrainbow: 3.0.3 - vitest: 4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + tinyrainbow: 3.1.0 + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.6.7(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': dependencies: '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) typescript: 5.9.3 - vitest: 4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - '@vitest/expect@4.0.18': + '@vitest/expect@4.1.2': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.0.18 - '@vitest/utils': 4.0.18 + '@vitest/spy': 4.1.2 + '@vitest/utils': 4.1.2 chai: 6.2.2 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@vitest/mocker@4.0.18(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2))': + '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.0.18 + '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.9(@types/node@22.19.15)(typescript@5.9.3) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + msw: 2.12.14(@types/node@22.19.15)(typescript@5.9.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - '@vitest/pretty-format@4.0.18': + '@vitest/pretty-format@4.1.2': dependencies: - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@vitest/runner@4.0.18': + '@vitest/runner@4.1.2': dependencies: - '@vitest/utils': 4.0.18 + '@vitest/utils': 4.1.2 pathe: 2.0.3 - '@vitest/snapshot@4.0.18': + '@vitest/snapshot@4.1.2': dependencies: - '@vitest/pretty-format': 4.0.18 + '@vitest/pretty-format': 4.1.2 + '@vitest/utils': 4.1.2 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.18': {} + '@vitest/spy@4.1.2': {} - '@vitest/utils@4.0.18': + '@vitest/utils@4.1.2': dependencies: - '@vitest/pretty-format': 4.0.18 - tinyrainbow: 3.0.3 + '@vitest/pretty-format': 4.1.2 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 '@volar/kit@2.4.28(typescript@5.8.3)': dependencies: @@ -21624,123 +21759,110 @@ snapshots: '@vscode/l10n@0.0.18': {} - '@vue/compiler-core@3.5.28': + '@vue/compiler-core@3.5.31': dependencies: '@babel/parser': 7.29.2 - '@vue/shared': 3.5.28 + '@vue/shared': 3.5.31 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.28': + '@vue/compiler-dom@3.5.31': dependencies: - '@vue/compiler-core': 3.5.28 - '@vue/shared': 3.5.28 + '@vue/compiler-core': 3.5.31 + '@vue/shared': 3.5.31 '@vue/compiler-sfc@2.7.16': dependencies: '@babel/parser': 7.29.2 - postcss: 8.5.6 + postcss: 8.5.8 source-map: 0.6.1 optionalDependencies: prettier: 2.8.8 - '@vue/compiler-sfc@3.5.28': + '@vue/compiler-sfc@3.5.31': dependencies: '@babel/parser': 7.29.2 - '@vue/compiler-core': 3.5.28 - '@vue/compiler-dom': 3.5.28 - '@vue/compiler-ssr': 3.5.28 - '@vue/shared': 3.5.28 + '@vue/compiler-core': 3.5.31 + '@vue/compiler-dom': 3.5.31 + '@vue/compiler-ssr': 3.5.31 + '@vue/shared': 3.5.31 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.6 + postcss: 8.5.8 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.28': + '@vue/compiler-ssr@3.5.31': dependencies: - '@vue/compiler-dom': 3.5.28 - '@vue/shared': 3.5.28 + '@vue/compiler-dom': 3.5.31 + '@vue/shared': 3.5.31 '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 he: 1.2.0 - '@vue/composition-api@1.7.2(vue@3.5.28(typescript@5.9.3))': + '@vue/composition-api@1.7.2(vue@3.5.31(typescript@5.9.3))': dependencies: - vue: 3.5.28(typescript@5.9.3) + vue: 3.5.31(typescript@5.9.3) '@vue/devtools-api@6.6.4': {} '@vue/language-core@2.1.6(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.28 + '@vue/compiler-dom': 3.5.31 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.28 + '@vue/shared': 3.5.31 computeds: 0.0.1 - minimatch: 9.0.5 + minimatch: 9.0.9 muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: typescript: 5.9.3 - '@vue/language-core@2.1.6(typescript@6.0.1-rc)': - dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.28 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.28 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 6.0.1-rc - '@vue/language-core@2.2.12(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.15 - '@vue/compiler-dom': 3.5.28 + '@vue/compiler-dom': 3.5.31 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.28 + '@vue/shared': 3.5.31 alien-signals: 1.0.13 - minimatch: 9.0.5 + minimatch: 9.0.9 muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: typescript: 5.8.3 - '@vue/reactivity@3.5.28': + '@vue/reactivity@3.5.31': dependencies: - '@vue/shared': 3.5.28 + '@vue/shared': 3.5.31 - '@vue/runtime-core@3.5.28': + '@vue/runtime-core@3.5.31': dependencies: - '@vue/reactivity': 3.5.28 - '@vue/shared': 3.5.28 + '@vue/reactivity': 3.5.31 + '@vue/shared': 3.5.31 - '@vue/runtime-dom@3.5.28': + '@vue/runtime-dom@3.5.31': dependencies: - '@vue/reactivity': 3.5.28 - '@vue/runtime-core': 3.5.28 - '@vue/shared': 3.5.28 + '@vue/reactivity': 3.5.31 + '@vue/runtime-core': 3.5.31 + '@vue/shared': 3.5.31 csstype: 3.2.3 - '@vue/server-renderer@3.5.28(vue@3.5.28(typescript@5.8.3))': + '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@5.8.3))': dependencies: - '@vue/compiler-ssr': 3.5.28 - '@vue/shared': 3.5.28 - vue: 3.5.28(typescript@5.8.3) + '@vue/compiler-ssr': 3.5.31 + '@vue/shared': 3.5.31 + vue: 3.5.31(typescript@5.8.3) - '@vue/server-renderer@3.5.28(vue@3.5.28(typescript@5.9.3))': + '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@5.9.3))': dependencies: - '@vue/compiler-ssr': 3.5.28 - '@vue/shared': 3.5.28 - vue: 3.5.28(typescript@5.9.3) + '@vue/compiler-ssr': 3.5.31 + '@vue/shared': 3.5.31 + vue: 3.5.31(typescript@5.9.3) - '@vue/shared@3.5.28': {} + '@vue/shared@3.5.31': {} '@webassemblyjs/ast@1.14.1': dependencies: @@ -21914,33 +22036,33 @@ snapshots: webpack: 4.47.0(webpack-cli@4.10.0) webpack-cli: 4.10.0(webpack@4.47.0) - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.105.0)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.105.4)': dependencies: - webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.105.0) + webpack: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.105.4) '@webpack-cli/info@1.5.0(webpack-cli@4.10.0)': dependencies: envinfo: 7.21.0 webpack-cli: 4.10.0(webpack@4.47.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.105.0)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.105.4)': dependencies: - webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.105.0) + webpack: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.105.4) '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)': dependencies: webpack-cli: 4.10.0(webpack@4.47.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.105.0)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.105.4)': dependencies: - webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.105.0) + webpack: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.105.4) '@xmldom/xmldom@0.7.13': {} - '@xmldom/xmldom@0.8.11': {} + '@xmldom/xmldom@0.8.12': {} '@xtuc/ieee754@1.2.0': {} @@ -22015,33 +22137,33 @@ snapshots: optionalDependencies: ajv: 8.13.0 - ajv-draft-04@1.0.0(ajv@8.17.1): + ajv-draft-04@1.0.0(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 ajv-errors@1.0.1(ajv@6.14.0): dependencies: ajv: 6.14.0 - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 ajv-formats@3.0.1(ajv@8.13.0): optionalDependencies: ajv: 8.13.0 - ajv-formats@3.0.1(ajv@8.17.1): + ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 ajv-keywords@3.5.2(ajv@6.14.0): dependencies: ajv: 6.14.0 - ajv-keywords@5.1.0(ajv@8.17.1): + ajv-keywords@5.1.0(ajv@8.18.0): dependencies: - ajv: 8.17.1 + ajv: 8.18.0 fast-deep-equal: 3.1.3 ajv@6.14.0: @@ -22065,7 +22187,7 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 - ajv@8.17.1: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.1.0 @@ -22152,7 +22274,7 @@ snapshots: graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 - lodash: 4.17.23 + lodash: 4.17.21 normalize-path: 3.0.0 readable-stream: 4.7.0 @@ -22163,10 +22285,11 @@ snapshots: buffer-crc32: 1.0.0 readable-stream: 4.7.0 readdir-glob: 1.1.3 - tar-stream: 3.1.7 + tar-stream: 3.1.8 zip-stream: 6.0.1 transitivePeerDependencies: - bare-abort-controller + - bare-buffer - react-native-b4a are-docs-informative@0.0.2: {} @@ -22279,7 +22402,7 @@ snapshots: asn1.js@4.10.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 inherits: 2.0.4 minimalistic-assert: 1.0.1 @@ -22306,7 +22429,7 @@ snapshots: astring@1.9.0: {} - astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@1.21.7)(lightningcss@1.30.2)(rollup@4.57.1)(sass@1.90.0)(terser@5.46.0)(typescript@5.8.3)(yaml@2.8.2): + astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3): dependencies: '@astrojs/compiler': 2.13.1 '@astrojs/internal-helpers': 0.7.6 @@ -22314,7 +22437,7 @@ snapshots: '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 4.0.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) acorn: 8.16.0 aria-query: 5.3.2 axobject-query: 4.1.0 @@ -22361,10 +22484,10 @@ snapshots: ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 - unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) + unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1) vfile: 6.0.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -22425,30 +22548,30 @@ snapshots: atob@2.1.2: {} - autoprefixer@10.4.24(postcss@8.5.6): + autoprefixer@10.4.27(postcss@8.5.8): dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001769 + browserslist: 4.28.2 + caniuse-lite: 1.0.30001782 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.8 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 - axios@1.13.5: + axios@1.14.0: dependencies: follow-redirects: 1.15.11 form-data: 4.0.5 - proxy-from-env: 1.1.0 + proxy-from-env: 2.1.0 transitivePeerDependencies: - debug axobject-query@4.1.0: {} - b4a@1.7.3: {} + b4a@1.8.0: {} babel-core@7.0.0-bridge.0(@babel/core@7.29.0): dependencies: @@ -22485,12 +22608,12 @@ snapshots: schema-utils: 2.7.1 webpack: 4.47.0(webpack-cli@4.10.0) - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.105.0): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.105.4): dependencies: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) + webpack: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) babel-plugin-istanbul@6.1.1: dependencies: @@ -22519,7 +22642,7 @@ snapshots: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 - babel-plugin-jsx-dom-expressions@0.40.3(@babel/core@7.29.0): + babel-plugin-jsx-dom-expressions@0.40.6(@babel/core@7.29.0): dependencies: '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.18.6 @@ -22528,11 +22651,11 @@ snapshots: html-entities: 2.3.3 parse5: 7.3.0 - babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0): + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0): dependencies: '@babel/compat-data': 7.29.0 '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -22540,23 +22663,23 @@ snapshots: babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): dependencies: '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - core-js-compat: 3.48.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.14.0(@babel/core@7.29.0): + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0): dependencies: '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - core-js-compat: 3.48.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.29.0): + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0): dependencies: '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -22599,7 +22722,7 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) - babel-preset-expo@12.0.12(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0)): + babel-preset-expo@12.0.12(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0)): dependencies: '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) @@ -22607,7 +22730,7 @@ snapshots: '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) '@babel/preset-react': 7.28.5(@babel/core@7.29.0) '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@react-native/babel-preset': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0)) + '@react-native/babel-preset': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0)) babel-plugin-react-native-web: 0.19.13 react-refresh: 0.14.2 transitivePeerDependencies: @@ -22621,12 +22744,12 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) - babel-preset-solid@1.9.10(@babel/core@7.29.0)(solid-js@1.9.11): + babel-preset-solid@1.9.12(@babel/core@7.29.0)(solid-js@1.9.12): dependencies: '@babel/core': 7.29.0 - babel-plugin-jsx-dom-expressions: 0.40.3(@babel/core@7.29.0) + babel-plugin-jsx-dom-expressions: 0.40.6(@babel/core@7.29.0) optionalDependencies: - solid-js: 1.9.11 + solid-js: 1.9.12 bail@2.0.2: {} @@ -22636,6 +22759,36 @@ snapshots: bare-events@2.8.2: {} + bare-fs@4.5.6: + dependencies: + bare-events: 2.8.2 + bare-path: 3.0.0 + bare-stream: 2.12.0(bare-events@2.8.2) + bare-url: 2.4.0 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.8.6: {} + + bare-path@3.0.0: + dependencies: + bare-os: 3.8.6 + + bare-stream@2.12.0(bare-events@2.8.2): + dependencies: + streamx: 2.25.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.4.0: + dependencies: + bare-path: 3.0.0 + base-64@1.0.0: {} base64-js@1.5.1: {} @@ -22650,7 +22803,7 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 - baseline-browser-mapping@2.9.19: {} + baseline-browser-mapping@2.10.13: {} beasties@0.3.5: dependencies: @@ -22660,7 +22813,7 @@ snapshots: domhandler: 5.0.3 htmlparser2: 10.1.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.8 postcss-media-query-parser: 0.2.3 better-opn@3.0.2: @@ -22698,9 +22851,9 @@ snapshots: bluebird@3.7.2: {} - bn.js@4.12.2: {} + bn.js@4.12.3: {} - bn.js@5.2.2: {} + bn.js@5.2.3: {} body-parser@2.2.2: dependencies: @@ -22710,7 +22863,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.14.1 + qs: 6.15.0 raw-body: 3.0.2 type-is: 2.0.1 transitivePeerDependencies: @@ -22745,16 +22898,16 @@ snapshots: dependencies: big-integer: 1.6.52 - brace-expansion@1.1.12: + brace-expansion@1.1.13: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.0.3: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -22810,13 +22963,13 @@ snapshots: browserify-rsa@4.1.1: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 randombytes: 2.1.0 safe-buffer: 5.2.1 browserify-sign@4.2.5: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 browserify-rsa: 4.1.1 create-hash: 1.2.0 create-hmac: 1.1.7 @@ -22830,13 +22983,13 @@ snapshots: dependencies: pako: 1.0.11 - browserslist@4.28.1: + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001769 - electron-to-chromium: 1.5.286 - node-releases: 2.0.27 - update-browserslist-db: 1.2.3(browserslist@4.28.1) + baseline-browser-mapping: 2.10.13 + caniuse-lite: 1.0.30001782 + electron-to-chromium: 1.5.329 + node-releases: 2.0.36 + update-browserslist-db: 1.2.3(browserslist@4.28.2) bser@2.1.1: dependencies: @@ -22875,6 +23028,10 @@ snapshots: builtin-status-codes@3.0.0: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + bundle-require@5.1.0(esbuild@0.27.4): dependencies: esbuild: 0.27.4 @@ -22893,7 +23050,7 @@ snapshots: chokidar: 5.0.0 confbox: 0.2.4 defu: 6.1.4 - dotenv: 17.2.4 + dotenv: 17.3.1 exsolve: 1.0.8 giget: 2.0.0 jiti: 2.6.1 @@ -22931,28 +23088,27 @@ snapshots: fs-minipass: 3.0.3 glob: 10.5.0 lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 minipass-collect: 2.0.1 - minipass-flush: 1.0.5 + minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.6 tar: 6.2.1 unique-filename: 3.0.0 - cacache@20.0.3: + cacache@20.0.4: dependencies: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 - glob: 13.0.1 + glob: 13.0.6 lru-cache: 11.2.7 - minipass: 7.1.2 + minipass: 7.1.3 minipass-collect: 2.0.1 - minipass-flush: 1.0.5 + minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 p-map: 7.0.4 ssri: 13.0.1 - unique-filename: 5.0.0 cache-base@1.0.1: dependencies: @@ -23008,7 +23164,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001769: {} + caniuse-lite@1.0.30001782: {} ccount@2.0.1: {} @@ -23059,7 +23215,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.21.0 + undici: 7.24.6 whatwg-mimetype: 4.0.0 chokidar@2.1.8: @@ -23145,7 +23301,7 @@ snapshots: dependencies: consola: 3.4.2 - citty@0.2.0: {} + citty@0.2.1: {} class-utils@0.3.6: dependencies: @@ -23236,7 +23392,7 @@ snapshots: cliui@9.0.1: dependencies: string-width: 7.2.0 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 wrap-ansi: 9.0.2 clone-deep@4.0.1: @@ -23307,15 +23463,14 @@ snapshots: commander@8.3.0: {} - comment-json@4.5.1: + comment-json@4.6.2: dependencies: array-timsort: 1.0.3 - core-util-is: 1.0.3 esprima: 4.0.1 comment-parser@1.4.1: {} - comment-parser@1.4.5: {} + comment-parser@1.4.6: {} common-ancestor-path@1.0.1: {} @@ -23397,6 +23552,8 @@ snapshots: cookie-es@2.0.0: {} + cookie-es@3.1.1: {} + cookie-signature@1.2.2: {} cookie@0.6.0: {} @@ -23420,9 +23577,9 @@ snapshots: copy-descriptor@0.1.1: {} - core-js-compat@3.48.0: + core-js-compat@3.49.0: dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 core-util-is@1.0.3: {} @@ -23469,7 +23626,7 @@ snapshots: create-ecdh@4.0.4: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 elliptic: 6.6.1 create-hash@1.2.0: @@ -23489,15 +23646,15 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.12 - croner@9.1.0: {} + croner@10.0.1: {} cross-env@7.0.3: dependencies: cross-spawn: 7.0.6 - cross-fetch@3.2.0(encoding@0.1.13): + cross-fetch@3.2.0: dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding @@ -23538,55 +23695,55 @@ snapshots: crypto-random-string@2.0.0: {} - cspell-config-lib@9.6.4: + cspell-config-lib@9.7.0: dependencies: - '@cspell/cspell-types': 9.6.4 - comment-json: 4.5.1 + '@cspell/cspell-types': 9.7.0 + comment-json: 4.6.2 smol-toml: 1.6.1 - yaml: 2.8.2 + yaml: 2.8.3 - cspell-dictionary@9.6.4: + cspell-dictionary@9.7.0: dependencies: - '@cspell/cspell-performance-monitor': 9.6.4 - '@cspell/cspell-pipe': 9.6.4 - '@cspell/cspell-types': 9.6.4 - cspell-trie-lib: 9.6.4(@cspell/cspell-types@9.6.4) + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 + cspell-trie-lib: 9.7.0(@cspell/cspell-types@9.7.0) fast-equals: 6.0.0 - cspell-glob@9.6.4: + cspell-glob@9.7.0: dependencies: - '@cspell/url': 9.6.4 + '@cspell/url': 9.7.0 picomatch: 4.0.4 - cspell-grammar@9.6.4: + cspell-grammar@9.7.0: dependencies: - '@cspell/cspell-pipe': 9.6.4 - '@cspell/cspell-types': 9.6.4 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 - cspell-io@9.6.4: + cspell-io@9.7.0: dependencies: - '@cspell/cspell-service-bus': 9.6.4 - '@cspell/url': 9.6.4 + '@cspell/cspell-service-bus': 9.7.0 + '@cspell/url': 9.7.0 - cspell-lib@9.6.4: + cspell-lib@9.7.0: dependencies: - '@cspell/cspell-bundled-dicts': 9.6.4 - '@cspell/cspell-performance-monitor': 9.6.4 - '@cspell/cspell-pipe': 9.6.4 - '@cspell/cspell-resolver': 9.6.4 - '@cspell/cspell-types': 9.6.4 - '@cspell/dynamic-import': 9.6.4 - '@cspell/filetypes': 9.6.4 - '@cspell/rpc': 9.6.4 - '@cspell/strong-weak-map': 9.6.4 - '@cspell/url': 9.6.4 + '@cspell/cspell-bundled-dicts': 9.7.0 + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-resolver': 9.7.0 + '@cspell/cspell-types': 9.7.0 + '@cspell/dynamic-import': 9.7.0 + '@cspell/filetypes': 9.7.0 + '@cspell/rpc': 9.7.0 + '@cspell/strong-weak-map': 9.7.0 + '@cspell/url': 9.7.0 clear-module: 4.1.2 - cspell-config-lib: 9.6.4 - cspell-dictionary: 9.6.4 - cspell-glob: 9.6.4 - cspell-grammar: 9.6.4 - cspell-io: 9.6.4 - cspell-trie-lib: 9.6.4(@cspell/cspell-types@9.6.4) + cspell-config-lib: 9.7.0 + cspell-dictionary: 9.7.0 + cspell-glob: 9.7.0 + cspell-grammar: 9.7.0 + cspell-io: 9.7.0 + cspell-trie-lib: 9.7.0(@cspell/cspell-types@9.7.0) env-paths: 4.0.0 gensequence: 8.0.8 import-fresh: 3.3.1 @@ -23595,9 +23752,9 @@ snapshots: vscode-uri: 3.1.0 xdg-basedir: 5.1.0 - cspell-trie-lib@9.6.4(@cspell/cspell-types@9.6.4): + cspell-trie-lib@9.7.0(@cspell/cspell-types@9.7.0): dependencies: - '@cspell/cspell-types': 9.6.4 + '@cspell/cspell-types': 9.7.0 css-in-js-utils@3.1.0: dependencies: @@ -23657,7 +23814,7 @@ snapshots: cssstyle@5.3.7: dependencies: '@asamuzakjp/css-color': 4.1.2 - '@csstools/css-syntax-patches-for-csstree': 1.0.27 + '@csstools/css-syntax-patches-for-csstree': 1.1.2(css-tree@3.2.1) css-tree: 3.2.1 lru-cache: 11.2.7 @@ -23755,6 +23912,13 @@ snapshots: deepmerge@4.3.1: {} + default-browser-id@5.0.1: {} + + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + default-gateway@4.2.0: dependencies: execa: 1.0.0 @@ -23772,6 +23936,8 @@ snapshots: define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -23843,7 +24009,7 @@ snapshots: diffie-hellman@5.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 miller-rabin: 4.0.1 randombytes: 2.1.0 @@ -23918,7 +24084,7 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.2.4: {} + dotenv@17.3.1: {} dset@3.1.4: {} @@ -23941,11 +24107,11 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.286: {} + electron-to-chromium@1.5.329: {} elliptic@6.6.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 brorand: 1.1.0 hash.js: 1.1.7 hmac-drbg: 1.0.1 @@ -23979,11 +24145,6 @@ snapshots: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 - encoding@0.1.13: - dependencies: - iconv-lite: 0.6.3 - optional: true - end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -23994,10 +24155,10 @@ snapshots: memory-fs: 0.5.0 tapable: 1.1.3 - enhanced-resolve@5.19.0: + enhanced-resolve@5.20.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.2 enquirer@2.3.6: dependencies: @@ -24119,7 +24280,7 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.1.0 - es-iterator-helpers@1.2.2: + es-iterator-helpers@1.3.1: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 @@ -24136,6 +24297,7 @@ snapshots: has-symbols: 1.1.0 internal-slot: 1.1.0 iterator.prototype: 1.1.5 + math-intrinsics: 1.1.0 safe-array-concat: 1.1.3 es-module-lexer@1.7.0: {} @@ -24165,13 +24327,13 @@ snapshots: esbuild-plugin-file-path-extensions@2.1.4: {} - esbuild-plugin-solid@0.5.0(esbuild@0.27.4)(solid-js@1.9.11): + esbuild-plugin-solid@0.5.0(esbuild@0.27.4)(solid-js@1.9.12): dependencies: '@babel/core': 7.29.0 '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - babel-preset-solid: 1.9.10(@babel/core@7.29.0)(solid-js@1.9.11) + babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.12) esbuild: 0.27.4 - solid-js: 1.9.11 + solid-js: 1.9.12 transitivePeerDependencies: - supports-color @@ -24229,7 +24391,7 @@ snapshots: '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) '@eslint/js': 9.39.4 eslint: 9.39.4(jiti@2.6.1) - eslint-plugin-compat: 6.1.0(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-compat: 6.2.1(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-react-hooks: 5.2.0(eslint@9.39.4(jiti@2.6.1)) globals: 16.5.0 @@ -24243,12 +24405,11 @@ snapshots: optionalDependencies: unrs-resolver: 1.11.1 - eslint-plugin-compat@6.1.0(eslint@9.39.4(jiti@2.6.1)): + eslint-plugin-compat@6.2.1(eslint@9.39.4(jiti@2.6.1)): dependencies: '@mdn/browser-compat-data': 6.1.5 ast-metadata-inferer: 0.8.1 - browserslist: 4.28.1 - caniuse-lite: 1.0.30001769 + browserslist: 4.28.2 eslint: 9.39.4(jiti@2.6.1) find-up: 5.0.0 globals: 15.15.0 @@ -24262,15 +24423,16 @@ snapshots: eslint: 9.39.4(jiti@2.6.1) eslint-compat-utils: 0.5.1(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)): dependencies: + '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.56.1 - comment-parser: 1.4.5 + comment-parser: 1.4.6 debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 @@ -24295,10 +24457,10 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-n@17.23.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - enhanced-resolve: 5.19.0 + enhanced-resolve: 5.20.1 eslint: 9.39.4(jiti@2.6.1) eslint-plugin-es-x: 7.8.0(eslint@9.39.4(jiti@2.6.1)) get-tsconfig: 4.13.7 @@ -24310,13 +24472,13 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-react-dom@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-dom@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -24327,13 +24489,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-hooks-extra@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.56.1 @@ -24358,13 +24520,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-naming-convention@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-naming-convention@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.56.1 @@ -24377,11 +24539,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-rsc@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-rsc@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.56.1 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) @@ -24390,13 +24552,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-web-api@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-web-api@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -24407,13 +24569,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-x@2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-x@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.12.2 - '@eslint-react/shared': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.12.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.56.1 @@ -24421,7 +24583,7 @@ snapshots: compare-versions: 6.1.1 eslint: 9.39.4(jiti@2.6.1) is-immutable-type: 5.0.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) ts-pattern: 5.9.0 typescript: 5.9.3 transitivePeerDependencies: @@ -24434,7 +24596,7 @@ snapshots: array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.2.2 + es-iterator-helpers: 1.3.1 eslint: 9.39.4(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 @@ -24444,12 +24606,12 @@ snapshots: object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.6 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-svelte@3.14.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.53.5): + eslint-plugin-svelte@3.16.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.55.1): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -24457,17 +24619,17 @@ snapshots: esutils: 2.0.3 globals: 16.5.0 known-css-properties: 0.37.0 - postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6) - postcss-safe-parser: 7.0.1(postcss@8.5.6) + postcss: 8.5.8 + postcss-load-config: 3.1.4(postcss@8.5.8) + postcss-safe-parser: 7.0.1(postcss@8.5.8) semver: 7.7.4 - svelte-eslint-parser: 1.4.1(svelte@5.53.5) + svelte-eslint-parser: 1.6.0(svelte@5.55.1) optionalDependencies: - svelte: 5.53.5 + svelte: 5.55.1 transitivePeerDependencies: - ts-node - eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@5.8.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.4(jiti@2.6.1))): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) eslint: 9.39.4(jiti@2.6.1) @@ -24475,13 +24637,13 @@ snapshots: nth-check: 2.1.1 postcss-selector-parser: 7.1.1 semver: 7.7.4 - vue-eslint-parser: 10.2.0(eslint@9.39.4(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@9.39.4(jiti@2.6.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.8.0(eslint@9.39.4(jiti@2.6.1)) + '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1)) '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) - eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@5.8.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.4(jiti@2.6.1))): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) eslint: 9.39.4(jiti@2.6.1) @@ -24489,10 +24651,10 @@ snapshots: nth-check: 2.1.1 postcss-selector-parser: 7.1.1 semver: 7.7.4 - vue-eslint-parser: 10.2.0(eslint@9.39.4(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@9.39.4(jiti@2.6.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.8.0(eslint@9.39.4(jiti@2.6.1)) + '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1)) '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-scope@4.0.3: @@ -24510,6 +24672,13 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@2.1.0: {} eslint-visitor-keys@3.4.3: {} @@ -24567,15 +24736,22 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 + espree@11.2.0: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 + esprima@4.0.1: {} esquery@1.7.0: dependencies: estraverse: 5.3.0 - esrap@2.2.3: + esrap@2.2.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + '@typescript-eslint/types': 8.56.1 esrecurse@4.3.0: dependencies: @@ -24620,8 +24796,6 @@ snapshots: md5.js: 1.3.5 safe-buffer: 5.2.1 - exec-async@2.2.0: {} - execa@1.0.0: dependencies: cross-spawn: 6.0.6 @@ -24670,60 +24844,60 @@ snapshots: expect-type@1.3.0: {} - expect@30.2.0: + expect@30.3.0: dependencies: - '@jest/expect-utils': 30.2.0 + '@jest/expect-utils': 30.3.0 '@jest/get-type': 30.1.0 - jest-matcher-utils: 30.2.0 - jest-message-util: 30.2.0 - jest-mock: 30.2.0 - jest-util: 30.2.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 - expo-asset@11.0.5(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + expo-asset@11.0.5(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: '@expo/image-utils': 0.6.5 - expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - expo-constants: 17.0.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4)) + expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + expo-constants: 17.0.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4)) invariant: 2.2.4 md5-file: 3.2.3 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) transitivePeerDependencies: - supports-color - expo-constants@17.0.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4)): + expo-constants@17.0.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) transitivePeerDependencies: - supports-color - expo-constants@17.1.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4)): + expo-constants@17.1.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4)): dependencies: '@expo/config': 11.0.13 '@expo/env': 1.0.7 - expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) transitivePeerDependencies: - supports-color - expo-file-system@18.0.12(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4)): + expo-file-system@18.0.12(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4)): dependencies: - expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) web-streams-polyfill: 3.3.3 - expo-font@13.0.4(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react@19.2.4): + expo-font@13.0.4(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react@19.2.4): dependencies: - expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) fontfaceobserver: 2.3.0 react: 19.2.4 - expo-keep-awake@14.0.3(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react@19.2.4): + expo-keep-awake@14.0.3(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react@19.2.4): dependencies: - expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + expo: 52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) react: 19.2.4 expo-modules-autolinking@2.0.8: @@ -24741,33 +24915,33 @@ snapshots: dependencies: invariant: 2.2.4 - expo-status-bar@2.2.3(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + expo-status-bar@2.2.3(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) - react-native-edge-to-edge: 1.6.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - react-native-is-edge-to-edge: 1.2.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) + react-native-edge-to-edge: 1.6.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + react-native-is-edge-to-edge: 1.3.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) - expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: - '@babel/runtime': 7.28.6 - '@expo/cli': 0.22.28(encoding@0.1.13)(graphql@16.12.0) + '@babel/runtime': 7.29.2 + '@expo/cli': 0.22.28(graphql@16.13.2) '@expo/config': 10.0.11 '@expo/config-plugins': 9.0.17 '@expo/fingerprint': 0.11.11 '@expo/metro-config': 0.19.12 '@expo/vector-icons': 14.0.4 - babel-preset-expo: 12.0.12(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0)) - expo-asset: 11.0.5(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) - expo-constants: 17.0.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4)) - expo-file-system: 18.0.12(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4)) - expo-font: 13.0.4(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react@19.2.4) - expo-keep-awake: 14.0.3(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13)(graphql@16.12.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react@19.2.4) + babel-preset-expo: 12.0.12(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0)) + expo-asset: 11.0.5(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) + expo-constants: 17.0.8(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4)) + expo-file-system: 18.0.12(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4)) + expo-font: 13.0.4(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react@19.2.4) + expo-keep-awake: 14.0.3(expo@52.0.49(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(graphql@16.13.2)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react@19.2.4) expo-modules-autolinking: 2.0.8 expo-modules-core: 2.2.3 - fbemitter: 3.0.0(encoding@0.1.13) + fbemitter: 3.0.0 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) web-streams-polyfill: 3.3.3 whatwg-url-without-unicode: 8.0.0-3 transitivePeerDependencies: @@ -24783,10 +24957,10 @@ snapshots: exponential-backoff@3.1.3: {} - express-rate-limit@8.2.1(express@5.2.1): + express-rate-limit@8.3.2(express@5.2.1): dependencies: express: 5.2.1 - ip-address: 10.0.1 + ip-address: 10.1.0 express@5.2.1: dependencies: @@ -24810,7 +24984,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.1 + qs: 6.15.0 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 @@ -24881,17 +25055,17 @@ snapshots: dependencies: bser: 2.1.1 - fbemitter@3.0.0(encoding@0.1.13): + fbemitter@3.0.0: dependencies: - fbjs: 3.0.5(encoding@0.1.13) + fbjs: 3.0.5 transitivePeerDependencies: - encoding fbjs-css-vars@1.0.2: {} - fbjs@3.0.5(encoding@0.1.13): + fbjs@3.0.5: dependencies: - cross-fetch: 3.2.0(encoding@0.1.13) + cross-fetch: 3.2.0 fbjs-css-vars: 1.0.2 loose-envify: 1.4.0 object-assign: 4.1.1 @@ -25000,23 +25174,23 @@ snapshots: fix-dts-default-cjs-exports@1.0.1: dependencies: magic-string: 0.30.21 - mlly: 1.8.0 - rollup: 4.57.1 + mlly: 1.8.2 + rollup: 4.60.1 flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.4.2 keyv: 4.5.4 flat@5.0.2: {} - flatted@3.3.3: {} + flatted@3.4.2: {} flattie@1.1.1: {} flow-enums-runtime@0.0.6: {} - flow-parser@0.299.0: {} + flow-parser@0.307.1: {} flush-write-stream@1.1.1: dependencies: @@ -25125,7 +25299,7 @@ snapshots: fs-minipass@3.0.3: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 fs-write-stream-atomic@1.0.10: dependencies: @@ -25139,7 +25313,7 @@ snapshots: fsevents@1.2.13: dependencies: bindings: 1.5.0 - nan: 2.25.0 + nan: 2.26.2 optional: true fsevents@2.3.3: @@ -25166,7 +25340,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.4.0: {} + get-east-asian-width@1.5.0: {} get-intrinsic@1.3.0: dependencies: @@ -25192,7 +25366,7 @@ snapshots: get-stream@4.1.0: dependencies: - pump: 3.0.3 + pump: 3.0.4 get-stream@6.0.1: {} @@ -25245,16 +25419,16 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 + minimatch: 9.0.9 + minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@13.0.1: + glob@13.0.6: dependencies: - minimatch: 10.2.4 - minipass: 7.1.2 - path-scurry: 2.0.1 + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 glob@7.2.3: dependencies: @@ -25265,9 +25439,9 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - global-directory@4.0.1: + global-directory@5.0.0: dependencies: - ini: 4.1.1 + ini: 6.0.0 globals@14.0.0: {} @@ -25297,7 +25471,7 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 - globby@16.1.0: + globby@16.2.0: dependencies: '@sindresorhus/merge-streams': 4.0.0 fast-glob: 3.3.3 @@ -25316,12 +25490,12 @@ snapshots: graceful-fs@4.2.11: {} - graphql-request@7.4.0(graphql@16.12.0): + graphql-request@7.4.0(graphql@16.13.2): dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.12.0) - graphql: 16.12.0 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.13.2) + graphql: 16.13.2 - graphql@16.12.0: {} + graphql@16.13.2: {} gzip-size@7.0.0: dependencies: @@ -25518,7 +25692,7 @@ snapshots: history@5.3.0: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 hmac-drbg@1.0.1: dependencies: @@ -25530,7 +25704,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.11.9: {} + hono@4.12.9: {} hookable@5.5.3: {} @@ -25550,7 +25724,7 @@ snapshots: html-encoding-sniffer@6.0.0: dependencies: - '@exodus/bytes': 1.12.0 + '@exodus/bytes': 1.15.0 transitivePeerDependencies: - '@noble/hashes' @@ -25582,7 +25756,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.46.0 + terser: 5.46.1 html-to-image@1.11.13: {} @@ -25595,21 +25769,21 @@ snapshots: '@types/webpack': 4.41.40 html-minifier-terser: 5.1.1 loader-utils: 1.4.2 - lodash: 4.17.23 + lodash: 4.17.21 pretty-error: 2.1.2 tapable: 1.1.3 util.promisify: 1.0.0 webpack: 4.47.0(webpack-cli@4.10.0) - html-webpack-plugin@5.6.6(webpack@5.105.0): + html-webpack-plugin@5.6.6(webpack@5.105.4): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 - lodash: 4.17.23 + lodash: 4.17.21 pretty-error: 4.0.0 - tapable: 2.3.0 + tapable: 2.3.2 optionalDependencies: - webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) + webpack: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) htmlparser2@10.1.0: dependencies: @@ -25661,7 +25835,7 @@ snapshots: transitivePeerDependencies: - supports-color - httpxy@0.1.7: {} + httpxy@0.3.1: {} human-id@4.1.3: {} @@ -25687,7 +25861,7 @@ snapshots: ignore-walk@8.0.0: dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 ignore@5.3.2: {} @@ -25699,7 +25873,7 @@ snapshots: immediate@3.0.6: {} - immutable@5.1.4: {} + immutable@5.1.5: {} import-fresh@2.0.0: dependencies: @@ -25739,8 +25913,6 @@ snapshots: ini@1.3.8: {} - ini@4.1.1: {} - ini@5.0.0: {} ini@6.0.0: {} @@ -25769,9 +25941,9 @@ snapshots: dependencies: loose-envify: 1.4.0 - ioredis@5.9.2: + ioredis@5.10.1: dependencies: - '@ioredis/commands': 1.5.0 + '@ioredis/commands': 1.5.1 cluster-key-slot: 1.1.2 debug: 4.4.3 denque: 2.1.0 @@ -25783,8 +25955,6 @@ snapshots: transitivePeerDependencies: - supports-color - ip-address@10.0.1: {} - ip-address@10.1.0: {} ip-regex@2.1.0: {} @@ -25895,7 +26065,7 @@ snapshots: is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.4.0 + get-east-asian-width: 1.5.0 is-generator-function@1.1.2: dependencies: @@ -25918,12 +26088,14 @@ snapshots: dependencies: '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) ts-declaration-location: 1.0.7(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color + is-in-ssh@1.0.0: {} + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 @@ -26060,6 +26232,8 @@ snapshots: isexe@3.1.5: {} + isexe@4.0.0: {} + isobject@2.1.0: dependencies: isarray: 1.0.0 @@ -26122,12 +26296,12 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jest-diff@30.2.0: + jest-diff@30.3.0: dependencies: - '@jest/diff-sequences': 30.0.1 + '@jest/diff-sequences': 30.3.0 '@jest/get-type': 30.1.0 chalk: 4.1.2 - pretty-format: 30.2.0 + pretty-format: 30.3.0 jest-environment-node@29.7.0: dependencies: @@ -26156,27 +26330,27 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - jest-haste-map@30.2.0: + jest-haste-map@30.3.0: dependencies: - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 '@types/node': 22.19.15 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 30.0.1 - jest-util: 30.2.0 - jest-worker: 30.2.0 - micromatch: 4.0.8 + jest-util: 30.3.0 + jest-worker: 30.3.0 + picomatch: 4.0.4 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - jest-matcher-utils@30.2.0: + jest-matcher-utils@30.3.0: dependencies: '@jest/get-type': 30.1.0 chalk: 4.1.2 - jest-diff: 30.2.0 - pretty-format: 30.2.0 + jest-diff: 30.3.0 + pretty-format: 30.3.0 jest-message-util@29.7.0: dependencies: @@ -26190,15 +26364,15 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-message-util@30.2.0: + jest-message-util@30.3.0: dependencies: '@babel/code-frame': 7.29.0 - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 30.2.0 + picomatch: 4.0.4 + pretty-format: 30.3.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -26208,37 +26382,37 @@ snapshots: '@types/node': 22.19.15 jest-util: 29.7.0 - jest-mock@30.2.0: + jest-mock@30.3.0: dependencies: - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 '@types/node': 22.19.15 - jest-util: 30.2.0 + jest-util: 30.3.0 jest-regex-util@29.6.3: {} jest-regex-util@30.0.1: {} - jest-snapshot@30.2.0: + jest-snapshot@30.3.0: dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/types': 7.29.0 - '@jest/expect-utils': 30.2.0 + '@jest/expect-utils': 30.3.0 '@jest/get-type': 30.1.0 - '@jest/snapshot-utils': 30.2.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 + '@jest/snapshot-utils': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) chalk: 4.1.2 - expect: 30.2.0 + expect: 30.3.0 graceful-fs: 4.2.11 - jest-diff: 30.2.0 - jest-matcher-utils: 30.2.0 - jest-message-util: 30.2.0 - jest-util: 30.2.0 - pretty-format: 30.2.0 + jest-diff: 30.3.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-util: 30.3.0 + pretty-format: 30.3.0 semver: 7.7.4 synckit: 0.11.12 transitivePeerDependencies: @@ -26253,9 +26427,9 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.2 - jest-util@30.2.0: + jest-util@30.3.0: dependencies: - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 '@types/node': 22.19.15 chalk: 4.1.2 ci-info: 4.4.0 @@ -26284,11 +26458,11 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@30.2.0: + jest-worker@30.3.0: dependencies: '@types/node': 22.19.15 '@ungap/structured-clone': 1.3.0 - jest-util: 30.2.0 + jest-util: 30.3.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -26302,7 +26476,7 @@ snapshots: join-component@1.1.0: {} - jose@6.1.3: {} + jose@6.2.2: {} joycon@3.1.1: {} @@ -26325,7 +26499,7 @@ snapshots: jsc-safe-url@0.2.4: {} - jscodeshift@0.14.0(@babel/preset-env@7.29.0(@babel/core@7.29.0)): + jscodeshift@0.14.0(@babel/preset-env@7.29.2(@babel/core@7.29.0)): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.2 @@ -26333,13 +26507,13 @@ snapshots: '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.29.0) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.29.0) '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/preset-env': 7.29.0(@babel/core@7.29.0) + '@babel/preset-env': 7.29.2(@babel/core@7.29.0) '@babel/preset-flow': 7.27.1(@babel/core@7.29.0) '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) '@babel/register': 7.28.6(@babel/core@7.29.0) babel-core: 7.0.0-bridge.0(@babel/core@7.29.0) chalk: 4.1.2 - flow-parser: 0.299.0 + flow-parser: 0.307.1 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -26350,7 +26524,7 @@ snapshots: transitivePeerDependencies: - supports-color - jscodeshift@17.3.0(@babel/preset-env@7.29.0(@babel/core@7.29.0)): + jscodeshift@17.3.0(@babel/preset-env@7.29.2(@babel/core@7.29.0)): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.2 @@ -26362,7 +26536,7 @@ snapshots: '@babel/preset-flow': 7.27.1(@babel/core@7.29.0) '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) '@babel/register': 7.28.6(@babel/core@7.29.0) - flow-parser: 0.299.0 + flow-parser: 0.307.1 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -26371,7 +26545,7 @@ snapshots: tmp: 0.2.5 write-file-atomic: 5.0.1 optionalDependencies: - '@babel/preset-env': 7.29.0(@babel/core@7.29.0) + '@babel/preset-env': 7.29.2(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -26398,7 +26572,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.19.0 + ws: 8.20.0 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -26408,8 +26582,8 @@ snapshots: jsdom@27.4.0: dependencies: '@acemir/cssom': 0.9.31 - '@asamuzakjp/dom-selector': 6.7.8 - '@exodus/bytes': 1.12.0 + '@asamuzakjp/dom-selector': 6.8.1 + '@exodus/bytes': 1.15.0 cssstyle: 5.3.7 data-urls: 6.0.1 decimal.js: 10.6.0 @@ -26420,12 +26594,12 @@ snapshots: parse5: 8.0.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 6.0.0 + tough-cookie: 6.0.1 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 4.0.0 whatwg-url: 15.1.0 - ws: 8.19.0 + ws: 8.20.0 xml-name-validator: 5.0.0 transitivePeerDependencies: - '@noble/hashes' @@ -26504,7 +26678,7 @@ snapshots: klona@2.0.6: {} - knip@6.0.2: + knip@6.1.1(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): dependencies: '@nodelib/fs.walk': 1.2.8 fast-glob: 3.3.3 @@ -26512,15 +26686,18 @@ snapshots: get-tsconfig: 4.13.7 jiti: 2.6.1 minimist: 1.2.8 - oxc-parser: 0.120.0 - oxc-resolver: 11.19.1 + oxc-parser: 0.121.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + oxc-resolver: 11.19.1(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) picocolors: 1.1.1 picomatch: 4.0.4 smol-toml: 1.6.1 strip-json-comments: 5.0.3 unbash: 2.2.0 - yaml: 2.8.2 + yaml: 2.8.3 zod: 4.3.6 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' knitwork@1.3.0: {} @@ -26550,67 +26727,67 @@ snapshots: transitivePeerDependencies: - supports-color - lightningcss-android-arm64@1.30.2: + lightningcss-android-arm64@1.32.0: optional: true lightningcss-darwin-arm64@1.27.0: optional: true - lightningcss-darwin-arm64@1.30.2: + lightningcss-darwin-arm64@1.32.0: optional: true lightningcss-darwin-x64@1.27.0: optional: true - lightningcss-darwin-x64@1.30.2: + lightningcss-darwin-x64@1.32.0: optional: true lightningcss-freebsd-x64@1.27.0: optional: true - lightningcss-freebsd-x64@1.30.2: + lightningcss-freebsd-x64@1.32.0: optional: true lightningcss-linux-arm-gnueabihf@1.27.0: optional: true - lightningcss-linux-arm-gnueabihf@1.30.2: + lightningcss-linux-arm-gnueabihf@1.32.0: optional: true lightningcss-linux-arm64-gnu@1.27.0: optional: true - lightningcss-linux-arm64-gnu@1.30.2: + lightningcss-linux-arm64-gnu@1.32.0: optional: true lightningcss-linux-arm64-musl@1.27.0: optional: true - lightningcss-linux-arm64-musl@1.30.2: + lightningcss-linux-arm64-musl@1.32.0: optional: true lightningcss-linux-x64-gnu@1.27.0: optional: true - lightningcss-linux-x64-gnu@1.30.2: + lightningcss-linux-x64-gnu@1.32.0: optional: true lightningcss-linux-x64-musl@1.27.0: optional: true - lightningcss-linux-x64-musl@1.30.2: + lightningcss-linux-x64-musl@1.32.0: optional: true lightningcss-win32-arm64-msvc@1.27.0: optional: true - lightningcss-win32-arm64-msvc@1.30.2: + lightningcss-win32-arm64-msvc@1.32.0: optional: true lightningcss-win32-x64-msvc@1.27.0: optional: true - lightningcss-win32-x64-msvc@1.30.2: + lightningcss-win32-x64-msvc@1.32.0: optional: true lightningcss@1.27.0: @@ -26628,21 +26805,21 @@ snapshots: lightningcss-win32-arm64-msvc: 1.27.0 lightningcss-win32-x64-msvc: 1.27.0 - lightningcss@1.30.2: + lightningcss@1.32.0: dependencies: detect-libc: 2.1.2 optionalDependencies: - lightningcss-android-arm64: 1.30.2 - lightningcss-darwin-arm64: 1.30.2 - lightningcss-darwin-x64: 1.30.2 - lightningcss-freebsd-x64: 1.30.2 - lightningcss-linux-arm-gnueabihf: 1.30.2 - lightningcss-linux-arm64-gnu: 1.30.2 - lightningcss-linux-arm64-musl: 1.30.2 - lightningcss-linux-x64-gnu: 1.30.2 - lightningcss-linux-x64-musl: 1.30.2 - lightningcss-win32-arm64-msvc: 1.30.2 - lightningcss-win32-x64-msvc: 1.30.2 + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 lilconfig@2.1.0: {} @@ -26669,8 +26846,8 @@ snapshots: h3: 1.15.10 http-shutdown: 1.2.2 jiti: 2.6.1 - mlly: 1.8.0 - node-forge: 1.3.3 + mlly: 1.8.2 + node-forge: 1.4.0 pathe: 1.1.2 std-env: 3.10.0 ufo: 1.6.3 @@ -26688,7 +26865,7 @@ snapshots: lmdb@3.4.2: dependencies: - msgpackr: 1.11.8 + msgpackr: 1.11.9 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 ordered-binary: 1.6.1 @@ -26723,12 +26900,12 @@ snapshots: local-pkg@0.5.1: dependencies: - mlly: 1.8.0 + mlly: 1.8.2 pkg-types: 1.3.1 local-pkg@1.1.2: dependencies: - mlly: 1.8.0 + mlly: 1.8.2 pkg-types: 2.3.0 quansync: 0.2.11 @@ -26771,8 +26948,6 @@ snapshots: lodash@4.17.21: {} - lodash@4.17.23: {} - log-symbols@2.2.0: dependencies: chalk: 2.4.2 @@ -26792,7 +26967,7 @@ snapshots: ansi-escapes: 7.3.0 cli-cursor: 5.0.0 slice-ansi: 7.1.2 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 wrap-ansi: 9.0.2 longest-streak@3.1.0: {} @@ -26860,18 +27035,19 @@ snapshots: dependencies: semver: 7.7.4 - make-fetch-happen@15.0.3: + make-fetch-happen@15.0.5: dependencies: + '@gar/promise-retry': 1.0.3 '@npmcli/agent': 4.0.0 - cacache: 20.0.3 + '@npmcli/redact': 4.0.0 + cacache: 20.0.4 http-cache-semantics: 4.2.0 - minipass: 7.1.2 - minipass-fetch: 5.0.1 - minipass-flush: 1.0.5 + minipass: 7.1.3 + minipass-fetch: 5.0.2 + minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 negotiator: 1.0.0 proc-log: 6.1.0 - promise-retry: 2.0.1 ssri: 13.0.1 transitivePeerDependencies: - supports-color @@ -26886,7 +27062,7 @@ snapshots: dependencies: object-visit: 1.0.1 - markdown-it@14.1.0: + markdown-it@14.1.1: dependencies: argparse: 2.0.1 entities: 4.5.0 @@ -26898,7 +27074,7 @@ snapshots: markdown-link-extractor@4.0.3: dependencies: html-link-extractor: 1.0.5 - marked: 17.0.1 + marked: 17.0.5 markdown-table@3.0.4: {} @@ -26913,7 +27089,7 @@ snapshots: node-emoji: 2.2.0 supports-hyperlinks: 3.2.0 - marked@17.0.1: {} + marked@17.0.5: {} marked@9.1.6: {} @@ -26921,7 +27097,7 @@ snapshots: match-sorter@6.4.0: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 remove-accents: 0.5.0 math-intrinsics@1.1.0: {} @@ -27155,7 +27331,7 @@ snapshots: metro-minify-terser@0.81.5: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.46.0 + terser: 5.46.1 metro-resolver@0.81.5: dependencies: @@ -27163,7 +27339,7 @@ snapshots: metro-runtime@0.81.5: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 flow-enums-runtime: 0.0.6 metro-source-map@0.81.5: @@ -27486,7 +27662,7 @@ snapshots: miller-rabin@4.0.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 brorand: 1.1.0 mime-db@1.52.0: {} @@ -27521,45 +27697,45 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} - minimatch@10.2.4: + minimatch@10.2.5: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.0.8: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.13 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.13 - minimatch@5.1.6: + minimatch@5.1.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.3 minimatch@9.0.3: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.3 - minimatch@9.0.5: + minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.3 minimist@1.2.8: {} minipass-collect@2.0.1: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 - minipass-fetch@5.0.1: + minipass-fetch@5.0.2: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 minipass-sized: 2.0.0 minizlib: 3.1.0 optionalDependencies: - encoding: 0.1.13 + iconv-lite: 0.7.2 - minipass-flush@1.0.5: + minipass-flush@1.0.7: dependencies: minipass: 3.3.6 @@ -27569,7 +27745,7 @@ snapshots: minipass-sized@2.0.0: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 minipass@3.3.6: dependencies: @@ -27577,7 +27753,7 @@ snapshots: minipass@5.0.0: {} - minipass@7.1.2: {} + minipass@7.1.3: {} minizlib@2.1.2: dependencies: @@ -27586,7 +27762,7 @@ snapshots: minizlib@3.1.0: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 mississippi@3.0.0: dependencies: @@ -27596,7 +27772,7 @@ snapshots: flush-write-stream: 1.1.1 from2: 2.3.0 parallel-transform: 1.2.0 - pump: 3.0.3 + pump: 3.0.4 pumpify: 1.5.1 stream-each: 1.2.3 through2: 2.0.5 @@ -27612,7 +27788,7 @@ snapshots: mkdirp@1.0.4: {} - mlly@1.8.0: + mlly@1.8.2: dependencies: acorn: 8.16.0 pathe: 2.0.3 @@ -27648,19 +27824,19 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 optional: true - msgpackr@1.11.8: + msgpackr@1.11.9: optionalDependencies: msgpackr-extract: 3.0.3 optional: true - msw@2.12.9(@types/node@22.19.15)(typescript@5.8.3): + msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3): dependencies: '@inquirer/confirm': 5.1.21(@types/node@22.19.15) - '@mswjs/interceptors': 0.41.2 + '@mswjs/interceptors': 0.41.3 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 cookie: 1.1.1 - graphql: 16.12.0 + graphql: 16.13.2 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 @@ -27669,7 +27845,7 @@ snapshots: rettime: 0.10.1 statuses: 2.0.2 strict-event-emitter: 0.5.1 - tough-cookie: 6.0.0 + tough-cookie: 6.0.1 type-fest: 5.5.0 until-async: 3.0.2 yargs: 17.7.2 @@ -27678,14 +27854,14 @@ snapshots: transitivePeerDependencies: - '@types/node' - msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3): + msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3): dependencies: '@inquirer/confirm': 5.1.21(@types/node@22.19.15) - '@mswjs/interceptors': 0.41.2 + '@mswjs/interceptors': 0.41.3 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 cookie: 1.1.1 - graphql: 16.12.0 + graphql: 16.13.2 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 @@ -27694,7 +27870,7 @@ snapshots: rettime: 0.10.1 statuses: 2.0.2 strict-event-emitter: 0.5.1 - tough-cookie: 6.0.0 + tough-cookie: 6.0.1 type-fest: 5.5.0 until-async: 3.0.2 yargs: 17.7.2 @@ -27714,12 +27890,12 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.25.0: + nan@2.26.2: optional: true nanoid@3.3.11: {} - nanoid@5.1.6: {} + nanoid@5.1.7: {} nanomatch@1.2.13: dependencies: @@ -27764,7 +27940,7 @@ snapshots: '@next/env': 14.2.35 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001769 + caniuse-lite: 1.0.30001782 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -27785,49 +27961,49 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.5.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0): + next@15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0): dependencies: - '@next/env': 15.5.12 + '@next/env': 15.5.14 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001769 + caniuse-lite: 1.0.30001782 postcss: 8.4.31 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) styled-jsx: 5.1.6(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 15.5.12 - '@next/swc-darwin-x64': 15.5.12 - '@next/swc-linux-arm64-gnu': 15.5.12 - '@next/swc-linux-arm64-musl': 15.5.12 - '@next/swc-linux-x64-gnu': 15.5.12 - '@next/swc-linux-x64-musl': 15.5.12 - '@next/swc-win32-arm64-msvc': 15.5.12 - '@next/swc-win32-x64-msvc': 15.5.12 + '@next/swc-darwin-arm64': 15.5.14 + '@next/swc-darwin-x64': 15.5.14 + '@next/swc-linux-arm64-gnu': 15.5.14 + '@next/swc-linux-arm64-musl': 15.5.14 + '@next/swc-linux-x64-gnu': 15.5.14 + '@next/swc-linux-x64-musl': 15.5.14 + '@next/swc-win32-arm64-msvc': 15.5.14 + '@next/swc-win32-x64-msvc': 15.5.14 sass: 1.90.0 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0): + next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0): dependencies: - '@next/env': 16.1.6 + '@next/env': 16.2.2 '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001769 + baseline-browser-mapping: 2.10.13 + caniuse-lite: 1.0.30001782 postcss: 8.4.31 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) styled-jsx: 5.1.6(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 16.1.6 - '@next/swc-darwin-x64': 16.1.6 - '@next/swc-linux-arm64-gnu': 16.1.6 - '@next/swc-linux-arm64-musl': 16.1.6 - '@next/swc-linux-x64-gnu': 16.1.6 - '@next/swc-linux-x64-musl': 16.1.6 - '@next/swc-win32-arm64-msvc': 16.1.6 - '@next/swc-win32-x64-msvc': 16.1.6 + '@next/swc-darwin-arm64': 16.2.2 + '@next/swc-darwin-x64': 16.2.2 + '@next/swc-linux-arm64-gnu': 16.2.2 + '@next/swc-linux-arm64-musl': 16.2.2 + '@next/swc-linux-x64-gnu': 16.2.2 + '@next/swc-linux-x64-musl': 16.2.2 + '@next/swc-win32-arm64-msvc': 16.2.2 + '@next/swc-win32-x64-msvc': 16.2.2 sass: 1.90.0 sharp: 0.34.5 transitivePeerDependencies: @@ -27836,26 +28012,26 @@ snapshots: nice-try@1.0.5: {} - nitropack@2.13.1(@vercel/functions@2.2.13)(encoding@0.1.13)(idb-keyval@6.2.2): + nitropack@2.13.2(@vercel/functions@2.2.13)(idb-keyval@6.2.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 - '@rollup/plugin-alias': 6.0.0(rollup@4.57.1) - '@rollup/plugin-commonjs': 29.0.0(rollup@4.57.1) - '@rollup/plugin-inject': 5.0.5(rollup@4.57.1) - '@rollup/plugin-json': 6.1.0(rollup@4.57.1) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.57.1) - '@rollup/plugin-replace': 6.0.3(rollup@4.57.1) - '@rollup/plugin-terser': 0.4.4(rollup@4.57.1) - '@vercel/nft': 1.3.0(encoding@0.1.13)(rollup@4.57.1) + '@rollup/plugin-alias': 6.0.0(rollup@4.60.1) + '@rollup/plugin-commonjs': 29.0.2(rollup@4.60.1) + '@rollup/plugin-inject': 5.0.5(rollup@4.60.1) + '@rollup/plugin-json': 6.1.0(rollup@4.60.1) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.1) + '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) + '@rollup/plugin-terser': 1.0.0(rollup@4.60.1) + '@vercel/nft': 1.5.0(rollup@4.60.1) archiver: 7.0.1 c12: 3.3.3(magicast@0.5.2) chokidar: 5.0.0 - citty: 0.1.6 + citty: 0.2.1 compatx: 0.2.0 confbox: 0.2.4 consola: 3.4.2 cookie-es: 2.0.0 - croner: 9.1.0 + croner: 10.0.1 crossws: 0.3.5 db0: 0.3.4 defu: 6.1.4 @@ -27865,12 +28041,12 @@ snapshots: escape-string-regexp: 5.0.0 etag: 1.8.1 exsolve: 1.0.8 - globby: 16.1.0 + globby: 16.2.0 gzip-size: 7.0.0 h3: 1.15.10 hookable: 5.5.3 - httpxy: 0.1.7 - ioredis: 5.9.2 + httpxy: 0.3.1 + ioredis: 5.10.1 jiti: 2.6.1 klona: 2.0.6 knitwork: 1.3.0 @@ -27878,7 +28054,7 @@ snapshots: magic-string: 0.30.21 magicast: 0.5.2 mime: 4.1.0 - mlly: 1.8.0 + mlly: 1.8.2 node-fetch-native: 1.6.7 node-mock-http: 1.0.4 ofetch: 1.5.1 @@ -27888,25 +28064,25 @@ snapshots: pkg-types: 2.3.0 pretty-bytes: 7.1.0 radix3: 1.1.2 - rollup: 4.57.1 - rollup-plugin-visualizer: 6.0.5(rollup@4.57.1) + rollup: 4.60.1 + rollup-plugin-visualizer: 7.0.1(rollup@4.60.1) scule: 1.3.0 semver: 7.7.4 serve-placeholder: 2.0.2 serve-static: 2.2.1 source-map: 0.7.6 - std-env: 3.10.0 + std-env: 4.0.0 ufo: 1.6.3 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 5.6.0 + unimport: 6.0.2 unplugin-utils: 0.3.1 - unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) + unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1) untyped: 2.0.0 unwasm: 0.5.3 - youch: 4.1.0-beta.13 + youch: 4.1.1 youch-core: 0.3.3 transitivePeerDependencies: - '@azure/app-configuration' @@ -27927,6 +28103,7 @@ snapshots: - '@vercel/kv' - aws4fetch - bare-abort-controller + - bare-buffer - better-sqlite3 - drizzle-orm - encoding @@ -27963,15 +28140,20 @@ snapshots: emojilib: 2.4.0 skin-tone: 2.0.0 + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-fetch-native@1.6.7: {} - node-fetch@2.7.0(encoding@0.1.13): + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - node-forge@1.3.3: {} + node-forge@1.4.0: {} node-gyp-build-optional-packages@5.2.2: dependencies: @@ -27985,13 +28167,13 @@ snapshots: env-paths: 2.2.1 exponential-backoff: 3.1.3 graceful-fs: 4.2.11 - make-fetch-happen: 15.0.3 + make-fetch-happen: 15.0.5 nopt: 9.0.0 proc-log: 6.1.0 semver: 7.7.4 - tar: 7.5.7 + tar: 7.5.13 tinyglobby: 0.2.15 - which: 6.0.0 + which: 6.0.1 transitivePeerDependencies: - supports-color @@ -28032,7 +28214,7 @@ snapshots: node-mock-http@1.0.4: {} - node-releases@2.0.27: {} + node-releases@2.0.36: {} nopt@8.1.0: dependencies: @@ -28080,7 +28262,7 @@ snapshots: semver: 7.7.4 validate-npm-package-name: 6.0.2 - npm-packlist@10.0.3: + npm-packlist@10.0.4: dependencies: ignore-walk: 8.0.0 proc-log: 6.1.0 @@ -28096,9 +28278,9 @@ snapshots: dependencies: '@npmcli/redact': 4.0.0 jsonparse: 1.3.1 - make-fetch-happen: 15.0.3 - minipass: 7.1.2 - minipass-fetch: 5.0.1 + make-fetch-happen: 15.0.5 + minipass: 7.1.3 + minipass-fetch: 5.0.2 minizlib: 3.1.0 npm-package-arg: 13.0.0 proc-log: 6.1.0 @@ -28141,7 +28323,7 @@ snapshots: '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 - axios: 1.13.5 + axios: 1.14.0 chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -28153,7 +28335,7 @@ snapshots: flat: 5.0.2 front-matter: 4.0.2 ignore: 7.0.5 - jest-diff: 30.2.0 + jest-diff: 30.3.0 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 minimatch: 9.0.3 @@ -28169,7 +28351,7 @@ snapshots: tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - yaml: 2.8.2 + yaml: 2.8.3 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: @@ -28188,7 +28370,7 @@ snapshots: nypm@0.6.5: dependencies: - citty: 0.2.0 + citty: 0.2.1 pathe: 2.0.3 tinyexec: 1.0.4 @@ -28321,6 +28503,15 @@ snapshots: regex: 6.1.0 regex-recursion: 6.0.2 + open@11.0.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-in-ssh: 1.0.0 + is-inside-container: 1.0.0 + powershell-utils: 0.1.0 + wsl-utils: 0.3.1 + open@7.4.2: dependencies: is-docker: 2.2.1 @@ -28371,7 +28562,7 @@ snapshots: log-symbols: 6.0.0 stdin-discarder: 0.2.2 string-width: 7.2.0 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 ordered-binary@1.6.1: optional: true @@ -28388,32 +28579,35 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-parser@0.120.0: + oxc-parser@0.121.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): dependencies: - '@oxc-project/types': 0.120.0 + '@oxc-project/types': 0.121.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.120.0 - '@oxc-parser/binding-android-arm64': 0.120.0 - '@oxc-parser/binding-darwin-arm64': 0.120.0 - '@oxc-parser/binding-darwin-x64': 0.120.0 - '@oxc-parser/binding-freebsd-x64': 0.120.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.120.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.120.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.120.0 - '@oxc-parser/binding-linux-arm64-musl': 0.120.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.120.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.120.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.120.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.120.0 - '@oxc-parser/binding-linux-x64-gnu': 0.120.0 - '@oxc-parser/binding-linux-x64-musl': 0.120.0 - '@oxc-parser/binding-openharmony-arm64': 0.120.0 - '@oxc-parser/binding-wasm32-wasi': 0.120.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.120.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.120.0 - '@oxc-parser/binding-win32-x64-msvc': 0.120.0 + '@oxc-parser/binding-android-arm-eabi': 0.121.0 + '@oxc-parser/binding-android-arm64': 0.121.0 + '@oxc-parser/binding-darwin-arm64': 0.121.0 + '@oxc-parser/binding-darwin-x64': 0.121.0 + '@oxc-parser/binding-freebsd-x64': 0.121.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.121.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.121.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.121.0 + '@oxc-parser/binding-linux-arm64-musl': 0.121.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.121.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.121.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.121.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.121.0 + '@oxc-parser/binding-linux-x64-gnu': 0.121.0 + '@oxc-parser/binding-linux-x64-musl': 0.121.0 + '@oxc-parser/binding-openharmony-arm64': 0.121.0 + '@oxc-parser/binding-wasm32-wasi': 0.121.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + '@oxc-parser/binding-win32-arm64-msvc': 0.121.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.121.0 + '@oxc-parser/binding-win32-x64-msvc': 0.121.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - oxc-resolver@11.19.1: + oxc-resolver@11.19.1(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.19.1 '@oxc-resolver/binding-android-arm64': 11.19.1 @@ -28431,10 +28625,13 @@ snapshots: '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 '@oxc-resolver/binding-linux-x64-musl': 11.19.1 '@oxc-resolver/binding-openharmony-arm64': 11.19.1 - '@oxc-resolver/binding-wasm32-wasi': 11.19.1 + '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' p-event@5.0.1: dependencies: @@ -28526,23 +28723,23 @@ snapshots: pacote@21.0.4: dependencies: - '@npmcli/git': 7.0.1 + '@npmcli/git': 7.0.2 '@npmcli/installed-package-contents': 4.0.0 - '@npmcli/package-json': 7.0.4 + '@npmcli/package-json': 7.0.5 '@npmcli/promise-spawn': 9.0.1 - '@npmcli/run-script': 10.0.3 - cacache: 20.0.3 + '@npmcli/run-script': 10.0.4 + cacache: 20.0.4 fs-minipass: 3.0.3 - minipass: 7.1.2 + minipass: 7.1.3 npm-package-arg: 13.0.0 - npm-packlist: 10.0.3 + npm-packlist: 10.0.4 npm-pick-manifest: 11.0.3 npm-registry-fetch: 19.1.1 proc-log: 6.1.0 promise-retry: 2.0.1 sigstore: 4.1.0 ssri: 13.0.1 - tar: 7.5.7 + tar: 7.5.13 transitivePeerDependencies: - supports-color @@ -28676,18 +28873,18 @@ snapshots: path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 - path-scurry@2.0.1: + path-scurry@2.0.2: dependencies: lru-cache: 11.2.7 - minipass: 7.1.2 + minipass: 7.1.3 path-to-regexp@6.1.0: {} path-to-regexp@6.3.0: {} - path-to-regexp@8.3.0: {} + path-to-regexp@8.4.1: {} path-type@4.0.0: {} @@ -28714,9 +28911,7 @@ snapshots: picomatch@2.3.2: {} - picomatch@3.0.1: {} - - picomatch@4.0.3: {} + picomatch@3.0.2: {} picomatch@4.0.4: {} @@ -28749,7 +28944,7 @@ snapshots: pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.8.0 + mlly: 1.8.2 pathe: 2.0.3 pkg-types@2.3.0: @@ -28760,7 +28955,7 @@ snapshots: plist@3.1.0: dependencies: - '@xmldom/xmldom': 0.8.11 + '@xmldom/xmldom': 0.8.12 base64-js: 1.5.1 xmlbuilder: 15.1.1 @@ -28770,62 +28965,62 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-import@15.1.0(postcss@8.5.6): + postcss-import@15.1.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.11 - postcss-js@4.1.0(postcss@8.5.6): + postcss-js@4.1.0(postcss@8.5.8): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.6 + postcss: 8.5.8 - postcss-load-config@3.1.4(postcss@8.5.6): + postcss-load-config@3.1.4(postcss@8.5.8): dependencies: lilconfig: 2.1.0 - yaml: 1.10.2 + yaml: 1.10.3 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.8 - postcss-load-config@4.0.2(postcss@8.5.6): + postcss-load-config@4.0.2(postcss@8.5.8): dependencies: lilconfig: 3.1.3 - yaml: 2.8.2 + yaml: 2.8.3 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.8 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.8)(yaml@2.8.3): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 - postcss: 8.5.6 - yaml: 2.8.2 + postcss: 8.5.8 + yaml: 2.8.3 - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.6 - yaml: 2.8.2 + postcss: 8.5.8 + yaml: 2.8.3 postcss-media-query-parser@0.2.3: {} - postcss-nested@6.2.0(postcss@8.5.6): + postcss-nested@6.2.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-selector-parser: 6.1.2 - postcss-safe-parser@7.0.1(postcss@8.5.6): + postcss-safe-parser@7.0.1(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 - postcss-scss@4.0.9(postcss@8.5.6): + postcss-scss@4.0.9(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-selector-parser@6.1.2: dependencies: @@ -28851,26 +29046,28 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.6: + postcss@8.5.8: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - preact-render-to-string@6.6.5(preact@10.28.3): + powershell-utils@0.1.0: {} + + preact-render-to-string@6.6.7(preact@10.29.0): dependencies: - preact: 10.28.3 + preact: 10.29.0 - preact@10.28.3: {} + preact@10.29.0: {} prelude-ls@1.2.1: {} premove@4.0.0: {} - prettier-plugin-svelte@3.4.1(prettier@3.8.1)(svelte@5.53.5): + prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.55.1): dependencies: prettier: 3.8.1 - svelte: 5.53.5 + svelte: 5.55.1 prettier@2.8.8: {} @@ -28882,12 +29079,12 @@ snapshots: pretty-error@2.1.2: dependencies: - lodash: 4.17.23 + lodash: 4.17.21 renderkid: 2.0.7 pretty-error@4.0.0: dependencies: - lodash: 4.17.23 + lodash: 4.17.21 renderkid: 3.0.0 pretty-format@27.5.1: @@ -28902,7 +29099,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-format@30.2.0: + pretty-format@30.3.0: dependencies: '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 @@ -28957,20 +29154,20 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} prr@1.0.1: {} public-encrypt@4.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 browserify-rsa: 4.1.1 create-hash: 1.2.0 parse-asn1: 5.1.9 randombytes: 2.1.0 safe-buffer: 5.2.1 - publint@0.3.17: + publint@0.3.18: dependencies: '@publint/pack': 0.1.4 package-manager-detector: 1.6.0 @@ -28982,7 +29179,7 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - pump@3.0.3: + pump@3.0.4: dependencies: end-of-stream: 1.4.5 once: 1.4.0 @@ -29001,7 +29198,7 @@ snapshots: qrcode-terminal@0.11.0: {} - qs@6.14.1: + qs@6.15.0: dependencies: side-channel: 1.1.0 @@ -29079,7 +29276,7 @@ snapshots: react-error-boundary@4.1.2(react@19.2.4): dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 react: 19.2.4 react-freeze@1.0.4(react@19.2.4): @@ -29105,39 +29302,39 @@ snapshots: react-is@18.3.1: {} - react-native-edge-to-edge@1.6.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-edge-to-edge@1.6.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) - react-native-gesture-handler@2.30.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) - react-native-is-edge-to-edge@1.1.7(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-is-edge-to-edge@1.1.7(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) - react-native-is-edge-to-edge@1.2.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-is-edge-to-edge@1.3.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) - react-native-paper@5.15.0(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-paper@5.15.0(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: '@callstack/react-theme-provider': 3.0.9(react@19.2.4) color: 3.2.1 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) - react-native-safe-area-context: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) + react-native-safe-area-context: 4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) use-latest-callback: 0.2.6(react@19.2.4) - react-native-reanimated@3.19.5(@babel/core@7.29.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-reanimated@3.19.5(@babel/core@7.29.0)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) @@ -29152,28 +29349,28 @@ snapshots: convert-source-map: 2.0.0 invariant: 2.2.4 react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) - react-native-is-edge-to-edge: 1.1.7(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) + react-native-is-edge-to-edge: 1.1.7(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) transitivePeerDependencies: - supports-color - react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: react: 19.2.4 - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) - react-native-screens@4.23.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4): + react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4): dependencies: react: 19.2.4 react-freeze: 1.0.4(react@19.2.4) - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4) warn-once: 0.1.1 - react-native-web@0.19.13(encoding@0.1.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + react-native-web@0.19.13(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 '@react-native/normalize-colors': 0.74.89 - fbjs: 3.0.5(encoding@0.1.13) + fbjs: 3.0.5 inline-style-prefixer: 6.0.4 memoize-one: 6.0.0 nullthrows: 1.1.1 @@ -29184,16 +29381,16 @@ snapshots: transitivePeerDependencies: - encoding - react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4): + react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.76.9 - '@react-native/codegen': 0.76.9(@babel/preset-env@7.29.0(@babel/core@7.29.0)) - '@react-native/community-cli-plugin': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(encoding@0.1.13) + '@react-native/codegen': 0.76.9(@babel/preset-env@7.29.2(@babel/core@7.29.0)) + '@react-native/community-cli-plugin': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0)) '@react-native/gradle-plugin': 0.76.9 '@react-native/js-polyfills': 0.76.9 '@react-native/normalize-colors': 0.76.9 - '@react-native/virtualized-lists': 0.76.9(@types/react@19.2.13)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.0(@babel/core@7.29.0))(@types/react@19.2.13)(encoding@0.1.13)(react@19.2.4))(react@19.2.4) + '@react-native/virtualized-lists': 0.76.9(@types/react@19.2.14)(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -29226,7 +29423,7 @@ snapshots: ws: 6.2.3 yargs: 17.7.2 optionalDependencies: - '@types/react': 19.2.13 + '@types/react': 19.2.14 transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' @@ -29302,7 +29499,7 @@ snapshots: readdir-glob@1.1.3: dependencies: - minimatch: 5.1.6 + minimatch: 5.1.9 readdirp@2.2.1: dependencies: @@ -29426,9 +29623,9 @@ snapshots: dependencies: jsesc: 3.1.0 - rehackt@0.1.0(@types/react@19.2.13)(react@19.2.4): + rehackt@0.1.0(@types/react@19.2.14)(react@19.2.4): optionalDependencies: - '@types/react': 19.2.13 + '@types/react': 19.2.14 react: 19.2.4 rehype-parse@9.0.1: @@ -29511,7 +29708,7 @@ snapshots: css-select: 4.3.0 dom-converter: 0.2.0 htmlparser2: 6.1.0 - lodash: 4.17.23 + lodash: 4.17.21 strip-ansi: 3.0.1 renderkid@3.0.0: @@ -29519,7 +29716,7 @@ snapshots: css-select: 4.3.0 dom-converter: 0.2.0 htmlparser2: 6.1.0 - lodash: 4.17.23 + lodash: 4.17.21 strip-ansi: 6.0.1 repeat-element@1.1.4: {} @@ -29576,9 +29773,12 @@ snapshots: dependencies: path-parse: 1.0.7 - resolve@2.0.0-next.5: + resolve@2.0.0-next.6: dependencies: + es-errors: 1.3.0 is-core-module: 2.16.1 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -29649,78 +29849,81 @@ snapshots: hash-base: 3.1.2 inherits: 2.0.4 - rollup-plugin-preserve-directives@0.4.0(rollup@4.57.1): + rollup-plugin-preserve-directives@0.4.0(rollup@4.60.1): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) magic-string: 0.30.21 - rollup: 4.57.1 + rollup: 4.60.1 - rollup-plugin-visualizer@6.0.5(rollup@4.57.1): + rollup-plugin-visualizer@7.0.1(rollup@4.60.1): dependencies: - open: 8.4.2 + open: 11.0.0 picomatch: 4.0.4 source-map: 0.7.6 - yargs: 17.7.2 + yargs: 18.0.0 optionalDependencies: - rollup: 4.57.1 + rollup: 4.60.1 - rollup@4.52.3: + rollup@4.59.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.52.3 - '@rollup/rollup-android-arm64': 4.52.3 - '@rollup/rollup-darwin-arm64': 4.52.3 - '@rollup/rollup-darwin-x64': 4.52.3 - '@rollup/rollup-freebsd-arm64': 4.52.3 - '@rollup/rollup-freebsd-x64': 4.52.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.3 - '@rollup/rollup-linux-arm-musleabihf': 4.52.3 - '@rollup/rollup-linux-arm64-gnu': 4.52.3 - '@rollup/rollup-linux-arm64-musl': 4.52.3 - '@rollup/rollup-linux-loong64-gnu': 4.52.3 - '@rollup/rollup-linux-ppc64-gnu': 4.52.3 - '@rollup/rollup-linux-riscv64-gnu': 4.52.3 - '@rollup/rollup-linux-riscv64-musl': 4.52.3 - '@rollup/rollup-linux-s390x-gnu': 4.52.3 - '@rollup/rollup-linux-x64-gnu': 4.52.3 - '@rollup/rollup-linux-x64-musl': 4.52.3 - '@rollup/rollup-openharmony-arm64': 4.52.3 - '@rollup/rollup-win32-arm64-msvc': 4.52.3 - '@rollup/rollup-win32-ia32-msvc': 4.52.3 - '@rollup/rollup-win32-x64-gnu': 4.52.3 - '@rollup/rollup-win32-x64-msvc': 4.52.3 + '@rollup/rollup-android-arm-eabi': 4.59.0 + '@rollup/rollup-android-arm64': 4.59.0 + '@rollup/rollup-darwin-arm64': 4.59.0 + '@rollup/rollup-darwin-x64': 4.59.0 + '@rollup/rollup-freebsd-arm64': 4.59.0 + '@rollup/rollup-freebsd-x64': 4.59.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 + '@rollup/rollup-linux-arm-musleabihf': 4.59.0 + '@rollup/rollup-linux-arm64-gnu': 4.59.0 + '@rollup/rollup-linux-arm64-musl': 4.59.0 + '@rollup/rollup-linux-loong64-gnu': 4.59.0 + '@rollup/rollup-linux-loong64-musl': 4.59.0 + '@rollup/rollup-linux-ppc64-gnu': 4.59.0 + '@rollup/rollup-linux-ppc64-musl': 4.59.0 + '@rollup/rollup-linux-riscv64-gnu': 4.59.0 + '@rollup/rollup-linux-riscv64-musl': 4.59.0 + '@rollup/rollup-linux-s390x-gnu': 4.59.0 + '@rollup/rollup-linux-x64-gnu': 4.59.0 + '@rollup/rollup-linux-x64-musl': 4.59.0 + '@rollup/rollup-openbsd-x64': 4.59.0 + '@rollup/rollup-openharmony-arm64': 4.59.0 + '@rollup/rollup-win32-arm64-msvc': 4.59.0 + '@rollup/rollup-win32-ia32-msvc': 4.59.0 + '@rollup/rollup-win32-x64-gnu': 4.59.0 + '@rollup/rollup-win32-x64-msvc': 4.59.0 fsevents: 2.3.3 - rollup@4.57.1: + rollup@4.60.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.57.1 - '@rollup/rollup-android-arm64': 4.57.1 - '@rollup/rollup-darwin-arm64': 4.57.1 - '@rollup/rollup-darwin-x64': 4.57.1 - '@rollup/rollup-freebsd-arm64': 4.57.1 - '@rollup/rollup-freebsd-x64': 4.57.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 - '@rollup/rollup-linux-arm-musleabihf': 4.57.1 - '@rollup/rollup-linux-arm64-gnu': 4.57.1 - '@rollup/rollup-linux-arm64-musl': 4.57.1 - '@rollup/rollup-linux-loong64-gnu': 4.57.1 - '@rollup/rollup-linux-loong64-musl': 4.57.1 - '@rollup/rollup-linux-ppc64-gnu': 4.57.1 - '@rollup/rollup-linux-ppc64-musl': 4.57.1 - '@rollup/rollup-linux-riscv64-gnu': 4.57.1 - '@rollup/rollup-linux-riscv64-musl': 4.57.1 - '@rollup/rollup-linux-s390x-gnu': 4.57.1 - '@rollup/rollup-linux-x64-gnu': 4.57.1 - '@rollup/rollup-linux-x64-musl': 4.57.1 - '@rollup/rollup-openbsd-x64': 4.57.1 - '@rollup/rollup-openharmony-arm64': 4.57.1 - '@rollup/rollup-win32-arm64-msvc': 4.57.1 - '@rollup/rollup-win32-ia32-msvc': 4.57.1 - '@rollup/rollup-win32-x64-gnu': 4.57.1 - '@rollup/rollup-win32-x64-msvc': 4.57.1 + '@rollup/rollup-android-arm-eabi': 4.60.1 + '@rollup/rollup-android-arm64': 4.60.1 + '@rollup/rollup-darwin-arm64': 4.60.1 + '@rollup/rollup-darwin-x64': 4.60.1 + '@rollup/rollup-freebsd-arm64': 4.60.1 + '@rollup/rollup-freebsd-x64': 4.60.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 + '@rollup/rollup-linux-arm64-musl': 4.60.1 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 + '@rollup/rollup-linux-loong64-musl': 4.60.1 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 + '@rollup/rollup-linux-x64-gnu': 4.60.1 + '@rollup/rollup-linux-x64-musl': 4.60.1 + '@rollup/rollup-openbsd-x64': 4.60.1 + '@rollup/rollup-openharmony-arm64': 4.60.1 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 + '@rollup/rollup-win32-x64-gnu': 4.60.1 + '@rollup/rollup-win32-x64-msvc': 4.60.1 fsevents: 2.3.3 rooks@8.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): @@ -29738,7 +29941,7 @@ snapshots: depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.3.0 + path-to-regexp: 8.4.1 transitivePeerDependencies: - supports-color @@ -29746,6 +29949,8 @@ snapshots: rrweb-cssom@0.8.0: {} + run-applescript@7.1.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -29794,7 +29999,7 @@ snapshots: sass@1.90.0: dependencies: chokidar: 4.0.3 - immutable: 5.1.4 + immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.6 @@ -29830,16 +30035,16 @@ snapshots: schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + ajv: 8.18.0 + ajv-formats: 2.1.1(ajv@8.18.0) + ajv-keywords: 5.1.0(ajv@8.18.0) scule@1.3.0: {} selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.14 - node-forge: 1.3.3 + node-forge: 1.4.0 semver@5.7.2: {} @@ -29893,15 +30098,13 @@ snapshots: dependencies: randombytes: 2.1.0 - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 + serialize-javascript@7.0.5: {} - seroval-plugins@1.5.0(seroval@1.5.0): + seroval-plugins@1.5.1(seroval@1.5.1): dependencies: - seroval: 1.5.0 + seroval: 1.5.1 - seroval@1.5.0: {} + seroval@1.5.1: {} serve-placeholder@2.0.2: dependencies: @@ -29927,7 +30130,7 @@ snapshots: server-destroy@1.0.1: {} - set-cookie-parser@3.0.1: {} + set-cookie-parser@3.1.0: {} set-function-length@1.2.2: dependencies: @@ -29974,7 +30177,7 @@ snapshots: sharp@0.34.5: dependencies: - '@img/colour': 1.0.0 + '@img/colour': 1.1.0 detect-libc: 2.1.2 semver: 7.7.4 optionalDependencies: @@ -30018,40 +30221,40 @@ snapshots: shell-quote@1.8.3: {} - sherif-darwin-arm64@1.10.0: + sherif-darwin-arm64@1.11.1: optional: true - sherif-darwin-x64@1.10.0: + sherif-darwin-x64@1.11.1: optional: true - sherif-linux-arm64-musl@1.10.0: + sherif-linux-arm64-musl@1.11.1: optional: true - sherif-linux-arm64@1.10.0: + sherif-linux-arm64@1.11.1: optional: true - sherif-linux-x64-musl@1.10.0: + sherif-linux-x64-musl@1.11.1: optional: true - sherif-linux-x64@1.10.0: + sherif-linux-x64@1.11.1: optional: true - sherif-windows-arm64@1.10.0: + sherif-windows-arm64@1.11.1: optional: true - sherif-windows-x64@1.10.0: + sherif-windows-x64@1.11.1: optional: true - sherif@1.10.0: + sherif@1.11.1: optionalDependencies: - sherif-darwin-arm64: 1.10.0 - sherif-darwin-x64: 1.10.0 - sherif-linux-arm64: 1.10.0 - sherif-linux-arm64-musl: 1.10.0 - sherif-linux-x64: 1.10.0 - sherif-linux-x64-musl: 1.10.0 - sherif-windows-arm64: 1.10.0 - sherif-windows-x64: 1.10.0 + sherif-darwin-arm64: 1.11.1 + sherif-darwin-x64: 1.11.1 + sherif-linux-arm64: 1.11.1 + sherif-linux-arm64-musl: 1.11.1 + sherif-linux-x64: 1.11.1 + sherif-linux-x64-musl: 1.11.1 + sherif-windows-arm64: 1.11.1 + sherif-windows-x64: 1.11.1 shiki@1.29.2: dependencies: @@ -30112,10 +30315,10 @@ snapshots: sigstore@4.1.0: dependencies: '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 + '@sigstore/core': 3.2.0 '@sigstore/protobuf-specs': 0.5.0 - '@sigstore/sign': 4.1.0 - '@sigstore/tuf': 4.0.1 + '@sigstore/sign': 4.1.1 + '@sigstore/tuf': 4.0.2 '@sigstore/verify': 3.1.0 transitivePeerDependencies: - supports-color @@ -30142,7 +30345,7 @@ snapshots: sisteransi@1.0.5: {} - size-limit@12.0.0(jiti@2.6.1): + size-limit@12.0.1(jiti@2.6.1): dependencies: bytes-iec: 3.1.1 lilconfig: 3.1.3 @@ -30172,11 +30375,11 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 - slugify@1.6.6: {} + slugify@1.6.8: {} smart-buffer@4.2.0: {} - smob@1.5.0: {} + smob@1.6.1: {} smol-toml@1.6.1: {} @@ -30216,40 +30419,40 @@ snapshots: ip-address: 10.1.0 smart-buffer: 4.2.0 - solid-js@1.9.11: + solid-js@1.9.12: dependencies: csstype: 3.2.3 - seroval: 1.5.0 - seroval-plugins: 1.5.0(seroval@1.5.0) + seroval: 1.5.1 + seroval-plugins: 1.5.1(seroval@1.5.1) - solid-presence@0.1.8(solid-js@1.9.11): + solid-presence@0.1.8(solid-js@1.9.12): dependencies: - '@corvu/utils': 0.4.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@corvu/utils': 0.4.2(solid-js@1.9.12) + solid-js: 1.9.12 - solid-prevent-scroll@0.1.10(solid-js@1.9.11): + solid-prevent-scroll@0.1.10(solid-js@1.9.12): dependencies: - '@corvu/utils': 0.4.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@corvu/utils': 0.4.2(solid-js@1.9.12) + solid-js: 1.9.12 - solid-refresh@0.6.3(solid-js@1.9.11): + solid-refresh@0.6.3(solid-js@1.9.12): dependencies: '@babel/generator': 7.29.1 '@babel/helper-module-imports': 7.28.6 '@babel/types': 7.29.0 - solid-js: 1.9.11 + solid-js: 1.9.12 transitivePeerDependencies: - supports-color - solid-transition-group@0.2.3(solid-js@1.9.11): + solid-transition-group@0.2.3(solid-js@1.9.12): dependencies: - '@solid-primitives/refs': 1.1.2(solid-js@1.9.11) - '@solid-primitives/transition-group': 1.1.2(solid-js@1.9.11) - solid-js: 1.9.11 + '@solid-primitives/refs': 1.1.3(solid-js@1.9.12) + '@solid-primitives/transition-group': 1.1.2(solid-js@1.9.12) + solid-js: 1.9.12 - solid-use@0.9.1(solid-js@1.9.11): + solid-use@0.9.1(solid-js@1.9.12): dependencies: - solid-js: 1.9.11 + solid-js: 1.9.12 sort-by@1.2.0: dependencies: @@ -30290,21 +30493,21 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.23 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.23 spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.23 - spdx-license-ids@3.0.22: {} + spdx-license-ids@3.0.23: {} split-on-first@1.1.0: {} @@ -30316,11 +30519,11 @@ snapshots: ssri@10.0.6: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 ssri@13.0.1: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 ssri@6.0.2: dependencies: @@ -30355,6 +30558,8 @@ snapshots: std-env@3.10.0: {} + std-env@4.0.0: {} + stdin-discarder@0.2.2: {} stop-iteration-iterator@1.1.0: @@ -30386,11 +30591,11 @@ snapshots: streamsearch@1.1.0: {} - streamx@2.23.0: + streamx@2.25.0: dependencies: events-universal: 1.0.1 fast-fifo: 1.3.2 - text-decoder: 1.2.3 + text-decoder: 1.2.7 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -30413,13 +30618,13 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.4.0 - strip-ansi: 7.1.2 + get-east-asian-width: 1.5.0 + strip-ansi: 7.2.0 string.prototype.matchall@4.0.12: dependencies: @@ -30490,7 +30695,7 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.2: + strip-ansi@7.2.0: dependencies: ansi-regex: 6.2.2 @@ -30580,49 +30785,50 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.8.3): + svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.53.5 + svelte: 5.55.1 typescript: 5.8.3 transitivePeerDependencies: - picomatch - svelte-check@4.4.5(picomatch@4.0.4)(svelte@5.53.5)(typescript@5.9.3): + svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.53.5 + svelte: 5.55.1 typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.4.1(svelte@5.53.5): + svelte-eslint-parser@1.6.0(svelte@5.55.1): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - postcss: 8.5.6 - postcss-scss: 4.0.9(postcss@8.5.6) + postcss: 8.5.8 + postcss-scss: 4.0.9(postcss@8.5.8) postcss-selector-parser: 7.1.1 + semver: 7.7.4 optionalDependencies: - svelte: 5.53.5 + svelte: 5.55.1 - svelte2tsx@0.7.47(svelte@5.53.5)(typescript@5.9.3): + svelte2tsx@0.7.53(svelte@5.55.1)(typescript@5.9.3): dependencies: dedent-js: 1.0.1 scule: 1.3.0 - svelte: 5.53.5 + svelte: 5.55.1 typescript: 5.9.3 - svelte@5.53.5: + svelte@5.55.1: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -30635,7 +30841,7 @@ snapshots: clsx: 2.1.1 devalue: 5.6.4 esm-env: 1.2.2 - esrap: 2.2.3 + esrap: 2.2.4 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -30661,7 +30867,7 @@ snapshots: tagged-tag@1.0.0: {} - tailwindcss@3.4.19(yaml@2.8.2): + tailwindcss@3.4.19(yaml@2.8.3): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -30677,11 +30883,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2) - postcss-nested: 6.2.0(postcss@8.5.6) + postcss: 8.5.8 + postcss-import: 15.1.0(postcss@8.5.8) + postcss-js: 4.1.0(postcss@8.5.8) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.8)(yaml@2.8.3) + postcss-nested: 6.2.0(postcss@8.5.8) postcss-selector-parser: 6.1.2 resolve: 1.22.11 sucrase: 3.35.1 @@ -30689,11 +30895,11 @@ snapshots: - tsx - yaml - tailwindcss@4.1.18: {} + tailwindcss@4.2.2: {} tapable@1.1.3: {} - tapable@2.3.0: {} + tapable@2.3.2: {} tar-stream@2.2.0: dependencies: @@ -30703,13 +30909,15 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar-stream@3.1.7: + tar-stream@3.1.8: dependencies: - b4a: 1.7.3 + b4a: 1.8.0 + bare-fs: 4.5.6 fast-fifo: 1.3.2 - streamx: 2.23.0 + streamx: 2.25.0 transitivePeerDependencies: - bare-abort-controller + - bare-buffer - react-native-b4a tar@6.2.1: @@ -30721,14 +30929,21 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - tar@7.5.7: + tar@7.5.13: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 - minipass: 7.1.2 + minipass: 7.1.3 minizlib: 3.1.0 yallist: 5.0.0 + teex@1.0.1: + dependencies: + streamx: 2.25.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + temp-dir@2.0.0: {} temp@0.8.4: @@ -30750,10 +30965,10 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terracotta@1.1.0(solid-js@1.9.11): + terracotta@1.1.0(solid-js@1.9.12): dependencies: - solid-js: 1.9.11 - solid-use: 0.9.1(solid-js@1.9.11) + solid-js: 1.9.12 + solid-use: 0.9.1(solid-js@1.9.12) terser-webpack-plugin@1.4.6(webpack@4.47.0): dependencies: @@ -30768,14 +30983,13 @@ snapshots: webpack-sources: 1.4.3 worker-farm: 1.7.0 - terser-webpack-plugin@5.3.16(esbuild@0.27.4)(webpack@5.105.0): + terser-webpack-plugin@5.4.0(esbuild@0.27.4)(webpack@5.105.4): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.46.0 - webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) + terser: 5.46.1 + webpack: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) optionalDependencies: esbuild: 0.27.4 @@ -30786,7 +31000,7 @@ snapshots: source-map: 0.6.1 source-map-support: 0.5.21 - terser@5.46.0: + terser@5.46.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -30799,9 +31013,9 @@ snapshots: glob: 7.2.3 minimatch: 3.1.5 - text-decoder@1.2.3: + text-decoder@1.2.7: dependencies: - b4a: 1.7.3 + b4a: 1.8.0 transitivePeerDependencies: - react-native-b4a @@ -30844,19 +31058,19 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinyrainbow@3.0.3: {} + tinyrainbow@3.1.0: {} tldts-core@6.1.86: {} - tldts-core@7.0.23: {} + tldts-core@7.0.27: {} tldts@6.1.86: dependencies: tldts-core: 6.1.86 - tldts@7.0.23: + tldts@7.0.27: dependencies: - tldts-core: 7.0.23 + tldts-core: 7.0.27 tmp@0.2.5: {} @@ -30898,9 +31112,9 @@ snapshots: dependencies: tldts: 6.1.86 - tough-cookie@6.0.0: + tough-cookie@6.0.1: dependencies: - tldts: 7.0.23 + tldts: 7.0.27 tr46@0.0.3: {} @@ -30918,11 +31132,11 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.4.0(typescript@5.8.3): + ts-api-utils@2.5.0(typescript@5.8.3): dependencies: typescript: 5.8.3 - ts-api-utils@2.4.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -30945,10 +31159,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsconfck@3.1.6(typescript@6.0.1-rc): - optionalDependencies: - typescript: 6.0.1-rc - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -30957,16 +31167,16 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.27.4)(solid-js@1.9.11)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2)): + tsup-preset-solid@2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)): dependencies: - esbuild-plugin-solid: 0.5.0(esbuild@0.27.4)(solid-js@1.9.11) - tsup: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) + esbuild-plugin-solid: 0.5.0(esbuild@0.27.4)(solid-js@1.9.12) + tsup: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3) transitivePeerDependencies: - esbuild - solid-js - supports-color - tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2): + tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3): dependencies: bundle-require: 5.1.0(esbuild@0.27.4) cac: 6.7.14 @@ -30977,9 +31187,9 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3) resolve-from: 5.0.0 - rollup: 4.57.1 + rollup: 4.60.1 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 @@ -30987,7 +31197,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) - postcss: 8.5.6 + postcss: 8.5.8 typescript: 5.9.3 transitivePeerDependencies: - jiti @@ -31001,7 +31211,7 @@ snapshots: dependencies: '@tufjs/models': 4.1.0 debug: 4.4.3 - make-fetch-happen: 15.0.3 + make-fetch-happen: 15.0.5 transitivePeerDependencies: - supports-color @@ -31071,7 +31281,7 @@ snapshots: typedoc-plugin-frontmatter@1.3.0(typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3))): dependencies: typedoc-plugin-markdown: 4.9.0(typedoc@0.28.14(typescript@5.9.3)) - yaml: 2.8.2 + yaml: 2.8.3 typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3)): dependencies: @@ -31079,12 +31289,12 @@ snapshots: typedoc@0.28.14(typescript@5.9.3): dependencies: - '@gerrit0/mini-shiki': 3.22.0 + '@gerrit0/mini-shiki': 3.23.0 lunr: 2.3.9 - markdown-it: 14.1.0 - minimatch: 9.0.5 + markdown-it: 14.1.1 + minimatch: 9.0.9 typescript: 5.9.3 - yaml: 2.8.2 + yaml: 2.8.3 typesafe-path@0.2.2: {} @@ -31162,9 +31372,9 @@ snapshots: undici-types@6.21.0: {} - undici@6.23.0: {} + undici@6.24.1: {} - undici@7.21.0: {} + undici@7.24.6: {} unenv@1.10.0: dependencies: @@ -31209,21 +31419,21 @@ snapshots: ofetch: 1.5.1 ohash: 2.0.11 - unimport@5.6.0: + unimport@6.0.2: dependencies: acorn: 8.16.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 1.1.2 magic-string: 0.30.21 - mlly: 1.8.0 + mlly: 1.8.2 pathe: 2.0.3 picomatch: 4.0.4 pkg-types: 2.3.0 scule: 1.3.0 strip-literal: 3.1.0 tinyglobby: 0.2.15 - unplugin: 2.3.11 + unplugin: 3.0.0 unplugin-utils: 0.3.1 union-value@1.0.1: @@ -31241,10 +31451,6 @@ snapshots: dependencies: unique-slug: 4.0.0 - unique-filename@5.0.0: - dependencies: - unique-slug: 6.0.0 - unique-slug@2.0.2: dependencies: imurmurhash: 0.1.4 @@ -31253,10 +31459,6 @@ snapshots: dependencies: imurmurhash: 0.1.4 - unique-slug@6.0.0: - dependencies: - imurmurhash: 0.1.4 - unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -31325,6 +31527,12 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 + unplugin@3.0.0: + dependencies: + '@jridgewell/remapping': 2.3.5 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + unrs-resolver@1.11.1: dependencies: napi-postinstall: 0.3.4 @@ -31354,7 +31562,7 @@ snapshots: has-value: 0.3.1 isobject: 3.0.1 - unstorage@1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2): + unstorage@1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -31368,7 +31576,7 @@ snapshots: '@vercel/functions': 2.2.13 db0: 0.3.4 idb-keyval: 6.2.2 - ioredis: 5.9.2 + ioredis: 5.10.1 until-async@3.0.2: {} @@ -31391,16 +31599,16 @@ snapshots: exsolve: 1.0.8 knitwork: 1.3.0 magic-string: 0.30.21 - mlly: 1.8.0 + mlly: 1.8.2 pathe: 2.0.3 pkg-types: 2.3.0 upath@1.2.0: optional: true - update-browserslist-db@1.2.3(browserslist@4.28.1): + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -31415,7 +31623,7 @@ snapshots: url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.14.1 + qs: 6.15.0 use-latest-callback@0.2.6(react@19.2.4): dependencies: @@ -31476,7 +31684,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(encoding@0.1.13)(idb-keyval@6.2.2)(ioredis@5.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): + vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3): dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) @@ -31497,7 +31705,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1 micromatch: 4.0.8 - nitropack: 2.13.1(@vercel/functions@2.2.13)(encoding@0.1.13)(idb-keyval@6.2.2) + nitropack: 2.13.2(@vercel/functions@2.2.13)(idb-keyval@6.2.2) node-fetch-native: 1.6.7 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -31509,8 +31717,8 @@ snapshots: ufo: 1.6.3 unctx: 2.5.0 unenv: 1.10.0 - unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.2) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) zod: 4.3.6 transitivePeerDependencies: - '@azure/app-configuration' @@ -31532,6 +31740,7 @@ snapshots: - '@vercel/kv' - aws4fetch - bare-abort-controller + - bare-buffer - better-sqlite3 - db0 - debug @@ -31557,10 +31766,10 @@ snapshots: - xml2js - yaml - vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) '@volar/typescript': 2.4.28 '@vue/language-core': 2.1.6(typescript@5.9.3) compare-versions: 6.1.1 @@ -31570,70 +31779,51 @@ snapshots: magic-string: 0.30.21 typescript: 5.9.3 optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.57.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) - '@volar/typescript': 2.4.28 - '@vue/language-core': 2.1.6(typescript@6.0.1-rc) - compare-versions: 6.1.1 - debug: 4.4.3 - kolorist: 1.8.0 - local-pkg: 0.5.1 - magic-string: 0.30.21 - typescript: 6.0.1-rc - optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-externalize-deps@0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-externalize-deps@0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - - vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.10(@babel/core@7.29.0)(solid-js@1.9.11) + babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.12) merge-anything: 5.1.7 - solid-js: 1.9.11 - solid-refresh: 0.6.3(solid-js@1.9.11) - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + solid-js: 1.9.12 + solid-refresh: 0.6.3(solid-js@1.9.12) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.10(@babel/core@7.29.0)(solid-js@1.9.11) + babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.12) merge-anything: 5.1.7 - solid-js: 1.9.11 - solid-refresh: 0.6.3(solid-js@1.9.11) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) + solid-js: 1.9.12 + solid-refresh: 0.6.3(solid-js@1.9.12) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.12(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vite-prerender-plugin@0.5.13(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: kolorist: 1.8.0 magic-string: 0.30.21 @@ -31641,123 +31831,102 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - debug: 4.4.3 - globrex: 0.1.2 - tsconfck: 3.1.6(typescript@6.0.1-rc) - optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - - typescript - - vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): + vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3): dependencies: esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.6 - rollup: 4.57.1 + postcss: 8.5.8 + rollup: 4.60.1 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.15 fsevents: 2.3.3 jiti: 1.21.7 - lightningcss: 1.30.2 + lightningcss: 1.32.0 sass: 1.90.0 - terser: 5.46.0 - yaml: 2.8.2 + terser: 5.46.1 + yaml: 2.8.3 - vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): + vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3): dependencies: esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.6 - rollup: 4.57.1 + postcss: 8.5.8 + rollup: 4.60.1 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.15 fsevents: 2.3.3 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.32.0 sass: 1.90.0 - terser: 5.46.0 - yaml: 2.8.2 + terser: 5.46.1 + yaml: 2.8.3 - vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)): + vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitest@4.0.18(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2): + vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: - '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(msw@2.12.9(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2)) - '@vitest/pretty-format': 4.0.18 - '@vitest/runner': 4.0.18 - '@vitest/snapshot': 4.0.18 - '@vitest/spy': 4.0.18 - '@vitest/utils': 4.0.18 - es-module-lexer: 1.7.0 + '@vitest/expect': 4.1.2 + '@vitest/mocker': 4.1.2(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.2 + '@vitest/runner': 4.1.2 + '@vitest/snapshot': 4.1.2 + '@vitest/spy': 4.1.2 + '@vitest/utils': 4.1.2 + es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 picomatch: 4.0.4 - std-env: 3.10.0 + std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.46.0)(yaml@2.8.2) + tinyrainbow: 3.1.0 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.19.15 jsdom: 27.4.0 transitivePeerDependencies: - - jiti - - less - - lightningcss - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml vlq@1.0.1: {} vm-browserify@1.1.2: {} - volar-service-css@0.0.68(@volar/language-service@2.4.28): + volar-service-css@0.0.70(@volar/language-service@2.4.28): dependencies: - vscode-css-languageservice: 6.3.9 + vscode-css-languageservice: 6.3.10 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.28 - volar-service-emmet@0.0.68(@volar/language-service@2.4.28): + volar-service-emmet@0.0.70(@volar/language-service@2.4.28): dependencies: '@emmetio/css-parser': 0.4.1 '@emmetio/html-matcher': 1.3.0 @@ -31766,28 +31935,28 @@ snapshots: optionalDependencies: '@volar/language-service': 2.4.28 - volar-service-html@0.0.68(@volar/language-service@2.4.28): + volar-service-html@0.0.70(@volar/language-service@2.4.28): dependencies: - vscode-html-languageservice: 5.6.1 + vscode-html-languageservice: 5.6.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.28 - volar-service-prettier@0.0.68(@volar/language-service@2.4.28)(prettier@3.8.1): + volar-service-prettier@0.0.70(@volar/language-service@2.4.28)(prettier@3.8.1): dependencies: vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.28 prettier: 3.8.1 - volar-service-typescript-twoslash-queries@0.0.68(@volar/language-service@2.4.28): + volar-service-typescript-twoslash-queries@0.0.70(@volar/language-service@2.4.28): dependencies: vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.28 - volar-service-typescript@0.0.68(@volar/language-service@2.4.28): + volar-service-typescript@0.0.70(@volar/language-service@2.4.28): dependencies: path-browserify: 1.0.1 semver: 7.7.4 @@ -31798,21 +31967,21 @@ snapshots: optionalDependencies: '@volar/language-service': 2.4.28 - volar-service-yaml@0.0.68(@volar/language-service@2.4.28): + volar-service-yaml@0.0.70(@volar/language-service@2.4.28): dependencies: vscode-uri: 3.1.0 - yaml-language-server: 1.19.2 + yaml-language-server: 1.20.0 optionalDependencies: '@volar/language-service': 2.4.28 - vscode-css-languageservice@6.3.9: + vscode-css-languageservice@6.3.10: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 3.1.0 - vscode-html-languageservice@5.6.1: + vscode-html-languageservice@5.6.2: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 @@ -31846,19 +32015,19 @@ snapshots: vscode-uri@3.1.0: {} - vue-demi@0.14.10(@vue/composition-api@1.7.2(vue@3.5.28(typescript@5.9.3)))(vue@3.5.28(typescript@5.9.3)): + vue-demi@0.14.10(@vue/composition-api@1.7.2(vue@3.5.31(typescript@5.9.3)))(vue@3.5.31(typescript@5.9.3)): dependencies: - vue: 3.5.28(typescript@5.9.3) + vue: 3.5.31(typescript@5.9.3) optionalDependencies: - '@vue/composition-api': 1.7.2(vue@3.5.28(typescript@5.9.3)) + '@vue/composition-api': 1.7.2(vue@3.5.31(typescript@5.9.3)) - vue-eslint-parser@10.2.0(eslint@9.39.4(jiti@2.6.1)): + vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 esquery: 1.7.0 semver: 7.7.4 transitivePeerDependencies: @@ -31877,23 +32046,23 @@ snapshots: '@vue/compiler-sfc': 2.7.16 csstype: 3.2.3 - vue@3.5.28(typescript@5.8.3): + vue@3.5.31(typescript@5.8.3): dependencies: - '@vue/compiler-dom': 3.5.28 - '@vue/compiler-sfc': 3.5.28 - '@vue/runtime-dom': 3.5.28 - '@vue/server-renderer': 3.5.28(vue@3.5.28(typescript@5.8.3)) - '@vue/shared': 3.5.28 + '@vue/compiler-dom': 3.5.31 + '@vue/compiler-sfc': 3.5.31 + '@vue/runtime-dom': 3.5.31 + '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@5.8.3)) + '@vue/shared': 3.5.31 optionalDependencies: typescript: 5.8.3 - vue@3.5.28(typescript@5.9.3): + vue@3.5.31(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.28 - '@vue/compiler-sfc': 3.5.28 - '@vue/runtime-dom': 3.5.28 - '@vue/server-renderer': 3.5.28(vue@3.5.28(typescript@5.9.3)) - '@vue/shared': 3.5.28 + '@vue/compiler-dom': 3.5.31 + '@vue/compiler-sfc': 3.5.31 + '@vue/runtime-dom': 3.5.31 + '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@5.9.3)) + '@vue/shared': 3.5.31 optionalDependencies: typescript: 5.9.3 @@ -31971,12 +32140,12 @@ snapshots: webpack: 4.47.0(webpack-cli@4.10.0) webpack-merge: 5.10.0 - webpack-cli@5.1.4(webpack@5.105.0): + webpack-cli@5.1.4(webpack@5.105.4): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.105.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.105.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.105.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.105.4) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.105.4) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.105.4) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.6 @@ -31985,7 +32154,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4) + webpack: 5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4) webpack-merge: 5.10.0 webpack-merge@5.10.0: @@ -31999,7 +32168,7 @@ snapshots: source-list-map: 2.0.1 source-map: 0.6.1 - webpack-sources@3.3.3: {} + webpack-sources@3.3.4: {} webpack-virtual-modules@0.6.2: {} @@ -32033,7 +32202,7 @@ snapshots: transitivePeerDependencies: - supports-color - webpack@5.105.0(esbuild@0.27.4)(webpack-cli@5.1.4): + webpack@5.105.4(esbuild@0.27.4)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -32043,9 +32212,9 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.16.0 acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.1 + browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.19.0 + enhanced-resolve: 5.20.1 es-module-lexer: 2.0.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -32056,12 +32225,12 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(esbuild@0.27.4)(webpack@5.105.0) + tapable: 2.3.2 + terser-webpack-plugin: 5.4.0(esbuild@0.27.4)(webpack@5.105.4) watchpack: 2.5.1 - webpack-sources: 3.3.3 + webpack-sources: 3.3.4 optionalDependencies: - webpack-cli: 5.1.4(webpack@5.105.0) + webpack-cli: 5.1.4(webpack@5.105.4) transitivePeerDependencies: - '@swc/core' - esbuild @@ -32153,9 +32322,9 @@ snapshots: dependencies: isexe: 3.1.5 - which@6.0.0: + which@6.0.1: dependencies: - isexe: 3.1.5 + isexe: 4.0.0 why-is-node-running@2.3.0: dependencies: @@ -32168,7 +32337,7 @@ snapshots: wildcard@2.0.1: {} - wonka@6.3.5: {} + wonka@6.3.6: {} word-wrap@1.2.5: {} @@ -32192,13 +32361,13 @@ snapshots: dependencies: ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 string-width: 7.2.0 - strip-ansi: 7.1.2 + strip-ansi: 7.2.0 wrappy@1.0.2: {} @@ -32224,7 +32393,12 @@ snapshots: ws@7.5.10: {} - ws@8.19.0: {} + ws@8.20.0: {} + + wsl-utils@0.3.1: + dependencies: + is-wsl: 3.1.1 + powershell-utils: 0.1.0 xcode@3.0.1: dependencies: @@ -32264,12 +32438,11 @@ snapshots: yallist@5.0.0: {} - yaml-language-server@1.19.2: + yaml-language-server@1.20.0: dependencies: '@vscode/l10n': 0.0.18 - ajv: 8.17.1 - ajv-draft-04: 1.0.0(ajv@8.17.1) - lodash: 4.17.21 + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) prettier: 3.8.1 request-light: 0.5.8 vscode-json-languageservice: 4.1.8 @@ -32279,11 +32452,11 @@ snapshots: vscode-uri: 3.1.0 yaml: 2.7.1 - yaml@1.10.2: {} + yaml@1.10.3: {} yaml@2.7.1: {} - yaml@2.8.2: {} + yaml@2.8.3: {} yargs-parser@20.2.9: {} @@ -32337,12 +32510,12 @@ snapshots: '@poppinss/exception': 1.2.3 error-stack-parser-es: 1.0.5 - youch@4.1.0-beta.13: + youch@4.1.1: dependencies: '@poppinss/colors': 4.1.6 - '@poppinss/dumper': 0.6.5 - '@speed-highlight/core': 1.2.14 - cookie-es: 2.0.0 + '@poppinss/dumper': 0.7.0 + '@speed-highlight/core': 1.2.15 + cookie-es: 3.1.1 youch-core: 0.3.3 zimmerframe@1.1.4: {} From 4a3275c15e1baf4d25d8187f9a537bbc515f58ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20C=C3=B4t=C3=A9?= <135025320+ma-cote@users.noreply.github.com> Date: Wed, 1 Apr 2026 03:40:46 -0400 Subject: [PATCH 037/414] fix(build): exclude config files from production DTS rollup (#10358) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(build): exclude config files from production DTS rollup The `experimentalDts` option in tsup respects the tsconfig `include` array to determine which files are in scope for DTS generation. Each package's `tsconfig.json` includes `*.config.*` for IDE support, and `tsconfig.prod.json` inherited this without overriding it. This caused `vite.config.ts` and `tsup.config.ts` to be swept into the DTS rollup, leaking `import { UserConfig } from 'vite'` into published types. Since vite references `@types/node`, this globally overrides the DOM `setTimeout` return type from `number` to `NodeJS.Timeout` for all consumers. Add `"include": ["src"]` (and `"exclude": ["src/__tests__"]` where applicable) to all `tsconfig.prod.json` files that were missing it, matching the pattern already used by query-core, react-query, preact-query, and solid-query. * chore: add changeset for DTS type pollution fix * test(build): add regression test for build tool type leaks in .d.ts files Adds scripts/verify-dts-imports.ts that scans all published .d.ts files for forbidden imports from build tools (vite, tsup, vitest) and `/// `. Wired into test:pr and test:ci to run after the build completes. * fix(build): fail fast when no .d.ts files found in verify-dts-imports * chore: add exclude for consistency in react-query-next-experimental * chore: fix log message to mention both .d.ts and .d.cts files * ci: apply automated fixes * chore: remove verify-dts-imports script and related package.json changes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/fix-dts-type-pollution.md | 5 +++++ packages/angular-query-experimental/tsconfig.prod.json | 4 +++- packages/angular-query-persist-client/tsconfig.prod.json | 4 +++- packages/eslint-plugin-query/tsconfig.prod.json | 4 +++- packages/preact-query-devtools/tsconfig.prod.json | 4 +++- packages/preact-query-persist-client/tsconfig.prod.json | 4 +++- packages/query-async-storage-persister/tsconfig.prod.json | 4 +++- .../query-broadcast-client-experimental/tsconfig.prod.json | 4 +++- packages/query-devtools/tsconfig.prod.json | 4 +++- packages/query-persist-client-core/tsconfig.prod.json | 4 +++- packages/query-sync-storage-persister/tsconfig.prod.json | 4 +++- packages/react-query-devtools/tsconfig.prod.json | 4 +++- packages/react-query-next-experimental/tsconfig.prod.json | 4 +++- packages/react-query-persist-client/tsconfig.prod.json | 4 +++- packages/solid-query-devtools/tsconfig.prod.json | 4 +++- packages/solid-query-persist-client/tsconfig.prod.json | 4 +++- packages/vue-query/tsconfig.prod.json | 4 +++- 17 files changed, 53 insertions(+), 16 deletions(-) create mode 100644 .changeset/fix-dts-type-pollution.md diff --git a/.changeset/fix-dts-type-pollution.md b/.changeset/fix-dts-type-pollution.md new file mode 100644 index 00000000000..32ce9083b8c --- /dev/null +++ b/.changeset/fix-dts-type-pollution.md @@ -0,0 +1,5 @@ +--- +'@tanstack/react-query-devtools': patch +--- + +fix(build): exclude config files from production DTS rollup to prevent `@types/node` type pollution diff --git a/packages/angular-query-experimental/tsconfig.prod.json b/packages/angular-query-experimental/tsconfig.prod.json index b470042ddc1..955d36c73e0 100644 --- a/packages/angular-query-experimental/tsconfig.prod.json +++ b/packages/angular-query-experimental/tsconfig.prod.json @@ -5,5 +5,7 @@ "composite": false, "rootDir": "../../", "customConditions": null - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/angular-query-persist-client/tsconfig.prod.json b/packages/angular-query-persist-client/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/angular-query-persist-client/tsconfig.prod.json +++ b/packages/angular-query-persist-client/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/eslint-plugin-query/tsconfig.prod.json b/packages/eslint-plugin-query/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/eslint-plugin-query/tsconfig.prod.json +++ b/packages/eslint-plugin-query/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/preact-query-devtools/tsconfig.prod.json b/packages/preact-query-devtools/tsconfig.prod.json index f39338ce4ce..2de70e52771 100644 --- a/packages/preact-query-devtools/tsconfig.prod.json +++ b/packages/preact-query-devtools/tsconfig.prod.json @@ -5,5 +5,7 @@ "composite": false, "rootDir": "../../", "customConditions": [] - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/preact-query-persist-client/tsconfig.prod.json b/packages/preact-query-persist-client/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/preact-query-persist-client/tsconfig.prod.json +++ b/packages/preact-query-persist-client/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/query-async-storage-persister/tsconfig.prod.json b/packages/query-async-storage-persister/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/query-async-storage-persister/tsconfig.prod.json +++ b/packages/query-async-storage-persister/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/query-broadcast-client-experimental/tsconfig.prod.json b/packages/query-broadcast-client-experimental/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/query-broadcast-client-experimental/tsconfig.prod.json +++ b/packages/query-broadcast-client-experimental/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/query-devtools/tsconfig.prod.json b/packages/query-devtools/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/query-devtools/tsconfig.prod.json +++ b/packages/query-devtools/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/query-persist-client-core/tsconfig.prod.json b/packages/query-persist-client-core/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/query-persist-client-core/tsconfig.prod.json +++ b/packages/query-persist-client-core/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/query-sync-storage-persister/tsconfig.prod.json b/packages/query-sync-storage-persister/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/query-sync-storage-persister/tsconfig.prod.json +++ b/packages/query-sync-storage-persister/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/react-query-devtools/tsconfig.prod.json b/packages/react-query-devtools/tsconfig.prod.json index f39338ce4ce..2de70e52771 100644 --- a/packages/react-query-devtools/tsconfig.prod.json +++ b/packages/react-query-devtools/tsconfig.prod.json @@ -5,5 +5,7 @@ "composite": false, "rootDir": "../../", "customConditions": [] - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/react-query-next-experimental/tsconfig.prod.json b/packages/react-query-next-experimental/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/react-query-next-experimental/tsconfig.prod.json +++ b/packages/react-query-next-experimental/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/react-query-persist-client/tsconfig.prod.json b/packages/react-query-persist-client/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/react-query-persist-client/tsconfig.prod.json +++ b/packages/react-query-persist-client/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/solid-query-devtools/tsconfig.prod.json b/packages/solid-query-devtools/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/solid-query-devtools/tsconfig.prod.json +++ b/packages/solid-query-devtools/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/solid-query-persist-client/tsconfig.prod.json b/packages/solid-query-persist-client/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/solid-query-persist-client/tsconfig.prod.json +++ b/packages/solid-query-persist-client/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } diff --git a/packages/vue-query/tsconfig.prod.json b/packages/vue-query/tsconfig.prod.json index 0f4c92da065..2bb29fdf02a 100644 --- a/packages/vue-query/tsconfig.prod.json +++ b/packages/vue-query/tsconfig.prod.json @@ -4,5 +4,7 @@ "incremental": false, "composite": false, "rootDir": "../../" - } + }, + "include": ["src"], + "exclude": ["src/__tests__"] } From 75052a7fd05d5a7f430d323c513387b780a0c06f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 09:58:40 +0200 Subject: [PATCH 038/414] ci: Version Packages (#10370) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/fix-dts-type-pollution.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 10 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 297 ++++++++++-------- 108 files changed, 485 insertions(+), 276 deletions(-) delete mode 100644 .changeset/fix-dts-type-pollution.md diff --git a/.changeset/fix-dts-type-pollution.md b/.changeset/fix-dts-type-pollution.md deleted file mode 100644 index 32ce9083b8c..00000000000 --- a/.changeset/fix-dts-type-pollution.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/react-query-devtools': patch ---- - -fix(build): exclude config files from production DTS rollup to prevent `@types/node` type pollution diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e7d6d844cef..b96b1d41ca6 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 03f2b9a40aa..1713c292f40 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", - "@tanstack/angular-query-persist-client": "^5.96.0", - "@tanstack/query-async-storage-persister": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-persist-client": "^5.96.1", + "@tanstack/query-async-storage-persister": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 6acf51b4cf1..360c60a0ea5 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 7295e62cc2c..a915cc697b7 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index df249d4399f..7113c0c4b57 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index ed9324aac39..5d597d17720 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index da4749a7418..a2dae29c2fd 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 2e4367d3e8b..20dcb22ec77 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 0e475811338..be7ac907abc 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 82ddf07cd76..7fa122631a1 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index c069dbc54f1..8099aab6cda 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 1c1f5e256a1..50f53255250 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.0", + "@tanstack/eslint-plugin-query": "^5.96.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index b2de0121f28..b041e44008d 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 05c60b392e2..542f5e6749e 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 9f590266750..87151f046f5 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.0", - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", - "@tanstack/react-query-persist-client": "^5.96.0", + "@tanstack/query-async-storage-persister": "^5.96.1", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query-persist-client": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.0", + "@tanstack/eslint-plugin-query": "^5.96.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 7802bf9d708..84b7aab4de2 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index f88a128579b..9dee28a8cea 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 5e840a1ae4e..64233ff2605 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 584653cb176..6b21a9a0553 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.0", - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", - "@tanstack/react-query-persist-client": "^5.96.0", + "@tanstack/query-async-storage-persister": "^5.96.1", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query-persist-client": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.0", + "@tanstack/eslint-plugin-query": "^5.96.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 6194a31690b..83574ea72ea 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", + "@tanstack/react-query": "^5.96.1", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.0", + "@tanstack/eslint-plugin-query": "^5.96.1", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index ef12664ca18..b647e1f37a5 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index dff41b73b46..f49cb5ad5bb 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index c9cf7ed4949..1fa57b9b056 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index a308c1a49a7..abc2c6275a8 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", - "@tanstack/react-query-next-experimental": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query-next-experimental": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 3e14d0b250a..480619d9dc6 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 9afc1ebfee7..9610d4e6e42 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.0", + "@tanstack/query-async-storage-persister": "^5.96.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", - "@tanstack/react-query-persist-client": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query-persist-client": "^5.96.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 3b59fec924e..38721ba77bf 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index f6b2f6e53ac..abf16783647 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 2990e601112..4cf64a7d15d 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 3497b5658b5..e7b3a994621 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 3ad9d68c586..720af4da69a 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 5bf1454e5fd..0a580c396c8 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 26548409ce9..eb7595cfea8 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index f8c9a2a33f1..1f11aca098b 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 65b21f40864..2a51fba363c 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 72306ffff6f..2a7ac7047b6 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 78915563b42..31e9a18c0ae 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index b8d3014ac42..97ece630e40 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.0", - "@tanstack/react-query-devtools": "^5.96.0", + "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query-devtools": "^5.96.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 3ef9cc76409..0e1c29c4ee4 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.96.0", - "@tanstack/solid-query-devtools": "^5.96.0", + "@tanstack/solid-query": "^5.96.1", + "@tanstack/solid-query-devtools": "^5.96.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 350f5c318fa..0a14a50b191 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.0", - "@tanstack/solid-query-devtools": "^5.96.0", + "@tanstack/solid-query": "^5.96.1", + "@tanstack/solid-query-devtools": "^5.96.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index b41fa9ebd59..7909df4a7c2 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.0", - "@tanstack/solid-query-devtools": "^5.96.0", + "@tanstack/solid-query": "^5.96.1", + "@tanstack/solid-query-devtools": "^5.96.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 97f5534aad1..9c6af47b291 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.0", - "@tanstack/solid-query-devtools": "^5.96.0", + "@tanstack/solid-query": "^5.96.1", + "@tanstack/solid-query-devtools": "^5.96.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 530fbaf697d..82b5a79a35c 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.0", - "@tanstack/solid-query": "^5.96.0", - "@tanstack/solid-query-devtools": "^5.96.0", - "@tanstack/solid-query-persist-client": "^5.96.0", + "@tanstack/query-async-storage-persister": "^5.96.1", + "@tanstack/solid-query": "^5.96.1", + "@tanstack/solid-query-devtools": "^5.96.1", + "@tanstack/solid-query-persist-client": "^5.96.1", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 448b17bb0a2..b8828f36758 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.0", - "@tanstack/solid-query-devtools": "^5.96.0", + "@tanstack/solid-query": "^5.96.1", + "@tanstack/solid-query-devtools": "^5.96.1", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.0", + "@tanstack/eslint-plugin-query": "^5.96.1", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 91bd5aa4844..b8c81cb2cef 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.96.0", - "@tanstack/solid-query-devtools": "^5.96.0", + "@tanstack/solid-query": "^5.96.1", + "@tanstack/solid-query-devtools": "^5.96.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 55c9e0166f2..ffcc3a128d1 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11" + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index e03cb0f3a0a..6c8207dfe26 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.0", - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11", - "@tanstack/svelte-query-persist-client": "^6.1.11" + "@tanstack/query-async-storage-persister": "^5.96.1", + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12", + "@tanstack/svelte-query-persist-client": "^6.1.12" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index bc3b8e12dde..28c71eee17e 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11" + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 88951ab65d9..3c644f9169f 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11" + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index efa650c9078..67cca30dc07 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11" + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 38f193b256e..4cd975242b3 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11" + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 47bc3828861..a24b789845a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11" + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 4e2125c20f5..3e99af96356 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.11", - "@tanstack/svelte-query-devtools": "^6.1.11" + "@tanstack/svelte-query": "^6.1.12", + "@tanstack/svelte-query-devtools": "^6.1.12" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 182090c14c5..c790831bbd2 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.0", - "@tanstack/vue-query-devtools": "^6.1.11", + "@tanstack/vue-query": "^5.96.1", + "@tanstack/vue-query-devtools": "^6.1.12", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 20e77ba9a81..f39cfed0626 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.0", + "@tanstack/vue-query": "^5.96.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 4aa7410ef67..6b08e0d260d 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.96.0", - "@tanstack/query-persist-client-core": "^5.96.0", - "@tanstack/query-sync-storage-persister": "^5.96.0", - "@tanstack/vue-query": "^5.96.0", + "@tanstack/query-core": "^5.96.1", + "@tanstack/query-persist-client-core": "^5.96.1", + "@tanstack/query-sync-storage-persister": "^5.96.1", + "@tanstack/vue-query": "^5.96.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 071b6d5e8ba..66fb57a56be 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.0", - "@tanstack/vue-query-devtools": "^6.1.11", + "@tanstack/vue-query": "^5.96.1", + "@tanstack/vue-query-devtools": "^6.1.12", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index afaec49545d..50cfc8337f4 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.0", + "@tanstack/angular-query-experimental": "^5.96.1", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 0d9bff40aad..1ab213860f4 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 0a2a00cebac..14fdf1f45ea 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.96.0", + "version": "5.96.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index f24deb33d2b..9232ac81d7d 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.96.1 + - @tanstack/query-persist-client-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 640debf2ed4..8258fe64873 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.96.0", + "version": "5.96.1", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 840ebe9c35d..3caa26de7d3 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.96.1 + ## 5.96.0 ### Minor Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index e2b308ac725..d680ef3269e 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.96.0", + "version": "5.96.1", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index e42f9ec1c54..879c746b92f 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.96.1 + - @tanstack/query-devtools@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index cd55ae5723b..a0cce74f7a8 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.96.0", + "version": "5.96.1", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 07b33b0f85f..d62192a2c23 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.96.1 + - @tanstack/query-persist-client-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 91a12f0c726..eff371716cb 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.96.0", + "version": "5.96.1", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 5dfc2dfb407..ee6ce9dc552 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index f100624a6fd..6feb0653009 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.96.0", + "version": "5.96.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 6a7421e9dc0..3c83183820b 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + - @tanstack/query-persist-client-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index cef2fbc219e..860739637fd 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.96.0", + "version": "5.96.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 77a076c46d2..9c4f21dc8bd 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 9f32c994832..9e5be962333 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.96.0", + "version": "5.96.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 36c0cd0ed92..5ae240d5595 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.96.1 + ## 5.96.0 ## 5.95.2 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index cfb06e095cf..74e86cbefa7 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.96.0", + "version": "5.96.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index c7ea82dc1f7..15fcac2213e 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.96.1 + ## 5.96.0 ## 5.95.2 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index a308de6d164..74863c1146d 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.96.0", + "version": "5.96.1", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index b7eaf40d091..8fe68fa6437 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index c552a11c0a9..0f11c81c783 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.96.0", + "version": "5.96.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 9fe5ac637a9..341226428f8 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + - @tanstack/query-persist-client-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index da79288d8c2..a69977f7447 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.96.0", + "version": "5.96.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 2accfe47ead..f2425607182 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/react-query-devtools +## 5.96.1 + +### Patch Changes + +- fix(build): exclude config files from production DTS rollup to prevent `@types/node` type pollution ([#10358](https://github.com/TanStack/query/pull/10358)) + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.1 + - @tanstack/react-query@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 2f33bb13fa8..f6f7eee4f66 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.96.0", + "version": "5.96.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 85f57f4994f..9a11d354442 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 24e61ce5867..fa9ce467da2 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.96.0", + "version": "5.96.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 1fcee425ea8..7fc4b9c2da6 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.1 + - @tanstack/react-query@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3424e78e170..9ecfb742b75 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.96.0", + "version": "5.96.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 4af4f4dd440..7dbea37ff0c 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 90dac0df1b9..57de203c043 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.96.0", + "version": "5.96.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 3c7ddf2f9bd..be3ff4e455a 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.1 + - @tanstack/solid-query@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 9862c3acdce..6fb7c57f266 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.96.0", + "version": "5.96.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 95171c022a8..551e5d43f7c 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.1 + - @tanstack/solid-query@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 54d45eb787b..ed558989ad7 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.96.0", + "version": "5.96.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index ae4812bbb61..2c6b8760bf6 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index c30591ad850..94e8ea2cda8 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.96.0", + "version": "5.96.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 92a76f98c91..840cf79c421 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.1 + - @tanstack/svelte-query@6.1.12 + ## 6.1.11 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 34ef456cc6f..c199287f523 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.11", + "version": "6.1.12", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 90edc62e8ad..c724fce343e 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.1 + - @tanstack/svelte-query@6.1.12 + ## 6.1.11 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 1c5dea528c0..a930870d5f3 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.11", + "version": "6.1.12", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 9f823ff8225..656e122bffd 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 6.1.11 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index e9e3746e898..3e49737d3d5 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.11", + "version": "6.1.12", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 878a9880307..73b6f89ecbe 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.1 + - @tanstack/vue-query@5.96.1 + ## 6.1.11 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 4c725eced3f..05e77745481 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.11", + "version": "6.1.12", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 4c4daa6d34a..7b4adbfbf07 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.96.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.1 + ## 5.96.0 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index c4d46a299df..ea44d621a59 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.96.0", + "version": "5.96.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce1ef3d30ad..25b27bf1efa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.11 + specifier: ^6.1.12 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.0 + specifier: ^5.96.1 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 @@ -2373,13 +2373,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) vite-plugin-externalize-deps: specifier: ^0.9.0 version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -4795,7 +4795,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -21821,6 +21821,19 @@ snapshots: optionalDependencies: typescript: 5.9.3 + '@vue/language-core@2.1.6(typescript@6.0.1-rc)': + dependencies: + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.31 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.31 + computeds: 0.0.1 + minimatch: 9.0.9 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 6.0.1-rc + '@vue/language-core@2.2.12(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.15 @@ -31159,6 +31172,10 @@ snapshots: optionalDependencies: typescript: 5.9.3 + tsconfck@3.1.6(typescript@6.0.1-rc): + optionalDependencies: + typescript: 6.0.1-rc + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -31785,6 +31802,25 @@ snapshots: - rollup - supports-color + vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + dependencies: + '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) + '@volar/typescript': 2.4.28 + '@vue/language-core': 2.1.6(typescript@6.0.1-rc) + compare-versions: 6.1.1 + debug: 4.4.3 + kolorist: 1.8.0 + local-pkg: 0.5.1 + magic-string: 0.30.21 + typescript: 6.0.1-rc + optionalDependencies: + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) @@ -31844,6 +31880,17 @@ snapshots: - supports-color - typescript + vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + dependencies: + debug: 4.4.3 + globrex: 0.1.2 + tsconfck: 3.1.6(typescript@6.0.1-rc) + optionalDependencies: + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + transitivePeerDependencies: + - supports-color + - typescript + vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3): dependencies: esbuild: 0.27.4 From 67b12ae1a0bca52472d0e54a38a6822458aaa858 Mon Sep 17 00:00:00 2001 From: Zelys Date: Wed, 1 Apr 2026 04:04:45 -0500 Subject: [PATCH 039/414] docs: add polling guide (#10330) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs(react): add polling guide Adds a dedicated guide for refetchInterval-based polling. The option was only mentioned in passing in important-defaults.md with no explanation of how it works, how to adapt it dynamically, or how it interacts with window focus, networkMode, and the enabled flag. Covers: - Basic setup and independence from staleTime - Dynamic intervals via function form - refetchIntervalInBackground for dashboards / always-on UIs - Disabling window-focus refetching for fullscreen game and kiosk UIs - Pausing polling with the enabled flag - networkMode: 'always' for unreliable navigator.onLine environments - Deduplication behavior across multiple observers Updates config.json to add the guide to the React sidebar between Window Focus Refetching and Disabling/Pausing Queries. Adds a cross-reference in important-defaults.md. * docs(react/polling): add example markers for framework portability * docs(react): fix deduplication note — timers are per observer, not per query * docs(react): address review feedback on polling guide - Remove staleTime enumeration; link to Important Defaults instead - Remove game/kiosk focus management examples (scope creep) - Rewrite pausing polling to use refetchInterval function instead of enabled: false - Fix offline support section: connectivity uses online/offline events, not navigator.onLine - Fix deduplication note: remove queuing implication and em dash - Add non-browser environments note pointing to React Native guide * docs(solid,vue): add polling guide framework ports * docs: wrap React Native section in markers for framework port exclusion * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- docs/config.json | 12 ++ .../react/guides/important-defaults.md | 2 +- docs/framework/react/guides/polling.md | 109 ++++++++++++++++++ docs/framework/solid/guides/polling.md | 73 ++++++++++++ docs/framework/vue/guides/polling.md | 9 ++ 5 files changed, 204 insertions(+), 1 deletion(-) create mode 100644 docs/framework/react/guides/polling.md create mode 100644 docs/framework/solid/guides/polling.md create mode 100644 docs/framework/vue/guides/polling.md diff --git a/docs/config.json b/docs/config.json index 41200ceaed2..620a98618d6 100644 --- a/docs/config.json +++ b/docs/config.json @@ -246,6 +246,10 @@ "label": "Window Focus Refetching", "to": "framework/react/guides/window-focus-refetching" }, + { + "label": "Polling", + "to": "framework/react/guides/polling" + }, { "label": "Disabling/Pausing Queries", "to": "framework/react/guides/disabling-queries" @@ -399,6 +403,10 @@ "label": "Window Focus Refetching", "to": "framework/solid/guides/window-focus-refetching" }, + { + "label": "Polling", + "to": "framework/solid/guides/polling" + }, { "label": "Disabling/Pausing Queries", "to": "framework/solid/guides/disabling-queries" @@ -536,6 +544,10 @@ "label": "Window Focus Refetching", "to": "framework/vue/guides/window-focus-refetching" }, + { + "label": "Polling", + "to": "framework/vue/guides/polling" + }, { "label": "Disabling/Pausing Queries", "to": "framework/vue/guides/disabling-queries" diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md index 6829882a536..1458ff9791d 100644 --- a/docs/framework/react/guides/important-defaults.md +++ b/docs/framework/react/guides/important-defaults.md @@ -23,7 +23,7 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul > Setting `staleTime` is the recommended way to avoid excessive refetches, but you can also customize the points in time for refetches by setting options like `refetchOnMount`, `refetchOnWindowFocus` and `refetchOnReconnect`. -- Queries can optionally be configured with a `refetchInterval` to trigger refetches periodically, which is independent of the `staleTime` setting. +- Queries can optionally be configured with a `refetchInterval` to trigger refetches periodically, which is independent of the `staleTime` setting. See [Polling](./polling.md) for details. - Query results that have no more active instances of `useQuery`, `useInfiniteQuery` or query observers are labeled as "inactive" and remain in the cache in case they are used again at a later time. - By default, "inactive" queries are garbage collected after **5 minutes**. diff --git a/docs/framework/react/guides/polling.md b/docs/framework/react/guides/polling.md new file mode 100644 index 00000000000..487a42f227e --- /dev/null +++ b/docs/framework/react/guides/polling.md @@ -0,0 +1,109 @@ +--- +id: polling +title: Polling +--- + +`refetchInterval` makes a query refetch on a timer. Set it to a number in milliseconds and the query runs every N ms while there's at least one active observer: + +[//]: # 'Example1' + +```tsx +useQuery({ + queryKey: ['prices'], + queryFn: fetchPrices, + refetchInterval: 5_000, // every 5 seconds +}) +``` + +[//]: # 'Example1' + +Polling is independent of `staleTime`. A query can be fresh and still poll on schedule; see [Important Defaults](./important-defaults.md) for how `staleTime` interacts with other refetch behaviors. `refetchInterval` fires on its own clock regardless of freshness. + +## Adapting the interval to query state + +Pass a function instead of a number to compute the interval from the current query. The function receives the `Query` object and should return a number in ms or `false` to stop polling: + +[//]: # 'Example2' + +```tsx +useQuery({ + queryKey: ['job', jobId], + queryFn: () => fetchJobStatus(jobId), + refetchInterval: (query) => { + // Stop polling once the job finishes + if (query.state.data?.status === 'complete') return false + return 2_000 + }, +}) +``` + +[//]: # 'Example2' + +Returning `false` clears the interval timer. If the query result changes so the function would return a positive number again, polling resumes automatically. + +## Background polling + +By default, polling pauses when the browser tab loses focus. For dashboards or any interface where data needs to stay current even while the user is in another tab, disable that behavior: + +[//]: # 'Example3' + +```tsx +useQuery({ + queryKey: ['portfolio'], + queryFn: fetchPortfolio, + refetchInterval: 30_000, + refetchIntervalInBackground: true, +}) +``` + +[//]: # 'Example3' + +## Pausing polling + +Pass a function to `refetchInterval` and close over component state to control when polling runs: + +[//]: # 'Example4' + +```tsx +useQuery({ + queryKey: ['prices', tokenAddress], + queryFn: () => fetchPrice(tokenAddress), + refetchInterval: () => { + if (!tokenAddress || isPaused) return false + return 15_000 + }, +}) +``` + +[//]: # 'Example4' + +## Polling with offline support + +TanStack Query detects connectivity by listening to the browser's `online` and `offline` events. In environments where those events don't fire reliably (Electron, some embedded WebViews), set `networkMode: 'always'` to skip the connectivity check: + +[//]: # 'Example5' + +```tsx +useQuery({ + queryKey: ['chainStatus'], + queryFn: fetchChainStatus, + refetchInterval: 10_000, + networkMode: 'always', +}) +``` + +[//]: # 'Example5' + +For more on network modes, see [Network Mode](./network-mode.md). + +## Note on deduplication + +Each `QueryObserver` (each component using `useQuery` with `refetchInterval`) runs its own timer. Two components subscribed to the same key with `refetchInterval: 5000` each fire their timer every 5 seconds. What gets deduplicated is concurrent in-flight fetches: if two timers fire at the same time, only one network request goes out. The timers are observer-level; the deduplication is query-level. + +[//]: # 'ReactNative' + +## Non-browser environments + +For non-browser runtimes like React Native, the standard `online`/`offline` and focus events aren't available. The [React Native guide](../react-native.md) covers how to connect `focusManager` and `onlineManager` to native app state APIs. + +[//]: # 'ReactNative' diff --git a/docs/framework/solid/guides/polling.md b/docs/framework/solid/guides/polling.md new file mode 100644 index 00000000000..9410627ebfc --- /dev/null +++ b/docs/framework/solid/guides/polling.md @@ -0,0 +1,73 @@ +--- +id: polling +title: Polling +ref: docs/framework/react/guides/polling.md +replace: { '@tanstack/react-query': '@tanstack/solid-query' } +--- + +[//]: # 'Example1' + +```tsx +useQuery(() => ({ + queryKey: ['prices'], + queryFn: fetchPrices, + refetchInterval: 5_000, // every 5 seconds +})) +``` + +[//]: # 'Example1' +[//]: # 'Example2' + +```tsx +useQuery(() => ({ + queryKey: ['job', jobId], + queryFn: () => fetchJobStatus(jobId), + refetchInterval: (query) => { + // Stop polling once the job finishes + if (query.state.data?.status === 'complete') return false + return 2_000 + }, +})) +``` + +[//]: # 'Example2' +[//]: # 'Example3' + +```tsx +useQuery(() => ({ + queryKey: ['portfolio'], + queryFn: fetchPortfolio, + refetchInterval: 30_000, + refetchIntervalInBackground: true, +})) +``` + +[//]: # 'Example3' +[//]: # 'Example4' + +```tsx +useQuery(() => ({ + queryKey: ['prices', tokenAddress], + queryFn: () => fetchPrice(tokenAddress), + refetchInterval: () => { + if (!tokenAddress || isPaused) return false + return 15_000 + }, +})) +``` + +[//]: # 'Example4' +[//]: # 'Example5' + +```tsx +useQuery(() => ({ + queryKey: ['chainStatus'], + queryFn: fetchChainStatus, + refetchInterval: 10_000, + networkMode: 'always', +})) +``` + +[//]: # 'Example5' +[//]: # 'ReactNative' +[//]: # 'ReactNative' diff --git a/docs/framework/vue/guides/polling.md b/docs/framework/vue/guides/polling.md new file mode 100644 index 00000000000..1f096cd007d --- /dev/null +++ b/docs/framework/vue/guides/polling.md @@ -0,0 +1,9 @@ +--- +id: polling +title: Polling +ref: docs/framework/react/guides/polling.md +replace: { '@tanstack/react-query': '@tanstack/vue-query' } +--- + +[//]: # 'ReactNative' +[//]: # 'ReactNative' From deb62e0028089a653ad2bb6adbf3bba469c37d8c Mon Sep 17 00:00:00 2001 From: mixelburg <52622705+mixelburg@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:02:57 +0300 Subject: [PATCH 040/414] fix(eslint-plugin): normalize whitespace in allowList variable matching for multiline expressions (#10337) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(eslint-plugin): normalize whitespace in allowList variable matching When a member expression spans multiple lines (e.g. `ignored\n .run()`), `sourceCode.getText()` preserves the newline. The root segment extracted by splitting on `.'` then becomes `'ignored\n '`, which never matches the allowlisted variable name `'ignored'`. Fix: extend `normalizeChain` to also collapse all whitespace, so multi-line chains produce the same identifier path as single-line ones. Fixes #10334 * changeset --------- Co-authored-by: Maks Pikov Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/violet-dogs-tease.md | 5 +++++ .../src/__tests__/exhaustive-deps.test.ts | 14 ++++++++++++++ .../rules/exhaustive-deps/exhaustive-deps.utils.ts | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 .changeset/violet-dogs-tease.md diff --git a/.changeset/violet-dogs-tease.md b/.changeset/violet-dogs-tease.md new file mode 100644 index 00000000000..a177dd6ca69 --- /dev/null +++ b/.changeset/violet-dogs-tease.md @@ -0,0 +1,5 @@ +--- +'@tanstack/eslint-plugin-query': patch +--- + +fix(eslint-plugin): normalize whitespace in allowList variable matching for multiline expressions diff --git a/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts b/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts index 6ee61ca8d71..7e67ae85404 100644 --- a/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/exhaustive-deps.test.ts @@ -2160,6 +2160,20 @@ ruleTester.run('exhaustive-deps allowlist.variables', rule, { } `, }, + { + name: 'should ignore allowlisted variable when member access spans multiple lines', + options: [{ allowlist: { variables: ['ignored'] } }], + code: normalizeIndent` + function useThing() { + const ignored = { run: () => Promise.resolve() } + return useQuery({ + queryKey: ['thing'], + queryFn: () => ignored + .run() + }) + } + `, + }, ], invalid: [ { diff --git a/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts b/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts index 8e67fd6a8da..135a5b620d1 100644 --- a/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts +++ b/packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.utils.ts @@ -282,7 +282,7 @@ export const ExhaustiveDepsUtils = { * Example: `a?.b.c!` -> `a.b.c` */ normalizeChain(text: string): string { - return text.replace(/(?:\?(\.)|!)/g, '$1') + return text.replace(/(?:\?(\.)|!)/g, '$1').replace(/\s+/g, '') }, /** From 5ca721fb05a7329ca168dd9aca8a906011b0601e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 12:20:46 +0200 Subject: [PATCH 041/414] ci: Version Packages (#10379) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/violet-dogs-tease.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 6 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 244 +++++++++--------- 108 files changed, 437 insertions(+), 273 deletions(-) delete mode 100644 .changeset/violet-dogs-tease.md diff --git a/.changeset/violet-dogs-tease.md b/.changeset/violet-dogs-tease.md deleted file mode 100644 index a177dd6ca69..00000000000 --- a/.changeset/violet-dogs-tease.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/eslint-plugin-query': patch ---- - -fix(eslint-plugin): normalize whitespace in allowList variable matching for multiline expressions diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index b96b1d41ca6..30e8335fca7 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 1713c292f40..5aeb6d7aa4d 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", - "@tanstack/angular-query-persist-client": "^5.96.1", - "@tanstack/query-async-storage-persister": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-persist-client": "^5.96.2", + "@tanstack/query-async-storage-persister": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 360c60a0ea5..1c2b2747501 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index a915cc697b7..659ed2f3026 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 7113c0c4b57..329895ad339 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 5d597d17720..03b7cded53f 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index a2dae29c2fd..48b6fafff9c 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 20dcb22ec77..74ba3d7aaf7 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index be7ac907abc..b456fd9254a 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 7fa122631a1..eb4a035f36c 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 8099aab6cda..a52cda50a53 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 50f53255250..5caf74323e9 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.1", + "@tanstack/eslint-plugin-query": "^5.96.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index b041e44008d..77f1868f44d 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 542f5e6749e..c31a0d3eb74 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 87151f046f5..ccbcc0dbaba 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.1", - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", - "@tanstack/react-query-persist-client": "^5.96.1", + "@tanstack/query-async-storage-persister": "^5.96.2", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query-persist-client": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.1", + "@tanstack/eslint-plugin-query": "^5.96.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 84b7aab4de2..43887591c6b 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 9dee28a8cea..9676ef84f90 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 64233ff2605..f78effb159f 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6b21a9a0553..5955d848d5c 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.1", - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", - "@tanstack/react-query-persist-client": "^5.96.1", + "@tanstack/query-async-storage-persister": "^5.96.2", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query-persist-client": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.1", + "@tanstack/eslint-plugin-query": "^5.96.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 83574ea72ea..ba21d341d8d 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", + "@tanstack/react-query": "^5.96.2", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.1", + "@tanstack/eslint-plugin-query": "^5.96.2", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b647e1f37a5..d2f1bb17823 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index f49cb5ad5bb..e91e4e7b4ee 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 1fa57b9b056..0fc5da9f506 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index abc2c6275a8..dee3655803a 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", - "@tanstack/react-query-next-experimental": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query-next-experimental": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 480619d9dc6..51ee8ed6e65 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 9610d4e6e42..b7c14b99dd0 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.1", + "@tanstack/query-async-storage-persister": "^5.96.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", - "@tanstack/react-query-persist-client": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query-persist-client": "^5.96.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 38721ba77bf..68558e6032b 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index abf16783647..27234ae2551 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 4cf64a7d15d..99451ff7065 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index e7b3a994621..16fa9cfca52 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 720af4da69a..a43a680a8f2 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 0a580c396c8..fc01852ca23 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index eb7595cfea8..6e26b5e59f5 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 1f11aca098b..7a4492f6f3d 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 2a51fba363c..07940a2e7f4 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 2a7ac7047b6..94ebcb9dcd5 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 31e9a18c0ae..9b627830b44 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 97ece630e40..251130c1eca 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.1", - "@tanstack/react-query-devtools": "^5.96.1", + "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query-devtools": "^5.96.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 0e1c29c4ee4..86f7ec3cc99 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.96.1", - "@tanstack/solid-query-devtools": "^5.96.1", + "@tanstack/solid-query": "^5.96.2", + "@tanstack/solid-query-devtools": "^5.96.2", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 0a14a50b191..524d797a3f5 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.1", - "@tanstack/solid-query-devtools": "^5.96.1", + "@tanstack/solid-query": "^5.96.2", + "@tanstack/solid-query-devtools": "^5.96.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 7909df4a7c2..a37dd90091f 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.1", - "@tanstack/solid-query-devtools": "^5.96.1", + "@tanstack/solid-query": "^5.96.2", + "@tanstack/solid-query-devtools": "^5.96.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 9c6af47b291..048bbb32af7 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.1", - "@tanstack/solid-query-devtools": "^5.96.1", + "@tanstack/solid-query": "^5.96.2", + "@tanstack/solid-query-devtools": "^5.96.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 82b5a79a35c..a13a827bdd7 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.1", - "@tanstack/solid-query": "^5.96.1", - "@tanstack/solid-query-devtools": "^5.96.1", - "@tanstack/solid-query-persist-client": "^5.96.1", + "@tanstack/query-async-storage-persister": "^5.96.2", + "@tanstack/solid-query": "^5.96.2", + "@tanstack/solid-query-devtools": "^5.96.2", + "@tanstack/solid-query-persist-client": "^5.96.2", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index b8828f36758..331f7db69d5 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.1", - "@tanstack/solid-query-devtools": "^5.96.1", + "@tanstack/solid-query": "^5.96.2", + "@tanstack/solid-query-devtools": "^5.96.2", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.1", + "@tanstack/eslint-plugin-query": "^5.96.2", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index b8c81cb2cef..6eae1a6d488 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.96.1", - "@tanstack/solid-query-devtools": "^5.96.1", + "@tanstack/solid-query": "^5.96.2", + "@tanstack/solid-query-devtools": "^5.96.2", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index ffcc3a128d1..4d148eeb893 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12" + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 6c8207dfe26..27029338ae8 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.1", - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12", - "@tanstack/svelte-query-persist-client": "^6.1.12" + "@tanstack/query-async-storage-persister": "^5.96.2", + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13", + "@tanstack/svelte-query-persist-client": "^6.1.13" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 28c71eee17e..7895aefa191 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12" + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 3c644f9169f..c22bb838a03 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12" + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 67cca30dc07..d78c6f5d763 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12" + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 4cd975242b3..4871d7152ee 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12" + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index a24b789845a..3e11511e787 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12" + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 3e99af96356..7aca99c6d7c 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.12", - "@tanstack/svelte-query-devtools": "^6.1.12" + "@tanstack/svelte-query": "^6.1.13", + "@tanstack/svelte-query-devtools": "^6.1.13" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index c790831bbd2..6794769b8cc 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.1", - "@tanstack/vue-query-devtools": "^6.1.12", + "@tanstack/vue-query": "^5.96.2", + "@tanstack/vue-query-devtools": "^6.1.13", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index f39cfed0626..cdede88f251 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.1", + "@tanstack/vue-query": "^5.96.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 6b08e0d260d..f7fcf8eb190 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.96.1", - "@tanstack/query-persist-client-core": "^5.96.1", - "@tanstack/query-sync-storage-persister": "^5.96.1", - "@tanstack/vue-query": "^5.96.1", + "@tanstack/query-core": "^5.96.2", + "@tanstack/query-persist-client-core": "^5.96.2", + "@tanstack/query-sync-storage-persister": "^5.96.2", + "@tanstack/vue-query": "^5.96.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 66fb57a56be..0f1b525fe8d 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.1", - "@tanstack/vue-query-devtools": "^6.1.12", + "@tanstack/vue-query": "^5.96.2", + "@tanstack/vue-query-devtools": "^6.1.13", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 50cfc8337f4..b108cda7612 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.1", + "@tanstack/angular-query-experimental": "^5.96.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 1ab213860f4..6eb00340db7 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 14fdf1f45ea..28541dc5bfc 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.96.1", + "version": "5.96.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 9232ac81d7d..a29ea3c7200 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.96.2 + - @tanstack/query-persist-client-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 8258fe64873..afa50dcb1a9 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.96.1", + "version": "5.96.2", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 3caa26de7d3..60ddcef942a 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/eslint-plugin-query +## 5.96.2 + +### Patch Changes + +- fix(eslint-plugin): normalize whitespace in allowList variable matching for multiline expressions ([#10337](https://github.com/TanStack/query/pull/10337)) + ## 5.96.1 ## 5.96.0 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index d680ef3269e..b69dcf98821 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.96.1", + "version": "5.96.2", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 879c746b92f..3eded3f69b3 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.96.2 + - @tanstack/query-devtools@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index a0cce74f7a8..97fb019e667 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.96.1", + "version": "5.96.2", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index d62192a2c23..d927bcd0967 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.96.2 + - @tanstack/query-persist-client-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index eff371716cb..30705886132 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.96.1", + "version": "5.96.2", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index ee6ce9dc552..8c5ce54f218 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 6feb0653009..727d34eb47e 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.96.1", + "version": "5.96.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 3c83183820b..dc39865cbb0 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + - @tanstack/query-persist-client-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 860739637fd..52da89e4262 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.96.1", + "version": "5.96.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 9c4f21dc8bd..6c0c58fef54 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 9e5be962333..7fc1f175de0 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.96.1", + "version": "5.96.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 5ae240d5595..b34f73b1a66 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.96.2 + ## 5.96.1 ## 5.96.0 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 74e86cbefa7..a797ff8f8f8 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.96.1", + "version": "5.96.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 15fcac2213e..e86c3900c64 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.96.2 + ## 5.96.1 ## 5.96.0 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 74863c1146d..3d86350a88a 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.96.1", + "version": "5.96.2", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 8fe68fa6437..57c79706ce3 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 0f11c81c783..41b13bf6e3a 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.96.1", + "version": "5.96.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 341226428f8..aae8dcf9a5e 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + - @tanstack/query-persist-client-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index a69977f7447..e37366e6cee 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.96.1", + "version": "5.96.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index f2425607182..d2f5650b776 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.2 + - @tanstack/react-query@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index f6f7eee4f66..134d9ffd646 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.96.1", + "version": "5.96.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 9a11d354442..c781c1918f0 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index fa9ce467da2..c4ba9eca6ce 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.96.1", + "version": "5.96.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 7fc4b9c2da6..b5c5c54795c 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.2 + - @tanstack/react-query@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 9ecfb742b75..7d75281a5ce 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.96.1", + "version": "5.96.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 7dbea37ff0c..1c2c9958d71 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 57de203c043..7979dd77462 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.96.1", + "version": "5.96.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index be3ff4e455a..81e190dea12 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.2 + - @tanstack/solid-query@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 6fb7c57f266..83720ce9b42 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.96.1", + "version": "5.96.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 551e5d43f7c..c6aaf0f9e06 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.2 + - @tanstack/solid-query@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index ed558989ad7..d4be2216ad8 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.96.1", + "version": "5.96.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 2c6b8760bf6..d1bedab0496 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 94e8ea2cda8..43cd43011f2 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.96.1", + "version": "5.96.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 840cf79c421..1fe953ef6a1 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.2 + - @tanstack/svelte-query@6.1.13 + ## 6.1.12 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c199287f523..1f2ddfd5b71 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.12", + "version": "6.1.13", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index c724fce343e..a4df7b89d25 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.96.2 + - @tanstack/svelte-query@6.1.13 + ## 6.1.12 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index a930870d5f3..4c0546511ca 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.12", + "version": "6.1.13", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 656e122bffd..fc8fdd1014c 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 6.1.12 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 3e49737d3d5..129c515cd4a 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.12", + "version": "6.1.13", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 73b6f89ecbe..452e75229be 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.96.2 + - @tanstack/vue-query@5.96.2 + ## 6.1.12 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 05e77745481..9a740de3091 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.12", + "version": "6.1.13", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 7b4adbfbf07..46f38a866bc 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.96.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.96.2 + ## 5.96.1 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index ea44d621a59..d5e36fecffd 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.96.1", + "version": "5.96.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25b27bf1efa..4e1296385b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.12 + specifier: ^6.1.13 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.1 + specifier: ^5.96.2 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 5f5cfabfd4b1060e5a9cbb3c58bfd83126b82b2f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 5 Apr 2026 15:04:44 +0900 Subject: [PATCH 042/414] test(svelte-query/createQueries): add test for not fetching when 'isRestoring' is true (#10382) * test(svelte-query/createQueries): add test for not fetching when 'isRestoring' is true * test(svelte-query/createQueries): remove '(isRestoring)' from describe block * test(svelte-query/createQueries): move 'queryClient' inside 'IsRestoringExample' component --- .../createQueries/IsRestoringExample.svelte | 36 +++++++++++++++ .../createQueries.svelte.test.ts | 45 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 packages/svelte-query/tests/createQueries/IsRestoringExample.svelte create mode 100644 packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts diff --git a/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte new file mode 100644 index 00000000000..320bee94fa8 --- /dev/null +++ b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte @@ -0,0 +1,36 @@ + + +
+
{result[0].status}
+
{result[1].status}
+
{result[0].fetchStatus}
+
{result[1].fetchStatus}
+
{result[0].data ?? 'undefined'}
+
{result[1].data ?? 'undefined'}
+
diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts new file mode 100644 index 00000000000..dfff3892fb8 --- /dev/null +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -0,0 +1,45 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/svelte' +import { sleep } from '@tanstack/query-test-utils' +import IsRestoringExample from './IsRestoringExample.svelte' + +describe('createQueries', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { + const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) + const queryFn2 = vi.fn(() => sleep(10).then(() => 'data2')) + + const rendered = render(IsRestoringExample, { + props: { queryFn1, queryFn2 }, + }) + + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getByTestId('status1')).toHaveTextContent('pending') + expect(rendered.getByTestId('status2')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle') + expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle') + expect(rendered.getByTestId('data1')).toHaveTextContent('undefined') + expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByTestId('status1')).toHaveTextContent('pending') + expect(rendered.getByTestId('status2')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle') + expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle') + expect(rendered.getByTestId('data1')).toHaveTextContent('undefined') + expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + }) +}) From 2e5d9db73d76d8a86340648e01d91555ead3337d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Curley?= Date: Sun, 5 Apr 2026 07:44:01 +0100 Subject: [PATCH 043/414] test(solid-query): rename infinite query options test (#10384) Co-authored-by: Wonsuk Choi --- ...useQueryOptions.test-d.tsx => infiniteQueryOptions.test-d.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/solid-query/src/__tests__/{useQueryOptions.test-d.tsx => infiniteQueryOptions.test-d.tsx} (100%) diff --git a/packages/solid-query/src/__tests__/useQueryOptions.test-d.tsx b/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx similarity index 100% rename from packages/solid-query/src/__tests__/useQueryOptions.test-d.tsx rename to packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx From 422a99758e015d092058687a54455520872a194d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 5 Apr 2026 15:50:42 +0900 Subject: [PATCH 044/414] test(svelte-query/createQueries): move test files into 'createQueries' directory (#10386) --- .../tests/createQueries.svelte.test.ts | 934 ----------------- .../createQueries.svelte.test.ts | 937 +++++++++++++++++- .../createQueries.test-d.ts | 4 +- 3 files changed, 934 insertions(+), 941 deletions(-) delete mode 100644 packages/svelte-query/tests/createQueries.svelte.test.ts rename packages/svelte-query/tests/{ => createQueries}/createQueries.test-d.ts (86%) diff --git a/packages/svelte-query/tests/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries.svelte.test.ts deleted file mode 100644 index c648942483c..00000000000 --- a/packages/svelte-query/tests/createQueries.svelte.test.ts +++ /dev/null @@ -1,934 +0,0 @@ -import { afterEach, describe, expect, expectTypeOf, it, vi } from 'vitest' -import { QueryClient, createQueries } from '../src/index.js' -import { promiseWithResolvers, withEffectRoot } from './utils.svelte.js' -import type { - CreateQueryOptions, - CreateQueryResult, - QueryFunction, - QueryFunctionContext, - QueryKey, - skipToken, -} from '../src/index.js' - -describe('createQueries', () => { - const queryClient = new QueryClient() - - afterEach(() => { - queryClient.clear() - }) - - it( - 'should return the correct states', - withEffectRoot(async () => { - const key1 = ['test-1'] - const key2 = ['test-2'] - const results: Array> = [] - const { promise: promise1, resolve: resolve1 } = promiseWithResolvers() - const { promise: promise2, resolve: resolve2 } = promiseWithResolvers() - - const result = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => promise1, - }, - { - queryKey: key2, - queryFn: () => promise2, - }, - ], - }), - () => queryClient, - ) - - $effect(() => { - results.push([{ ...result[0] }, { ...result[1] }]) - }) - - resolve1(1) - - await vi.waitFor(() => expect(result[0].data).toBe(1)) - - resolve2(2) - await vi.waitFor(() => expect(result[1].data).toBe(2)) - - expect(results.length).toBe(3) - expect(results[0]).toMatchObject([ - { data: undefined }, - { data: undefined }, - ]) - expect(results[1]).toMatchObject([{ data: 1 }, { data: undefined }]) - expect(results[2]).toMatchObject([{ data: 1 }, { data: 2 }]) - }), - ) - - it( - 'handles type parameter - tuple of tuples', - withEffectRoot(() => { - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] - - const result1 = createQueries< - [[number], [string], [Array, boolean]] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 1, - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key3, - queryFn: () => ['string[]'], - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result1[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[2]).toEqualTypeOf< - CreateQueryResult, boolean> - >() - expectTypeOf(result1[0].data).toEqualTypeOf() - expectTypeOf(result1[1].data).toEqualTypeOf() - expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() - expectTypeOf(result1[2].error).toEqualTypeOf() - - // TData (3rd element) takes precedence over TQueryFnData (1st element) - const result2 = createQueries< - [[string, unknown, string], [string, unknown, number]] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result2[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[0].data).toEqualTypeOf() - expectTypeOf(result2[1].data).toEqualTypeOf() - - // types should be enforced - createQueries<[[string, unknown, string], [string, boolean, number]]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - ], - }), - () => queryClient, - ) - - // field names should be enforced - createQueries<[[string]]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - ], - }), - () => queryClient, - ) - }), - ) - - it( - 'handles type parameter - tuple of objects', - withEffectRoot(() => { - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] - - const result1 = createQueries< - [ - { queryFnData: number }, - { queryFnData: string }, - { queryFnData: Array; error: boolean }, - ] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 1, - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key3, - queryFn: () => ['string[]'], - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result1[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[2]).toEqualTypeOf< - CreateQueryResult, boolean> - >() - expectTypeOf(result1[0].data).toEqualTypeOf() - expectTypeOf(result1[1].data).toEqualTypeOf() - expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() - expectTypeOf(result1[2].error).toEqualTypeOf() - - // TData (data prop) takes precedence over TQueryFnData (queryFnData prop) - const result2 = createQueries< - [ - { queryFnData: string; data: string }, - { queryFnData: string; data: number }, - ] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result2[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[0].data).toEqualTypeOf() - expectTypeOf(result2[1].data).toEqualTypeOf() - - // can pass only TData (data prop) although TQueryFnData will be left unknown - const result3 = createQueries<[{ data: string }, { data: number }]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a as string - }, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a as number - }, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result3[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result3[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result3[0].data).toEqualTypeOf() - expectTypeOf(result3[1].data).toEqualTypeOf() - - // types should be enforced - createQueries< - [ - { queryFnData: string; data: string }, - { queryFnData: string; data: number; error: boolean }, - ] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - ], - }), - () => queryClient, - ) - - // field names should be enforced - createQueries<[{ queryFnData: string }]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - ], - }), - () => queryClient, - ) - }), - ) - - it( - 'handles array literal without type parameter to infer result type', - withEffectRoot(() => { - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] - const key4 = ['test-key-4'] - - // Array.map preserves TQueryFnData - const result1 = createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => i + 10, - })), - }), - () => queryClient, - ) - - expectTypeOf(result1).toEqualTypeOf< - Array> - >() - if (result1[0]) { - expectTypeOf(result1[0].data).toEqualTypeOf() - } - - // Array.map preserves TData - const result2 = createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => i + 10, - select: (data: number) => data.toString(), - })), - }), - () => queryClient, - ) - - expectTypeOf(result2).toEqualTypeOf< - Array> - >() - - const result3 = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 1, - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key3, - queryFn: () => ['string[]'], - select: () => 123, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result3[0]).toEqualTypeOf>() - expectTypeOf(result3[1]).toEqualTypeOf>() - expectTypeOf(result3[2]).toEqualTypeOf>() - expectTypeOf(result3[0].data).toEqualTypeOf() - expectTypeOf(result3[1].data).toEqualTypeOf() - // select takes precedence over queryFn - expectTypeOf(result3[2].data).toEqualTypeOf() - - // initialData/placeholderData are enforced - createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - { - queryKey: key2, - queryFn: () => 123, - // @ts-expect-error (placeholderData: number) - placeholderData: 'string', - initialData: 123, - }, - ], - }), - () => queryClient, - ) - - // select params are "indirectly" enforced - createQueries( - () => ({ - queries: [ - // unfortunately TS will not suggest the type for you - { - queryKey: key1, - queryFn: () => 'string', - }, - // however you can add a type to the callback - { - queryKey: key2, - queryFn: () => 'string', - }, - // the type you do pass is enforced - { - queryKey: key3, - queryFn: () => 'string', - }, - { - queryKey: key4, - queryFn: () => 'string', - select: (a: string) => parseInt(a), - }, - ], - }), - () => queryClient, - ) - - // callbacks are also indirectly enforced with Array.map - createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => i + 10, - select: (data: number) => data.toString(), - })), - }), - () => queryClient, - ) - - // results inference works when all the handlers are defined - const result4 = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key4, - queryFn: () => 'string', - select: (a: string) => parseInt(a), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result4[0]).toEqualTypeOf>() - expectTypeOf(result4[1]).toEqualTypeOf>() - expectTypeOf(result4[2]).toEqualTypeOf>() - - // handles when queryFn returns a Promise - const result5 = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => Promise.resolve('string'), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result5[0]).toEqualTypeOf>() - - // Array as const does not throw error - const result6 = createQueries( - () => - ({ - queries: [ - { - queryKey: ['key1'], - queryFn: () => 'string', - }, - { - queryKey: ['key1'], - queryFn: () => 123, - }, - ], - }) as const, - () => queryClient, - ) - - expectTypeOf(result6[0]).toEqualTypeOf>() - expectTypeOf(result6[1]).toEqualTypeOf>() - - // field names should be enforced - array literal - createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - ], - }), - () => queryClient, - ) - - // field names should be enforced - Array.map() result - createQueries( - () => ({ - // @ts-expect-error (invalidField) - queries: Array(10).map(() => ({ - someInvalidField: '', - })), - }), - () => queryClient, - ) - - // supports queryFn using fetch() to return Promise - Array.map() result - createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => - fetch('return Promise').then((resp) => resp.json()), - })), - }), - () => queryClient, - ) - - // supports queryFn using fetch() to return Promise - array literal - createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => - fetch('return Promise').then((resp) => resp.json()), - }, - ], - }), - () => queryClient, - ) - }), - ) - - it( - 'handles strongly typed queryFn factories and createQueries wrappers', - withEffectRoot(() => { - // QueryKey + queryFn factory - type QueryKeyA = ['queryA'] - const getQueryKeyA = (): QueryKeyA => ['queryA'] - type GetQueryFunctionA = () => QueryFunction - const getQueryFunctionA: GetQueryFunctionA = () => () => { - return 1 - } - type SelectorA = (data: number) => [number, string] - const getSelectorA = (): SelectorA => (data) => [data, data.toString()] - - type QueryKeyB = ['queryB', string] - const getQueryKeyB = (id: string): QueryKeyB => ['queryB', id] - type GetQueryFunctionB = () => QueryFunction - const getQueryFunctionB: GetQueryFunctionB = () => () => { - return '1' - } - type SelectorB = (data: string) => [string, number] - const getSelectorB = (): SelectorB => (data) => [data, +data] - - // Wrapper with strongly typed array-parameter - function useWrappedQueries< - TQueryFnData, - TError, - TData, - TQueryKey extends QueryKey, - >( - queries: Array< - CreateQueryOptions - >, - ) { - return createQueries( - () => ({ - queries: queries.map( - // no need to type the mapped query - (query) => { - const { queryFn: fn, queryKey: key } = query - expectTypeOf(fn).toEqualTypeOf< - | typeof skipToken - | QueryFunction - | undefined - >() - return { - queryKey: key, - queryFn: fn - ? (ctx: QueryFunctionContext) => { - // eslint-disable-next-line vitest/valid-expect - expectTypeOf(ctx.queryKey) - return ( - fn as QueryFunction - ).call({}, ctx) - } - : undefined, - } - }, - ), - }), - () => queryClient, - ) - } - - const result = createQueries( - () => ({ - queries: [ - { - queryKey: getQueryKeyA(), - queryFn: getQueryFunctionA(), - }, - { - queryKey: getQueryKeyB('id'), - queryFn: getQueryFunctionB(), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result[0]).toEqualTypeOf>() - expectTypeOf(result[1]).toEqualTypeOf>() - - const withSelector = createQueries( - () => ({ - queries: [ - { - queryKey: getQueryKeyA(), - queryFn: getQueryFunctionA(), - select: getSelectorA(), - }, - { - queryKey: getQueryKeyB('id'), - queryFn: getQueryFunctionB(), - select: getSelectorB(), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(withSelector[0]).toEqualTypeOf< - CreateQueryResult<[number, string], Error> - >() - expectTypeOf(withSelector[1]).toEqualTypeOf< - CreateQueryResult<[string, number], Error> - >() - - const withWrappedQueries = useWrappedQueries( - Array(10).map(() => ({ - queryKey: getQueryKeyA(), - queryFn: getQueryFunctionA(), - select: getSelectorA(), - })), - ) - - expectTypeOf(withWrappedQueries).toEqualTypeOf< - Array> - >() - }), - ) - - it( - 'should track results', - withEffectRoot(async () => { - const key1 = ['test-track-results'] - const results: Array> = [] - let count = 0 - - const result = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => Promise.resolve(++count), - }, - ], - }), - () => queryClient, - ) - - $effect(() => { - results.push([result[0]]) - }) - - await vi.waitFor(() => expect(result[0].data).toBe(1)) - - expect(results.length).toBe(2) - expect(results[0]).toMatchObject([{ data: undefined }]) - expect(results[1]).toMatchObject([{ data: 1 }]) - - // Trigger refetch - result[0].refetch() - - await vi.waitFor(() => expect(result[0].data).toBe(2)) - - // Only one render for data update, no render for isFetching transition - expect(results.length).toBe(3) - expect(results[2]).toMatchObject([{ data: 2 }]) - }), - ) - - it( - 'should combine queries', - withEffectRoot(async () => { - const key1 = ['test-combine-1'] - const key2 = ['test-combine-2'] - - const { promise: promise1, resolve: resolve1 } = - promiseWithResolvers() - const { promise: promise2, resolve: resolve2 } = - promiseWithResolvers() - - const queries = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => promise1, - }, - { - queryKey: key2, - queryFn: () => promise2, - }, - ], - combine: (results) => { - return { - combined: true, - res: results - .flatMap((res) => (res.data ? [res.data] : [])) - .join(','), - } - }, - }), - () => queryClient, - ) - - // Initially both queries are loading - expect(queries).toEqual({ - combined: true, - res: '', - }) - - // Resolve the first query - resolve1('first result') - await vi.waitFor(() => expect(queries.res).toBe('first result')) - - // Resolve the second query - resolve2('second result') - await vi.waitFor(() => - expect(queries.res).toBe('first result,second result'), - ) - - expect(queries).toEqual({ - combined: true, - res: 'first result,second result', - }) - }), - ) - - it( - 'should track property access through combine function', - withEffectRoot(async () => { - const key1 = ['test-track-combine-1'] - const key2 = ['test-track-combine-2'] - let count = 0 - const results: Array = [] - - const { promise: promise1, resolve: resolve1 } = - promiseWithResolvers() - const { promise: promise2, resolve: resolve2 } = - promiseWithResolvers() - const { promise: promise3, resolve: resolve3 } = - promiseWithResolvers() - const { promise: promise4, resolve: resolve4 } = - promiseWithResolvers() - - const queries = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => (count === 0 ? promise1 : promise3), - }, - { - queryKey: key2, - queryFn: () => (count === 0 ? promise2 : promise4), - }, - ], - combine: (queryResults) => { - return { - combined: true, - refetch: () => - Promise.all(queryResults.map((res) => res.refetch())), - res: queryResults - .flatMap((res) => (res.data ? [res.data] : [])) - .join(','), - } - }, - }), - () => queryClient, - ) - - $effect(() => { - results.push({ ...queries }) - }) - - // Initially both queries are loading - await vi.waitFor(() => - expect(results[0]).toStrictEqual({ - combined: true, - refetch: expect.any(Function), - res: '', - }), - ) - - // Resolve the first query - resolve1('first result ' + count) - await vi.waitFor(() => expect(queries.res).toBe('first result 0')) - - expect(results[1]).toStrictEqual({ - combined: true, - refetch: expect.any(Function), - res: 'first result 0', - }) - - // Resolve the second query - resolve2('second result ' + count) - await vi.waitFor(() => - expect(queries.res).toBe('first result 0,second result 0'), - ) - - expect(results[2]).toStrictEqual({ - combined: true, - refetch: expect.any(Function), - res: 'first result 0,second result 0', - }) - - // Increment count and refetch - count++ - queries.refetch() - - // Resolve the refetched queries - resolve3('first result ' + count) - resolve4('second result ' + count) - - await vi.waitFor(() => - expect(queries.res).toBe('first result 1,second result 1'), - ) - - const length = results.length - expect(results.at(-1)).toStrictEqual({ - combined: true, - refetch: expect.any(Function), - res: 'first result 1,second result 1', - }) - - // Refetch again but with the same data - await queries.refetch() - - // No further re-render because data didn't change - expect(results.length).toBe(length) - }), - ) -}) diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index dfff3892fb8..69d2cf845ca 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -1,18 +1,943 @@ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { afterEach, describe, expect, expectTypeOf, it, vi } from 'vitest' import { render } from '@testing-library/svelte' import { sleep } from '@tanstack/query-test-utils' +import { QueryClient, createQueries } from '../../src/index.js' +import { promiseWithResolvers, withEffectRoot } from '../utils.svelte.js' import IsRestoringExample from './IsRestoringExample.svelte' +import type { + CreateQueryOptions, + CreateQueryResult, + QueryFunction, + QueryFunctionContext, + QueryKey, + skipToken, +} from '../../src/index.js' describe('createQueries', () => { - beforeEach(() => { - vi.useFakeTimers() - }) + const queryClient = new QueryClient() afterEach(() => { - vi.useRealTimers() + queryClient.clear() }) + it( + 'should return the correct states', + withEffectRoot(async () => { + const key1 = ['test-1'] + const key2 = ['test-2'] + const results: Array> = [] + const { promise: promise1, resolve: resolve1 } = promiseWithResolvers() + const { promise: promise2, resolve: resolve2 } = promiseWithResolvers() + + const result = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => promise1, + }, + { + queryKey: key2, + queryFn: () => promise2, + }, + ], + }), + () => queryClient, + ) + + $effect(() => { + results.push([{ ...result[0] }, { ...result[1] }]) + }) + + resolve1(1) + + await vi.waitFor(() => expect(result[0].data).toBe(1)) + + resolve2(2) + await vi.waitFor(() => expect(result[1].data).toBe(2)) + + expect(results.length).toBe(3) + expect(results[0]).toMatchObject([ + { data: undefined }, + { data: undefined }, + ]) + expect(results[1]).toMatchObject([{ data: 1 }, { data: undefined }]) + expect(results[2]).toMatchObject([{ data: 1 }, { data: 2 }]) + }), + ) + + it( + 'handles type parameter - tuple of tuples', + withEffectRoot(() => { + const key1 = ['test-key-1'] + const key2 = ['test-key-2'] + const key3 = ['test-key-3'] + + const result1 = createQueries< + [[number], [string], [Array, boolean]] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 1, + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key3, + queryFn: () => ['string[]'], + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result1[0]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result1[1]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result1[2]).toEqualTypeOf< + CreateQueryResult, boolean> + >() + expectTypeOf(result1[0].data).toEqualTypeOf() + expectTypeOf(result1[1].data).toEqualTypeOf() + expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() + expectTypeOf(result1[2].error).toEqualTypeOf() + + // TData (3rd element) takes precedence over TQueryFnData (1st element) + const result2 = createQueries< + [[string, unknown, string], [string, unknown, number]] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result2[0]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result2[1]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result2[0].data).toEqualTypeOf() + expectTypeOf(result2[1].data).toEqualTypeOf() + + // types should be enforced + createQueries<[[string, unknown, string], [string, boolean, number]]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + ], + }), + () => queryClient, + ) + + // field names should be enforced + createQueries<[[string]]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + ], + }), + () => queryClient, + ) + }), + ) + + it( + 'handles type parameter - tuple of objects', + withEffectRoot(() => { + const key1 = ['test-key-1'] + const key2 = ['test-key-2'] + const key3 = ['test-key-3'] + + const result1 = createQueries< + [ + { queryFnData: number }, + { queryFnData: string }, + { queryFnData: Array; error: boolean }, + ] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 1, + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key3, + queryFn: () => ['string[]'], + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result1[0]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result1[1]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result1[2]).toEqualTypeOf< + CreateQueryResult, boolean> + >() + expectTypeOf(result1[0].data).toEqualTypeOf() + expectTypeOf(result1[1].data).toEqualTypeOf() + expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() + expectTypeOf(result1[2].error).toEqualTypeOf() + + // TData (data prop) takes precedence over TQueryFnData (queryFnData prop) + const result2 = createQueries< + [ + { queryFnData: string; data: string }, + { queryFnData: string; data: number }, + ] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result2[0]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result2[1]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result2[0].data).toEqualTypeOf() + expectTypeOf(result2[1].data).toEqualTypeOf() + + // can pass only TData (data prop) although TQueryFnData will be left unknown + const result3 = createQueries<[{ data: string }, { data: number }]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a as string + }, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a as number + }, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result3[0]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result3[1]).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(result3[0].data).toEqualTypeOf() + expectTypeOf(result3[1].data).toEqualTypeOf() + + // types should be enforced + createQueries< + [ + { queryFnData: string; data: string }, + { queryFnData: string; data: number; error: boolean }, + ] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + ], + }), + () => queryClient, + ) + + // field names should be enforced + createQueries<[{ queryFnData: string }]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + ], + }), + () => queryClient, + ) + }), + ) + + it( + 'handles array literal without type parameter to infer result type', + withEffectRoot(() => { + const key1 = ['test-key-1'] + const key2 = ['test-key-2'] + const key3 = ['test-key-3'] + const key4 = ['test-key-4'] + + // Array.map preserves TQueryFnData + const result1 = createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => i + 10, + })), + }), + () => queryClient, + ) + + expectTypeOf(result1).toEqualTypeOf< + Array> + >() + if (result1[0]) { + expectTypeOf(result1[0].data).toEqualTypeOf() + } + + // Array.map preserves TData + const result2 = createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => i + 10, + select: (data: number) => data.toString(), + })), + }), + () => queryClient, + ) + + expectTypeOf(result2).toEqualTypeOf< + Array> + >() + + const result3 = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 1, + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key3, + queryFn: () => ['string[]'], + select: () => 123, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result3[0]).toEqualTypeOf>() + expectTypeOf(result3[1]).toEqualTypeOf>() + expectTypeOf(result3[2]).toEqualTypeOf>() + expectTypeOf(result3[0].data).toEqualTypeOf() + expectTypeOf(result3[1].data).toEqualTypeOf() + // select takes precedence over queryFn + expectTypeOf(result3[2].data).toEqualTypeOf() + + // initialData/placeholderData are enforced + createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + { + queryKey: key2, + queryFn: () => 123, + // @ts-expect-error (placeholderData: number) + placeholderData: 'string', + initialData: 123, + }, + ], + }), + () => queryClient, + ) + + // select params are "indirectly" enforced + createQueries( + () => ({ + queries: [ + // unfortunately TS will not suggest the type for you + { + queryKey: key1, + queryFn: () => 'string', + }, + // however you can add a type to the callback + { + queryKey: key2, + queryFn: () => 'string', + }, + // the type you do pass is enforced + { + queryKey: key3, + queryFn: () => 'string', + }, + { + queryKey: key4, + queryFn: () => 'string', + select: (a: string) => parseInt(a), + }, + ], + }), + () => queryClient, + ) + + // callbacks are also indirectly enforced with Array.map + createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => i + 10, + select: (data: number) => data.toString(), + })), + }), + () => queryClient, + ) + + // results inference works when all the handlers are defined + const result4 = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key4, + queryFn: () => 'string', + select: (a: string) => parseInt(a), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result4[0]).toEqualTypeOf>() + expectTypeOf(result4[1]).toEqualTypeOf>() + expectTypeOf(result4[2]).toEqualTypeOf>() + + // handles when queryFn returns a Promise + const result5 = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => Promise.resolve('string'), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result5[0]).toEqualTypeOf>() + + // Array as const does not throw error + const result6 = createQueries( + () => + ({ + queries: [ + { + queryKey: ['key1'], + queryFn: () => 'string', + }, + { + queryKey: ['key1'], + queryFn: () => 123, + }, + ], + }) as const, + () => queryClient, + ) + + expectTypeOf(result6[0]).toEqualTypeOf>() + expectTypeOf(result6[1]).toEqualTypeOf>() + + // field names should be enforced - array literal + createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + ], + }), + () => queryClient, + ) + + // field names should be enforced - Array.map() result + createQueries( + () => ({ + // @ts-expect-error (invalidField) + queries: Array(10).map(() => ({ + someInvalidField: '', + })), + }), + () => queryClient, + ) + + // supports queryFn using fetch() to return Promise - Array.map() result + createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => + fetch('return Promise').then((resp) => resp.json()), + })), + }), + () => queryClient, + ) + + // supports queryFn using fetch() to return Promise - array literal + createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => + fetch('return Promise').then((resp) => resp.json()), + }, + ], + }), + () => queryClient, + ) + }), + ) + + it( + 'handles strongly typed queryFn factories and createQueries wrappers', + withEffectRoot(() => { + // QueryKey + queryFn factory + type QueryKeyA = ['queryA'] + const getQueryKeyA = (): QueryKeyA => ['queryA'] + type GetQueryFunctionA = () => QueryFunction + const getQueryFunctionA: GetQueryFunctionA = () => () => { + return 1 + } + type SelectorA = (data: number) => [number, string] + const getSelectorA = (): SelectorA => (data) => [data, data.toString()] + + type QueryKeyB = ['queryB', string] + const getQueryKeyB = (id: string): QueryKeyB => ['queryB', id] + type GetQueryFunctionB = () => QueryFunction + const getQueryFunctionB: GetQueryFunctionB = () => () => { + return '1' + } + type SelectorB = (data: string) => [string, number] + const getSelectorB = (): SelectorB => (data) => [data, +data] + + // Wrapper with strongly typed array-parameter + function useWrappedQueries< + TQueryFnData, + TError, + TData, + TQueryKey extends QueryKey, + >( + queries: Array< + CreateQueryOptions + >, + ) { + return createQueries( + () => ({ + queries: queries.map( + // no need to type the mapped query + (query) => { + const { queryFn: fn, queryKey: key } = query + expectTypeOf(fn).toEqualTypeOf< + | typeof skipToken + | QueryFunction + | undefined + >() + return { + queryKey: key, + queryFn: fn + ? (ctx: QueryFunctionContext) => { + // eslint-disable-next-line vitest/valid-expect + expectTypeOf(ctx.queryKey) + return ( + fn as QueryFunction + ).call({}, ctx) + } + : undefined, + } + }, + ), + }), + () => queryClient, + ) + } + + const result = createQueries( + () => ({ + queries: [ + { + queryKey: getQueryKeyA(), + queryFn: getQueryFunctionA(), + }, + { + queryKey: getQueryKeyB('id'), + queryFn: getQueryFunctionB(), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result[0]).toEqualTypeOf>() + expectTypeOf(result[1]).toEqualTypeOf>() + + const withSelector = createQueries( + () => ({ + queries: [ + { + queryKey: getQueryKeyA(), + queryFn: getQueryFunctionA(), + select: getSelectorA(), + }, + { + queryKey: getQueryKeyB('id'), + queryFn: getQueryFunctionB(), + select: getSelectorB(), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(withSelector[0]).toEqualTypeOf< + CreateQueryResult<[number, string], Error> + >() + expectTypeOf(withSelector[1]).toEqualTypeOf< + CreateQueryResult<[string, number], Error> + >() + + const withWrappedQueries = useWrappedQueries( + Array(10).map(() => ({ + queryKey: getQueryKeyA(), + queryFn: getQueryFunctionA(), + select: getSelectorA(), + })), + ) + + expectTypeOf(withWrappedQueries).toEqualTypeOf< + Array> + >() + }), + ) + + it( + 'should track results', + withEffectRoot(async () => { + const key1 = ['test-track-results'] + const results: Array> = [] + let count = 0 + + const result = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => Promise.resolve(++count), + }, + ], + }), + () => queryClient, + ) + + $effect(() => { + results.push([result[0]]) + }) + + await vi.waitFor(() => expect(result[0].data).toBe(1)) + + expect(results.length).toBe(2) + expect(results[0]).toMatchObject([{ data: undefined }]) + expect(results[1]).toMatchObject([{ data: 1 }]) + + // Trigger refetch + result[0].refetch() + + await vi.waitFor(() => expect(result[0].data).toBe(2)) + + // Only one render for data update, no render for isFetching transition + expect(results.length).toBe(3) + expect(results[2]).toMatchObject([{ data: 2 }]) + }), + ) + + it( + 'should combine queries', + withEffectRoot(async () => { + const key1 = ['test-combine-1'] + const key2 = ['test-combine-2'] + + const { promise: promise1, resolve: resolve1 } = + promiseWithResolvers() + const { promise: promise2, resolve: resolve2 } = + promiseWithResolvers() + + const queries = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => promise1, + }, + { + queryKey: key2, + queryFn: () => promise2, + }, + ], + combine: (results) => { + return { + combined: true, + res: results + .flatMap((res) => (res.data ? [res.data] : [])) + .join(','), + } + }, + }), + () => queryClient, + ) + + // Initially both queries are loading + expect(queries).toEqual({ + combined: true, + res: '', + }) + + // Resolve the first query + resolve1('first result') + await vi.waitFor(() => expect(queries.res).toBe('first result')) + + // Resolve the second query + resolve2('second result') + await vi.waitFor(() => + expect(queries.res).toBe('first result,second result'), + ) + + expect(queries).toEqual({ + combined: true, + res: 'first result,second result', + }) + }), + ) + + it( + 'should track property access through combine function', + withEffectRoot(async () => { + const key1 = ['test-track-combine-1'] + const key2 = ['test-track-combine-2'] + let count = 0 + const results: Array = [] + + const { promise: promise1, resolve: resolve1 } = + promiseWithResolvers() + const { promise: promise2, resolve: resolve2 } = + promiseWithResolvers() + const { promise: promise3, resolve: resolve3 } = + promiseWithResolvers() + const { promise: promise4, resolve: resolve4 } = + promiseWithResolvers() + + const queries = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => (count === 0 ? promise1 : promise3), + }, + { + queryKey: key2, + queryFn: () => (count === 0 ? promise2 : promise4), + }, + ], + combine: (queryResults) => { + return { + combined: true, + refetch: () => + Promise.all(queryResults.map((res) => res.refetch())), + res: queryResults + .flatMap((res) => (res.data ? [res.data] : [])) + .join(','), + } + }, + }), + () => queryClient, + ) + + $effect(() => { + results.push({ ...queries }) + }) + + // Initially both queries are loading + await vi.waitFor(() => + expect(results[0]).toStrictEqual({ + combined: true, + refetch: expect.any(Function), + res: '', + }), + ) + + // Resolve the first query + resolve1('first result ' + count) + await vi.waitFor(() => expect(queries.res).toBe('first result 0')) + + expect(results[1]).toStrictEqual({ + combined: true, + refetch: expect.any(Function), + res: 'first result 0', + }) + + // Resolve the second query + resolve2('second result ' + count) + await vi.waitFor(() => + expect(queries.res).toBe('first result 0,second result 0'), + ) + + expect(results[2]).toStrictEqual({ + combined: true, + refetch: expect.any(Function), + res: 'first result 0,second result 0', + }) + + // Increment count and refetch + count++ + queries.refetch() + + // Resolve the refetched queries + resolve3('first result ' + count) + resolve4('second result ' + count) + + await vi.waitFor(() => + expect(queries.res).toBe('first result 1,second result 1'), + ) + + const length = results.length + expect(results.at(-1)).toStrictEqual({ + combined: true, + refetch: expect.any(Function), + res: 'first result 1,second result 1', + }) + + // Refetch again but with the same data + await queries.refetch() + + // No further re-render because data didn't change + expect(results.length).toBe(length) + }), + ) + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { + vi.useFakeTimers() + const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) const queryFn2 = vi.fn(() => sleep(10).then(() => 'data2')) @@ -41,5 +966,7 @@ describe('createQueries', () => { expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') expect(queryFn1).toHaveBeenCalledTimes(0) expect(queryFn2).toHaveBeenCalledTimes(0) + + vi.useRealTimers() }) }) diff --git a/packages/svelte-query/tests/createQueries.test-d.ts b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts similarity index 86% rename from packages/svelte-query/tests/createQueries.test-d.ts rename to packages/svelte-query/tests/createQueries/createQueries.test-d.ts index 016f5a53a5b..0783afe4e9b 100644 --- a/packages/svelte-query/tests/createQueries.test-d.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts @@ -1,6 +1,6 @@ import { describe, expectTypeOf, it } from 'vitest' -import { createQueries, queryOptions } from '../src/index.js' -import type { CreateQueryResult } from '../src/index.js' +import { createQueries, queryOptions } from '../../src/index.js' +import type { CreateQueryResult } from '../../src/index.js' describe('createQueries', () => { it('should return correct data for dynamic queries with mixed result types', () => { From 4b2cd73707b938846ffe88f8eb8d641c0218ea39 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 5 Apr 2026 16:32:30 +0900 Subject: [PATCH 045/414] test(svelte-query/createQueries): add test for not fetching queries with different durations when 'isRestoring' is true (#10387) --- .../createQueries.svelte.test.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index 69d2cf845ca..6f4e2a296ce 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -969,4 +969,50 @@ describe('createQueries', () => { vi.useRealTimers() }) + + it('should not fetch queries with different durations for the duration of the restoring period when isRestoring is true', async () => { + vi.useFakeTimers() + + const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) + const queryFn2 = vi.fn(() => sleep(20).then(() => 'data2')) + + const rendered = render(IsRestoringExample, { + props: { queryFn1, queryFn2 }, + }) + + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getByTestId('status1')).toHaveTextContent('pending') + expect(rendered.getByTestId('status2')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle') + expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle') + expect(rendered.getByTestId('data1')).toHaveTextContent('undefined') + expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByTestId('status1')).toHaveTextContent('pending') + expect(rendered.getByTestId('status2')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle') + expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle') + expect(rendered.getByTestId('data1')).toHaveTextContent('undefined') + expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + + await vi.advanceTimersByTimeAsync(10) + + expect(rendered.getByTestId('status1')).toHaveTextContent('pending') + expect(rendered.getByTestId('status2')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle') + expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle') + expect(rendered.getByTestId('data1')).toHaveTextContent('undefined') + expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + + vi.useRealTimers() + }) }) From 7781a3e68b385e30b25f7330e9ce1ea3b54bc003 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 5 Apr 2026 16:55:34 +0900 Subject: [PATCH 046/414] test(svelte-query/createQueries): switch to fake timers, replace 'vi.waitFor' with 'vi.advanceTimersByTimeAsync', and move 'queryClient' to 'beforeEach' (#10388) * test(svelte-query/createQueries): switch to fake timers, replace 'vi.waitFor' with 'vi.advanceTimersByTimeAsync', and move 'queryClient' to 'beforeEach' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../createQueries.svelte.test.ts | 73 ++++++++++--------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index 6f4e2a296ce..082eb072f1c 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -1,4 +1,12 @@ -import { afterEach, describe, expect, expectTypeOf, it, vi } from 'vitest' +import { + afterEach, + beforeEach, + describe, + expect, + expectTypeOf, + it, + vi, +} from 'vitest' import { render } from '@testing-library/svelte' import { sleep } from '@tanstack/query-test-utils' import { QueryClient, createQueries } from '../../src/index.js' @@ -14,9 +22,15 @@ import type { } from '../../src/index.js' describe('createQueries', () => { - const queryClient = new QueryClient() + let queryClient: QueryClient + + beforeEach(() => { + vi.useFakeTimers() + queryClient = new QueryClient() + }) afterEach(() => { + vi.useRealTimers() queryClient.clear() }) @@ -50,11 +64,12 @@ describe('createQueries', () => { }) resolve1(1) - - await vi.waitFor(() => expect(result[0].data).toBe(1)) + await vi.advanceTimersByTimeAsync(0) + expect(result[0].data).toBe(1) resolve2(2) - await vi.waitFor(() => expect(result[1].data).toBe(2)) + await vi.advanceTimersByTimeAsync(0) + expect(result[1].data).toBe(2) expect(results.length).toBe(3) expect(results[0]).toMatchObject([ @@ -755,7 +770,8 @@ describe('createQueries', () => { results.push([result[0]]) }) - await vi.waitFor(() => expect(result[0].data).toBe(1)) + await vi.advanceTimersByTimeAsync(0) + expect(result[0].data).toBe(1) expect(results.length).toBe(2) expect(results[0]).toMatchObject([{ data: undefined }]) @@ -764,7 +780,8 @@ describe('createQueries', () => { // Trigger refetch result[0].refetch() - await vi.waitFor(() => expect(result[0].data).toBe(2)) + await vi.advanceTimersByTimeAsync(0) + expect(result[0].data).toBe(2) // Only one render for data update, no render for isFetching transition expect(results.length).toBe(3) @@ -815,13 +832,13 @@ describe('createQueries', () => { // Resolve the first query resolve1('first result') - await vi.waitFor(() => expect(queries.res).toBe('first result')) + await vi.advanceTimersByTimeAsync(0) + expect(queries.res).toBe('first result') // Resolve the second query resolve2('second result') - await vi.waitFor(() => - expect(queries.res).toBe('first result,second result'), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queries.res).toBe('first result,second result') expect(queries).toEqual({ combined: true, @@ -878,17 +895,17 @@ describe('createQueries', () => { }) // Initially both queries are loading - await vi.waitFor(() => - expect(results[0]).toStrictEqual({ - combined: true, - refetch: expect.any(Function), - res: '', - }), - ) + await vi.advanceTimersByTimeAsync(0) + expect(results[0]).toStrictEqual({ + combined: true, + refetch: expect.any(Function), + res: '', + }) // Resolve the first query resolve1('first result ' + count) - await vi.waitFor(() => expect(queries.res).toBe('first result 0')) + await vi.advanceTimersByTimeAsync(0) + expect(queries.res).toBe('first result 0') expect(results[1]).toStrictEqual({ combined: true, @@ -898,9 +915,8 @@ describe('createQueries', () => { // Resolve the second query resolve2('second result ' + count) - await vi.waitFor(() => - expect(queries.res).toBe('first result 0,second result 0'), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queries.res).toBe('first result 0,second result 0') expect(results[2]).toStrictEqual({ combined: true, @@ -916,9 +932,8 @@ describe('createQueries', () => { resolve3('first result ' + count) resolve4('second result ' + count) - await vi.waitFor(() => - expect(queries.res).toBe('first result 1,second result 1'), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queries.res).toBe('first result 1,second result 1') const length = results.length expect(results.at(-1)).toStrictEqual({ @@ -936,8 +951,6 @@ describe('createQueries', () => { ) it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { - vi.useFakeTimers() - const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) const queryFn2 = vi.fn(() => sleep(10).then(() => 'data2')) @@ -966,13 +979,9 @@ describe('createQueries', () => { expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') expect(queryFn1).toHaveBeenCalledTimes(0) expect(queryFn2).toHaveBeenCalledTimes(0) - - vi.useRealTimers() }) it('should not fetch queries with different durations for the duration of the restoring period when isRestoring is true', async () => { - vi.useFakeTimers() - const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) const queryFn2 = vi.fn(() => sleep(20).then(() => 'data2')) @@ -1012,7 +1021,5 @@ describe('createQueries', () => { expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') expect(queryFn1).toHaveBeenCalledTimes(0) expect(queryFn2).toHaveBeenCalledTimes(0) - - vi.useRealTimers() }) }) From 80f0370894e2d5cfa8e6b34d70868e2b0b84cf5e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 5 Apr 2026 20:04:27 +0900 Subject: [PATCH 047/414] test(svelte-query/createQueries): move type tests from 'createQueries.svelte.test.ts' to 'createQueries.test-d.ts' (#10389) * test(svelte-query/createQueries): move type tests from 'createQueries.svelte.test.ts' to 'createQueries.test-d.ts' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../createQueries.svelte.test.ts | 685 +----------------- .../createQueries/createQueries.test-d.ts | 649 ++++++++++++++++- 2 files changed, 650 insertions(+), 684 deletions(-) diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index 082eb072f1c..03df185c0bc 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -1,25 +1,10 @@ -import { - afterEach, - beforeEach, - describe, - expect, - expectTypeOf, - it, - vi, -} from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@testing-library/svelte' import { sleep } from '@tanstack/query-test-utils' import { QueryClient, createQueries } from '../../src/index.js' import { promiseWithResolvers, withEffectRoot } from '../utils.svelte.js' import IsRestoringExample from './IsRestoringExample.svelte' -import type { - CreateQueryOptions, - CreateQueryResult, - QueryFunction, - QueryFunctionContext, - QueryKey, - skipToken, -} from '../../src/index.js' +import type { CreateQueryResult } from '../../src/index.js' describe('createQueries', () => { let queryClient: QueryClient @@ -81,672 +66,6 @@ describe('createQueries', () => { }), ) - it( - 'handles type parameter - tuple of tuples', - withEffectRoot(() => { - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] - - const result1 = createQueries< - [[number], [string], [Array, boolean]] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 1, - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key3, - queryFn: () => ['string[]'], - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result1[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[2]).toEqualTypeOf< - CreateQueryResult, boolean> - >() - expectTypeOf(result1[0].data).toEqualTypeOf() - expectTypeOf(result1[1].data).toEqualTypeOf() - expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() - expectTypeOf(result1[2].error).toEqualTypeOf() - - // TData (3rd element) takes precedence over TQueryFnData (1st element) - const result2 = createQueries< - [[string, unknown, string], [string, unknown, number]] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result2[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[0].data).toEqualTypeOf() - expectTypeOf(result2[1].data).toEqualTypeOf() - - // types should be enforced - createQueries<[[string, unknown, string], [string, boolean, number]]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - ], - }), - () => queryClient, - ) - - // field names should be enforced - createQueries<[[string]]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - ], - }), - () => queryClient, - ) - }), - ) - - it( - 'handles type parameter - tuple of objects', - withEffectRoot(() => { - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] - - const result1 = createQueries< - [ - { queryFnData: number }, - { queryFnData: string }, - { queryFnData: Array; error: boolean }, - ] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 1, - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key3, - queryFn: () => ['string[]'], - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result1[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result1[2]).toEqualTypeOf< - CreateQueryResult, boolean> - >() - expectTypeOf(result1[0].data).toEqualTypeOf() - expectTypeOf(result1[1].data).toEqualTypeOf() - expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() - expectTypeOf(result1[2].error).toEqualTypeOf() - - // TData (data prop) takes precedence over TQueryFnData (queryFnData prop) - const result2 = createQueries< - [ - { queryFnData: string; data: string }, - { queryFnData: string; data: number }, - ] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result2[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result2[0].data).toEqualTypeOf() - expectTypeOf(result2[1].data).toEqualTypeOf() - - // can pass only TData (data prop) although TQueryFnData will be left unknown - const result3 = createQueries<[{ data: string }, { data: number }]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a as string - }, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a as number - }, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result3[0]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result3[1]).toEqualTypeOf< - CreateQueryResult - >() - expectTypeOf(result3[0].data).toEqualTypeOf() - expectTypeOf(result3[1].data).toEqualTypeOf() - - // types should be enforced - createQueries< - [ - { queryFnData: string; data: string }, - { queryFnData: string; data: number; error: boolean }, - ] - >( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return a.toLowerCase() - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - { - queryKey: key2, - queryFn: () => 'string', - select: (a) => { - expectTypeOf(a).toEqualTypeOf() - return parseInt(a) - }, - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - ], - }), - () => queryClient, - ) - - // field names should be enforced - createQueries<[{ queryFnData: string }]>( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - ], - }), - () => queryClient, - ) - }), - ) - - it( - 'handles array literal without type parameter to infer result type', - withEffectRoot(() => { - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] - const key4 = ['test-key-4'] - - // Array.map preserves TQueryFnData - const result1 = createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => i + 10, - })), - }), - () => queryClient, - ) - - expectTypeOf(result1).toEqualTypeOf< - Array> - >() - if (result1[0]) { - expectTypeOf(result1[0].data).toEqualTypeOf() - } - - // Array.map preserves TData - const result2 = createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => i + 10, - select: (data: number) => data.toString(), - })), - }), - () => queryClient, - ) - - expectTypeOf(result2).toEqualTypeOf< - Array> - >() - - const result3 = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 1, - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key3, - queryFn: () => ['string[]'], - select: () => 123, - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result3[0]).toEqualTypeOf>() - expectTypeOf(result3[1]).toEqualTypeOf>() - expectTypeOf(result3[2]).toEqualTypeOf>() - expectTypeOf(result3[0].data).toEqualTypeOf() - expectTypeOf(result3[1].data).toEqualTypeOf() - // select takes precedence over queryFn - expectTypeOf(result3[2].data).toEqualTypeOf() - - // initialData/placeholderData are enforced - createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - placeholderData: 'string', - // @ts-expect-error (initialData: string) - initialData: 123, - }, - { - queryKey: key2, - queryFn: () => 123, - // @ts-expect-error (placeholderData: number) - placeholderData: 'string', - initialData: 123, - }, - ], - }), - () => queryClient, - ) - - // select params are "indirectly" enforced - createQueries( - () => ({ - queries: [ - // unfortunately TS will not suggest the type for you - { - queryKey: key1, - queryFn: () => 'string', - }, - // however you can add a type to the callback - { - queryKey: key2, - queryFn: () => 'string', - }, - // the type you do pass is enforced - { - queryKey: key3, - queryFn: () => 'string', - }, - { - queryKey: key4, - queryFn: () => 'string', - select: (a: string) => parseInt(a), - }, - ], - }), - () => queryClient, - ) - - // callbacks are also indirectly enforced with Array.map - createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => i + 10, - select: (data: number) => data.toString(), - })), - }), - () => queryClient, - ) - - // results inference works when all the handlers are defined - const result4 = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - { - queryKey: key2, - queryFn: () => 'string', - }, - { - queryKey: key4, - queryFn: () => 'string', - select: (a: string) => parseInt(a), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result4[0]).toEqualTypeOf>() - expectTypeOf(result4[1]).toEqualTypeOf>() - expectTypeOf(result4[2]).toEqualTypeOf>() - - // handles when queryFn returns a Promise - const result5 = createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => Promise.resolve('string'), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result5[0]).toEqualTypeOf>() - - // Array as const does not throw error - const result6 = createQueries( - () => - ({ - queries: [ - { - queryKey: ['key1'], - queryFn: () => 'string', - }, - { - queryKey: ['key1'], - queryFn: () => 123, - }, - ], - }) as const, - () => queryClient, - ) - - expectTypeOf(result6[0]).toEqualTypeOf>() - expectTypeOf(result6[1]).toEqualTypeOf>() - - // field names should be enforced - array literal - createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => 'string', - }, - ], - }), - () => queryClient, - ) - - // field names should be enforced - Array.map() result - createQueries( - () => ({ - // @ts-expect-error (invalidField) - queries: Array(10).map(() => ({ - someInvalidField: '', - })), - }), - () => queryClient, - ) - - // supports queryFn using fetch() to return Promise - Array.map() result - createQueries( - () => ({ - queries: Array(50).map((_, i) => ({ - queryKey: ['key', i] as const, - queryFn: () => - fetch('return Promise').then((resp) => resp.json()), - })), - }), - () => queryClient, - ) - - // supports queryFn using fetch() to return Promise - array literal - createQueries( - () => ({ - queries: [ - { - queryKey: key1, - queryFn: () => - fetch('return Promise').then((resp) => resp.json()), - }, - ], - }), - () => queryClient, - ) - }), - ) - - it( - 'handles strongly typed queryFn factories and createQueries wrappers', - withEffectRoot(() => { - // QueryKey + queryFn factory - type QueryKeyA = ['queryA'] - const getQueryKeyA = (): QueryKeyA => ['queryA'] - type GetQueryFunctionA = () => QueryFunction - const getQueryFunctionA: GetQueryFunctionA = () => () => { - return 1 - } - type SelectorA = (data: number) => [number, string] - const getSelectorA = (): SelectorA => (data) => [data, data.toString()] - - type QueryKeyB = ['queryB', string] - const getQueryKeyB = (id: string): QueryKeyB => ['queryB', id] - type GetQueryFunctionB = () => QueryFunction - const getQueryFunctionB: GetQueryFunctionB = () => () => { - return '1' - } - type SelectorB = (data: string) => [string, number] - const getSelectorB = (): SelectorB => (data) => [data, +data] - - // Wrapper with strongly typed array-parameter - function useWrappedQueries< - TQueryFnData, - TError, - TData, - TQueryKey extends QueryKey, - >( - queries: Array< - CreateQueryOptions - >, - ) { - return createQueries( - () => ({ - queries: queries.map( - // no need to type the mapped query - (query) => { - const { queryFn: fn, queryKey: key } = query - expectTypeOf(fn).toEqualTypeOf< - | typeof skipToken - | QueryFunction - | undefined - >() - return { - queryKey: key, - queryFn: fn - ? (ctx: QueryFunctionContext) => { - // eslint-disable-next-line vitest/valid-expect - expectTypeOf(ctx.queryKey) - return ( - fn as QueryFunction - ).call({}, ctx) - } - : undefined, - } - }, - ), - }), - () => queryClient, - ) - } - - const result = createQueries( - () => ({ - queries: [ - { - queryKey: getQueryKeyA(), - queryFn: getQueryFunctionA(), - }, - { - queryKey: getQueryKeyB('id'), - queryFn: getQueryFunctionB(), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(result[0]).toEqualTypeOf>() - expectTypeOf(result[1]).toEqualTypeOf>() - - const withSelector = createQueries( - () => ({ - queries: [ - { - queryKey: getQueryKeyA(), - queryFn: getQueryFunctionA(), - select: getSelectorA(), - }, - { - queryKey: getQueryKeyB('id'), - queryFn: getQueryFunctionB(), - select: getSelectorB(), - }, - ], - }), - () => queryClient, - ) - - expectTypeOf(withSelector[0]).toEqualTypeOf< - CreateQueryResult<[number, string], Error> - >() - expectTypeOf(withSelector[1]).toEqualTypeOf< - CreateQueryResult<[string, number], Error> - >() - - const withWrappedQueries = useWrappedQueries( - Array(10).map(() => ({ - queryKey: getQueryKeyA(), - queryFn: getQueryFunctionA(), - select: getSelectorA(), - })), - ) - - expectTypeOf(withWrappedQueries).toEqualTypeOf< - Array> - >() - }), - ) - it( 'should track results', withEffectRoot(async () => { diff --git a/packages/svelte-query/tests/createQueries/createQueries.test-d.ts b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts index 0783afe4e9b..44d099c81a2 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.test-d.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts @@ -1,6 +1,14 @@ import { describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' import { createQueries, queryOptions } from '../../src/index.js' -import type { CreateQueryResult } from '../../src/index.js' +import type { + CreateQueryOptions, + CreateQueryResult, + QueryFunction, + QueryFunctionContext, + QueryKey, + skipToken, +} from '../../src/index.js' describe('createQueries', () => { it('should return correct data for dynamic queries with mixed result types', () => { @@ -31,4 +39,643 @@ describe('createQueries', () => { ] >() }) + + it('handles type parameter - tuple of tuples', () => { + const queryClient = new QueryClient() + const key1 = ['test-key-1'] + const key2 = ['test-key-2'] + const key3 = ['test-key-3'] + + const result1 = createQueries< + [[number], [string], [Array, boolean]] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 1, + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key3, + queryFn: () => ['string[]'], + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result1[0]).toEqualTypeOf>() + expectTypeOf(result1[1]).toEqualTypeOf>() + expectTypeOf(result1[2]).toEqualTypeOf< + CreateQueryResult, boolean> + >() + expectTypeOf(result1[0].data).toEqualTypeOf() + expectTypeOf(result1[1].data).toEqualTypeOf() + expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() + expectTypeOf(result1[2].error).toEqualTypeOf() + + // TData (3rd element) takes precedence over TQueryFnData (1st element) + const result2 = createQueries< + [[string, unknown, string], [string, unknown, number]] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result2[0]).toEqualTypeOf>() + expectTypeOf(result2[1]).toEqualTypeOf>() + expectTypeOf(result2[0].data).toEqualTypeOf() + expectTypeOf(result2[1].data).toEqualTypeOf() + + // types should be enforced + createQueries<[[string, unknown, string], [string, boolean, number]]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + ], + }), + () => queryClient, + ) + + // field names should be enforced + createQueries<[[string]]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + ], + }), + () => queryClient, + ) + }) + + it('handles type parameter - tuple of objects', () => { + const queryClient = new QueryClient() + const key1 = ['test-key-1'] + const key2 = ['test-key-2'] + const key3 = ['test-key-3'] + + const result1 = createQueries< + [ + { queryFnData: number }, + { queryFnData: string }, + { queryFnData: Array; error: boolean }, + ] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 1, + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key3, + queryFn: () => ['string[]'], + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result1[0]).toEqualTypeOf>() + expectTypeOf(result1[1]).toEqualTypeOf>() + expectTypeOf(result1[2]).toEqualTypeOf< + CreateQueryResult, boolean> + >() + expectTypeOf(result1[0].data).toEqualTypeOf() + expectTypeOf(result1[1].data).toEqualTypeOf() + expectTypeOf(result1[2].data).toEqualTypeOf | undefined>() + expectTypeOf(result1[2].error).toEqualTypeOf() + + // TData (data prop) takes precedence over TQueryFnData (queryFnData prop) + const result2 = createQueries< + [ + { queryFnData: string; data: string }, + { queryFnData: string; data: number }, + ] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result2[0]).toEqualTypeOf>() + expectTypeOf(result2[1]).toEqualTypeOf>() + expectTypeOf(result2[0].data).toEqualTypeOf() + expectTypeOf(result2[1].data).toEqualTypeOf() + + // can pass only TData (data prop) although TQueryFnData will be left unknown + const result3 = createQueries<[{ data: string }, { data: number }]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a as string + }, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a as number + }, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result3[0]).toEqualTypeOf>() + expectTypeOf(result3[1]).toEqualTypeOf>() + expectTypeOf(result3[0].data).toEqualTypeOf() + expectTypeOf(result3[1].data).toEqualTypeOf() + + // types should be enforced + createQueries< + [ + { queryFnData: string; data: string }, + { queryFnData: string; data: number; error: boolean }, + ] + >( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return a.toLowerCase() + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + { + queryKey: key2, + queryFn: () => 'string', + select: (a) => { + expectTypeOf(a).toEqualTypeOf() + return parseInt(a) + }, + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + ], + }), + () => queryClient, + ) + + // field names should be enforced + createQueries<[{ queryFnData: string }]>( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + ], + }), + () => queryClient, + ) + }) + + it('handles array literal without type parameter to infer result type', () => { + const queryClient = new QueryClient() + const key1 = ['test-key-1'] + const key2 = ['test-key-2'] + const key3 = ['test-key-3'] + const key4 = ['test-key-4'] + + // Array.map preserves TQueryFnData + const result1 = createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => i + 10, + })), + }), + () => queryClient, + ) + + expectTypeOf(result1).toEqualTypeOf< + Array> + >() + if (result1[0]) { + expectTypeOf(result1[0].data).toEqualTypeOf() + } + + // Array.map preserves TData + const result2 = createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => i + 10, + select: (data: number) => data.toString(), + })), + }), + () => queryClient, + ) + + expectTypeOf(result2).toEqualTypeOf< + Array> + >() + + const result3 = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 1, + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key3, + queryFn: () => ['string[]'], + select: () => 123, + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result3[0]).toEqualTypeOf>() + expectTypeOf(result3[1]).toEqualTypeOf>() + expectTypeOf(result3[2]).toEqualTypeOf>() + expectTypeOf(result3[0].data).toEqualTypeOf() + expectTypeOf(result3[1].data).toEqualTypeOf() + // select takes precedence over queryFn + expectTypeOf(result3[2].data).toEqualTypeOf() + + // initialData/placeholderData are enforced + createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + placeholderData: 'string', + // @ts-expect-error (initialData: string) + initialData: 123, + }, + { + queryKey: key2, + queryFn: () => 123, + // @ts-expect-error (placeholderData: number) + placeholderData: 'string', + initialData: 123, + }, + ], + }), + () => queryClient, + ) + + // select params are "indirectly" enforced + createQueries( + () => ({ + queries: [ + // unfortunately TS will not suggest the type for you + { + queryKey: key1, + queryFn: () => 'string', + }, + // however you can add a type to the callback + { + queryKey: key2, + queryFn: () => 'string', + }, + // the type you do pass is enforced + { + queryKey: key3, + queryFn: () => 'string', + }, + { + queryKey: key4, + queryFn: () => 'string', + select: (a: string) => parseInt(a), + }, + ], + }), + () => queryClient, + ) + + // callbacks are also indirectly enforced with Array.map + createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => i + 10, + select: (data: number) => data.toString(), + })), + }), + () => queryClient, + ) + + // results inference works when all the handlers are defined + const result4 = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + { + queryKey: key2, + queryFn: () => 'string', + }, + { + queryKey: key4, + queryFn: () => 'string', + select: (a: string) => parseInt(a), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result4[0]).toEqualTypeOf>() + expectTypeOf(result4[1]).toEqualTypeOf>() + expectTypeOf(result4[2]).toEqualTypeOf>() + + // handles when queryFn returns a Promise + const result5 = createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => Promise.resolve('string'), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result5[0]).toEqualTypeOf>() + + // Array as const does not throw error + const result6 = createQueries( + () => + ({ + queries: [ + { + queryKey: ['key1'], + queryFn: () => 'string', + }, + { + queryKey: ['key1'], + queryFn: () => 123, + }, + ], + }) as const, + () => queryClient, + ) + + expectTypeOf(result6[0]).toEqualTypeOf>() + expectTypeOf(result6[1]).toEqualTypeOf>() + + // field names should be enforced - array literal + createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => 'string', + }, + ], + }), + () => queryClient, + ) + + // field names should be enforced - Array.map() result + createQueries( + () => ({ + // @ts-expect-error (invalidField) + queries: Array(10).map(() => ({ + someInvalidField: '', + })), + }), + () => queryClient, + ) + + // supports queryFn using fetch() to return Promise - Array.map() result + createQueries( + () => ({ + queries: Array(50).map((_, i) => ({ + queryKey: ['key', i] as const, + queryFn: () => + fetch('return Promise').then((resp) => resp.json()), + })), + }), + () => queryClient, + ) + + // supports queryFn using fetch() to return Promise - array literal + createQueries( + () => ({ + queries: [ + { + queryKey: key1, + queryFn: () => + fetch('return Promise').then((resp) => resp.json()), + }, + ], + }), + () => queryClient, + ) + }) + + it('handles strongly typed queryFn factories and createQueries wrappers', () => { + const queryClient = new QueryClient() + + // QueryKey + queryFn factory + type QueryKeyA = ['queryA'] + const getQueryKeyA = (): QueryKeyA => ['queryA'] + type GetQueryFunctionA = () => QueryFunction + const getQueryFunctionA: GetQueryFunctionA = () => () => { + return 1 + } + type SelectorA = (data: number) => [number, string] + const getSelectorA = (): SelectorA => (data) => [data, data.toString()] + + type QueryKeyB = ['queryB', string] + const getQueryKeyB = (id: string): QueryKeyB => ['queryB', id] + type GetQueryFunctionB = () => QueryFunction + const getQueryFunctionB: GetQueryFunctionB = () => () => { + return '1' + } + type SelectorB = (data: string) => [string, number] + const getSelectorB = (): SelectorB => (data) => [data, +data] + + // Wrapper with strongly typed array-parameter + function useWrappedQueries< + TQueryFnData, + TError, + TData, + TQueryKey extends QueryKey, + >( + queries: Array< + CreateQueryOptions + >, + ) { + return createQueries( + () => ({ + queries: queries.map( + // no need to type the mapped query + (query) => { + const { queryFn: fn, queryKey: key } = query + expectTypeOf(fn).toEqualTypeOf< + | typeof skipToken + | QueryFunction + | undefined + >() + return { + queryKey: key, + queryFn: fn + ? (ctx: QueryFunctionContext) => { + // eslint-disable-next-line vitest/valid-expect + expectTypeOf(ctx.queryKey) + return ( + fn as QueryFunction + ).call({}, ctx) + } + : undefined, + } + }, + ), + }), + () => queryClient, + ) + } + + const result = createQueries( + () => ({ + queries: [ + { + queryKey: getQueryKeyA(), + queryFn: getQueryFunctionA(), + }, + { + queryKey: getQueryKeyB('id'), + queryFn: getQueryFunctionB(), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(result[0]).toEqualTypeOf>() + expectTypeOf(result[1]).toEqualTypeOf>() + + const withSelector = createQueries( + () => ({ + queries: [ + { + queryKey: getQueryKeyA(), + queryFn: getQueryFunctionA(), + select: getSelectorA(), + }, + { + queryKey: getQueryKeyB('id'), + queryFn: getQueryFunctionB(), + select: getSelectorB(), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(withSelector[0]).toEqualTypeOf< + CreateQueryResult<[number, string], Error> + >() + expectTypeOf(withSelector[1]).toEqualTypeOf< + CreateQueryResult<[string, number], Error> + >() + + const withWrappedQueries = useWrappedQueries( + Array(10).map(() => ({ + queryKey: getQueryKeyA(), + queryFn: getQueryFunctionA(), + select: getSelectorA(), + })), + ) + + expectTypeOf(withWrappedQueries).toEqualTypeOf< + Array> + >() + }) }) From fcaa1d2db40b51158c2fb1c6d213f6cebc57ea45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Curley?= Date: Sun, 5 Apr 2026 13:36:03 +0100 Subject: [PATCH 048/414] test(vue-query/infiniteQueryOptions): replace query-core 'QueryClient' import with vue-query proxy (#10385) tests: use proxy instead of query core infiniteQueryOptions.test-d.ts for Vue Query was incorrectly using the bare query client from core instead of the vue proxy query client. Co-authored-by: Wonsuk Choi --- .../vue-query/src/__tests__/infiniteQueryOptions.test-d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts b/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts index 6413126ffd7..cd4743d9d5d 100644 --- a/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts @@ -1,7 +1,8 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' -import { QueryClient, dataTagSymbol } from '@tanstack/query-core' +import { dataTagSymbol } from '@tanstack/query-core' import { reactive } from 'vue-demi' import { infiniteQueryOptions } from '../infiniteQueryOptions' +import { QueryClient } from '../queryClient' import { useInfiniteQuery } from '../useInfiniteQuery' import type { InfiniteData } from '@tanstack/query-core' From 3a993e6e6f5b706416786e5cac0514c0c17d1d0d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 5 Apr 2026 21:45:37 +0900 Subject: [PATCH 049/414] test(svelte-query/createQuery): switch to fake timers, replace 'vi.waitFor' with 'vi.advanceTimersByTimeAsync', and move 'queryClient' to 'beforeEach' (#10390) * test(svelte-query/createQuery): switch to fake timers, replace 'vi.waitFor' with 'vi.advanceTimersByTimeAsync', and move 'queryClient' to 'beforeEach' * test(svelte-query/createQuery): use 'QueryCache' type instead of 'ReturnType' for 'queryCache' * ci: apply automated fixes * test(svelte-query/createQuery): reduce 'advanceTimersByTimeAsync' from 100 to 11 for staleTime test * test(svelte-query/createQuery): fix 'advanceTimersByTimeAsync' to 101 to match 'staleTime: 100' --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../tests/createQuery.svelte.test.ts | 333 +++++++++--------- 1 file changed, 176 insertions(+), 157 deletions(-) diff --git a/packages/svelte-query/tests/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery.svelte.test.ts index 9cec8a17b58..2aa9f532169 100644 --- a/packages/svelte-query/tests/createQuery.svelte.test.ts +++ b/packages/svelte-query/tests/createQuery.svelte.test.ts @@ -1,16 +1,31 @@ import { flushSync } from 'svelte' -import { afterEach, describe, expect, expectTypeOf, it, vi } from 'vitest' +import { + afterEach, + beforeEach, + describe, + expect, + expectTypeOf, + it, + vi, +} from 'vitest' import { sleep } from '@tanstack/query-test-utils' import { QueryClient, createQuery, keepPreviousData } from '../src/index.js' import { promiseWithResolvers, withEffectRoot } from './utils.svelte.js' -import type { CreateQueryResult } from '../src/index.js' +import type { CreateQueryResult, QueryCache } from '../src/index.js' describe('createQuery', () => { - const queryClient = new QueryClient() - const queryCache = queryClient.getQueryCache() + let queryClient: QueryClient + let queryCache: QueryCache + + beforeEach(() => { + vi.useFakeTimers() + queryClient = new QueryClient() + queryCache = queryClient.getQueryCache() + }) afterEach(() => { queryClient.clear() + vi.useRealTimers() }) it( @@ -68,36 +83,35 @@ describe('createQuery', () => { promise: expect.any(Promise), }) resolve('resolved') - await vi.waitFor(() => - expect(query).toEqual({ - data: 'resolved', - dataUpdatedAt: expect.any(Number), - error: null, - errorUpdatedAt: 0, - failureCount: 0, - failureReason: null, - errorUpdateCount: 0, - isEnabled: true, - isError: false, - isFetched: true, - isFetchedAfterMount: true, - isFetching: false, - isPaused: false, - isPending: false, - isInitialLoading: false, - isLoading: false, - isLoadingError: false, - isPlaceholderData: false, - isRefetchError: false, - isRefetching: false, - isStale: true, - isSuccess: true, - refetch: expect.any(Function), - status: 'success', - fetchStatus: 'idle', - promise: expect.any(Promise), - }), - ) + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual({ + data: 'resolved', + dataUpdatedAt: expect.any(Number), + error: null, + errorUpdatedAt: 0, + failureCount: 0, + failureReason: null, + errorUpdateCount: 0, + isEnabled: true, + isError: false, + isFetched: true, + isFetchedAfterMount: true, + isFetching: false, + isPaused: false, + isPending: false, + isInitialLoading: false, + isLoading: false, + isLoadingError: false, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isSuccess: true, + refetch: expect.any(Function), + status: 'success', + fetchStatus: 'idle', + promise: expect.any(Promise), + }) expect(promise1).toBe(query.promise) }), @@ -123,7 +137,9 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => expect(query.isError).toBe(true)) + await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) + expect(query.isError).toBe(true) expect(states[0]).toEqual({ data: undefined, @@ -241,14 +257,13 @@ describe('createQuery', () => { }), ) resolve('resolved') - await vi.waitFor(() => - expect(query).toEqual( - expect.objectContaining({ - data: 'resolved', - isFetched: true, - isFetchedAfterMount: true, - }), - ), + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual( + expect.objectContaining({ + data: 'resolved', + isFetched: true, + isFetchedAfterMount: true, + }), ) })() }) @@ -366,9 +381,8 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.data).toBe('data') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) @@ -400,7 +414,8 @@ describe('createQuery', () => { }) resolve('resolved: 1') - await vi.waitFor(() => expect(query.data).toBe('resolved: 1')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('resolved: 1') expect(query).toMatchObject({ isPending: false, @@ -430,7 +445,8 @@ describe('createQuery', () => { }) resolve('resolved: 2') - await vi.waitFor(() => expect(query.data).toBe('resolved: 2')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('resolved: 2') expect(query).toMatchObject({ data: 'resolved: 2', @@ -461,9 +477,8 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.data).toBe('data') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') })() // Simulate rerender by removing the query and mounting again @@ -484,12 +499,11 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.data).toBe('data') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') // Give it time to catch any accidental infinite updates - await new Promise((r) => setTimeout(r, 100)) + await vi.advanceTimersByTimeAsync(100) })() expect(states.length).toBe(4) @@ -534,9 +548,8 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.data).toBe('test') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('test') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) @@ -565,9 +578,8 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.data).toBe('prefetched') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('prefetched') expect(states.length).toBe(1) expect(states[0]).toMatchObject({ data: 'prefetched' }) @@ -593,9 +605,8 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.data).toBe('test') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('test') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) @@ -625,9 +636,8 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.status).toBe('error') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.status).toBe('error') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ status: 'pending', data: undefined }) @@ -654,12 +664,14 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => expect(query.data).toBe(1)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(1) queryClient.removeQueries({ queryKey: key }) - await query.refetch() + query.refetch() - await vi.waitFor(() => expect(query.data).toBe(2)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(2) expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -696,9 +708,11 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => expect(query.data).toBe('')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('') search = 'phone' - await vi.waitFor(() => expect(query.data).toBe('phone')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('phone') expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -743,15 +757,13 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => { - expect(query.data).toBe(1) - }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(1) queryClient.removeQueries({ queryKey: key }) - await query.refetch() - await vi.waitFor(() => { - expect(query.data).toBe(2) - }) + query.refetch() + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(2) expect(states.length).toBe(4) // Initial @@ -799,9 +811,11 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => expect(query.data?.[1]?.done).toBe(false)) - await query.refetch() - await vi.waitFor(() => expect(query.data?.[1]?.done).toBe(true)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data?.[1]?.done).toBe(false) + query.refetch() + await vi.advanceTimersByTimeAsync(0) + expect(query.data?.[1]?.done).toBe(true) expect(states.length).toBe(4) @@ -838,9 +852,11 @@ describe('createQuery', () => { () => queryClient, ) - await vi.waitFor(() => expect(query.data).toBe('set')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('set') queryClient.refetchQueries({ queryKey: key }) - await vi.waitFor(() => expect(query.data).toBe('fetched')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('fetched') }), ) @@ -859,33 +875,22 @@ describe('createQuery', () => { () => queryClient, ) - await vi.waitFor(() => - expect(query).toEqual( - expect.objectContaining({ - data: 1, - isStale: false, - isFetching: false, - }), - ), + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual( + expect.objectContaining({ + data: 1, + isStale: false, + isFetching: false, + }), ) queryClient.invalidateQueries({ queryKey: key }) - await vi.waitFor(() => - expect(query).toEqual( - expect.objectContaining({ - data: 1, - isStale: true, - isFetching: true, - }), - ), - ) - await vi.waitFor(() => - expect(query).toEqual( - expect.objectContaining({ - data: 2, - isStale: false, - isFetching: false, - }), - ), + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual( + expect.objectContaining({ + data: 2, + isStale: false, + isFetching: false, + }), ) }), ) @@ -910,7 +915,7 @@ describe('createQuery', () => { states.push({ ...query }) }) - await sleep(50) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(1) expect(states[0]).toMatchObject({ @@ -945,7 +950,7 @@ describe('createQuery', () => { queryClient.invalidateQueries({ queryKey: key }) // Wait long enough for the invalidation and potential refetch - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(1) expect(states[0]).toMatchObject({ @@ -977,9 +982,11 @@ describe('createQuery', () => { states.push({ ...query }) }) - await vi.waitFor(() => expect(query.data).toBe(0)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) count = 1 - await vi.waitFor(() => expect(states.length).toBe(3)) + await vi.advanceTimersByTimeAsync(0) + expect(states.length).toBe(3) // Fetch query expect(states[0]).toMatchObject({ @@ -1021,13 +1028,15 @@ describe('createQuery', () => { }) // Wait for the initial fetch to complete - await vi.waitFor(() => expect(query.data).toBe(0)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) // Update count to trigger a new fetch count = 1 // Wait for all state updates to complete - await vi.waitFor(() => expect(states.length).toBe(4)) + await vi.advanceTimersByTimeAsync(0) + expect(states.length).toBe(4) // Initial expect(states[0]).toMatchObject({ @@ -1082,16 +1091,18 @@ describe('createQuery', () => { }) // Wait for the initial fetch to complete - await vi.waitFor(() => expect(query.data).toBe(0)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) // Update count to trigger a new fetch count = 1 // Wait for the new fetch to complete - await vi.waitFor(() => expect(query.data).toBe(1)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(1) // Wait for all state updates to complete - await vi.waitFor(() => expect(states.length).toBe(4)) + expect(states.length).toBe(4) // Initial expect(states[0]).toMatchObject({ @@ -1154,9 +1165,10 @@ describe('createQuery', () => { flushSync() flushSync(() => (count = 11)) flushSync(() => (count = 12)) - await query.refetch() + query.refetch() // Wait for all operations to complete - await vi.waitFor(() => expect(query.data).toBe(12)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(12) // Disabled query expect(states[0]).toMatchObject({ @@ -1229,13 +1241,15 @@ describe('createQuery', () => { resolve(1) // Wait for the first query to complete - await vi.waitFor(() => expect(firstQuery.data).toBe(1)) + await vi.advanceTimersByTimeAsync(0) + expect(firstQuery.data).toBe(1) // Refetch the first query - await firstQuery.refetch() + firstQuery.refetch() // Wait for all state updates to complete - await vi.waitFor(() => expect(states.length).toBe(4)) + await vi.advanceTimersByTimeAsync(0) + expect(states.length).toBe(4) expect(states[0]).toMatchObject({ data: undefined, @@ -1287,9 +1301,8 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => - expect(queryClient.getQueryState(key)?.data).toBe('prefetch'), - ) + await vi.advanceTimersByTimeAsync(10) + expect(queryClient.getQueryState(key)?.data).toBe('prefetch') await withEffectRoot(async () => { const firstQuery = createQuery( @@ -1318,10 +1331,9 @@ describe('createQuery', () => { states2.push({ ...secondQuery }) }) - await vi.waitFor(() => { - expect(firstQuery).toMatchObject({ data: 'two', isStale: true }) - expect(secondQuery).toMatchObject({ data: 'two', isStale: true }) - }) + await vi.advanceTimersByTimeAsync(101) + expect(firstQuery).toMatchObject({ data: 'two', isStale: true }) + expect(secondQuery).toMatchObject({ data: 'two', isStale: true }) expect(states1).toMatchObject([ // First render @@ -1387,7 +1399,7 @@ describe('createQuery', () => { }) // Wait for the query to become stale - await sleep(100) + await vi.advanceTimersByTimeAsync(51) expect(states.length).toBe(3) expect(states[0]).toMatchObject({ isStale: true }) @@ -1423,9 +1435,8 @@ describe('createQuery', () => { query.refetch() }, 10) - await vi.waitFor(() => { - expect(states.length).toBe(2) - }) + await vi.advanceTimersByTimeAsync(10) + expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined, @@ -1464,7 +1475,8 @@ describe('createQuery', () => { resolve('test') }, 10) - await vi.waitFor(() => expect(query.data).toBe('test')) + await vi.advanceTimersByTimeAsync(10) + expect(query.data).toBe('test') // Refetch after data is available setTimeout(() => { @@ -1474,7 +1486,7 @@ describe('createQuery', () => { }, 20) // Wait for refetch to complete - await sleep(30) + await vi.advanceTimersByTimeAsync(20) expect(states.length).toBe(2) expect(states[0]).toBe(undefined) @@ -1508,7 +1520,8 @@ describe('createQuery', () => { renderCount++ }) - await vi.waitFor(() => expect(query.data).toBe('test')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('test') expect(renderCount).toBe(2) expect(states.length).toBe(2) @@ -1581,10 +1594,9 @@ describe('createQuery', () => { expect(query1.fetchStatus).toBe('idle') // Wait for second query to complete - await vi.waitFor(() => { - expect(query2.status).toBe('success') - expect(query2.fetchStatus).toBe('idle') - }) + await vi.advanceTimersByTimeAsync(0) + expect(query2.status).toBe('success') + expect(query2.fetchStatus).toBe('idle') // Verify the state transitions for the second query expect(states2[0]?.status).toBe('pending') @@ -1625,13 +1637,13 @@ describe('createQuery', () => { ) // Wait a bit to ensure the query has time to settle - await sleep(10) + await vi.advanceTimersByTimeAsync(10) // Simulate window focus window.dispatchEvent(new Event('visibilitychange')) // Wait a bit more to ensure no refetch happens - await sleep(10) + await vi.advanceTimersByTimeAsync(10) // The query function should not have been called expect(queryFn).not.toHaveBeenCalled() @@ -1663,13 +1675,14 @@ describe('createQuery', () => { }) // Wait for the initial fetch to complete - await vi.waitFor(() => expect(query.data).toBe(0)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) // Simulate window focus window.dispatchEvent(new Event('visibilitychange')) // Wait a bit to ensure no refetch happens - await sleep(10) + await vi.advanceTimersByTimeAsync(10) // Should only have 2 states: initial and after fetch expect(states.length).toBe(2) @@ -1703,13 +1716,14 @@ describe('createQuery', () => { }) // Wait for the initial fetch to complete - await vi.waitFor(() => expect(query.data).toBe(0)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) // Simulate window focus window.dispatchEvent(new Event('visibilitychange')) // Wait a bit to ensure no refetch happens - await sleep(10) + await vi.advanceTimersByTimeAsync(10) // Should only have 2 states: initial and after fetch expect(states.length).toBe(2) @@ -1743,13 +1757,14 @@ describe('createQuery', () => { }) // Wait for the initial fetch to complete - await vi.waitFor(() => expect(query.data).toBe(0)) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) // Simulate window focus window.dispatchEvent(new Event('visibilitychange')) // Wait a bit to ensure no refetch happens - await sleep(10) + await vi.advanceTimersByTimeAsync(10) // Should only have 2 states: initial and after fetch expect(states.length).toBe(2) @@ -1787,7 +1802,8 @@ describe('createQuery', () => { }) // Wait for the refetch to complete - await vi.waitFor(() => expect(query.data).toBe('data')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') // Should have 2 states: initial (with prefetched data) and after refetch expect(states.length).toBe(2) @@ -1830,7 +1846,8 @@ describe('createQuery', () => { }) // Wait for the refetch to complete - await vi.waitFor(() => expect(query.data).toBe('data')) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') // Should have 2 states: initial (with prefetched data) and after refetch expect(states.length).toBe(2) @@ -1864,7 +1881,8 @@ describe('createQuery', () => { () => queryClient, ) - await vi.waitFor(() => expect(query.status).toBe('error')) + await vi.advanceTimersByTimeAsync(0) + expect(query.status).toBe('error') expect(query.error?.message).toBe('Error test') consoleMock.mockRestore() @@ -1886,18 +1904,19 @@ describe('createQuery', () => { () => queryClient, ) - await vi.waitFor(() => expect(query.status).toBe('error')) + await vi.advanceTimersByTimeAsync(0) + expect(query.status).toBe('error') expect(query.error?.message).toBe('Local Error') }), ) it( 'should support changing provided query client', - withEffectRoot(async () => { + withEffectRoot(() => { const queryClient1 = new QueryClient() const queryClient2 = new QueryClient() - let queryClient = $state(queryClient1) + let currentClient = $state(queryClient1) const key = ['test'] @@ -1906,12 +1925,12 @@ describe('createQuery', () => { queryKey: key, queryFn: () => Promise.resolve('prefetched'), }), - () => queryClient, + () => currentClient, ) expect(queryClient1.getQueryCache().find({ queryKey: key })).toBeDefined() - queryClient = queryClient2 + currentClient = queryClient2 flushSync() expect(queryClient2.getQueryCache().find({ queryKey: key })).toBeDefined() From e76d47640e9c832a9b338c8fa989f86a59aa415b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 10:05:12 +0900 Subject: [PATCH 050/414] test(svelte-query/createQuery): fix 'it.todo' for different stale times by advancing timer before query creation (#10396) * test(svelte-query/createQuery): fix 'it.todo' for different stale times by advancing timer before query creation * ci: apply automated fixes * test(svelte-query/createQuery): reduce 'advanceTimersByTimeAsync' from 11 to 10 to match 'staleTime: 10' --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../tests/createQuery.svelte.test.ts | 195 ++++++++---------- 1 file changed, 89 insertions(+), 106 deletions(-) diff --git a/packages/svelte-query/tests/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery.svelte.test.ts index 2aa9f532169..ad86edbc6c1 100644 --- a/packages/svelte-query/tests/createQuery.svelte.test.ts +++ b/packages/svelte-query/tests/createQuery.svelte.test.ts @@ -1267,117 +1267,100 @@ describe('createQuery', () => { }), ) - it.todo( - 'should be able to set different stale times for a query', - async () => { - /** - * TODO: There's a super weird bug with this test, and I think it's caused by a race condition in query-core. - * - * If you add this to the top `updateResult` in `packages/query-core/src/queryObserver.ts:647`: - * ``` - * for (let i = 0; i < 10_000_000; i++) { - * continue - * } - * ``` - * - * This test will miraculously start to pass. I'm suspicious that there's some race condition between props - * being tracked and `updateResult` being called, but that _should_ be fixed by `notifyOnChangeProps: 'all'`, - * and that's not doing anything. - * - * This test will also start to magically pass if you put `$inspect(firstQuery)` before `vi.waitFor` near - * the end of the test. - */ + it('should be able to set different stale times for a query', async () => { + const key = ['test-key'] + const states1: Array> = [] + const states2: Array> = [] - const key = ['test-key'] - const states1: Array> = [] - const states2: Array> = [] + // Prefetch the query + const prefetchPromise = queryClient.prefetchQuery({ + queryKey: key, + queryFn: async () => { + await sleep(10) + return 'prefetch' + }, + }) + await vi.advanceTimersByTimeAsync(10) + await prefetchPromise - // Prefetch the query - await queryClient.prefetchQuery({ - queryKey: key, - queryFn: async () => { - await sleep(10) - return 'prefetch' - }, + expect(queryClient.getQueryState(key)?.data).toBe('prefetch') + // Advance time so secondQuery (staleTime: 10) sees prefetched data as stale + await vi.advanceTimersByTimeAsync(10) + + await withEffectRoot(async () => { + const firstQuery = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('one'), + staleTime: 100, + }), + () => queryClient, + ) + + $effect(() => { + states1.push({ ...firstQuery }) }) - await vi.advanceTimersByTimeAsync(10) - expect(queryClient.getQueryState(key)?.data).toBe('prefetch') - - await withEffectRoot(async () => { - const firstQuery = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('one'), - staleTime: 100, - }), - () => queryClient, - ) - - $effect(() => { - states1.push({ ...firstQuery }) - }) - - const secondQuery = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('two'), - staleTime: 10, - }), - () => queryClient, - ) - - $effect(() => { - states2.push({ ...secondQuery }) - }) - - await vi.advanceTimersByTimeAsync(101) - expect(firstQuery).toMatchObject({ data: 'two', isStale: true }) - expect(secondQuery).toMatchObject({ data: 'two', isStale: true }) - - expect(states1).toMatchObject([ - // First render - { - data: 'prefetch', - isStale: false, - }, - // Second createQuery started fetching - { - data: 'prefetch', - isStale: false, - }, - // Second createQuery data came in - { - data: 'two', - isStale: false, - }, - // Data became stale after 100ms - { - data: 'two', - isStale: true, - }, - ]) + const secondQuery = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('two'), + staleTime: 10, + }), + () => queryClient, + ) - expect(states2).toMatchObject([ - // First render, data is stale and starts fetching - { - data: 'prefetch', - isStale: true, - }, - // Second createQuery data came in - { - data: 'two', - isStale: false, - }, - // Data became stale after 10ms - { - data: 'two', - isStale: true, - }, - ]) - })() - }, - ) + $effect(() => { + states2.push({ ...secondQuery }) + }) + + // Wait for both staleTime to expire (100ms for firstQuery) + await vi.advanceTimersByTimeAsync(101) + expect(firstQuery).toMatchObject({ data: 'two', isStale: true }) + expect(secondQuery).toMatchObject({ data: 'two', isStale: true }) + + expect(states1).toMatchObject([ + // First render + { + data: 'prefetch', + isStale: false, + }, + // Second createQuery started fetching + { + data: 'prefetch', + isStale: false, + }, + // Second createQuery data came in + { + data: 'two', + isStale: false, + }, + // Data became stale after 100ms + { + data: 'two', + isStale: true, + }, + ]) + + expect(states2).toMatchObject([ + // First render, data is stale and starts fetching + { + data: 'prefetch', + isStale: true, + }, + // Second createQuery data came in + { + data: 'two', + isStale: false, + }, + // Data became stale after 10ms + { + data: 'two', + isStale: true, + }, + ]) + })() + }) it( 'should re-render when a query becomes stale', From abf854764b8ebb5f84c0b0c713b024c9a834e6ba Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 10:39:51 +0900 Subject: [PATCH 051/414] test(svelte-query): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' (#10397) --- packages/svelte-query/tests/createQuery.svelte.test.ts | 10 ++-------- packages/svelte-query/tests/useIsFetching/Query.svelte | 5 +---- packages/svelte-query/tests/useIsMutating/Query.svelte | 5 +---- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/packages/svelte-query/tests/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery.svelte.test.ts index ad86edbc6c1..d733970a158 100644 --- a/packages/svelte-query/tests/createQuery.svelte.test.ts +++ b/packages/svelte-query/tests/createQuery.svelte.test.ts @@ -1275,10 +1275,7 @@ describe('createQuery', () => { // Prefetch the query const prefetchPromise = queryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'prefetch' - }, + queryFn: () => sleep(10).then(() => 'prefetch'), }) await vi.advanceTimersByTimeAsync(10) await prefetchPromise @@ -1518,10 +1515,7 @@ describe('createQuery', () => { withEffectRoot(() => { const key = ['test-key'] - const queryFn = async () => { - await sleep(10) - return 'data1' - } + const queryFn = () => sleep(10).then(() => 'data1') // Create two queries with the same key but different options createQuery( diff --git a/packages/svelte-query/tests/useIsFetching/Query.svelte b/packages/svelte-query/tests/useIsFetching/Query.svelte index 3a2eeb669eb..f2acbe0df58 100644 --- a/packages/svelte-query/tests/useIsFetching/Query.svelte +++ b/packages/svelte-query/tests/useIsFetching/Query.svelte @@ -6,10 +6,7 @@ const query = createQuery(() => ({ queryKey: ['test'], - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), enabled: ready, })) diff --git a/packages/svelte-query/tests/useIsMutating/Query.svelte b/packages/svelte-query/tests/useIsMutating/Query.svelte index f9cc2504b03..f7641b15050 100644 --- a/packages/svelte-query/tests/useIsMutating/Query.svelte +++ b/packages/svelte-query/tests/useIsMutating/Query.svelte @@ -4,10 +4,7 @@ const mutation = createMutation(() => ({ mutationKey: ['mutation-1'], - mutationFn: async () => { - await sleep(10) - return 'data' - }, + mutationFn: () => sleep(10).then(() => 'data'), })) From ef2a4e3f6cadb321eaaff54d4d8664d74ea8014a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 13:25:59 +0900 Subject: [PATCH 052/414] test(solid-query): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' (#10398) --- .../__tests__/QueryClientProvider.test.tsx | 20 ++++--------------- .../src/__tests__/transition.test.tsx | 5 +---- .../src/__tests__/useMutation.test.tsx | 5 +---- .../src/__tests__/useMutationState.test.tsx | 5 +---- .../src/__tests__/useQueries.test.tsx | 15 +++----------- 5 files changed, 10 insertions(+), 40 deletions(-) diff --git a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx index 7ffcff0f370..e96be03cd24 100644 --- a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx @@ -22,10 +22,7 @@ describe('QueryClientProvider', () => { function Page() { const query = useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), })) return ( @@ -60,10 +57,7 @@ describe('QueryClientProvider', () => { function Page1() { const query = useQuery(() => ({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'test1' - }, + queryFn: () => sleep(10).then(() => 'test1'), })) return ( @@ -75,10 +69,7 @@ describe('QueryClientProvider', () => { function Page2() { const query = useQuery(() => ({ queryKey: key2, - queryFn: async () => { - await sleep(10) - return 'test2' - }, + queryFn: () => sleep(10).then(() => 'test2'), })) return ( @@ -125,10 +116,7 @@ describe('QueryClientProvider', () => { function Page() { const query = useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), })) return ( diff --git a/packages/solid-query/src/__tests__/transition.test.tsx b/packages/solid-query/src/__tests__/transition.test.tsx index 89c1c182276..a6d07f1e338 100644 --- a/packages/solid-query/src/__tests__/transition.test.tsx +++ b/packages/solid-query/src/__tests__/transition.test.tsx @@ -25,10 +25,7 @@ describe("useQuery's in Suspense mode with transitions", () => { function Suspended() { const state = useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(10) - return true - }, + queryFn: () => sleep(10).then(() => true), })) return Message } diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index 44bc4879680..4d22e0ae298 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -1086,10 +1086,7 @@ describe('useMutation', () => { function Page() { const mutation = useMutation(() => ({ - mutationFn: async (_text: string) => { - await sleep(10) - return 'result' - }, + mutationFn: (_text: string) => sleep(10).then(() => 'result'), onSuccess: () => Promise.reject(error), onError, })) diff --git a/packages/solid-query/src/__tests__/useMutationState.test.tsx b/packages/solid-query/src/__tests__/useMutationState.test.tsx index 0031a7a791a..d71d77ba9ff 100644 --- a/packages/solid-query/src/__tests__/useMutationState.test.tsx +++ b/packages/solid-query/src/__tests__/useMutationState.test.tsx @@ -87,10 +87,7 @@ describe('useMutationState', () => { function Mutate() { const mutation = useMutation(() => ({ mutationKey, - mutationFn: async (input: number) => { - await sleep(150) - return 'data' + input - }, + mutationFn: (input: number) => sleep(150).then(() => 'data' + input), })) return ( diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index 6f48af7861e..2f8e61a7402 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -51,17 +51,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return 1 - }, + queryFn: () => sleep(10).then(() => 1), }, { queryKey: key2, - queryFn: async () => { - await sleep(100) - return 2 - }, + queryFn: () => sleep(100).then(() => 2), }, ], })) @@ -701,10 +695,7 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return 1 - }, + queryFn: () => sleep(10).then(() => 1), }, ], })) From 7d7a21c49c1c0d12e12a7da7ab00fa65df05650b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 13:52:50 +0900 Subject: [PATCH 053/414] test(react-query): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' (#10399) * test(react-query): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../__tests__/fine-grained-persister.test.tsx | 6 +- .../src/__tests__/useMutation.test.tsx | 17 +- .../src/__tests__/usePrefetchQuery.test.tsx | 6 +- .../src/__tests__/useQueries.test.tsx | 92 ++------ .../src/__tests__/useQuery.test.tsx | 221 ++++-------------- 5 files changed, 73 insertions(+), 269 deletions(-) diff --git a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx index e6b455876bc..f1df9d61667 100644 --- a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx @@ -79,11 +79,7 @@ describe('fine grained persister', () => { it('should restore query state from persister and refetch', async () => { const key = queryKey() const hash = hashKey(key) - const spy = vi.fn(async () => { - await sleep(5) - - return 'Works from queryFn' - }) + const spy = vi.fn(() => sleep(5).then(() => 'Works from queryFn')) const mapStorage = new Map() const storage = { diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 02143c2811e..821a4571afb 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -157,10 +157,9 @@ describe('useMutation', () => { return Promise.reject(new Error('Error test Jonas')) }) - mutateFn.mockImplementation(async (value) => { - await sleep(10) - return Promise.resolve(value) - }) + mutateFn.mockImplementation((value) => + sleep(10).then(() => Promise.resolve(value)), + ) function Page() { const { mutate, failureCount, failureReason, data, status } = useMutation( @@ -369,10 +368,7 @@ describe('useMutation', () => { const key = queryKey() queryClient.setMutationDefaults(key, { - mutationFn: async (text: string) => { - await sleep(10) - return text - }, + mutationFn: (text: string) => sleep(10).then(() => text), }) const states: Array> = [] @@ -1033,10 +1029,7 @@ describe('useMutation', () => { function Page() { const mutation = useMutation({ - mutationFn: async (_text: string) => { - await sleep(10) - return 'result' - }, + mutationFn: (_text: string) => sleep(10).then(() => 'result'), onSuccess: () => Promise.reject(error), onError, }) diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx index 1dacbeacd0a..8af1f6a989c 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx @@ -17,11 +17,7 @@ import type { UseSuspenseQueryOptions } from '..' const generateQueryFn = (data: string) => vi .fn<(...args: Array) => Promise>() - .mockImplementation(async () => { - await sleep(10) - - return data - }) + .mockImplementation(() => sleep(10).then(() => data)) describe('usePrefetchQuery', () => { let queryCache: QueryCache diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index 25b624964dc..65870764742 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -54,17 +54,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return 1 - }, + queryFn: () => sleep(10).then(() => 1), }, { queryKey: key2, - queryFn: async () => { - await sleep(200) - return 2 - }, + queryFn: () => sleep(200).then(() => 2), }, ], }) @@ -1093,17 +1087,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(5) - return Promise.resolve('query1') - }, + queryFn: () => sleep(5).then(() => Promise.resolve('query1')), }, { queryKey: key2, - queryFn: async () => { - await sleep(20) - return Promise.resolve('query2') - }, + queryFn: () => sleep(20).then(() => Promise.resolve('query2')), }, ], combine: ([query1, query2]) => { @@ -1138,17 +1126,13 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(5) - return Promise.resolve('first result ' + count) - }, + queryFn: () => + sleep(5).then(() => Promise.resolve('first result ' + count)), }, { queryKey: key2, - queryFn: async () => { - await sleep(50) - return Promise.resolve('second result ' + count) - }, + queryFn: () => + sleep(50).then(() => Promise.resolve('second result ' + count)), }, ], combine: (queryResults) => { @@ -1330,17 +1314,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'first result:' + value - }, + queryFn: () => sleep(10).then(() => 'first result:' + value), }, { queryKey: key2, - queryFn: async () => { - await sleep(20) - return 'second result:' + value - }, + queryFn: () => sleep(20).then(() => 'second result:' + value), }, ], combine: React.useCallback((results: Array) => { @@ -1414,17 +1392,11 @@ describe('useQueries', () => { queries: [ { queryKey: [key1], - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: [key2], - queryFn: async () => { - await sleep(20) - return 'second result' - }, + queryFn: () => sleep(20).then(() => 'second result'), }, ], combine: React.useCallback( @@ -1538,24 +1510,15 @@ describe('useQueries', () => { queries: [ { queryKey: [key1], - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: [key2], - queryFn: async () => { - await sleep(15) - return 'second result' - }, + queryFn: () => sleep(15).then(() => 'second result'), }, { queryKey: [key3], - queryFn: async () => { - await sleep(20) - return 'third result' - }, + queryFn: () => sleep(20).then(() => 'third result'), }, ], combine: (results) => { @@ -1600,24 +1563,15 @@ describe('useQueries', () => { queries: [ { queryKey: [key1], - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: [key2], - queryFn: async () => { - await sleep(15) - return 'second result' - }, + queryFn: () => sleep(15).then(() => 'second result'), }, { queryKey: [key3], - queryFn: async () => { - await sleep(20) - return 'third result' - }, + queryFn: () => sleep(20).then(() => 'third result'), }, ], combine: (results) => { @@ -1679,17 +1633,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: key2, - queryFn: async () => { - await sleep(20) - return 'second result' - }, + queryFn: () => sleep(20).then(() => 'second result'), }, ], combine: React.useCallback((results: Array) => { diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 0542dfe7eac..c89c5513c8b 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -75,10 +75,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) states.push(state) @@ -464,10 +461,7 @@ describe('useQuery', () => { function Component({ value }: { value: string }) { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data: ' + value - }, + queryFn: () => sleep(10).then(() => 'data: ' + value), gcTime: 0, notifyOnChangeProps: 'all', @@ -526,10 +520,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(5) - return 'data' - }, + queryFn: () => sleep(5).then(() => 'data'), gcTime: 0, notifyOnChangeProps: ['isPending', 'isSuccess', 'data'], @@ -995,10 +986,7 @@ describe('useQuery', () => { function Page() { const result = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'fetched' - }, + queryFn: () => sleep(10).then(() => 'fetched'), initialData: 'initial', staleTime: Infinity, @@ -1156,10 +1144,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(5) - return count - }, + queryFn: () => sleep(5).then(() => count), enabled: count === 0, }) @@ -1216,10 +1201,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), placeholderData: keepPreviousData, }) @@ -1282,12 +1264,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return { - count, - } - }, + queryFn: () => sleep(10).then(() => ({ count })), select(data) { return data.count }, @@ -1354,12 +1331,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return { - count, - } - }, + queryFn: () => sleep(10).then(() => ({ count })), select(data) { return data.count }, @@ -1409,12 +1381,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return { - count, - } - }, + queryFn: () => sleep(10).then(() => ({ count })), select(data) { return data.count }, @@ -1586,10 +1553,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), initialData: 99, placeholderData: keepPreviousData, }) @@ -1658,10 +1622,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), enabled: false, placeholderData: keepPreviousData, notifyOnChangeProps: 'all', @@ -1756,10 +1717,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), enabled: false, placeholderData: keepPreviousData, notifyOnChangeProps: 'all', @@ -1834,10 +1792,7 @@ describe('useQuery', () => { function FirstComponent() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 1 - }, + queryFn: () => sleep(10).then(() => 1), notifyOnChangeProps: 'all', }) const refetch = state.refetch @@ -1897,10 +1852,7 @@ describe('useQuery', () => { queryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'prefetch' - }, + queryFn: () => sleep(10).then(() => 'prefetch'), }) await vi.advanceTimersByTimeAsync(20) @@ -1908,10 +1860,7 @@ describe('useQuery', () => { function FirstComponent() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'one' - }, + queryFn: () => sleep(10).then(() => 'one'), staleTime: 100, }) @@ -1922,10 +1871,7 @@ describe('useQuery', () => { function SecondComponent() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'two' - }, + queryFn: () => sleep(10).then(() => 'two'), staleTime: 10, }) @@ -2027,10 +1973,7 @@ describe('useQuery', () => { }) => { return useQuery({ queryKey: [key, id], - queryFn: async () => { - await sleep(10) - return { id, name: 'John' } - }, + queryFn: () => sleep(10).then(() => ({ id, name: 'John' })), enabled: !!id && enabled, }) } @@ -2124,10 +2067,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(5) - return 'test' - }, + queryFn: () => sleep(5).then(() => 'test'), notifyOnChangeProps: ['data'], }) @@ -2181,10 +2121,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(5) - return 'test' - }, + queryFn: () => sleep(5).then(() => 'test'), notifyOnChangeProps: () => ['data'], }) @@ -2372,10 +2309,7 @@ describe('useQuery', () => { it('should update query options', () => { const key = queryKey() - const queryFn = async () => { - await sleep(10) - return 'data1' - } + const queryFn = () => sleep(10).then(() => 'data1') function Page() { useQuery({ queryKey: key, queryFn, retryDelay: 10 }) @@ -2393,10 +2327,7 @@ describe('useQuery', () => { let renders = 0 - const queryFn = async () => { - await sleep(15) - return 'data' - } + const queryFn = () => sleep(15).then(() => 'data') function Page() { const query1 = useQuery({ queryKey: key, queryFn }) @@ -2449,18 +2380,12 @@ describe('useQuery', () => { function Page() { const first = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), enabled: false, }) const second = useQuery({ queryKey: key2, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) return ( @@ -2499,10 +2424,7 @@ describe('useQuery', () => { function Page() { const { status } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) return
status: {status}
@@ -3547,10 +3469,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) states.push(state) return ( @@ -3640,10 +3559,7 @@ describe('useQuery', () => { const prefetchQueryFn = vi.fn<(...args: Array) => Promise>() - prefetchQueryFn.mockImplementation(async () => { - await sleep(10) - return 'not yet...' - }) + prefetchQueryFn.mockImplementation(() => sleep(10).then(() => 'not yet...')) queryClient.prefetchQuery({ queryKey: key, @@ -3764,10 +3680,7 @@ describe('useQuery', () => { const query = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), enabled: shouldFetch, }) @@ -3803,10 +3716,7 @@ describe('useQuery', () => { function Page() { const result = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'serverData' - }, + queryFn: () => sleep(10).then(() => 'serverData'), initialData: 'initialData', }) results.push(result) @@ -4497,10 +4407,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 0 - }, + queryFn: () => sleep(10).then(() => 0), select: React.useCallback( (data: number) => { selectRun++ @@ -4543,10 +4450,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 0 - }, + queryFn: () => sleep(10).then(() => 0), select: React.useCallback( (data: number) => { @@ -4596,10 +4500,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return [1, 2] - }, + queryFn: () => sleep(10).then(() => [1, 2]), select: (res) => res.map((x) => x + 1), }) @@ -4741,10 +4642,7 @@ describe('useQuery', () => { const key = queryKey() const states: Array> = [] - const queryFn = async () => { - await sleep(50) - return 'OK' - } + const queryFn = () => sleep(50).then(() => 'OK') function Page() { const [id, setId] = React.useState(1) @@ -4989,10 +4887,9 @@ describe('useQuery', () => { it('should refetch when changed enabled to true in error state', async () => { const queryFn = vi.fn<(...args: Array) => unknown>() - queryFn.mockImplementation(async () => { - await sleep(10) - return Promise.reject(new Error('Suspense Error Bingo')) - }) + queryFn.mockImplementation(() => + sleep(10).then(() => Promise.reject(new Error('Suspense Error Bingo'))), + ) function Page({ enabled }: { enabled: boolean }) { const { error, isPending } = useQuery({ @@ -5112,10 +5009,8 @@ describe('useQuery', () => { function Page({ id }: { id: boolean }) { const { error, isFetching } = useQuery({ queryKey: [id], - queryFn: async () => { - await sleep(10) - return Promise.reject(new Error('Error')) - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Error'))), retry: false, retryOnMount: false, refetchOnMount: false, @@ -5249,10 +5144,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) React.useEffect(() => { @@ -6219,10 +6111,7 @@ describe('useQuery', () => { const { data, status } = useQuery({ enabled: false, queryKey: key, - queryFn: async () => { - await sleep(10) - return 5 - }, + queryFn: () => sleep(10).then(() => 5), }) const mounted = React.useRef(null) @@ -6390,10 +6279,7 @@ describe('useQuery', () => { const { data } = useQuery({ queryKey: [key], - queryFn: async () => { - await sleep(5) - return 'Works' - }, + queryFn: () => sleep(5).then(() => 'Works'), }) return
setRef(value)}>{data}
@@ -6416,10 +6302,7 @@ describe('useQuery', () => { const state = useQuery({ staleTime: Infinity, queryKey: [key, steps[count]], - queryFn: async () => { - await sleep(10) - return steps[count] - }, + queryFn: () => sleep(10).then(() => steps[count]), placeholderData: keepPreviousData, }) @@ -6532,11 +6415,7 @@ describe('useQuery', () => { const { data, status } = useQuery({ queryKey: [key], queryFn: enabled - ? async () => { - await sleep(10) - - return Promise.resolve('data') - } + ? () => sleep(10).then(() => Promise.resolve('data')) : skipToken, retry: false, retryOnMount: false, @@ -6613,10 +6492,7 @@ describe('useQuery', () => { function Page() { const query = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return Promise.reject(error) - }, + queryFn: () => sleep(10).then(() => Promise.reject(error)), retry: false, notifyOnChangeProps: 'all', }) @@ -6715,10 +6591,7 @@ describe('useQuery', () => { void serverQueryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return Promise.resolve('server') - }, + queryFn: () => sleep(10).then(() => Promise.resolve('server')), }) const dehydrated = dehydrate(serverQueryClient) @@ -6773,10 +6646,8 @@ describe('useQuery', () => { void serverQueryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return Promise.reject(new Error('server error')) - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('server error'))), }) const dehydrated = dehydrate(serverQueryClient) From eac62b859302e48f7793b51e85573de13d708c60 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 15:25:33 +0900 Subject: [PATCH 054/414] test(preact-query): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' (#10400) * test(preact-query): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../__tests__/fine-grained-persister.test.tsx | 6 +- .../src/__tests__/useMutation.test.tsx | 17 +- .../src/__tests__/usePrefetchQuery.test.tsx | 6 +- .../src/__tests__/useQueries.test.tsx | 92 ++------ .../src/__tests__/useQuery.test.tsx | 200 ++++-------------- .../src/__tests__/useSuspenseQueries.test.tsx | 6 +- 6 files changed, 72 insertions(+), 255 deletions(-) diff --git a/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx b/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx index a4f7172b5c0..6713e9c9f17 100644 --- a/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/preact-query/src/__tests__/fine-grained-persister.test.tsx @@ -80,11 +80,7 @@ describe('fine grained persister', () => { it('should restore query state from persister and refetch', async () => { const key = queryKey() const hash = hashKey(key) - const spy = vi.fn(async () => { - await sleep(5) - - return 'Works from queryFn' - }) + const spy = vi.fn(() => sleep(5).then(() => 'Works from queryFn')) const mapStorage = new Map() const storage = { diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index 20da59ce502..f060c496f08 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -158,10 +158,9 @@ describe('useMutation', () => { return Promise.reject(new Error('Error test Jonas')) }) - mutateFn.mockImplementation(async (value) => { - await sleep(10) - return Promise.resolve(value) - }) + mutateFn.mockImplementation((value) => + sleep(10).then(() => Promise.resolve(value)), + ) function Page() { const { mutate, failureCount, failureReason, data, status } = useMutation( @@ -370,10 +369,7 @@ describe('useMutation', () => { const key = queryKey() queryClient.setMutationDefaults(key, { - mutationFn: async (text: string) => { - await sleep(10) - return text - }, + mutationFn: (text: string) => sleep(10).then(() => text), }) const states: Array> = [] @@ -1034,10 +1030,7 @@ describe('useMutation', () => { function Page() { const mutation = useMutation({ - mutationFn: async (_text: string) => { - await sleep(10) - return 'result' - }, + mutationFn: (_text: string) => sleep(10).then(() => 'result'), onSuccess: () => Promise.reject(error), onError, }) diff --git a/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx b/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx index 603d3f4b3ee..a7cc0253a3b 100644 --- a/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx +++ b/packages/preact-query/src/__tests__/usePrefetchQuery.test.tsx @@ -18,11 +18,7 @@ import { renderWithClient } from './utils' const generateQueryFn = (data: string) => vi .fn<(...args: Array) => Promise>() - .mockImplementation(async () => { - await sleep(10) - - return data - }) + .mockImplementation(() => sleep(10).then(() => data)) describe('usePrefetchQuery', () => { let queryCache: QueryCache diff --git a/packages/preact-query/src/__tests__/useQueries.test.tsx b/packages/preact-query/src/__tests__/useQueries.test.tsx index 83bc5785d85..4a59b4e3389 100644 --- a/packages/preact-query/src/__tests__/useQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useQueries.test.tsx @@ -55,17 +55,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return 1 - }, + queryFn: () => sleep(10).then(() => 1), }, { queryKey: key2, - queryFn: async () => { - await sleep(200) - return 2 - }, + queryFn: () => sleep(200).then(() => 2), }, ], }) @@ -1094,17 +1088,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(5) - return Promise.resolve('query1') - }, + queryFn: () => sleep(5).then(() => Promise.resolve('query1')), }, { queryKey: key2, - queryFn: async () => { - await sleep(20) - return Promise.resolve('query2') - }, + queryFn: () => sleep(20).then(() => Promise.resolve('query2')), }, ], combine: ([query1, query2]) => { @@ -1139,17 +1127,13 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(5) - return Promise.resolve(`first result ${count}`) - }, + queryFn: () => + sleep(5).then(() => Promise.resolve(`first result ${count}`)), }, { queryKey: key2, - queryFn: async () => { - await sleep(50) - return Promise.resolve(`second result ${count}`) - }, + queryFn: () => + sleep(50).then(() => Promise.resolve(`second result ${count}`)), }, ], combine: (queryResults) => { @@ -1331,17 +1315,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return `first result:${value}` - }, + queryFn: () => sleep(10).then(() => `first result:${value}`), }, { queryKey: key2, - queryFn: async () => { - await sleep(20) - return `second result:${value}` - }, + queryFn: () => sleep(20).then(() => `second result:${value}`), }, ], combine: useCallback((results: Array) => { @@ -1415,17 +1393,11 @@ describe('useQueries', () => { queries: [ { queryKey: [key1], - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: [key2], - queryFn: async () => { - await sleep(20) - return 'second result' - }, + queryFn: () => sleep(20).then(() => 'second result'), }, ], combine: useCallback( @@ -1539,24 +1511,15 @@ describe('useQueries', () => { queries: [ { queryKey: [key1], - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: [key2], - queryFn: async () => { - await sleep(15) - return 'second result' - }, + queryFn: () => sleep(15).then(() => 'second result'), }, { queryKey: [key3], - queryFn: async () => { - await sleep(20) - return 'third result' - }, + queryFn: () => sleep(20).then(() => 'third result'), }, ], combine: (results) => { @@ -1601,24 +1564,15 @@ describe('useQueries', () => { queries: [ { queryKey: [key1], - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: [key2], - queryFn: async () => { - await sleep(15) - return 'second result' - }, + queryFn: () => sleep(15).then(() => 'second result'), }, { queryKey: [key3], - queryFn: async () => { - await sleep(20) - return 'third result' - }, + queryFn: () => sleep(20).then(() => 'third result'), }, ], combine: (results) => { @@ -1680,17 +1634,11 @@ describe('useQueries', () => { queries: [ { queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'first result' - }, + queryFn: () => sleep(10).then(() => 'first result'), }, { queryKey: key2, - queryFn: async () => { - await sleep(20) - return 'second result' - }, + queryFn: () => sleep(20).then(() => 'second result'), }, ], combine: useCallback((results: Array) => { diff --git a/packages/preact-query/src/__tests__/useQuery.test.tsx b/packages/preact-query/src/__tests__/useQuery.test.tsx index b03b9edea25..ed569d52930 100644 --- a/packages/preact-query/src/__tests__/useQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test.tsx @@ -83,10 +83,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) states.push(state) @@ -472,10 +469,7 @@ describe('useQuery', () => { function Component({ value }: { value: string }) { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return `data: ${value}` - }, + queryFn: () => sleep(10).then(() => `data: ${value}`), gcTime: 0, notifyOnChangeProps: 'all', @@ -534,10 +528,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(5) - return 'data' - }, + queryFn: () => sleep(5).then(() => 'data'), gcTime: 0, notifyOnChangeProps: ['isPending', 'isSuccess', 'data'], @@ -1003,10 +994,7 @@ describe('useQuery', () => { function Page() { const result = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'fetched' - }, + queryFn: () => sleep(10).then(() => 'fetched'), initialData: 'initial', staleTime: Infinity, @@ -1164,10 +1152,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(5) - return count - }, + queryFn: () => sleep(5).then(() => count), enabled: count === 0, }) @@ -1224,10 +1209,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), placeholderData: keepPreviousData, }) @@ -1594,10 +1576,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), initialData: 99, placeholderData: keepPreviousData, }) @@ -1666,10 +1645,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), enabled: false, placeholderData: keepPreviousData, notifyOnChangeProps: 'all', @@ -1764,10 +1740,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: [key, count], - queryFn: async () => { - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => count), enabled: false, placeholderData: keepPreviousData, notifyOnChangeProps: 'all', @@ -1842,10 +1815,7 @@ describe('useQuery', () => { function FirstComponent() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 1 - }, + queryFn: () => sleep(10).then(() => 1), notifyOnChangeProps: 'all', }) const refetch = state.refetch @@ -1905,10 +1875,7 @@ describe('useQuery', () => { queryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'prefetch' - }, + queryFn: () => sleep(10).then(() => 'prefetch'), }) await vi.advanceTimersByTimeAsync(20) @@ -1916,10 +1883,7 @@ describe('useQuery', () => { function FirstComponent() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'one' - }, + queryFn: () => sleep(10).then(() => 'one'), staleTime: 100, }) @@ -1930,10 +1894,7 @@ describe('useQuery', () => { function SecondComponent() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'two' - }, + queryFn: () => sleep(10).then(() => 'two'), staleTime: 10, }) @@ -2035,10 +1996,7 @@ describe('useQuery', () => { }) => { return useQuery({ queryKey: [key, id], - queryFn: async () => { - await sleep(10) - return { id, name: 'John' } - }, + queryFn: () => sleep(10).then(() => ({ id, name: 'John' })), enabled: !!id && enabled, }) } @@ -2132,10 +2090,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(5) - return 'test' - }, + queryFn: () => sleep(5).then(() => 'test'), notifyOnChangeProps: ['data'], }) @@ -2189,10 +2144,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(5) - return 'test' - }, + queryFn: () => sleep(5).then(() => 'test'), notifyOnChangeProps: () => ['data'], }) @@ -2380,10 +2332,7 @@ describe('useQuery', () => { it('should update query options', () => { const key = queryKey() - const queryFn = async () => { - await sleep(10) - return 'data1' - } + const queryFn = () => sleep(10).then(() => 'data1') function Page() { useQuery({ queryKey: key, queryFn, retryDelay: 10 }) @@ -2401,10 +2350,7 @@ describe('useQuery', () => { let renders = 0 - const queryFn = async () => { - await sleep(15) - return 'data' - } + const queryFn = () => sleep(15).then(() => 'data') function Page() { const query1 = useQuery({ queryKey: key, queryFn }) @@ -2457,18 +2403,12 @@ describe('useQuery', () => { function Page() { const first = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), enabled: false, }) const second = useQuery({ queryKey: key2, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) return ( @@ -2507,10 +2447,7 @@ describe('useQuery', () => { function Page() { const { status } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) return
status: {status}
@@ -3555,10 +3492,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) states.push(state) return ( @@ -3648,10 +3582,7 @@ describe('useQuery', () => { const prefetchQueryFn = vi.fn<(...args: Array) => Promise>() - prefetchQueryFn.mockImplementation(async () => { - await sleep(10) - return 'not yet...' - }) + prefetchQueryFn.mockImplementation(() => sleep(10).then(() => 'not yet...')) queryClient.prefetchQuery({ queryKey: key, @@ -3771,10 +3702,7 @@ describe('useQuery', () => { const query = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), enabled: shouldFetch, }) @@ -3810,10 +3738,7 @@ describe('useQuery', () => { function Page() { const result = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'serverData' - }, + queryFn: () => sleep(10).then(() => 'serverData'), initialData: 'initialData', }) results.push(result) @@ -4504,10 +4429,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 0 - }, + queryFn: () => sleep(10).then(() => 0), select: useCallback( (data: number) => { selectRun++ @@ -4550,10 +4472,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 0 - }, + queryFn: () => sleep(10).then(() => 0), select: useCallback( (data: number) => { @@ -4603,10 +4522,7 @@ describe('useQuery', () => { const state = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return [1, 2] - }, + queryFn: () => sleep(10).then(() => [1, 2]), select: (res) => res.map((x) => x + 1), }) @@ -4747,10 +4663,7 @@ describe('useQuery', () => { const key = queryKey() const states: Array> = [] - const queryFn = async () => { - await sleep(50) - return 'OK' - } + const queryFn = () => sleep(50).then(() => 'OK') function Page() { const [id, setId] = useState(1) @@ -4995,10 +4908,9 @@ describe('useQuery', () => { it('should refetch when changed enabled to true in error state', async () => { const queryFn = vi.fn<(...args: Array) => unknown>() - queryFn.mockImplementation(async () => { - await sleep(10) - return Promise.reject(new Error('Suspense Error Bingo')) - }) + queryFn.mockImplementation(() => + sleep(10).then(() => Promise.reject(new Error('Suspense Error Bingo'))), + ) function Page({ enabled }: { enabled: boolean }) { const { error, isPending } = useQuery({ @@ -5117,10 +5029,8 @@ describe('useQuery', () => { function Page({ id }: { id: boolean }) { const { error, isFetching } = useQuery({ queryKey: [id], - queryFn: async () => { - await sleep(10) - return Promise.reject(new Error('Error')) - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Error'))), retry: false, retryOnMount: false, refetchOnMount: false, @@ -5254,10 +5164,7 @@ describe('useQuery', () => { function Page() { const state = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) useEffect(() => { @@ -6220,10 +6127,7 @@ describe('useQuery', () => { const { data, status } = useQuery({ enabled: false, queryKey: key, - queryFn: async () => { - await sleep(10) - return 5 - }, + queryFn: () => sleep(10).then(() => 5), }) const mounted = useRef(null) @@ -6389,10 +6293,7 @@ describe('useQuery', () => { const { data } = useQuery({ queryKey: [key], - queryFn: async () => { - await sleep(5) - return 'Works' - }, + queryFn: () => sleep(5).then(() => 'Works'), }) return
setRef(value)}>{data}
@@ -6415,10 +6316,7 @@ describe('useQuery', () => { const state = useQuery({ staleTime: Infinity, queryKey: [key, steps[count]], - queryFn: async () => { - await sleep(10) - return steps[count] - }, + queryFn: () => sleep(10).then(() => steps[count]), placeholderData: keepPreviousData, }) @@ -6531,11 +6429,7 @@ describe('useQuery', () => { const { data, status } = useQuery({ queryKey: [key], queryFn: enabled - ? async () => { - await sleep(10) - - return Promise.resolve('data') - } + ? () => sleep(10).then(() => Promise.resolve('data')) : skipToken, retry: false, retryOnMount: false, @@ -6612,10 +6506,7 @@ describe('useQuery', () => { function Page() { const query = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return Promise.reject(error) - }, + queryFn: () => sleep(10).then(() => Promise.reject(error)), retry: false, notifyOnChangeProps: 'all', }) @@ -6714,10 +6605,7 @@ describe('useQuery', () => { void serverQueryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return Promise.resolve('server') - }, + queryFn: () => sleep(10).then(() => Promise.resolve('server')), }) const dehydrated = dehydrate(serverQueryClient) @@ -6772,10 +6660,8 @@ describe('useQuery', () => { void serverQueryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return Promise.reject(new Error('server error')) - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('server error'))), }) const dehydrated = dehydrate(serverQueryClient) diff --git a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx index 9968d2db5ea..bc8df240209 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx @@ -291,10 +291,8 @@ describe('useSuspenseQueries', () => { function getUserData() { return { queryKey: key, - queryFn: async () => { - await sleep(localDuration) - return { name: 'John Doe', age: 50 } - }, + queryFn: () => + sleep(localDuration).then(() => ({ name: 'John Doe', age: 50 })), } } From 3d6e001baeeef4e7c524f39cc009544aa05c2b08 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 19:19:27 +0900 Subject: [PATCH 055/414] test(react-query/useSuspenseQueries): replace 'async/await sleep' with 'sleep().then()' in 'queryFn' (#10403) --- .../react-query/src/__tests__/useSuspenseQueries.test.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index ef79a331fcf..d8838aee0da 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -282,10 +282,8 @@ describe('useSuspenseQueries', () => { function getUserData() { return { queryKey: key, - queryFn: async () => { - await sleep(localDuration) - return { name: 'John Doe', age: 50 } - }, + queryFn: () => + sleep(localDuration).then(() => ({ name: 'John Doe', age: 50 })), } } From 1493433c34c662b0b9dc02a88327d210a7484eb7 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 19:54:01 +0900 Subject: [PATCH 056/414] test(angular-query-experimental): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' (#10404) * test(angular-query-experimental): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/inject-query.test.ts | 5 +- .../src/__tests__/pending-tasks.test.ts | 54 +++++-------------- 2 files changed, 15 insertions(+), 44 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 82702e15c24..3cd4554a196 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -612,10 +612,7 @@ describe('injectQuery', () => { const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ queryKey: ['pendingTasksTest'], - queryFn: async () => { - await sleep(50) - return 'test data' - }, + queryFn: () => sleep(50).then(() => 'test data'), })), ) diff --git a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts index 92f70aed9f3..643e140589e 100644 --- a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts +++ b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts @@ -283,17 +283,12 @@ describe('PendingTasks Integration', () => { class TestComponent { query = injectQuery(() => ({ queryKey: ['component-query'], - queryFn: async () => { - await sleep(100) - return 'component-data' - }, + queryFn: () => sleep(100).then(() => 'component-data'), })) mutation = injectMutation(() => ({ - mutationFn: async (data: string) => { - await sleep(100) - return `processed: ${data}` - }, + mutationFn: (data: string) => + sleep(100).then(() => `processed: ${data}`), })) } @@ -338,20 +333,14 @@ describe('PendingTasks Integration', () => { const query1 = TestBed.runInInjectionContext(() => injectQuery(() => ({ queryKey: ['concurrent-1'], - queryFn: async () => { - await sleep(30) - return 'data-1' - }, + queryFn: () => sleep(30).then(() => 'data-1'), })), ) const query2 = TestBed.runInInjectionContext(() => injectQuery(() => ({ queryKey: ['concurrent-2'], - queryFn: async () => { - await sleep(50) - return 'data-2' - }, + queryFn: () => sleep(50).then(() => 'data-2'), })), ) @@ -385,19 +374,15 @@ describe('PendingTasks Integration', () => { const mutation1 = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationFn: async (data: string) => { - await sleep(30) - return `processed-1: ${data}` - }, + mutationFn: (data: string) => + sleep(30).then(() => `processed-1: ${data}`), })), ) const mutation2 = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationFn: async (data: string) => { - await sleep(50) - return `processed-2: ${data}` - }, + mutationFn: (data: string) => + sleep(50).then(() => `processed-2: ${data}`), })), ) @@ -436,19 +421,14 @@ describe('PendingTasks Integration', () => { const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ queryKey: ['mixed-query'], - queryFn: async () => { - await sleep(40) - return 'query-data' - }, + queryFn: () => sleep(40).then(() => 'query-data'), })), ) const mutation = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationFn: async (data: string) => { - await sleep(60) - return `mutation: ${data}` - }, + mutationFn: (data: string) => + sleep(60).then(() => `mutation: ${data}`), })), ) @@ -561,10 +541,7 @@ describe('PendingTasks Integration', () => { const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ queryKey: ['cancel-test'], - queryFn: async () => { - await sleep(100) - return 'data' - }, + queryFn: () => sleep(100).then(() => 'data'), })), ) @@ -623,10 +600,7 @@ describe('PendingTasks Integration', () => { const mutation = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationFn: async (newData: string) => { - await sleep(50) - return newData - }, + mutationFn: (newData: string) => sleep(50).then(() => newData), onMutate: async (newData) => { // Optimistic update const previousData = queryClient.getQueryData(testQueryKey) From e919c54f861ce706dd1ec2f0274434b104582e20 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 21:32:42 +0900 Subject: [PATCH 057/414] test(*): replace deprecated 'toThrowError' with 'toThrow' (#10405) --- .../src/__tests__/inject-infinite-query.test.ts | 2 +- .../src/__tests__/inject-is-fetching.test.ts | 2 +- .../src/__tests__/inject-is-mutating.test.ts | 2 +- .../src/__tests__/inject-is-restoring.test.ts | 2 +- .../src/__tests__/inject-mutation-state.test.ts | 2 +- .../src/__tests__/inject-mutation.test.ts | 6 +++--- .../src/__tests__/inject-query.test.ts | 2 +- .../src/__tests__/asyncThrottle.test.ts | 2 +- packages/query-core/src/__tests__/queryObserver.test.tsx | 2 +- packages/svelte-query/tests/context/context.svelte.test.ts | 4 ++-- packages/vue-query/src/__tests__/useMutation.test.ts | 2 +- packages/vue-query/src/__tests__/useQueryClient.test.ts | 4 ++-- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index 7873d5261ca..23fcc4ba0f0 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -72,7 +72,7 @@ describe('injectInfiniteQuery', () => { initialPageParam: 0, getNextPageParam: () => 12, })) - }).toThrowError(/NG0203(.*?)injectInfiniteQuery/) + }).toThrow(/NG0203(.*?)injectInfiniteQuery/) }) test('can be used outside injection context when passing an injector', () => { diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index 329ef6d9e31..9e5126b5a84 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -48,7 +48,7 @@ describe('injectIsFetching', () => { test('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsFetching() - }).toThrowError(/NG0203(.*?)injectIsFetching/) + }).toThrow(/NG0203(.*?)injectIsFetching/) }) test('can be used outside injection context when passing an injector', () => { diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 5a4694cb854..69685d91882 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -54,7 +54,7 @@ describe('injectIsMutating', () => { test('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsMutating() - }).toThrowError(/NG0203(.*?)injectIsMutating/) + }).toThrow(/NG0203(.*?)injectIsMutating/) }) test('can be used outside injection context when passing an injector', () => { diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts index 9c06b0863ba..c097d1b97d9 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts @@ -67,6 +67,6 @@ describe('injectIsRestoring', () => { test('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsRestoring() - }).toThrowError(/NG0203(.*?)injectIsRestoring/) + }).toThrow(/NG0203(.*?)injectIsRestoring/) }) }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index 8b747f66f6c..cd75f4e1e3b 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -182,7 +182,7 @@ describe('injectMutationState', () => { test('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectMutationState() - }).toThrowError(/NG0203(.*?)injectMutationState/) + }).toThrow(/NG0203(.*?)injectMutationState/) }) test('can be used outside injection context when passing an injector', () => { diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 7af34970928..b4d923707ec 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -448,7 +448,7 @@ describe('injectMutation', () => { })) }) - await expect(() => mutateAsync()).rejects.toThrowError(err) + await expect(() => mutateAsync()).rejects.toThrow(err) }) test('should throw when throwOnError function returns true', async () => { @@ -463,7 +463,7 @@ describe('injectMutation', () => { })) }) - await expect(() => mutateAsync()).rejects.toThrowError(err) + await expect(() => mutateAsync()).rejects.toThrow(err) }) describe('injection context', () => { @@ -473,7 +473,7 @@ describe('injectMutation', () => { mutationKey: ['injectionContextError'], mutationFn: () => Promise.resolve(), })) - }).toThrowError(/NG0203(.*?)injectMutation/) + }).toThrow(/NG0203(.*?)injectMutation/) }) test('can be used outside injection context when passing an injector', () => { diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 3cd4554a196..29eab92d643 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -589,7 +589,7 @@ describe('injectQuery', () => { queryKey: ['injectionContextError'], queryFn: () => sleep(0).then(() => 'Some data'), })) - }).toThrowError(/NG0203(.*?)injectQuery/) + }).toThrow(/NG0203(.*?)injectQuery/) }) test('can be used outside injection context when passing an injector', () => { diff --git a/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts b/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts index ec7476d1746..95bbcac79b2 100644 --- a/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts +++ b/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts @@ -146,6 +146,6 @@ describe('asyncThrottle', () => { }) test('should throw error when "func" is not a function', () => { - expect(() => asyncThrottle(1 as any)).toThrowError() + expect(() => asyncThrottle(1 as any)).toThrow() }) }) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 689dd8d2e19..b27d5d53ef3 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -810,7 +810,7 @@ describe('queryObserver', () => { // @ts-expect-error enabled: null, }), - ).toThrowError('Expected enabled to be a boolean') + ).toThrow('Expected enabled to be a boolean') }) test('getCurrentQuery should return the current query', () => { diff --git a/packages/svelte-query/tests/context/context.svelte.test.ts b/packages/svelte-query/tests/context/context.svelte.test.ts index 5c4ee39a395..ce086881db7 100644 --- a/packages/svelte-query/tests/context/context.svelte.test.ts +++ b/packages/svelte-query/tests/context/context.svelte.test.ts @@ -5,7 +5,7 @@ import BaseExample from './BaseExample.svelte' describe('getQueryClientContext', () => { test('Throw when called without a client in context', () => { - expect(() => render(BaseExample)).toThrowError( + expect(() => render(BaseExample)).toThrow( 'No QueryClient was found in Svelte context. Did you forget to wrap your component with QueryClientProvider?', ) }) @@ -13,6 +13,6 @@ describe('getQueryClientContext', () => { describe('getIsRestoringContext', () => { test('Do not throw when called outside of a component', () => { - expect(() => getIsRestoringContext()).not.toThrowError() + expect(() => getIsRestoringContext()).not.toThrow() }) }) diff --git a/packages/vue-query/src/__tests__/useMutation.test.ts b/packages/vue-query/src/__tests__/useMutation.test.ts index f889bff8c90..d24bfed6755 100644 --- a/packages/vue-query/src/__tests__/useMutation.test.ts +++ b/packages/vue-query/src/__tests__/useMutation.test.ts @@ -372,7 +372,7 @@ describe('useMutation', () => { }) await vi.waitFor(() => - expect(mutation.mutateAsync()).rejects.toThrowError('Some error'), + expect(mutation.mutateAsync()).rejects.toThrow('Some error'), ) expect(mutation).toMatchObject({ diff --git a/packages/vue-query/src/__tests__/useQueryClient.test.ts b/packages/vue-query/src/__tests__/useQueryClient.test.ts index 26d63e330b5..6648c1f18e6 100644 --- a/packages/vue-query/src/__tests__/useQueryClient.test.ts +++ b/packages/vue-query/src/__tests__/useQueryClient.test.ts @@ -34,7 +34,7 @@ describe('useQueryClient', () => { test('should throw an error when queryClient does not exist in the context', () => { injectSpy.mockReturnValueOnce(undefined) - expect(useQueryClient).toThrowError() + expect(useQueryClient).toThrow() expect(injectSpy).toHaveBeenCalledTimes(1) expect(injectSpy).toHaveBeenCalledWith(VUE_QUERY_CLIENT) }) @@ -42,7 +42,7 @@ describe('useQueryClient', () => { test('should throw an error when used outside of setup function', () => { hasInjectionContextSpy.mockReturnValueOnce(false) - expect(useQueryClient).toThrowError() + expect(useQueryClient).toThrow() expect(hasInjectionContextSpy).toHaveBeenCalledTimes(1) }) From 1a6fdd0b9576e9a1a22e833f7521cf3162d48072 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 21:49:25 +0900 Subject: [PATCH 058/414] test({solid,vue}-query/infiniteQueryOptions): add runtime test for 'infiniteQueryOptions' (#10406) --- .../src/__tests__/infiniteQueryOptions.test.tsx | 15 +++++++++++++++ .../src/__tests__/infiniteQueryOptions.test.ts | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 packages/solid-query/src/__tests__/infiniteQueryOptions.test.tsx create mode 100644 packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts diff --git a/packages/solid-query/src/__tests__/infiniteQueryOptions.test.tsx b/packages/solid-query/src/__tests__/infiniteQueryOptions.test.tsx new file mode 100644 index 00000000000..b00138d204b --- /dev/null +++ b/packages/solid-query/src/__tests__/infiniteQueryOptions.test.tsx @@ -0,0 +1,15 @@ +import { describe, expect, it } from 'vitest' +import { infiniteQueryOptions } from '../infiniteQueryOptions' + +describe('infiniteQueryOptions', () => { + it('should return the object received as a parameter without any modification.', () => { + const object = { + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + getNextPageParam: () => null, + initialPageParam: null, + } as const + + expect(infiniteQueryOptions(object)).toBe(object) + }) +}) diff --git a/packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts b/packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts new file mode 100644 index 00000000000..b00138d204b --- /dev/null +++ b/packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts @@ -0,0 +1,15 @@ +import { describe, expect, it } from 'vitest' +import { infiniteQueryOptions } from '../infiniteQueryOptions' + +describe('infiniteQueryOptions', () => { + it('should return the object received as a parameter without any modification.', () => { + const object = { + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + getNextPageParam: () => null, + initialPageParam: null, + } as const + + expect(infiniteQueryOptions(object)).toBe(object) + }) +}) From 36fc645a87370ddaa2bf21dfbe71d7c17833a2b8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 22:43:08 +0900 Subject: [PATCH 059/414] test({solid,svelte}-query/mutationOptions): replace 'toStrictEqual' with 'toBe' for identity check (#10407) * test({react,preact}-query/infiniteQueryOptions): replace type annotation with 'as const' * Revert "test({react,preact}-query/infiniteQueryOptions): replace type annotation with 'as const'" This reverts commit 2bb0029621aa32333259ab0db7d6653929fcdb28. * test({solid,svelte}-query/mutationOptions): replace 'toStrictEqual' with 'toBe' for identity check --- packages/solid-query/src/__tests__/mutationOptions.test.tsx | 4 ++-- .../tests/mutationOptions/mutationOptions.svelte.test.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/solid-query/src/__tests__/mutationOptions.test.tsx b/packages/solid-query/src/__tests__/mutationOptions.test.tsx index bb4aefbffda..746b515f35a 100644 --- a/packages/solid-query/src/__tests__/mutationOptions.test.tsx +++ b/packages/solid-query/src/__tests__/mutationOptions.test.tsx @@ -27,7 +27,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 5), } as const - expect(mutationOptions(object)).toStrictEqual(object) + expect(mutationOptions(object)).toBe(object) }) it('should return the object received as a parameter without any modification (without mutationKey in mutationOptions)', () => { @@ -35,7 +35,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 5), } as const - expect(mutationOptions(object)).toStrictEqual(object) + expect(mutationOptions(object)).toBe(object) }) it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { diff --git a/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts b/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts index 214a7e17511..b0443d6726f 100644 --- a/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts +++ b/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts @@ -20,7 +20,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 5), } as const - expect(mutationOptions(object)).toStrictEqual(object) + expect(mutationOptions(object)).toBe(object) }) it('should return the object received as a parameter without any modification (without mutationKey in mutationOptions)', () => { @@ -28,7 +28,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 5), } as const - expect(mutationOptions(object)).toStrictEqual(object) + expect(mutationOptions(object)).toBe(object) }) it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { From a8dc3b722816f9d361888df4ee9f8e6fdcb28ef8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 22:54:16 +0900 Subject: [PATCH 060/414] test(svelte-query/infiniteQueryOptions): fix incorrect 'describe' name from 'queryOptions' to 'infiniteQueryOptions' (#10409) --- packages/svelte-query/tests/infiniteQueryOptions.test-d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts index b92d8d7730e..4dc9d69bf42 100644 --- a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts +++ b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts @@ -3,7 +3,7 @@ import { QueryClient } from '@tanstack/query-core' import { createInfiniteQuery, infiniteQueryOptions } from '../src/index.js' import type { InfiniteData } from '@tanstack/query-core' -describe('queryOptions', () => { +describe('infiniteQueryOptions', () => { test('Should not allow excess properties', () => { infiniteQueryOptions({ queryKey: ['key'], From fc35bbf4b5187238bbd6a192884550e313c0dea6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 23:03:00 +0900 Subject: [PATCH 061/414] test({solid,svelte}-query): fix incorrect 'describe' name from 'initialData' to match file name (#10410) --- packages/solid-query/src/__tests__/useQuery.test-d.tsx | 2 +- packages/svelte-query/tests/createQuery.test-d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/solid-query/src/__tests__/useQuery.test-d.tsx b/packages/solid-query/src/__tests__/useQuery.test-d.tsx index 79ea46d43c1..89c383859f2 100644 --- a/packages/solid-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test-d.tsx @@ -1,7 +1,7 @@ import { describe, expectTypeOf, it } from 'vitest' import { queryOptions, useQuery } from '../index' -describe('initialData', () => { +describe('useQuery', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { const { data } = useQuery(() => ({ diff --git a/packages/svelte-query/tests/createQuery.test-d.ts b/packages/svelte-query/tests/createQuery.test-d.ts index 5ede74c49db..ed44e967c1d 100644 --- a/packages/svelte-query/tests/createQuery.test-d.ts +++ b/packages/svelte-query/tests/createQuery.test-d.ts @@ -1,7 +1,7 @@ import { describe, expectTypeOf, it } from 'vitest' import { createQuery, queryOptions } from '../src/index.js' -describe('initialData', () => { +describe('createQuery', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { const { data } = createQuery(() => ({ From 2a4fc9f04fecb743da59af062996b345339c1517 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 23:46:31 +0900 Subject: [PATCH 062/414] test(angular-query-experimental): fix 'describe' nesting and naming in type test files (#10411) * test({solid,svelte,angular}-query): add missing 'initialData' describe nesting and wrap with top-level describe * ci: apply automated fixes * test(angular-query-experimental): fix incorrect 'describe' name in 'inject-queries.test-d.ts' and 'inject-mutation.test-d.ts' * ci: apply automated fixes * revert: remove solid-query and svelte-query changes from this PR --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/inject-mutation.test-d.ts | 110 +++---- .../src/__tests__/inject-queries.test-d.ts | 298 +++++++++--------- .../src/__tests__/inject-query.test-d.ts | 262 +++++++-------- 3 files changed, 340 insertions(+), 330 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts index f331bb02dea..b3a45d1c374 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts @@ -3,69 +3,73 @@ import { sleep } from '@tanstack/query-test-utils' import { injectMutation } from '..' import type { Signal } from '@angular/core' -describe('Discriminated union return type', () => { - test('data should be possibly undefined by default', () => { - const mutation = injectMutation(() => ({ - mutationFn: () => sleep(0).then(() => 'string'), - })) +describe('injectMutation', () => { + describe('Discriminated union return type', () => { + test('data should be possibly undefined by default', () => { + const mutation = injectMutation(() => ({ + mutationFn: () => sleep(0).then(() => 'string'), + })) - expectTypeOf(mutation.data).toEqualTypeOf>() - }) + expectTypeOf(mutation.data).toEqualTypeOf>() + }) - test('data should be defined when mutation is success', () => { - const mutation = injectMutation(() => ({ - mutationFn: () => sleep(0).then(() => 'string'), - })) + test('data should be defined when mutation is success', () => { + const mutation = injectMutation(() => ({ + mutationFn: () => sleep(0).then(() => 'string'), + })) - if (mutation.isSuccess()) { - expectTypeOf(mutation.data).toEqualTypeOf>() - } - }) + if (mutation.isSuccess()) { + expectTypeOf(mutation.data).toEqualTypeOf>() + } + }) - test('error should be null when mutation is success', () => { - const mutation = injectMutation(() => ({ - mutationFn: () => sleep(0).then(() => 'string'), - })) + test('error should be null when mutation is success', () => { + const mutation = injectMutation(() => ({ + mutationFn: () => sleep(0).then(() => 'string'), + })) - if (mutation.isSuccess()) { - expectTypeOf(mutation.error).toEqualTypeOf>() - } - }) + if (mutation.isSuccess()) { + expectTypeOf(mutation.error).toEqualTypeOf>() + } + }) - test('data should be undefined when mutation is pending', () => { - const mutation = injectMutation(() => ({ - mutationFn: () => sleep(0).then(() => 'string'), - })) + test('data should be undefined when mutation is pending', () => { + const mutation = injectMutation(() => ({ + mutationFn: () => sleep(0).then(() => 'string'), + })) - if (mutation.isPending()) { - expectTypeOf(mutation.data).toEqualTypeOf>() - } - }) + if (mutation.isPending()) { + expectTypeOf(mutation.data).toEqualTypeOf>() + } + }) - test('error should be defined when mutation is error', () => { - const mutation = injectMutation(() => ({ - mutationFn: () => sleep(0).then(() => 'string'), - })) + test('error should be defined when mutation is error', () => { + const mutation = injectMutation(() => ({ + mutationFn: () => sleep(0).then(() => 'string'), + })) - if (mutation.isError()) { - expectTypeOf(mutation.error).toEqualTypeOf>() - } - }) + if (mutation.isError()) { + expectTypeOf(mutation.error).toEqualTypeOf>() + } + }) - test('should narrow variables', () => { - const mutation = injectMutation(() => ({ - mutationFn: (_variables: string) => sleep(0).then(() => 'string'), - })) + test('should narrow variables', () => { + const mutation = injectMutation(() => ({ + mutationFn: (_variables: string) => sleep(0).then(() => 'string'), + })) - if (mutation.isIdle()) { - expectTypeOf(mutation.variables).toEqualTypeOf>() - } - if (mutation.isPending()) { - expectTypeOf(mutation.variables).toEqualTypeOf>() - } - if (mutation.isSuccess()) { - expectTypeOf(mutation.variables).toEqualTypeOf>() - } - expectTypeOf(mutation.variables).toEqualTypeOf>() + if (mutation.isIdle()) { + expectTypeOf(mutation.variables).toEqualTypeOf>() + } + if (mutation.isPending()) { + expectTypeOf(mutation.variables).toEqualTypeOf>() + } + if (mutation.isSuccess()) { + expectTypeOf(mutation.variables).toEqualTypeOf>() + } + expectTypeOf(mutation.variables).toEqualTypeOf< + Signal + >() + }) }) }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts index 62547fd9e09..de3f7e68578 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts @@ -5,173 +5,177 @@ import { queryOptions } from '../query-options' import type { CreateQueryOptions, CreateQueryResult, OmitKeyof } from '..' import type { Signal } from '@angular/core' -describe('InjectQueries config object overload', () => { - it('TData should always be defined when initialData is provided as an object', () => { - const query1 = { - queryKey: ['key1'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: { - wow: false, - }, - } - - const query2 = { - queryKey: ['key2'], - queryFn: () => 'Query Data', - initialData: 'initial data', - } - - const query3 = { - queryKey: ['key2'], - queryFn: () => 'Query Data', - } - - const queryResults = injectQueries(() => ({ - queries: [query1, query2, query3], - })) - - const query1Data = queryResults()[0].data() - const query2Data = queryResults()[1].data() - const query3Data = queryResults()[2].data() - - expectTypeOf(query1Data).toEqualTypeOf<{ wow: boolean }>() - expectTypeOf(query2Data).toEqualTypeOf() - expectTypeOf(query3Data).toEqualTypeOf() - }) +describe('injectQueries', () => { + describe('config object overload', () => { + it('TData should always be defined when initialData is provided as an object', () => { + const query1 = { + queryKey: ['key1'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: false, + }, + } - it('TData should be defined when passed through queryOptions', () => { - const options = queryOptions({ - queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: { - wow: true, - }, - }) - const queryResults = injectQueries(() => ({ queries: [options] })) + const query2 = { + queryKey: ['key2'], + queryFn: () => 'Query Data', + initialData: 'initial data', + } - const data = queryResults()[0].data() + const query3 = { + queryKey: ['key2'], + queryFn: () => 'Query Data', + } - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + const queryResults = injectQueries(() => ({ + queries: [query1, query2, query3], + })) + + const query1Data = queryResults()[0].data() + const query2Data = queryResults()[1].data() + const query3Data = queryResults()[2].data() - it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into injectQuery', () => { - const query1 = queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(1), - select: (data) => data > 1, + expectTypeOf(query1Data).toEqualTypeOf<{ wow: boolean }>() + expectTypeOf(query2Data).toEqualTypeOf() + expectTypeOf(query3Data).toEqualTypeOf() }) - const query2 = { - queryKey: ['key'], - queryFn: () => Promise.resolve(1), - select: (data: number) => data > 1, - } + it('TData should be defined when passed through queryOptions', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: true, + }, + }) + const queryResults = injectQueries(() => ({ queries: [options] })) - const queryResults = injectQueries(() => ({ queries: [query1, query2] })) - const query1Data = queryResults()[0].data() - const query2Data = queryResults()[1].data() + const data = queryResults()[0].data() - expectTypeOf(query1Data).toEqualTypeOf() - expectTypeOf(query2Data).toEqualTypeOf() - }) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { - const queryResults = injectQueries(() => ({ - queries: [ - { - queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: () => undefined as { wow: boolean } | undefined, - }, - ], - })) + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into injectQuery', () => { + const query1 = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + select: (data) => data > 1, + }) + + const query2 = { + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + select: (data: number) => data > 1, + } - const data = queryResults()[0].data() + const queryResults = injectQueries(() => ({ queries: [query1, query2] })) + const query1Data = queryResults()[0].data() + const query2Data = queryResults()[1].data() - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() - }) + expectTypeOf(query1Data).toEqualTypeOf() + expectTypeOf(query2Data).toEqualTypeOf() + }) - describe('custom injectable', () => { - it('should allow custom hooks using UseQueryOptions', () => { - type Data = string - - const injectCustomQueries = ( - options?: OmitKeyof, 'queryKey' | 'queryFn'>, - ) => { - return injectQueries(() => ({ - queries: [ - { - ...options, - queryKey: ['todos-key'], - queryFn: () => Promise.resolve('data'), + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const queryResults = injectQueries(() => ({ + queries: [ + { + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } }, - ], - })) - } + initialData: () => undefined as { wow: boolean } | undefined, + }, + ], + })) - const queryResults = injectCustomQueries() const data = queryResults()[0].data() - expectTypeOf(data).toEqualTypeOf() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() }) - }) - it('TData should have correct type when conditional skipToken is passed', () => { - const queryResults = injectQueries(() => ({ - queries: [ - { - queryKey: ['withSkipToken'], - queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), - }, - ], - })) + describe('custom injectable', () => { + it('should allow custom hooks using UseQueryOptions', () => { + type Data = string + + const injectCustomQueries = ( + options?: OmitKeyof, 'queryKey' | 'queryFn'>, + ) => { + return injectQueries(() => ({ + queries: [ + { + ...options, + queryKey: ['todos-key'], + queryFn: () => Promise.resolve('data'), + }, + ], + })) + } - const firstResult = queryResults()[0] + const queryResults = injectCustomQueries() + const data = queryResults()[0].data() - expectTypeOf(firstResult).toEqualTypeOf>() - expectTypeOf(firstResult.data()).toEqualTypeOf() - }) + expectTypeOf(data).toEqualTypeOf() + }) + }) + + it('TData should have correct type when conditional skipToken is passed', () => { + const queryResults = injectQueries(() => ({ + queries: [ + { + queryKey: ['withSkipToken'], + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }, + ], + })) + + const firstResult = queryResults()[0] + + expectTypeOf(firstResult).toEqualTypeOf< + CreateQueryResult + >() + expectTypeOf(firstResult.data()).toEqualTypeOf() + }) - it('should return correct data for dynamic queries with mixed result types', () => { - const Queries1 = { - get: () => - queryOptions({ - queryKey: ['key1'], - queryFn: () => Promise.resolve(1), - }), - } - const Queries2 = { - get: () => - queryOptions({ - queryKey: ['key2'], - queryFn: () => Promise.resolve(true), - }), - } - - const queries1List = [1, 2, 3].map(() => ({ ...Queries1.get() })) - const result = injectQueries(() => ({ - queries: [...queries1List, { ...Queries2.get() }], - })) - - expectTypeOf(result).branded.toEqualTypeOf< - Signal< - [ - ...Array>, - CreateQueryResult, - ] - > - >() + it('should return correct data for dynamic queries with mixed result types', () => { + const Queries1 = { + get: () => + queryOptions({ + queryKey: ['key1'], + queryFn: () => Promise.resolve(1), + }), + } + const Queries2 = { + get: () => + queryOptions({ + queryKey: ['key2'], + queryFn: () => Promise.resolve(true), + }), + } + + const queries1List = [1, 2, 3].map(() => ({ ...Queries1.get() })) + const result = injectQueries(() => ({ + queries: [...queries1List, { ...Queries2.get() }], + })) + + expectTypeOf(result).branded.toEqualTypeOf< + Signal< + [ + ...Array>, + CreateQueryResult, + ] + > + >() + }) }) }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts index 541ad65f148..a220ccfa6fe 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts @@ -3,177 +3,179 @@ import { sleep } from '@tanstack/query-test-utils' import { injectQuery, queryOptions } from '..' import type { Signal } from '@angular/core' -describe('initialData', () => { - describe('Config object overload', () => { - it('TData should always be defined when initialData is provided as an object', () => { - const { data } = injectQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - })) +describe('injectQuery', () => { + describe('initialData', () => { + describe('Config object overload', () => { + it('TData should always be defined when initialData is provided as an object', () => { + const { data } = injectQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + })) - expectTypeOf(data).toEqualTypeOf>() - }) + expectTypeOf(data).toEqualTypeOf>() + }) - it('TData should be defined when passed through queryOptions', () => { - const options = () => - queryOptions({ + it('TData should be defined when passed through queryOptions', () => { + const options = () => + queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: true, + }, + }) + const { data } = injectQuery(options) + + expectTypeOf(data).toEqualTypeOf>() + }) + + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + }) + + const query = injectQuery(() => ({ + ...options, + select: (data) => data > 1, + })) + + expectTypeOf(query.data).toEqualTypeOf>() + }) + + it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { + const { data } = injectQuery(() => ({ queryKey: ['key'], queryFn: () => { return { wow: true, } }, - initialData: { + initialData: () => ({ wow: true, + }), + })) + + expectTypeOf(data).toEqualTypeOf>() + }) + + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = injectQuery(() => ({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } }, - }) - const { data } = injectQuery(options) + })) - expectTypeOf(data).toEqualTypeOf>() - }) + expectTypeOf(data).toEqualTypeOf>() + }) - it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { - const options = queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(1), + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const { data } = injectQuery(() => ({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + })) + + expectTypeOf(data).toEqualTypeOf>() }) - const query = injectQuery(() => ({ - ...options, - select: (data) => data > 1, - })) + it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { + const query = injectQuery(() => ({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + })) - expectTypeOf(query.data).toEqualTypeOf>() + if (query.isSuccess()) { + expectTypeOf(query.data).toEqualTypeOf>() + } + }) }) - it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { - const { data } = injectQuery(() => ({ - queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: () => ({ - wow: true, - }), - })) - - expectTypeOf(data).toEqualTypeOf>() + describe('structuralSharing', () => { + it('should be able to use structuralSharing with unknown types', () => { + // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 + injectQuery(() => ({ + queryKey: ['key'], + queryFn: () => 5, + structuralSharing: (oldData, newData) => { + expectTypeOf(oldData).toBeUnknown() + expectTypeOf(newData).toBeUnknown() + return newData + }, + })) + }) }) + }) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = injectQuery(() => ({ + describe('Discriminated union return type', () => { + test('data should be possibly undefined by default', () => { + const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, + queryFn: () => sleep(0).then(() => 'Some data'), })) - expectTypeOf(data).toEqualTypeOf>() + expectTypeOf(query.data).toEqualTypeOf>() }) - it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { - const { data } = injectQuery(() => ({ + test('data should be defined when query is success', () => { + const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: () => undefined as { wow: boolean } | undefined, + queryFn: () => sleep(0).then(() => 'Some data'), })) - expectTypeOf(data).toEqualTypeOf>() + if (query.isSuccess()) { + expectTypeOf(query.data).toEqualTypeOf>() + } }) - it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { + test('error should be null when query is success', () => { const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: () => undefined as { wow: boolean } | undefined, + queryFn: () => sleep(0).then(() => 'Some data'), })) if (query.isSuccess()) { - expectTypeOf(query.data).toEqualTypeOf>() + expectTypeOf(query.error).toEqualTypeOf>() } }) - }) - describe('structuralSharing', () => { - it('should be able to use structuralSharing with unknown types', () => { - // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 - injectQuery(() => ({ + test('data should be undefined when query is pending', () => { + const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: () => 5, - structuralSharing: (oldData, newData) => { - expectTypeOf(oldData).toBeUnknown() - expectTypeOf(newData).toBeUnknown() - return newData - }, + queryFn: () => sleep(0).then(() => 'Some data'), })) - }) - }) -}) - -describe('Discriminated union return type', () => { - test('data should be possibly undefined by default', () => { - const query = injectQuery(() => ({ - queryKey: ['key'], - queryFn: () => sleep(0).then(() => 'Some data'), - })) - - expectTypeOf(query.data).toEqualTypeOf>() - }) - - test('data should be defined when query is success', () => { - const query = injectQuery(() => ({ - queryKey: ['key'], - queryFn: () => sleep(0).then(() => 'Some data'), - })) - - if (query.isSuccess()) { - expectTypeOf(query.data).toEqualTypeOf>() - } - }) - - test('error should be null when query is success', () => { - const query = injectQuery(() => ({ - queryKey: ['key'], - queryFn: () => sleep(0).then(() => 'Some data'), - })) - - if (query.isSuccess()) { - expectTypeOf(query.error).toEqualTypeOf>() - } - }) - - test('data should be undefined when query is pending', () => { - const query = injectQuery(() => ({ - queryKey: ['key'], - queryFn: () => sleep(0).then(() => 'Some data'), - })) - if (query.isPending()) { - expectTypeOf(query.data).toEqualTypeOf>() - } - }) + if (query.isPending()) { + expectTypeOf(query.data).toEqualTypeOf>() + } + }) - test('error should be defined when query is error', () => { - const query = injectQuery(() => ({ - queryKey: ['key'], - queryFn: () => sleep(0).then(() => 'Some data'), - })) + test('error should be defined when query is error', () => { + const query = injectQuery(() => ({ + queryKey: ['key'], + queryFn: () => sleep(0).then(() => 'Some data'), + })) - if (query.isError()) { - expectTypeOf(query.error).toEqualTypeOf>() - } + if (query.isError()) { + expectTypeOf(query.error).toEqualTypeOf>() + } + }) }) }) From cf82e86b47f9dbd9cc17c6d615602fdd4223c384 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 6 Apr 2026 23:58:21 +0900 Subject: [PATCH 063/414] test({solid,svelte}-query): add missing 'initialData' describe nesting in type test files (#10412) * test({solid,svelte}-query): add missing 'initialData' describe nesting in type test files * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useQuery.test-d.tsx | 148 +++++++++--------- .../svelte-query/tests/createQuery.test-d.ts | 132 ++++++++-------- 2 files changed, 142 insertions(+), 138 deletions(-) diff --git a/packages/solid-query/src/__tests__/useQuery.test-d.tsx b/packages/solid-query/src/__tests__/useQuery.test-d.tsx index 89c383859f2..ec11493862f 100644 --- a/packages/solid-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test-d.tsx @@ -2,97 +2,99 @@ import { describe, expectTypeOf, it } from 'vitest' import { queryOptions, useQuery } from '../index' describe('useQuery', () => { - describe('Config object overload', () => { - it('TData should always be defined when initialData is provided as an object', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - })) - - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) - - it('TData should be defined when passed through queryOptions', () => { - const options = queryOptions({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, + describe('initialData', () => { + describe('Config object overload', () => { + it('TData should always be defined when initialData is provided as an object', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + })) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) - const { data } = useQuery(() => options) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + it('TData should be defined when passed through queryOptions', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + }) + const { data } = useQuery(() => options) - it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: () => ({ wow: true }), - })) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: () => ({ wow: true }), + })) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - })) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() - }) + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + })) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) - it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: () => undefined as { wow: boolean } | undefined, - })) + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: () => undefined as { wow: boolean } | undefined, + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) }) - }) - describe('Query key overload', () => { - it('TData should always be defined when initialData is provided', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - })) + describe('Query key overload', () => { + it('TData should always be defined when initialData is provided', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - })) + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) }) - }) - describe('Query key and func', () => { - it('TData should always be defined when initialData is provided', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - })) + describe('Query key and func', () => { + it('TData should always be defined when initialData is provided', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = useQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - })) + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = useQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) }) }) }) diff --git a/packages/svelte-query/tests/createQuery.test-d.ts b/packages/svelte-query/tests/createQuery.test-d.ts index ed44e967c1d..2f25052463d 100644 --- a/packages/svelte-query/tests/createQuery.test-d.ts +++ b/packages/svelte-query/tests/createQuery.test-d.ts @@ -2,87 +2,89 @@ import { describe, expectTypeOf, it } from 'vitest' import { createQuery, queryOptions } from '../src/index.js' describe('createQuery', () => { - describe('Config object overload', () => { - it('TData should always be defined when initialData is provided as an object', () => { - const { data } = createQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - })) - - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) - - it('TData should be defined when passed through queryOptions', () => { - const options = queryOptions({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, + describe('initialData', () => { + describe('Config object overload', () => { + it('TData should always be defined when initialData is provided as an object', () => { + const { data } = createQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + })) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) - const { data } = createQuery(() => options) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + it('TData should be defined when passed through queryOptions', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + }) + const { data } = createQuery(() => options) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = createQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - })) + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = createQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() - }) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) - it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { - const { data } = createQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: () => undefined as { wow: boolean } | undefined, - })) + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const { data } = createQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: () => undefined as { wow: boolean } | undefined, + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) }) - }) - describe('Query key overload', () => { - it('TData should always be defined when initialData is provided', () => { - const { data } = createQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - })) + describe('Query key overload', () => { + it('TData should always be defined when initialData is provided', () => { + const { data } = createQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = createQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - })) + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = createQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) }) - }) - describe('Query key and func', () => { - it('TData should always be defined when initialData is provided', () => { - const { data } = createQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - })) + describe('Query key and func', () => { + it('TData should always be defined when initialData is provided', () => { + const { data } = createQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = createQuery(() => ({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - })) + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = createQuery(() => ({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + })) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) }) }) }) From f3d3eea76b5f085650a62494ab72f351d70a0d6c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 7 Apr 2026 00:39:33 +0900 Subject: [PATCH 064/414] test(*): replace deprecated 'toMatchTypeOf' with 'toExtend' (#10413) --- .../src/__tests__/infinite-query-options.test-d.ts | 4 ++-- .../src/__tests__/infiniteQueryOptions.test-d.tsx | 4 ++-- packages/preact-query/src/__tests__/queryOptions.test-d.tsx | 2 +- .../react-query/src/__tests__/infiniteQueryOptions.test-d.tsx | 4 ++-- packages/react-query/src/__tests__/queryOptions.test-d.tsx | 2 +- .../solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts index 4a7ce532bc2..a20596788eb 100644 --- a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts @@ -166,7 +166,7 @@ describe('infiniteQueryOptions', () => { getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryOptions.initialData).toMatchTypeOf< + expectTypeOf(queryOptions.initialData).toExtend< | InitialDataFunction> | InfiniteData<{ example: boolean }, number> | undefined @@ -184,7 +184,7 @@ describe('infiniteQueryOptions', () => { getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryOptions.initialData).toMatchTypeOf< + expectTypeOf(queryOptions.initialData).toExtend< | InitialDataFunction> | InfiniteData<{ example: boolean }, number> | undefined diff --git a/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx index 9e0751f13cd..5c27ced8ee2 100644 --- a/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -191,7 +191,7 @@ describe('infiniteQueryOptions', () => { getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryOptions.initialData).toMatchTypeOf< + expectTypeOf(queryOptions.initialData).toExtend< | InitialDataFunction> | InfiniteData<{ example: boolean }, number> | undefined @@ -209,7 +209,7 @@ describe('infiniteQueryOptions', () => { getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryOptions.initialData).toMatchTypeOf< + expectTypeOf(queryOptions.initialData).toExtend< | InitialDataFunction> | InfiniteData<{ example: boolean }, number> | undefined diff --git a/packages/preact-query/src/__tests__/queryOptions.test-d.tsx b/packages/preact-query/src/__tests__/queryOptions.test-d.tsx index 199400b6b32..1e44792264f 100644 --- a/packages/preact-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/preact-query/src/__tests__/queryOptions.test-d.tsx @@ -232,7 +232,7 @@ describe('queryOptions', () => { queryFn: () => Promise.resolve('something string'), initialData: id ? 'initial string' : undefined, }) - expectTypeOf(options.initialData).toMatchTypeOf< + expectTypeOf(options.initialData).toExtend< InitialDataFunction | string | undefined >() } diff --git a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx index a1d97bf0927..01e1cca41b1 100644 --- a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -190,7 +190,7 @@ describe('infiniteQueryOptions', () => { getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryOptions.initialData).toMatchTypeOf< + expectTypeOf(queryOptions.initialData).toExtend< | InitialDataFunction> | InfiniteData<{ example: boolean }, number> | undefined @@ -208,7 +208,7 @@ describe('infiniteQueryOptions', () => { getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryOptions.initialData).toMatchTypeOf< + expectTypeOf(queryOptions.initialData).toExtend< | InitialDataFunction> | InfiniteData<{ example: boolean }, number> | undefined diff --git a/packages/react-query/src/__tests__/queryOptions.test-d.tsx b/packages/react-query/src/__tests__/queryOptions.test-d.tsx index aac63737eb3..b9c8602b5e8 100644 --- a/packages/react-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/queryOptions.test-d.tsx @@ -231,7 +231,7 @@ describe('queryOptions', () => { queryFn: () => Promise.resolve('something string'), initialData: id ? 'initial string' : undefined, }) - expectTypeOf(options.initialData).toMatchTypeOf< + expectTypeOf(options.initialData).toExtend< InitialDataFunction | string | undefined >() } diff --git a/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx index d0f4d60446d..6d9443cf252 100644 --- a/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -25,7 +25,7 @@ describe('infiniteQueryOptions', () => { InfiniteData<{ wow: boolean }, unknown> >() - expectTypeOf(options).toMatchTypeOf< + expectTypeOf(options).toExtend< ReturnType< DefinedInitialDataInfiniteOptions< { wow: boolean }, @@ -54,7 +54,7 @@ describe('infiniteQueryOptions', () => { () => InfiniteData<{ wow: boolean }, unknown> | undefined >() - expectTypeOf(options).toMatchTypeOf< + expectTypeOf(options).toExtend< ReturnType< UndefinedInitialDataInfiniteOptions< { wow: boolean }, From e203306f5ea07406c50c84eae11591eb479c2150 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 7 Apr 2026 10:57:24 +0900 Subject: [PATCH 065/414] test(svelte-query): replace hardcoded query keys with 'queryKey()' utility (#10415) --- .../createQueries.svelte.test.ts | 16 +-- .../createQueries/createQueries.test-d.ts | 27 +++-- .../tests/createQuery.svelte.test.ts | 106 +++++++++--------- .../svelte-query/tests/createQuery.test-d.ts | 25 +++-- .../tests/infiniteQueryOptions.test-d.ts | 13 ++- .../mutationOptions.svelte.test.ts | 29 +++-- .../mutationOptions/mutationOptions.test-d.ts | 44 ++++++-- .../svelte-query/tests/queryOptions.test-d.ts | 82 ++++++++------ .../useMutationState.svelte.test.ts | 24 ++-- 9 files changed, 220 insertions(+), 146 deletions(-) diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index 03df185c0bc..45a45c9664a 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@testing-library/svelte' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, createQueries } from '../../src/index.js' import { promiseWithResolvers, withEffectRoot } from '../utils.svelte.js' import IsRestoringExample from './IsRestoringExample.svelte' @@ -22,8 +22,8 @@ describe('createQueries', () => { it( 'should return the correct states', withEffectRoot(async () => { - const key1 = ['test-1'] - const key2 = ['test-2'] + const key1 = queryKey() + const key2 = queryKey() const results: Array> = [] const { promise: promise1, resolve: resolve1 } = promiseWithResolvers() const { promise: promise2, resolve: resolve2 } = promiseWithResolvers() @@ -69,7 +69,7 @@ describe('createQueries', () => { it( 'should track results', withEffectRoot(async () => { - const key1 = ['test-track-results'] + const key1 = queryKey() const results: Array> = [] let count = 0 @@ -111,8 +111,8 @@ describe('createQueries', () => { it( 'should combine queries', withEffectRoot(async () => { - const key1 = ['test-combine-1'] - const key2 = ['test-combine-2'] + const key1 = queryKey() + const key2 = queryKey() const { promise: promise1, resolve: resolve1 } = promiseWithResolvers() @@ -169,8 +169,8 @@ describe('createQueries', () => { it( 'should track property access through combine function', withEffectRoot(async () => { - const key1 = ['test-track-combine-1'] - const key2 = ['test-track-combine-2'] + const key1 = queryKey() + const key2 = queryKey() let count = 0 const results: Array = [] diff --git a/packages/svelte-query/tests/createQueries/createQueries.test-d.ts b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts index 44d099c81a2..53deefadea1 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.test-d.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts @@ -1,5 +1,6 @@ import { describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { createQueries, queryOptions } from '../../src/index.js' import type { CreateQueryOptions, @@ -12,17 +13,19 @@ import type { describe('createQueries', () => { it('should return correct data for dynamic queries with mixed result types', () => { + const key1 = queryKey() + const key2 = queryKey() const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: key1, queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: key2, queryFn: () => Promise.resolve(true), }), } @@ -42,9 +45,9 @@ describe('createQueries', () => { it('handles type parameter - tuple of tuples', () => { const queryClient = new QueryClient() - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() const result1 = createQueries< [[number], [string], [Array, boolean]] @@ -157,9 +160,9 @@ describe('createQueries', () => { it('handles type parameter - tuple of objects', () => { const queryClient = new QueryClient() - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() const result1 = createQueries< [ @@ -314,10 +317,10 @@ describe('createQueries', () => { it('handles array literal without type parameter to infer result type', () => { const queryClient = new QueryClient() - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] - const key3 = ['test-key-3'] - const key4 = ['test-key-4'] + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() + const key4 = queryKey() // Array.map preserves TQueryFnData const result1 = createQueries( diff --git a/packages/svelte-query/tests/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery.svelte.test.ts index d733970a158..b0cf6916086 100644 --- a/packages/svelte-query/tests/createQuery.svelte.test.ts +++ b/packages/svelte-query/tests/createQuery.svelte.test.ts @@ -8,7 +8,7 @@ import { it, vi, } from 'vitest' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, createQuery, keepPreviousData } from '../src/index.js' import { promiseWithResolvers, withEffectRoot } from './utils.svelte.js' import type { CreateQueryResult, QueryCache } from '../src/index.js' @@ -31,11 +31,12 @@ describe('createQuery', () => { it( 'should return the correct states for a successful query', withEffectRoot(async () => { + const key = queryKey() const { promise, resolve } = promiseWithResolvers() const query = createQuery( () => ({ - queryKey: ['test'], + queryKey: key, queryFn: () => promise, }), () => queryClient, @@ -120,11 +121,12 @@ describe('createQuery', () => { it( 'should return the correct states for an unsuccessful query', withEffectRoot(async () => { + const key = queryKey() let count = 0 const states: Array = [] const query = createQuery( () => ({ - queryKey: ['test'], + queryKey: key, queryFn: () => { return Promise.reject(new Error('rejected #' + ++count)) }, @@ -231,7 +233,7 @@ describe('createQuery', () => { ) it('should set isFetchedAfterMount to true after a query has been fetched', async () => { - const key = ['test'] + const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, @@ -271,7 +273,7 @@ describe('createQuery', () => { it( 'should not cancel an ongoing fetch when refetch is called with cancelRefetch=false if we have data already', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() let fetchCount = 0 const { promise, resolve } = promiseWithResolvers() @@ -302,7 +304,7 @@ describe('createQuery', () => { it( 'should cancel an ongoing fetch when refetch is called (cancelRefetch=true) if we have data already', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() let fetchCount = 0 const { promise, resolve } = promiseWithResolvers() @@ -334,7 +336,7 @@ describe('createQuery', () => { it( 'should not cancel an ongoing fetch when refetch is called (cancelRefetch=true) if we do not have data yet', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() let fetchCount = 0 const { promise, resolve } = promiseWithResolvers() @@ -365,7 +367,7 @@ describe('createQuery', () => { it( 'should be able to watch a query without providing a query function', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] queryClient.setQueryDefaults(key, { @@ -391,6 +393,7 @@ describe('createQuery', () => { ) it('should pick up a query when re-mounting with gcTime 0', async () => { + const key = queryKey() // this needs to be split into two different effect roots because // effects won't pick up dependencies created after the first `await` // -- the two roots effectively emulate two consecutive components being rendered @@ -399,7 +402,7 @@ describe('createQuery', () => { const query = createQuery( () => ({ - queryKey: ['test'], + queryKey: key, queryFn: () => promise, gcTime: 0, notifyOnChangeProps: 'all', @@ -429,7 +432,7 @@ describe('createQuery', () => { const query = createQuery( () => ({ - queryKey: ['test'], + queryKey: key, queryFn: () => promise, gcTime: 0, notifyOnChangeProps: 'all', @@ -458,7 +461,7 @@ describe('createQuery', () => { }) it('should not get into an infinite loop when removing a query with gcTime 0 and rerendering', async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] // First mount: render the query and let it fetch @@ -532,7 +535,7 @@ describe('createQuery', () => { it( 'should fetch when refetchOnMount is false and nothing has been fetched yet', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] const query = createQuery( @@ -560,7 +563,7 @@ describe('createQuery', () => { it( 'should not fetch when refetchOnMount is false and data has been fetched already', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] queryClient.setQueryData(key, 'prefetched') @@ -589,7 +592,7 @@ describe('createQuery', () => { it( 'should be able to select a part of the data with select', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] const query = createQuery<{ name: string }, Error, string>( @@ -617,7 +620,7 @@ describe('createQuery', () => { it( 'should throw an error when a selector throws', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const error = new Error('Select Error') const states: Array> = [] @@ -648,7 +651,7 @@ describe('createQuery', () => { it( 'should be able to remove a query', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] let count = 0 const query = createQuery( @@ -692,12 +695,13 @@ describe('createQuery', () => { it( 'keeps up-to-date with query key changes', withEffectRoot(async () => { + const key = queryKey() let search = $state('') const states: Array> = [] const query = createQuery( () => ({ - queryKey: ['products', search], + queryKey: [...key, search], queryFn: async () => Promise.resolve(search), placeholderData: keepPreviousData, }), @@ -741,7 +745,7 @@ describe('createQuery', () => { it( 'should create a new query when refetching a removed query', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] let count = 0 @@ -780,7 +784,7 @@ describe('createQuery', () => { it( 'should share equal data structures between query results', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const result1 = [ { id: '1', done: false }, @@ -838,7 +842,7 @@ describe('createQuery', () => { it( 'should use query function from hook when the existing query does not have a query function', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() queryClient.setQueryData(key, 'set') @@ -863,7 +867,7 @@ describe('createQuery', () => { it( 'should update query stale state and refetch when invalidated with invalidateQueries', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() let count = 0 const query = createQuery( @@ -898,7 +902,7 @@ describe('createQuery', () => { it( 'should not update disabled query when refetching with refetchQueries', withEffectRoot(async () => { - const key = ['test'] + const key = queryKey() const states: Array> = [] let count = 0 @@ -930,7 +934,7 @@ describe('createQuery', () => { it( 'should not refetch disabled query when invalidated with invalidateQueries', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] let count = 0 @@ -965,13 +969,13 @@ describe('createQuery', () => { it( 'should not fetch when switching to a disabled query', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] let count = $state(0) const query = createQuery( () => ({ - queryKey: [key, count], + queryKey: [...key, count], queryFn: () => Promise.resolve(count), enabled: count === 0, }), @@ -1010,13 +1014,13 @@ describe('createQuery', () => { it( 'should keep the previous data when placeholderData is set', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] let count = $state(0) const query = createQuery( () => ({ - queryKey: [key, count], + queryKey: [...key, count], queryFn: () => Promise.resolve(count), placeholderData: keepPreviousData, }), @@ -1072,13 +1076,13 @@ describe('createQuery', () => { it( 'should not show initial data from next query if placeholderData is set', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] let count = $state(0) const query = createQuery( () => ({ - queryKey: [key, count], + queryKey: [...key, count], queryFn: () => Promise.resolve(count), initialData: 99, placeholderData: keepPreviousData, @@ -1138,17 +1142,17 @@ describe('createQuery', () => { it( 'should keep the previous data on disabled query when placeholderData is set and switching query key multiple times', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] // Set initial query data - queryClient.setQueryData([key, 10], 10) + queryClient.setQueryData([...key, 10], 10) let count = $state(10) const query = createQuery( () => ({ - queryKey: [key, count], + queryKey: [...key, count], queryFn: () => Promise.resolve(count), enabled: false, placeholderData: keepPreviousData, @@ -1211,7 +1215,7 @@ describe('createQuery', () => { it( 'should use the correct query function when components use different configurations', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] const { promise, resolve } = promiseWithResolvers() @@ -1268,7 +1272,7 @@ describe('createQuery', () => { ) it('should be able to set different stale times for a query', async () => { - const key = ['test-key'] + const key = queryKey() const states1: Array> = [] const states2: Array> = [] @@ -1362,7 +1366,7 @@ describe('createQuery', () => { it( 'should re-render when a query becomes stale', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] const query = createQuery( @@ -1391,7 +1395,7 @@ describe('createQuery', () => { it( 'should not re-render when it should only re-render on data changes and the data did not change', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] const { promise, resolve } = promiseWithResolvers() @@ -1434,7 +1438,7 @@ describe('createQuery', () => { it( 'should track properties and only re-render when a tracked property changes', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array = [] const { promise, resolve } = promiseWithResolvers() @@ -1477,7 +1481,7 @@ describe('createQuery', () => { it( 'should always re-render if we are tracking props but not using any', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() let renderCount = 0 const states: Array> = [] @@ -1513,7 +1517,7 @@ describe('createQuery', () => { it( 'should update query options', withEffectRoot(() => { - const key = ['test-key'] + const key = queryKey() const queryFn = () => sleep(10).then(() => 'data1') @@ -1536,8 +1540,8 @@ describe('createQuery', () => { it( 'should start with status pending, fetchStatus idle if enabled is false', withEffectRoot(async () => { - const key1 = ['test-key-1'] - const key2 = ['test-key-2'] + const key1 = queryKey() + const key2 = queryKey() const states1: Array> = [] const states2: Array> = [] @@ -1584,7 +1588,7 @@ describe('createQuery', () => { it( 'should be in "pending" state by default', withEffectRoot(() => { - const key = ['test-key'] + const key = queryKey() const query = createQuery( () => ({ @@ -1601,7 +1605,7 @@ describe('createQuery', () => { it( 'should not refetch query on focus when `enabled` is set to `false`', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const queryFn = vi.fn().mockReturnValue('data') const query = createQuery( @@ -1633,7 +1637,7 @@ describe('createQuery', () => { it( 'should not refetch stale query on focus when `refetchOnWindowFocus` is set to `false`', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] let count = 0 @@ -1674,7 +1678,7 @@ describe('createQuery', () => { it( 'should not refetch stale query on focus when `refetchOnWindowFocus` is set to a function that returns `false`', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] let count = 0 @@ -1715,7 +1719,7 @@ describe('createQuery', () => { it( 'should not refetch fresh query on focus when `refetchOnWindowFocus` is set to `true`', withEffectRoot(async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] let count = 0 @@ -1754,7 +1758,7 @@ describe('createQuery', () => { ) it('should refetch fresh query when refetchOnMount is set to always', async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] // Prefetch the query @@ -1798,7 +1802,7 @@ describe('createQuery', () => { }) it('should refetch stale query when refetchOnMount is set to true', async () => { - const key = ['test-key'] + const key = queryKey() const states: Array> = [] // Prefetch the query @@ -1844,7 +1848,7 @@ describe('createQuery', () => { it( 'should set status to error if queryFn throws', withEffectRoot(async () => { - const key = ['test-key'] // Declare key variable + const key = queryKey() const consoleMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) @@ -1869,7 +1873,7 @@ describe('createQuery', () => { it( 'should set status to error instead of throwing when error should not be thrown', withEffectRoot(async () => { - const key = ['test-key'] // Declare key variable + const key = queryKey() const query = createQuery( () => ({ @@ -1895,7 +1899,7 @@ describe('createQuery', () => { let currentClient = $state(queryClient1) - const key = ['test'] + const key = queryKey() createQuery( () => ({ diff --git a/packages/svelte-query/tests/createQuery.test-d.ts b/packages/svelte-query/tests/createQuery.test-d.ts index 2f25052463d..55115db6665 100644 --- a/packages/svelte-query/tests/createQuery.test-d.ts +++ b/packages/svelte-query/tests/createQuery.test-d.ts @@ -1,12 +1,14 @@ import { describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { createQuery, queryOptions } from '../src/index.js' describe('createQuery', () => { describe('initialData', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { + const key = queryKey() const { data } = createQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), initialData: { wow: true }, })) @@ -15,8 +17,9 @@ describe('createQuery', () => { }) it('TData should be defined when passed through queryOptions', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), initialData: { wow: true }, }) @@ -26,8 +29,9 @@ describe('createQuery', () => { }) it('TData should have undefined in the union when initialData is NOT provided', () => { + const key = queryKey() const { data } = createQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), })) @@ -35,8 +39,9 @@ describe('createQuery', () => { }) it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const key = queryKey() const { data } = createQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), initialData: () => undefined as { wow: boolean } | undefined, })) @@ -47,8 +52,9 @@ describe('createQuery', () => { describe('Query key overload', () => { it('TData should always be defined when initialData is provided', () => { + const key = queryKey() const { data } = createQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), initialData: { wow: true }, })) @@ -57,8 +63,9 @@ describe('createQuery', () => { }) it('TData should have undefined in the union when initialData is NOT provided', () => { + const key = queryKey() const { data } = createQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), })) @@ -68,8 +75,9 @@ describe('createQuery', () => { describe('Query key and func', () => { it('TData should always be defined when initialData is provided', () => { + const key = queryKey() const { data } = createQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), initialData: { wow: true }, })) @@ -78,8 +86,9 @@ describe('createQuery', () => { }) it('TData should have undefined in the union when initialData is NOT provided', () => { + const key = queryKey() const { data } = createQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), })) diff --git a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts index 4dc9d69bf42..38bd9fc6706 100644 --- a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts +++ b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts @@ -1,12 +1,14 @@ import { describe, expectTypeOf, test } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { createInfiniteQuery, infiniteQueryOptions } from '../src/index.js' import type { InfiniteData } from '@tanstack/query-core' describe('infiniteQueryOptions', () => { test('Should not allow excess properties', () => { + const key = queryKey() infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('data'), getNextPageParam: () => 1, initialPageParam: 1, @@ -16,8 +18,9 @@ describe('infiniteQueryOptions', () => { }) test('Should infer types for callbacks', () => { + const key = queryKey() infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('data'), staleTime: 1000, getNextPageParam: () => 1, @@ -29,8 +32,9 @@ describe('infiniteQueryOptions', () => { }) test('Should work when passed to createInfiniteQuery', () => { + const key = queryKey() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -45,8 +49,9 @@ describe('infiniteQueryOptions', () => { }) test('Should work when passed to fetchInfiniteQuery', async () => { + const key = queryKey() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, diff --git a/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts b/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts index b0443d6726f..5a1367fcaac 100644 --- a/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts +++ b/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { mutationOptions } from '../../src/index.js' import BaseExample from './BaseExample.svelte' import MultiExample from './MultiExample.svelte' @@ -32,8 +32,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data'), }) @@ -69,8 +70,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with useIsMutating', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -95,8 +97,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with useIsMutating (filter mutationOpts1.mutationKey)', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -122,8 +125,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data'), }) @@ -162,8 +166,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -188,8 +193,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with queryClient.isMutating (filter mutationOpts1.mutationKey)', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -215,8 +221,9 @@ describe('mutationOptions', () => { }) it('should return mutation states when used with useMutationState (with mutationKey in mutationOptions)', async () => { + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data'), }) @@ -261,8 +268,9 @@ describe('mutationOptions', () => { }) it('should return mutation states when used with useMutationState', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -290,8 +298,9 @@ describe('mutationOptions', () => { }) it('should return mutation states when used with useMutationState (filter mutationOpts1.mutationKey)', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ diff --git a/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts b/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts index cbeddf921ba..94689b6bac7 100644 --- a/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts +++ b/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts @@ -1,5 +1,6 @@ import { assertType, describe, expectTypeOf, test } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { createMutation, mutationOptions, @@ -19,10 +20,12 @@ import type { describe('mutationOptions', () => { test('Should not allow excess properties', () => { + const key = queryKey() + // @ts-expect-error this is a good error, because onMutates does not exist! mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: key, onMutates: 1000, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -31,9 +34,11 @@ describe('mutationOptions', () => { }) test('Should infer types for callbacks', () => { + const key = queryKey() + mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: key, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -41,11 +46,13 @@ describe('mutationOptions', () => { }) test('Should infer types for onError callback', () => { + const key = queryKey() + mutationOptions({ mutationFn: () => { throw new Error('fail') }, - mutationKey: ['key'], + mutationKey: key, onError: (error) => { expectTypeOf(error).toEqualTypeOf() }, @@ -53,19 +60,23 @@ describe('mutationOptions', () => { }) test('Should infer types for variables', () => { + const key = queryKey() + mutationOptions({ mutationFn: (vars) => { expectTypeOf(vars).toEqualTypeOf<{ id: string }>() return Promise.resolve(5) }, - mutationKey: ['with-vars'], + mutationKey: key, }) }) test('Should infer result type correctly', () => { + const key = queryKey() + mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: key, onMutate: () => { return { name: 'onMutateResult' } }, @@ -76,12 +87,14 @@ describe('mutationOptions', () => { }) test('Should infer context type correctly', () => { + const key = queryKey() + mutationOptions({ mutationFn: (_variables, context) => { expectTypeOf(context).toEqualTypeOf() return Promise.resolve(5) }, - mutationKey: ['key'], + mutationKey: key, onMutate: (_variables, context) => { expectTypeOf(context).toEqualTypeOf() }, @@ -116,10 +129,12 @@ describe('mutationOptions', () => { }) test('Should infer all types when not explicitly provided', () => { + const key = queryKey() + expectTypeOf( mutationOptions({ mutationFn: (id: string) => Promise.resolve(id.length), - mutationKey: ['key'], + mutationKey: key, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -143,9 +158,11 @@ describe('mutationOptions', () => { }) test('Should work when used with createMutation', () => { + const key = queryKey() + const mutation = createMutation(() => mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve('data'), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -168,9 +185,11 @@ describe('mutationOptions', () => { }) test('Should work when used with useIsMutating', () => { + const key = queryKey() + const isMutating = useIsMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve(5), }), ) @@ -185,11 +204,12 @@ describe('mutationOptions', () => { }) test('Should work when used with queryClient.isMutating', () => { + const key = queryKey() const queryClient = new QueryClient() const isMutating = queryClient.isMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve(5), }), ) @@ -204,9 +224,11 @@ describe('mutationOptions', () => { }) test('Should work when used with useMutationState', () => { + const key = queryKey() + const mutationState = useMutationState({ filters: mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve(5), }), }) diff --git a/packages/svelte-query/tests/queryOptions.test-d.ts b/packages/svelte-query/tests/queryOptions.test-d.ts index d8036c3bbf5..968d05409ad 100644 --- a/packages/svelte-query/tests/queryOptions.test-d.ts +++ b/packages/svelte-query/tests/queryOptions.test-d.ts @@ -5,13 +5,15 @@ import { dataTagSymbol, skipToken, } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { createQueries, queryOptions } from '../src/index.js' import type { QueryObserverResult } from '@tanstack/query-core' describe('queryOptions', () => { test('Should not allow excess properties', () => { + const key = queryKey() queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), // @ts-expect-error this is a good error, because stallTime does not exist! stallTime: 1000, @@ -19,8 +21,9 @@ describe('queryOptions', () => { }) test('Should infer types for callbacks', () => { + const key = queryKey() queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), staleTime: 1000, select: (data) => { @@ -30,8 +33,9 @@ describe('queryOptions', () => { }) test('Should work when passed to fetchQuery', async () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), }) @@ -40,8 +44,9 @@ describe('queryOptions', () => { }) test('Should work when passed to createQueries', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), }) @@ -53,71 +58,78 @@ describe('queryOptions', () => { }) test('Should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) test('Should tag the queryKey even if no promise is returned', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => 5, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) test('Should tag the queryKey with unknown if there is no queryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) test('Should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), select: (data) => data.toString(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) test('Should return the proper type when passed to getQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf() }) test('Should return the proper type when passed to getQueryState', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const state = queryClient.getQueryState(queryKey) + const state = queryClient.getQueryState(tagged) expectTypeOf(state?.data).toEqualTypeOf() }) test('Should properly type updaterFn when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -125,25 +137,27 @@ describe('queryOptions', () => { }) test('Should properly type value when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '5') + queryClient.setQueryData(tagged, '5') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '5') + queryClient.setQueryData(tagged, () => '5') - const data = queryClient.setQueryData(queryKey, 5) + const data = queryClient.setQueryData(tagged, 5) expectTypeOf(data).toEqualTypeOf() }) test('Should infer even if there is a conditional skipToken', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }) @@ -153,8 +167,9 @@ describe('queryOptions', () => { }) test('Should infer to unknown if we disable a query with just a skipToken', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: skipToken, }) @@ -164,8 +179,9 @@ describe('queryOptions', () => { }) test('Should return the proper type when passed to QueriesObserver', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), }) diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts index 81a93d040b4..21609c1e7e5 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import BaseExample from './BaseExample.svelte' import SelectExample from './SelectExample.svelte' import type { Mutation } from '@tanstack/query-core' @@ -15,6 +15,8 @@ describe('useMutationState', () => { }) test('Run few mutation functions and check from useMutationState', async () => { + const successKey = queryKey() + const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) const errorMutationFn = vi .fn() @@ -25,11 +27,11 @@ describe('useMutationState', () => { const rendered = render(BaseExample, { props: { successMutationOpts: () => ({ - mutationKey: ['success'], + mutationKey: successKey, mutationFn: successMutationFn, }), errorMutationOpts: () => ({ - mutationKey: ['error'], + mutationKey: errorKey, mutationFn: errorMutationFn, }), }, @@ -47,6 +49,8 @@ describe('useMutationState', () => { }) test('Can select specific type of mutation ( i.e: error only )', async () => { + const successKey = queryKey() + const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) const errorMutationFn = vi .fn() @@ -57,11 +61,11 @@ describe('useMutationState', () => { const rendered = render(BaseExample, { props: { successMutationOpts: () => ({ - mutationKey: ['success'], + mutationKey: successKey, mutationFn: successMutationFn, }), errorMutationOpts: () => ({ - mutationKey: ['error'], + mutationKey: errorKey, mutationFn: errorMutationFn, }), mutationStateOpts: { @@ -82,7 +86,7 @@ describe('useMutationState', () => { }) test('should return selected value when using select option', async () => { - const mutationKey = ['select'] + const mutationKey = queryKey() const rendered = render(SelectExample, { props: { @@ -108,6 +112,8 @@ describe('useMutationState', () => { }) test('Can select specific mutation using mutation key', async () => { + const successKey = queryKey() + const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) const errorMutationFn = vi .fn() @@ -118,15 +124,15 @@ describe('useMutationState', () => { const rendered = render(BaseExample, { props: { successMutationOpts: () => ({ - mutationKey: ['success'], + mutationKey: successKey, mutationFn: successMutationFn, }), errorMutationOpts: () => ({ - mutationKey: ['error'], + mutationKey: errorKey, mutationFn: errorMutationFn, }), mutationStateOpts: { - filters: { mutationKey: ['success'] }, + filters: { mutationKey: successKey }, }, }, }) From d9384ac6301b3767f933ddfba7a59295a1c15f06 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 7 Apr 2026 11:25:11 +0900 Subject: [PATCH 066/414] test(solid-query): replace hardcoded query keys with 'queryKey()' utility (#10416) --- .../src/__tests__/createQueries.test-d.tsx | 5 +- .../__tests__/infiniteQueryOptions.test-d.tsx | 5 +- .../src/__tests__/mutationOptions.test-d.tsx | 23 +++--- .../src/__tests__/mutationOptions.test.tsx | 29 +++++--- .../src/__tests__/queryOptions.test-d.tsx | 71 ++++++++++--------- .../src/__tests__/useIsMutating.test.tsx | 30 +++++--- .../src/__tests__/useMutationState.test.tsx | 6 +- .../src/__tests__/useQuery.test-d.tsx | 19 ++--- .../src/__tests__/useQuery.test.tsx | 3 +- 9 files changed, 107 insertions(+), 84 deletions(-) diff --git a/packages/solid-query/src/__tests__/createQueries.test-d.tsx b/packages/solid-query/src/__tests__/createQueries.test-d.tsx index 6c378912f60..2ac4e56e0c1 100644 --- a/packages/solid-query/src/__tests__/createQueries.test-d.tsx +++ b/packages/solid-query/src/__tests__/createQueries.test-d.tsx @@ -1,4 +1,5 @@ import { describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { queryOptions, useQueries } from '..' import type { UseQueryResult } from '..' @@ -7,14 +8,14 @@ describe('useQueries', () => { const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => Promise.resolve(true), }), } diff --git a/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx index 6d9443cf252..5d212f7edf3 100644 --- a/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -1,5 +1,6 @@ import { describe, expectTypeOf, it } from 'vitest' import { dataTagSymbol } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { useInfiniteQuery } from '../useInfiniteQuery' import { infiniteQueryOptions } from '../infiniteQueryOptions' import type { InfiniteData } from '@tanstack/query-core' @@ -12,7 +13,7 @@ describe('infiniteQueryOptions', () => { it('should infer defined types', () => { const options = infiniteQueryOptions({ getNextPageParam: () => 10, - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: { pageParams: [undefined], @@ -45,7 +46,7 @@ describe('infiniteQueryOptions', () => { it('should work without defined types', () => { const options = infiniteQueryOptions({ getNextPageParam: () => undefined, - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialPageParam: 0, }) diff --git a/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx b/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx index f90d720f0f1..1649db1e019 100644 --- a/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx @@ -1,5 +1,6 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { useIsMutating, useMutation, useMutationState } from '..' import { mutationOptions } from '../mutationOptions' import type { @@ -15,7 +16,7 @@ describe('mutationOptions', () => { // @ts-expect-error this is a good error, because onMutates does not exist! mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onMutates: 1000, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -26,7 +27,7 @@ describe('mutationOptions', () => { it('should infer types for callbacks', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -38,7 +39,7 @@ describe('mutationOptions', () => { mutationFn: () => { throw new Error('fail') }, - mutationKey: ['key'], + mutationKey: queryKey(), onError: (error) => { expectTypeOf(error).toEqualTypeOf() }, @@ -51,14 +52,14 @@ describe('mutationOptions', () => { expectTypeOf(vars).toEqualTypeOf<{ id: string }>() return Promise.resolve(5) }, - mutationKey: ['with-vars'], + mutationKey: queryKey(), }) }) it('should infer result type correctly', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onMutate: () => { return { name: 'onMutateResult' } }, @@ -74,7 +75,7 @@ describe('mutationOptions', () => { expectTypeOf(context).toEqualTypeOf() return Promise.resolve(5) }, - mutationKey: ['key'], + mutationKey: queryKey(), onMutate: (_variables, context) => { expectTypeOf(context).toEqualTypeOf() }, @@ -112,7 +113,7 @@ describe('mutationOptions', () => { expectTypeOf( mutationOptions({ mutationFn: (id: string) => Promise.resolve(id.length), - mutationKey: ['key'], + mutationKey: queryKey(), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -138,7 +139,7 @@ describe('mutationOptions', () => { it('should infer types when used with useMutation', () => { const mutation = useMutation(() => mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve('data'), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -163,7 +164,7 @@ describe('mutationOptions', () => { it('should infer types when used with useIsMutating', () => { const isMutating = useIsMutating(() => mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), ) @@ -183,7 +184,7 @@ describe('mutationOptions', () => { const isMutating = queryClient.isMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), ) @@ -200,7 +201,7 @@ describe('mutationOptions', () => { it('should infer types when used with useMutationState', () => { const mutationState = useMutationState(() => ({ filters: mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), })) diff --git a/packages/solid-query/src/__tests__/mutationOptions.test.tsx b/packages/solid-query/src/__tests__/mutationOptions.test.tsx index 746b515f35a..ea0e568f6ac 100644 --- a/packages/solid-query/src/__tests__/mutationOptions.test.tsx +++ b/packages/solid-query/src/__tests__/mutationOptions.test.tsx @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@solidjs/testing-library' import { createEffect, createRenderEffect } from 'solid-js' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, @@ -41,8 +41,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data'), }) @@ -116,8 +117,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useIsMutating', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -159,8 +161,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useIsMutating (filter mutationOpts1.mutationKey)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -205,8 +208,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data'), }) @@ -288,8 +292,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -336,8 +341,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with queryClient.isMutating (filter mutationOpt1.mutationKey)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -392,8 +398,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useMutationState (with mutationKey in mutationOptions)', async () => { const mutationStateArray: Array> = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data'), }) @@ -471,8 +478,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useMutationState', async () => { const mutationStateArray: Array> = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -518,8 +526,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useMutationState (filter mutationOpt1.mutationKey)', async () => { const mutationStateArray: Array> = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ diff --git a/packages/solid-query/src/__tests__/queryOptions.test-d.tsx b/packages/solid-query/src/__tests__/queryOptions.test-d.tsx index 2ba3a3f6b27..299536290e6 100644 --- a/packages/solid-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/queryOptions.test-d.tsx @@ -5,6 +5,7 @@ import { dataTagSymbol, skipToken, } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { useQuery } from '../useQuery' import { queryOptions } from '../queryOptions' @@ -12,7 +13,7 @@ describe('queryOptions', () => { it('should not allow excess properties', () => { assertType( queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error this is a good error, because stallTime does not exist! stallTime: 1000, @@ -21,7 +22,7 @@ describe('queryOptions', () => { }) it('should infer types for callbacks', () => { queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), staleTime: 1000, select: (data) => { @@ -31,7 +32,7 @@ describe('queryOptions', () => { }) it('should work when passed to useQuery', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -40,7 +41,7 @@ describe('queryOptions', () => { }) it('should work when passed to fetchQuery', async () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -48,98 +49,98 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => 5, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with unknown if there is no queryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), select: (data) => data.toString(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with the default error type', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }) - expectTypeOf(queryKey[dataTagErrorSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagErrorSymbol]).toEqualTypeOf() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf() }) it('should return the proper type when passed to getQueryState', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const state = queryClient.getQueryState(queryKey) + const state = queryClient.getQueryState(tagged) expectTypeOf(state?.data).toEqualTypeOf() }) it('should properly type updaterFn when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) expectTypeOf(data).toEqualTypeOf() }) it('should properly type value when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '5') + queryClient.setQueryData(tagged, '5') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '5') + queryClient.setQueryData(tagged, () => '5') - const data = queryClient.setQueryData(queryKey, 5) + const data = queryClient.setQueryData(tagged, 5) expectTypeOf(data).toEqualTypeOf() }) it('should infer even if there is a conditional skipToken', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }) @@ -150,7 +151,7 @@ describe('queryOptions', () => { it('should infer to unknown if we disable a query with just a skipToken', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: skipToken, }) diff --git a/packages/solid-query/src/__tests__/useIsMutating.test.tsx b/packages/solid-query/src/__tests__/useIsMutating.test.tsx index 076081be0bf..985ce05470a 100644 --- a/packages/solid-query/src/__tests__/useIsMutating.test.tsx +++ b/packages/solid-query/src/__tests__/useIsMutating.test.tsx @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@solidjs/testing-library' import { Show, createEffect, createRenderEffect, createSignal } from 'solid-js' import * as QueryCore from '@tanstack/query-core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, @@ -23,6 +23,8 @@ describe('useIsMutating', () => { it('should return the number of fetching mutations', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationKey1 = queryKey() + const mutationKey2 = queryKey() function IsMutating() { const isMutating = useIsMutating() @@ -36,11 +38,11 @@ describe('useIsMutating', () => { function Mutations() { const { mutate: mutate1 } = useMutation(() => ({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(150).then(() => 'data'), })) const { mutate: mutate2 } = useMutation(() => ({ - mutationKey: ['mutation2'], + mutationKey: mutationKey2, mutationFn: () => sleep(50).then(() => 'data'), })) @@ -77,9 +79,11 @@ describe('useIsMutating', () => { it('should filter correctly by mutationKey', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationKey1 = queryKey() + const mutationKey2 = queryKey() function IsMutating() { - const isMutating = useIsMutating(() => ({ mutationKey: ['mutation1'] })) + const isMutating = useIsMutating(() => ({ mutationKey: mutationKey1 })) createRenderEffect(() => { isMutatingArray.push(isMutating()) @@ -90,11 +94,11 @@ describe('useIsMutating', () => { function Page() { const { mutate: mutate1 } = useMutation(() => ({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(100).then(() => 'data'), })) const { mutate: mutate2 } = useMutation(() => ({ - mutationKey: ['mutation2'], + mutationKey: mutationKey2, mutationFn: () => sleep(100).then(() => 'data'), })) @@ -121,11 +125,13 @@ describe('useIsMutating', () => { it('should filter correctly by predicate', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationKey1 = queryKey() + const mutationKey2 = queryKey() function IsMutating() { const isMutating = useIsMutating(() => ({ predicate: (mutation) => - mutation.options.mutationKey?.[0] === 'mutation1', + mutation.options.mutationKey?.[0] === mutationKey1[0], })) createRenderEffect(() => { @@ -137,11 +143,11 @@ describe('useIsMutating', () => { function Page() { const { mutate: mutate1 } = useMutation(() => ({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(100).then(() => 'data'), })) const { mutate: mutate2 } = useMutation(() => ({ - mutationKey: ['mutation2'], + mutationKey: mutationKey2, mutationFn: () => sleep(100).then(() => 'data'), })) @@ -167,12 +173,13 @@ describe('useIsMutating', () => { it('should use provided custom queryClient', async () => { const queryClient = new QueryClient() + const mutationKey1 = queryKey() function Page() { const isMutating = useIsMutating(undefined, () => queryClient) const { mutate } = useMutation( () => ({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(20).then(() => 'data'), }), () => queryClient, @@ -218,6 +225,7 @@ describe('useIsMutating', () => { }) const queryClient = new QueryClient() + const mutationKey1 = queryKey() function IsMutating() { useIsMutating() @@ -228,7 +236,7 @@ describe('useIsMutating', () => { const [mounted, setMounted] = createSignal(true) const { mutate: mutate1 } = useMutation(() => ({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(10).then(() => 'data'), })) diff --git a/packages/solid-query/src/__tests__/useMutationState.test.tsx b/packages/solid-query/src/__tests__/useMutationState.test.tsx index d71d77ba9ff..020d24140b4 100644 --- a/packages/solid-query/src/__tests__/useMutationState.test.tsx +++ b/packages/solid-query/src/__tests__/useMutationState.test.tsx @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@solidjs/testing-library' import { createEffect } from 'solid-js' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, @@ -20,7 +20,7 @@ describe('useMutationState', () => { it('should return all mutation states when called without options', async () => { const queryClient = new QueryClient() - const mutationKey = ['mutation'] + const mutationKey = queryKey() function States() { const mutationStates = useMutationState() @@ -69,7 +69,7 @@ describe('useMutationState', () => { it('should return variables after calling mutate', async () => { const queryClient = new QueryClient() const variables: Array> = [] - const mutationKey = ['mutation'] + const mutationKey = queryKey() function Variables() { const states = useMutationState(() => ({ diff --git a/packages/solid-query/src/__tests__/useQuery.test-d.tsx b/packages/solid-query/src/__tests__/useQuery.test-d.tsx index ec11493862f..64eaa5eb694 100644 --- a/packages/solid-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test-d.tsx @@ -1,4 +1,5 @@ import { describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { queryOptions, useQuery } from '../index' describe('useQuery', () => { @@ -6,7 +7,7 @@ describe('useQuery', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: { wow: true }, })) @@ -16,7 +17,7 @@ describe('useQuery', () => { it('TData should be defined when passed through queryOptions', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: { wow: true }, }) @@ -27,7 +28,7 @@ describe('useQuery', () => { it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: () => ({ wow: true }), })) @@ -37,7 +38,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is NOT provided', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), })) @@ -46,7 +47,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: () => undefined as { wow: boolean } | undefined, })) @@ -58,7 +59,7 @@ describe('useQuery', () => { describe('Query key overload', () => { it('TData should always be defined when initialData is provided', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: { wow: true }, })) @@ -68,7 +69,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is NOT provided', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), })) @@ -79,7 +80,7 @@ describe('useQuery', () => { describe('Query key and func', () => { it('TData should always be defined when initialData is provided', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: { wow: true }, })) @@ -89,7 +90,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is NOT provided', () => { const { data } = useQuery(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), })) diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index d001fbaf5dd..904f82e0c47 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -5047,6 +5047,7 @@ describe('useQuery', () => { }) it('should refetch when changed enabled to true in error state', async () => { + const key = queryKey() const queryFn = vi.fn<(...args: Array) => unknown>() queryFn.mockImplementation(() => sleep(10).then(() => Promise.reject(new Error('Suspense Error Bingo'))), @@ -5054,7 +5055,7 @@ describe('useQuery', () => { function Page(props: { enabled: boolean }) { const state = useQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn, enabled: props.enabled, retry: false, From dbe3f957c276aaa0c50f5aa6adaa7fb7611dffa9 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 7 Apr 2026 12:21:22 +0900 Subject: [PATCH 067/414] test(vue-query): replace hardcoded query keys with 'queryKey()' utility (#10417) --- .../__tests__/infiniteQueryOptions.test-d.ts | 45 ++++++----- .../src/__tests__/queryClient.test-d.ts | 10 ++- .../src/__tests__/queryOptions.test-d.ts | 78 +++++++++++------- .../src/__tests__/useInfiniteQuery.test-d.tsx | 26 +++--- .../src/__tests__/useInfiniteQuery.test.ts | 8 +- .../src/__tests__/useIsFetching.test.ts | 21 +++-- .../src/__tests__/useIsMutating.test.ts | 15 ++-- .../src/__tests__/useMutation.test.ts | 31 ++++--- .../src/__tests__/useMutationState.test.ts | 17 ++-- .../src/__tests__/useQueries.test-d.ts | 41 ++++++---- .../src/__tests__/useQueries.test.ts | 72 +++++++++++------ .../src/__tests__/useQuery.test-d.ts | 62 ++++++++++---- .../vue-query/src/__tests__/useQuery.test.ts | 81 ++++++++++++------- .../src/__tests__/vueQueryPlugin.test.ts | 16 ++-- 14 files changed, 333 insertions(+), 190 deletions(-) diff --git a/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts b/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts index cd4743d9d5d..2b15cb7bfed 100644 --- a/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts @@ -1,6 +1,7 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { dataTagSymbol } from '@tanstack/query-core' import { reactive } from 'vue-demi' +import { queryKey } from '@tanstack/query-test-utils' import { infiniteQueryOptions } from '../infiniteQueryOptions' import { QueryClient } from '../queryClient' import { useInfiniteQuery } from '../useInfiniteQuery' @@ -8,9 +9,10 @@ import type { InfiniteData } from '@tanstack/query-core' describe('infiniteQueryOptions', () => { it('should not allow excess properties', () => { + const key = queryKey() assertType( infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('data'), getNextPageParam: () => 1, initialPageParam: 1, @@ -20,8 +22,9 @@ describe('infiniteQueryOptions', () => { ) }) it('should infer types for callbacks', () => { + const key = queryKey() infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('data'), staleTime: 1000, getNextPageParam: () => 1, @@ -32,8 +35,9 @@ describe('infiniteQueryOptions', () => { }) }) it('should work when passed to useInfiniteQuery', () => { + const key = queryKey() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -46,61 +50,66 @@ describe('infiniteQueryOptions', () => { >() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => 'string', getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), select: (data) => data.pages, getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf< InfiniteData | undefined >() }) it('should properly type when passed to setQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf< InfiniteData | undefined >() diff --git a/packages/vue-query/src/__tests__/queryClient.test-d.ts b/packages/vue-query/src/__tests__/queryClient.test-d.ts index ed4855a1347..9af6d20307e 100644 --- a/packages/vue-query/src/__tests__/queryClient.test-d.ts +++ b/packages/vue-query/src/__tests__/queryClient.test-d.ts @@ -1,4 +1,5 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import type { DataTag, InfiniteData } from '@tanstack/query-core' @@ -113,8 +114,9 @@ describe('setQueryData', () => { describe('fetchInfiniteQuery', () => { it('should allow passing pages', async () => { + const key = queryKey() const data = await new QueryClient().fetchInfiniteQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -125,9 +127,10 @@ describe('fetchInfiniteQuery', () => { }) it('should not allow passing getNextPageParam without pages', () => { + const key = queryKey() assertType>([ { - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), initialPageParam: 1, getNextPageParam: () => 1, @@ -136,10 +139,11 @@ describe('fetchInfiniteQuery', () => { }) it('should not allow passing pages without getNextPageParam', () => { + const key = queryKey() assertType>([ // @ts-expect-error Property 'getNextPageParam' is missing { - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), initialPageParam: 1, pages: 5, diff --git a/packages/vue-query/src/__tests__/queryOptions.test-d.ts b/packages/vue-query/src/__tests__/queryOptions.test-d.ts index 65d49d945ff..3c98c30296b 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test-d.ts @@ -1,15 +1,17 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { reactive, ref } from 'vue-demi' import { dataTagSymbol } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { queryOptions } from '../queryOptions' import { useQuery } from '../useQuery' describe('queryOptions', () => { it('should not allow excess properties', () => { + const key = queryKey() assertType( queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), // @ts-expect-error this is a good error, because stallTime does not exist! stallTime: 1000, @@ -17,8 +19,9 @@ describe('queryOptions', () => { ) }) it('should infer types for callbacks', () => { + const key = queryKey() queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), staleTime: 1000, select: (data) => { @@ -27,8 +30,9 @@ describe('queryOptions', () => { }) }) it('should work when passed to useQuery', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), }) @@ -36,75 +40,82 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => 5, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with unknown if there is no queryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), select: (data) => data.toString(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf() }) it('should properly type updaterFn when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) expectTypeOf(data).toEqualTypeOf() }) it('should properly type value when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '5') + queryClient.setQueryData(tagged, '5') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '5') + queryClient.setQueryData(tagged, () => '5') - const data = queryClient.setQueryData(queryKey, 5) + const data = queryClient.setQueryData(tagged, 5) expectTypeOf(data).toEqualTypeOf() }) @@ -126,10 +137,11 @@ describe('queryOptions', () => { }) it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { + const key = queryKey() const { data } = reactive( useQuery( queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -146,10 +158,11 @@ describe('queryOptions', () => { }) it('TData should have undefined in the union when initialData is NOT provided', () => { + const key = queryKey() const { data } = reactive( useQuery( queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -163,10 +176,11 @@ describe('queryOptions', () => { }) it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const key = queryKey() const { data } = reactive( useQuery( queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -181,10 +195,11 @@ describe('queryOptions', () => { }) it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { + const key = queryKey() const { data, isSuccess } = reactive( useQuery( queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -201,10 +216,11 @@ describe('queryOptions', () => { }) it('data should not have undefined when initialData is provided', () => { + const key = queryKey() const { data } = reactive( useQuery( queryOptions({ - queryKey: ['query-key'], + queryKey: key, initialData: 42, }), ), diff --git a/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx b/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx index 9163cd2482e..fd083967d0b 100644 --- a/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx +++ b/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx @@ -1,15 +1,16 @@ import { describe, expectTypeOf, it } from 'vitest' import { computed, reactive } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useInfiniteQuery } from '../useInfiniteQuery' import { infiniteQueryOptions } from '../infiniteQueryOptions' import type { InfiniteData } from '@tanstack/query-core' describe('Discriminated union return type', () => { it('data should be possibly undefined by default', () => { + const key = queryKey() const query = reactive( useInfiniteQuery({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, @@ -23,9 +24,10 @@ describe('Discriminated union return type', () => { }) it('data should be defined when query is success', () => { + const key = queryKey() const query = reactive( useInfiniteQuery({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, @@ -39,9 +41,10 @@ describe('Discriminated union return type', () => { }) it('error should be null when query is success', () => { + const key = queryKey() const query = reactive( useInfiniteQuery({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, @@ -54,9 +57,10 @@ describe('Discriminated union return type', () => { }) it('data should be undefined when query is pending', () => { + const key = queryKey() const query = reactive( useInfiniteQuery({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, @@ -69,9 +73,10 @@ describe('Discriminated union return type', () => { }) it('error should be defined when query is error', () => { + const key = queryKey() const query = reactive( useInfiniteQuery({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, @@ -84,8 +89,9 @@ describe('Discriminated union return type', () => { }) it('should accept computed options', () => { + const key = queryKey() const options = computed(() => ({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, @@ -98,9 +104,10 @@ describe('Discriminated union return type', () => { }) it('should accept computed options using infiniteQueryOptions', () => { + const key = queryKey() const options = computed(() => infiniteQueryOptions({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, @@ -114,9 +121,10 @@ describe('Discriminated union return type', () => { }) it('should accept plain options using infiniteQueryOptions', () => { + const key = queryKey() const options = () => infiniteQueryOptions({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), getNextPageParam: () => undefined, initialPageParam: 0, diff --git a/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts b/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts index b9eee7547fd..73dd45b7ebc 100644 --- a/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts +++ b/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useInfiniteQuery } from '../useInfiniteQuery' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -15,8 +15,9 @@ describe('useInfiniteQuery', () => { }) test('should properly execute infinite query', async () => { + const key = queryKey() const { data, fetchNextPage, status } = useInfiniteQuery({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: ({ pageParam }) => sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, @@ -45,8 +46,9 @@ describe('useInfiniteQuery', () => { expect(status.value).toStrictEqual('success') }) test('should properly execute infinite query using infiniteQueryOptions', async () => { + const key = queryKey() const options = infiniteQueryOptions({ - queryKey: ['infiniteQueryOptions'], + queryKey: key, queryFn: ({ pageParam }) => sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, diff --git a/packages/vue-query/src/__tests__/useIsFetching.test.ts b/packages/vue-query/src/__tests__/useIsFetching.test.ts index aa4a9339310..1e1a5a0ae2f 100644 --- a/packages/vue-query/src/__tests__/useIsFetching.test.ts +++ b/packages/vue-query/src/__tests__/useIsFetching.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { onScopeDispose, reactive, ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useQuery } from '../useQuery' import { useIsFetching } from '../useIsFetching' import type { MockedFunction } from 'vitest' @@ -17,12 +17,14 @@ describe('useIsFetching', () => { }) test('should properly return isFetching state', async () => { + const key1 = queryKey() + const key2 = queryKey() const { isFetching: isFetchingQuery } = useQuery({ - queryKey: ['isFetching1'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'Some data'), }) useQuery({ - queryKey: ['isFetching2'], + queryKey: key2, queryFn: () => sleep(0).then(() => 'Some data'), }) const isFetching = useIsFetching() @@ -37,13 +39,14 @@ describe('useIsFetching', () => { }) test('should stop listening to changes on onScopeDispose', async () => { + const key = queryKey() const onScopeDisposeMock = onScopeDispose as MockedFunction< typeof onScopeDispose > onScopeDisposeMock.mockImplementation((fn) => fn()) const { status } = useQuery({ - queryKey: ['onScopeDispose'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }) const isFetching = useIsFetching() @@ -65,9 +68,10 @@ describe('useIsFetching', () => { }) test('should properly update filters', async () => { - const filter = reactive({ stale: false, queryKey: ['isFetchingFilter'] }) + const key = queryKey() + const filter = reactive({ stale: false, queryKey: key }) useQuery({ - queryKey: ['isFetchingFilter'], + queryKey: key, queryFn: () => sleep(10).then(() => 'Some data'), }) const isFetching = useIsFetching(filter) @@ -81,14 +85,15 @@ describe('useIsFetching', () => { }) test('should work with options getter and be reactive', async () => { + const key = queryKey() const staleRef = ref(false) useQuery({ - queryKey: ['isFetchingGetter'], + queryKey: key, queryFn: () => sleep(10).then(() => 'Some data'), }) const isFetching = useIsFetching(() => ({ stale: staleRef.value, - queryKey: ['isFetchingGetter'], + queryKey: key, })) expect(isFetching.value).toStrictEqual(0) diff --git a/packages/vue-query/src/__tests__/useIsMutating.test.ts b/packages/vue-query/src/__tests__/useIsMutating.test.ts index 237ccb765d1..a4b92b10d4e 100644 --- a/packages/vue-query/src/__tests__/useIsMutating.test.ts +++ b/packages/vue-query/src/__tests__/useIsMutating.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { onScopeDispose, reactive, ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' import { useIsMutating } from '../useMutationState' import type { MockedFunction } from 'vitest' @@ -70,9 +70,11 @@ describe('useIsMutating', () => { }) test('should properly update filters', async () => { - const filter = reactive({ mutationKey: ['foo'] }) + const key = queryKey() + const filterKey = queryKey() + const filter = reactive({ mutationKey: filterKey }) const { mutate } = useMutation({ - mutationKey: ['isMutating'], + mutationKey: key, mutationFn: (params: string) => sleep(10).then(() => params), }) mutate('foo') @@ -81,7 +83,7 @@ describe('useIsMutating', () => { expect(isMutating.value).toStrictEqual(0) - filter.mutationKey = ['isMutating'] + filter.mutationKey = key await vi.advanceTimersByTimeAsync(0) @@ -89,9 +91,10 @@ describe('useIsMutating', () => { }) test('should work with options getter and be reactive', async () => { + const key = queryKey() const keyRef = ref('isMutatingGetter2') const { mutate } = useMutation({ - mutationKey: ['isMutatingGetter'], + mutationKey: key, mutationFn: (params: string) => sleep(10).then(() => params), }) mutate('foo') @@ -102,7 +105,7 @@ describe('useIsMutating', () => { expect(isMutating.value).toStrictEqual(0) - keyRef.value = 'isMutatingGetter' + keyRef.value = key[0]! await vi.advanceTimersByTimeAsync(0) diff --git a/packages/vue-query/src/__tests__/useMutation.test.ts b/packages/vue-query/src/__tests__/useMutation.test.ts index d24bfed6755..993971853e0 100644 --- a/packages/vue-query/src/__tests__/useMutation.test.ts +++ b/packages/vue-query/src/__tests__/useMutation.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { reactive, ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' import { useQueryClient } from '../useQueryClient' @@ -83,11 +83,12 @@ describe('useMutation', () => { }) test('should work with options getter and be reactive', async () => { + const key = queryKey() const result = 'Mock data' const keyRef = ref('key01') const fnMock = vi.fn((params: string) => sleep(10).then(() => params)) const mutation = useMutation(() => ({ - mutationKey: [keyRef.value], + mutationKey: [...key, keyRef.value], mutationFn: fnMock, })) @@ -99,7 +100,7 @@ describe('useMutation', () => { expect(fnMock).toHaveBeenNthCalledWith( 1, result, - expect.objectContaining({ mutationKey: ['key01'] }), + expect.objectContaining({ mutationKey: [...key, 'key01'] }), ) keyRef.value = 'key02' @@ -111,28 +112,30 @@ describe('useMutation', () => { expect(fnMock).toHaveBeenNthCalledWith( 2, result, - expect.objectContaining({ mutationKey: ['key02'] }), + expect.objectContaining({ mutationKey: [...key, 'key02'] }), ) }) test('should update reactive options', async () => { + const key1 = queryKey() + const key2 = queryKey() const queryClient = useQueryClient() const mutationCache = queryClient.getMutationCache() const options = reactive({ - mutationKey: ['foo'], + mutationKey: key1, mutationFn: (params: string) => sleep(10).then(() => params), }) const mutation = useMutation(options) - options.mutationKey = ['bar'] + options.mutationKey = key2 await vi.advanceTimersByTimeAsync(10) mutation.mutate('xyz') await vi.advanceTimersByTimeAsync(10) - const mutations = mutationCache.find({ mutationKey: ['bar'] }) + const mutations = mutationCache.find({ mutationKey: key2 }) - expect(mutations?.options.mutationKey).toEqual(['bar']) + expect(mutations?.options.mutationKey).toEqual(key2) }) test('should update reactive options deeply', async () => { @@ -177,13 +180,15 @@ describe('useMutation', () => { }) test('should allow for non-options object (mutationFn or mutationKey) passed as arg1 & arg2 to trigger reactive updates', async () => { - const mutationKey = ref>(['foo2']) + const key1 = queryKey() + const key2 = queryKey() + const mutationKeyRef = ref>(key1) const mutationFn = ref((params: string) => sleep(0).then(() => params)) const queryClient = useQueryClient() const mutationCache = queryClient.getMutationCache() - const mutation = useMutation({ mutationKey, mutationFn }) + const mutation = useMutation({ mutationKey: mutationKeyRef, mutationFn }) - mutationKey.value = ['bar2'] + mutationKeyRef.value = key2 let proof = false mutationFn.value = (params: string) => { proof = true @@ -194,8 +199,8 @@ describe('useMutation', () => { mutation.mutate('xyz') await vi.advanceTimersByTimeAsync(10) - const mutations = mutationCache.find({ mutationKey: ['bar2'] }) - expect(mutations?.options.mutationKey).toEqual(['bar2']) + const mutations = mutationCache.find({ mutationKey: key2 }) + expect(mutations?.options.mutationKey).toEqual(key2) expect(proof).toEqual(true) }) diff --git a/packages/vue-query/src/__tests__/useMutationState.test.ts b/packages/vue-query/src/__tests__/useMutationState.test.ts index df15a1d9f81..816a1b164c9 100644 --- a/packages/vue-query/src/__tests__/useMutationState.test.ts +++ b/packages/vue-query/src/__tests__/useMutationState.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' import { useMutationState } from '../useMutationState' import { useQueryClient } from '../useQueryClient' @@ -17,18 +17,18 @@ describe('useMutationState', () => { }) it('should return variables after calling mutate 1', () => { - const mutationKey = ['mutation'] + const key = queryKey() const variables = 'foo123' const { mutate } = useMutation({ - mutationKey: mutationKey, + mutationKey: key, mutationFn: (params: string) => sleep(0).then(() => params), }) mutate(variables) const mutationState = useMutationState({ - filters: { mutationKey, status: 'pending' }, + filters: { mutationKey: key, status: 'pending' }, select: (mutation) => mutation.state.variables, }) @@ -38,11 +38,11 @@ describe('useMutationState', () => { it('should return variables after calling mutate 2', () => { const queryClient = useQueryClient() queryClient.clear() - const mutationKey = ['mutation'] + const key = queryKey() const variables = 'bar234' const { mutate } = useMutation({ - mutationKey: mutationKey, + mutationKey: key, mutationFn: (params: string) => sleep(0).then(() => params), }) @@ -54,11 +54,12 @@ describe('useMutationState', () => { }) it('should work with options getter and be reactive', async () => { + const key = queryKey() const keyRef = ref('useMutationStateGetter2') const variables = 'foo123' const { mutate } = useMutation({ - mutationKey: ['useMutationStateGetter'], + mutationKey: key, mutationFn: (params: string) => sleep(10).then(() => params), }) @@ -71,7 +72,7 @@ describe('useMutationState', () => { expect(mutationState.value).toEqual([]) - keyRef.value = 'useMutationStateGetter' + keyRef.value = key[0]! await vi.advanceTimersByTimeAsync(0) diff --git a/packages/vue-query/src/__tests__/useQueries.test-d.ts b/packages/vue-query/src/__tests__/useQueries.test-d.ts index c67de7b1a93..7e6783d422f 100644 --- a/packages/vue-query/src/__tests__/useQueries.test-d.ts +++ b/packages/vue-query/src/__tests__/useQueries.test-d.ts @@ -1,5 +1,6 @@ import { describe, expectTypeOf, it } from 'vitest' import { reactive } from 'vue' +import { queryKey } from '@tanstack/query-test-utils' import { skipToken, useQueries } from '..' import { queryOptions } from '../queryOptions' import type { OmitKeyof, QueryObserverResult } from '..' @@ -7,8 +8,11 @@ import type { UseQueryOptions } from '../useQuery' describe('UseQueries config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() const query1 = { - queryKey: ['key1'], + queryKey: key1, queryFn: () => { return { wow: true, @@ -20,13 +24,13 @@ describe('UseQueries config object overload', () => { } const query2 = queryOptions({ - queryKey: ['key2'], + queryKey: key2, queryFn: () => 'Query Data', initialData: 'initial data', }) const query3 = { - queryKey: ['key2'], + queryKey: key3, queryFn: () => 'Query Data', } @@ -40,8 +44,9 @@ describe('UseQueries config object overload', () => { }) it('TData should be defined when passed through queryOptions', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -58,14 +63,16 @@ describe('UseQueries config object overload', () => { }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQueries', () => { + const key1 = queryKey() + const key2 = queryKey() const query1 = queryOptions({ - queryKey: ['key'], + queryKey: key1, queryFn: () => Promise.resolve(1), select: (data) => data > 1, }) const query2 = { - queryKey: ['key'], + queryKey: key2, queryFn: () => Promise.resolve(1), select: (data: any) => data > 1, } @@ -81,10 +88,11 @@ describe('UseQueries config object overload', () => { }) it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const key = queryKey() const { value: queriesState } = useQueries({ queries: [ { - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -101,10 +109,11 @@ describe('UseQueries config object overload', () => { }) it('TData should have correct type when conditional skipToken is passed', () => { + const key = queryKey() const { value: queriesState } = useQueries({ queries: [ queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), ], @@ -131,7 +140,7 @@ describe('UseQueries config object overload', () => { queries: [ { ...options, - queryKey: ['todos-key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), }, ], @@ -146,7 +155,7 @@ describe('UseQueries config object overload', () => { // Fix #7270 it('should have proper type inference with different options provided', () => { const numbers = [1, 2, 3] - const queryKey = (n: number) => [n] + const getQueryKey = (n: number) => [n] const queryFn = (n: number) => () => Promise.resolve(n) const select = (data: number) => data.toString() @@ -157,13 +166,13 @@ describe('UseQueries config object overload', () => { })) const queriesWithoutSelect = numbers.map((n) => ({ - queryKey: queryKey(n), + queryKey: getQueryKey(n), queryFn: queryFn(n), })) const queriesWithQueryOptions = numbers.map((n) => queryOptions({ - queryKey: queryKey(n), + queryKey: getQueryKey(n), queryFn: queryFn(n), select, }), @@ -171,7 +180,7 @@ describe('UseQueries config object overload', () => { const queriesWithQueryOptionsWithoutSelect = numbers.map((n) => queryOptions({ - queryKey: queryKey(n), + queryKey: getQueryKey(n), queryFn: queryFn(n), }), ) @@ -221,17 +230,19 @@ describe('UseQueries config object overload', () => { }) it('should return correct data for dynamic queries with mixed result types', () => { + const key1 = queryKey() + const key2 = queryKey() const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: key1, queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: key2, queryFn: () => Promise.resolve(true), }), } diff --git a/packages/vue-query/src/__tests__/useQueries.test.ts b/packages/vue-query/src/__tests__/useQueries.test.ts index 4690df29c47..5c8189f8fb2 100644 --- a/packages/vue-query/src/__tests__/useQueries.test.ts +++ b/packages/vue-query/src/__tests__/useQueries.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { onScopeDispose, ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useQueries } from '../useQueries' import { useQueryClient } from '../useQueryClient' import { QueryClient } from '../queryClient' @@ -19,13 +19,15 @@ describe('useQueries', () => { }) test('should return result for each query', () => { + const key1 = queryKey() + const key2 = queryKey() const queries = [ { - queryKey: ['key1'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'Some data'), }, { - queryKey: ['key2'], + queryKey: key2, queryFn: () => sleep(0).then(() => 'Some data'), }, ] @@ -48,13 +50,15 @@ describe('useQueries', () => { }) test('should resolve to success and update reactive state', async () => { + const key1 = queryKey() + const key2 = queryKey() const queries = [ { - queryKey: ['key11'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'Some data'), }, { - queryKey: ['key12'], + queryKey: key2, queryFn: () => sleep(0).then(() => 'Some data'), }, ] @@ -79,14 +83,16 @@ describe('useQueries', () => { }) test('should reject one of the queries and update reactive state', async () => { + const key1 = queryKey() + const key2 = queryKey() const queries = [ { - queryKey: ['key21'], + queryKey: key1, queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), }, { - queryKey: ['key22'], + queryKey: key2, queryFn: () => sleep(0).then(() => 'Some data'), }, ] @@ -111,17 +117,21 @@ describe('useQueries', () => { }) test('should return state for new queries', async () => { + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() + const key4 = queryKey() const queries = ref([ { - queryKey: ['key31'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'value31'), }, { - queryKey: ['key32'], + queryKey: key2, queryFn: () => sleep(0).then(() => 'value32'), }, { - queryKey: ['key33'], + queryKey: key3, queryFn: () => sleep(0).then(() => 'value33'), }, ]) @@ -133,11 +143,11 @@ describe('useQueries', () => { 0, queries.value.length, { - queryKey: ['key31'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'value31'), }, { - queryKey: ['key34'], + queryKey: key4, queryFn: () => sleep(0).then(() => 'value34'), }, ) @@ -165,6 +175,8 @@ describe('useQueries', () => { }) test('should stop listening to changes on onScopeDispose', async () => { + const key1 = queryKey() + const key2 = queryKey() const onScopeDisposeMock = onScopeDispose as MockedFunction< typeof onScopeDispose > @@ -172,11 +184,11 @@ describe('useQueries', () => { const queries = [ { - queryKey: ['key41'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'Some data'), }, { - queryKey: ['key42'], + queryKey: key2, queryFn: () => sleep(0).then(() => 'Some data'), }, ] @@ -200,14 +212,16 @@ describe('useQueries', () => { }) test('should use queryClient provided via options', async () => { + const key1 = queryKey() + const key2 = queryKey() const queryClient = new QueryClient() const queries = [ { - queryKey: ['key41'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'Some data'), }, { - queryKey: ['key42'], + queryKey: key2, queryFn: () => sleep(0).then(() => 'Some data'), }, ] @@ -219,17 +233,19 @@ describe('useQueries', () => { }) test('should combine queries', async () => { + const key1 = queryKey() + const key2 = queryKey() const firstResult = 'first result' const secondResult = 'second result' const queryClient = new QueryClient() const queries = [ { - queryKey: ['key41'], + queryKey: key1, queryFn: () => sleep(0).then(() => firstResult), }, { - queryKey: ['key42'], + queryKey: key2, queryFn: () => sleep(0).then(() => secondResult), }, ] @@ -255,13 +271,14 @@ describe('useQueries', () => { }) test('should be `enabled` to accept getter function', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const checked = ref(false) useQueries({ queries: [ { - queryKey: ['enabled'], + queryKey: key, queryFn: fetchFn, enabled: () => checked.value, }, @@ -278,6 +295,7 @@ describe('useQueries', () => { }) test('should allow getters for query keys', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') const key2 = ref('key2') @@ -285,7 +303,7 @@ describe('useQueries', () => { useQueries({ queries: [ { - queryKey: ['key', () => key1.value, () => key2.value], + queryKey: [...key, () => key1.value, () => key2.value], queryFn: fetchFn, }, ], @@ -307,6 +325,7 @@ describe('useQueries', () => { }) test('should allow arbitrarily nested getters for query keys', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') const key2 = ref('key2') @@ -318,7 +337,7 @@ describe('useQueries', () => { queries: [ { queryKey: [ - 'key', + ...key, key1, () => key2.value, { key: () => key3.value }, @@ -370,17 +389,19 @@ describe('useQueries', () => { }) test('should refetch only the specific query without affecting others', async () => { + const key1 = queryKey() + const key2 = queryKey() let userCount = 0 let postCount = 0 const queriesState = useQueries({ queries: [ { - queryKey: ['users'], + queryKey: key1, queryFn: () => sleep(10).then(() => `users-${++userCount}`), }, { - queryKey: ['posts'], + queryKey: key2, queryFn: () => sleep(20).then(() => `posts-${++postCount}`), }, ], @@ -406,7 +427,7 @@ describe('useQueries', () => { useQueries({ queries: [ { - queryKey: ['outsideScope'], + queryKey: queryKey(), queryFn: () => sleep(0).then(() => 'data'), }, ], @@ -422,6 +443,7 @@ describe('useQueries', () => { }) test('should work with options getter and be reactive', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') const key2 = ref('key2') @@ -433,7 +455,7 @@ describe('useQueries', () => { queries: () => [ { queryKey: [ - 'key', + ...key, key1, key2.value, { key: key3.value }, diff --git a/packages/vue-query/src/__tests__/useQuery.test-d.ts b/packages/vue-query/src/__tests__/useQuery.test-d.ts index 9111f049b2b..12dbb4a41cc 100644 --- a/packages/vue-query/src/__tests__/useQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/useQuery.test-d.ts @@ -1,15 +1,17 @@ import { describe, expectTypeOf, it } from 'vitest' import { computed, reactive, ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { queryOptions, useQuery } from '..' import type { OmitKeyof, UseQueryOptions } from '..' describe('useQuery', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { + const key = queryKey() + const { data } = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -25,8 +27,10 @@ describe('useQuery', () => { }) it('TData should be defined when passed through queryOptions', () => { + const key = queryKey() + const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -42,8 +46,10 @@ describe('useQuery', () => { }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + const key = queryKey() + const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(1), }) @@ -58,9 +64,11 @@ describe('useQuery', () => { }) it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { + const key = queryKey() + const { data } = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -76,9 +84,11 @@ describe('useQuery', () => { }) it('TData should have undefined in the union when initialData is NOT provided', () => { + const key = queryKey() + const { data } = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -91,9 +101,11 @@ describe('useQuery', () => { }) it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const key = queryKey() + const { data } = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -107,9 +119,11 @@ describe('useQuery', () => { }) it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { + const key = queryKey() + const { data, isSuccess } = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -125,9 +139,11 @@ describe('useQuery', () => { }) it('data should not have undefined when initialData is provided', () => { + const key = queryKey() + const { data } = reactive( useQuery({ - queryKey: ['query-key'], + queryKey: key, initialData: 42, }), ) @@ -138,6 +154,8 @@ describe('useQuery', () => { describe('custom composable', () => { it('should allow custom composable using UseQueryOptions', () => { + const key = queryKey() + const useCustomQuery = ( options?: OmitKeyof< UseQueryOptions, @@ -147,7 +165,7 @@ describe('useQuery', () => { ) => { return useQuery({ ...options, - queryKey: ['todos-key'], + queryKey: key, queryFn: () => Promise.resolve('data'), }) } @@ -160,9 +178,11 @@ describe('useQuery', () => { describe('structuralSharing', () => { it('should be able to use structuralSharing with unknown types', () => { + const key = queryKey() + // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => 5, structuralSharing: (oldData, newData) => { expectTypeOf(oldData).toBeUnknown() @@ -175,9 +195,11 @@ describe('useQuery', () => { describe('Discriminated union return type', () => { it('data should be possibly undefined by default', () => { + const key = queryKey() + const query = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }), ) @@ -186,9 +208,11 @@ describe('useQuery', () => { }) it('data should be defined when query is success', () => { + const key = queryKey() + const query = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }), ) @@ -199,9 +223,11 @@ describe('useQuery', () => { }) it('error should be null when query is success', () => { + const key = queryKey() + const query = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }), ) @@ -212,9 +238,11 @@ describe('useQuery', () => { }) it('data should be undefined when query is pending', () => { + const key = queryKey() + const query = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }), ) @@ -225,9 +253,11 @@ describe('useQuery', () => { }) it('error should be defined when query is error', () => { + const key = queryKey() + const query = reactive( useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }), ) diff --git a/packages/vue-query/src/__tests__/useQuery.test.ts b/packages/vue-query/src/__tests__/useQuery.test.ts index 53095109305..f5157e8902e 100644 --- a/packages/vue-query/src/__tests__/useQuery.test.ts +++ b/packages/vue-query/src/__tests__/useQuery.test.ts @@ -7,7 +7,7 @@ import { ref, } from 'vue-demi' import { QueryObserver } from '@tanstack/query-core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useQuery } from '../useQuery' import { useBaseQuery } from '../useBaseQuery' import type { Mock, MockedFunction } from 'vitest' @@ -25,10 +25,11 @@ describe('useQuery', () => { }) test('should properly execute query', () => { + const key = queryKey() const queryFn = () => sleep(0).then(() => 'Some data') useQuery({ - queryKey: ['key0'], + queryKey: key, queryFn, staleTime: 1000, }) @@ -36,7 +37,7 @@ describe('useQuery', () => { expect(useBaseQuery).toBeCalledWith( QueryObserver, { - queryKey: ['key0'], + queryKey: key, queryFn, staleTime: 1000, }, @@ -45,8 +46,9 @@ describe('useQuery', () => { }) test('should work with options getter', async () => { + const key = queryKey() const query = useQuery(() => ({ - queryKey: ['key01'], + queryKey: key, queryFn: () => sleep(0).then(() => 'result01'), })) @@ -63,10 +65,11 @@ describe('useQuery', () => { }) test('should work with options getter and be reactive', async () => { + const key = queryKey() const keyRef = ref('key011') const resultRef = ref('result02') const query = useQuery(() => ({ - queryKey: [keyRef.value], + queryKey: [...key, keyRef.value], queryFn: () => sleep(0).then(() => resultRef.value), })) @@ -96,8 +99,9 @@ describe('useQuery', () => { }) test('should return pending status initially', () => { + const key = queryKey() const query = useQuery({ - queryKey: ['key1'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }) @@ -110,8 +114,9 @@ describe('useQuery', () => { }) test('should resolve to success and update reactive state: useQuery(key, dataFn)', async () => { + const key = queryKey() const query = useQuery({ - queryKey: ['key2'], + queryKey: key, queryFn: () => sleep(0).then(() => 'result2'), }) @@ -128,8 +133,9 @@ describe('useQuery', () => { }) test('should resolve to success and update reactive state: useQuery(optionsObj)', async () => { + const key = queryKey() const query = useQuery({ - queryKey: ['key31'], + queryKey: key, queryFn: () => sleep(0).then(() => 'result31'), enabled: true, }) @@ -147,8 +153,9 @@ describe('useQuery', () => { }) test('should resolve to success and update reactive state: useQuery(key, optionsObj)', async () => { + const key = queryKey() const query = useQuery({ - queryKey: ['key32'], + queryKey: key, queryFn: () => sleep(0).then(() => 'result32'), enabled: true, }) @@ -166,8 +173,9 @@ describe('useQuery', () => { }) test('should reject and update reactive state', async () => { + const key = queryKey() const query = useQuery({ - queryKey: ['key3'], + queryKey: key, queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), }) @@ -188,9 +196,10 @@ describe('useQuery', () => { }) test('should update query on reactive (Ref) key change', async () => { + const key = queryKey() const secondKeyRef = ref('key7') const query = useQuery({ - queryKey: ['key6', secondKeyRef], + queryKey: [...key, secondKeyRef], queryFn: () => sleep(10).then(() => 'Some data'), }) @@ -216,9 +225,10 @@ describe('useQuery', () => { }) test("should update query when an option is passed as Ref and it's changed", async () => { + const key = queryKey() const enabled = ref(false) const query = useQuery({ - queryKey: ['key9'], + queryKey: key, queryFn: () => sleep(10).then(() => 'Some data'), enabled, }) @@ -247,8 +257,10 @@ describe('useQuery', () => { }) test('should properly execute dependent queries', async () => { + const key1 = queryKey() + const key2 = queryKey() const { data } = useQuery({ - queryKey: ['dependent1'], + queryKey: key1, queryFn: () => sleep(0).then(() => 'Some data'), }) @@ -259,7 +271,7 @@ describe('useQuery', () => { .mockImplementation(() => sleep(10).then(() => 'Some data')) const { fetchStatus, status } = useQuery( reactive({ - queryKey: ['dependent2'], + queryKey: key2, queryFn: dependentQueryFn, enabled, }), @@ -280,18 +292,19 @@ describe('useQuery', () => { expect(status.value).toStrictEqual('success') expect(dependentQueryFn).toHaveBeenCalledTimes(1) expect(dependentQueryFn).toHaveBeenCalledWith( - expect.objectContaining({ queryKey: ['dependent2'] }), + expect.objectContaining({ queryKey: key2 }), ) }) test('should stop listening to changes on onScopeDispose', async () => { + const key = queryKey() const onScopeDisposeMock = onScopeDispose as MockedFunction< typeof onScopeDispose > onScopeDisposeMock.mockImplementationOnce((fn) => fn()) const { status } = useQuery({ - queryKey: ['onScopeDispose'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }) @@ -307,10 +320,11 @@ describe('useQuery', () => { }) test('should use the current value for the queryKey when refetch is called', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const keyRef = ref('key11') const query = useQuery({ - queryKey: ['key10', keyRef], + queryKey: [...key, keyRef], queryFn: fetchFn, enabled: false, }) @@ -320,7 +334,7 @@ describe('useQuery', () => { expect(fetchFn).toHaveBeenCalledTimes(1) expect(fetchFn).toHaveBeenCalledWith( expect.objectContaining({ - queryKey: ['key10', 'key11'], + queryKey: [...key, 'key11'], }), ) @@ -329,17 +343,18 @@ describe('useQuery', () => { expect(fetchFn).toHaveBeenCalledTimes(2) expect(fetchFn).toHaveBeenCalledWith( expect.objectContaining({ - queryKey: ['key10', 'key12'], + queryKey: [...key, 'key12'], }), ) }) test('should be `enabled` to accept getter function', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const checked = ref(false) useQuery({ - queryKey: ['enabled'], + queryKey: key, queryFn: fetchFn, enabled: () => checked.value, }) @@ -354,12 +369,13 @@ describe('useQuery', () => { }) test('should allow getters for query keys', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') const key2 = ref('key2') useQuery({ - queryKey: ['key', () => key1.value, () => key2.value], + queryKey: [...key, () => key1.value, () => key2.value], queryFn: fetchFn, }) @@ -379,6 +395,7 @@ describe('useQuery', () => { }) test('should allow arbitrarily nested getters for query keys', async () => { + const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') const key2 = ref('key2') @@ -388,7 +405,7 @@ describe('useQuery', () => { useQuery({ queryKey: [ - 'key', + ...key, key1, () => key2.value, { key: () => key3.value }, @@ -439,9 +456,10 @@ describe('useQuery', () => { describe('throwOnError', () => { test('should evaluate throwOnError when query is expected to throw', async () => { + const key = queryKey() const boundaryFn = vi.fn() useQuery({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), retry: false, @@ -467,7 +485,7 @@ describe('useQuery', () => { try { useQuery({ - queryKey: ['outsideScope'], + queryKey: queryKey(), queryFn: () => sleep(0).then(() => 'data'), }) @@ -483,11 +501,12 @@ describe('useQuery', () => { describe('suspense', () => { test('should return a Promise', () => { + const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) const query = useQuery({ - queryKey: ['suspense'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }) const result = query.suspense() @@ -496,13 +515,14 @@ describe('useQuery', () => { }) test('should resolve after being enabled', async () => { + const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) let afterTimeout = false const isEnabled = ref(false) const query = useQuery({ - queryKey: ['suspense2'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), enabled: isEnabled, }) @@ -520,6 +540,7 @@ describe('useQuery', () => { }) test('should resolve immediately when stale without refetching', () => { + const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) @@ -527,7 +548,7 @@ describe('useQuery', () => { // let afterTimeout = false; const query = useQuery({ - queryKey: ['suspense3'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), staleTime: 10000, initialData: 'foo', @@ -539,11 +560,12 @@ describe('useQuery', () => { }) test('should not throw from suspense by default', async () => { + const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) const query = useQuery({ - queryKey: ['suspense4'], + queryKey: key, queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), staleTime: 10000, @@ -558,12 +580,13 @@ describe('useQuery', () => { }) test('should throw from suspense when throwOnError is true', async () => { + const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) const boundaryFn = vi.fn() const query = useQuery({ - queryKey: ['suspense5'], + queryKey: key, queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), staleTime: 10000, diff --git a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts index 6835133ed00..28084c01855 100644 --- a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts +++ b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { isVue2, isVue3, ref } from 'vue-demi' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { VueQueryPlugin } from '../vueQueryPlugin' import { VUE_QUERY_CLIENT } from '../utils' @@ -284,6 +285,7 @@ describe('VueQueryPlugin', () => { }) test('should delay useQuery subscription and not call fetcher if data is not stale', async () => { + const key = queryKey() const appMock = getAppMock() const customClient = new QueryClient({ defaultOptions: { @@ -299,7 +301,7 @@ describe('VueQueryPlugin', () => { vi.fn(), new Promise((resolve) => { setTimeout(() => { - client.setQueryData(['persist'], () => ({ + client.setQueryData(key, () => ({ foo: 'bar', })) resolve() @@ -312,7 +314,7 @@ describe('VueQueryPlugin', () => { const query = useQuery( { - queryKey: ['persist'], + queryKey: key, queryFn: fnSpy, }, customClient, @@ -331,6 +333,8 @@ describe('VueQueryPlugin', () => { }) test('should delay useQueries subscription and not call fetcher if data is not stale', async () => { + const key1 = queryKey() + const key2 = queryKey() const appMock = getAppMock() const customClient = new QueryClient({ defaultOptions: { @@ -346,10 +350,10 @@ describe('VueQueryPlugin', () => { vi.fn(), new Promise((resolve) => { setTimeout(() => { - client.setQueryData(['persist1'], () => ({ + client.setQueryData(key1, () => ({ foo1: 'bar1', })) - client.setQueryData(['persist2'], () => ({ + client.setQueryData(key2, () => ({ foo2: 'bar2', })) resolve() @@ -362,7 +366,7 @@ describe('VueQueryPlugin', () => { const query = useQuery( { - queryKey: ['persist1'], + queryKey: key1, queryFn: fnSpy, }, customClient, @@ -372,7 +376,7 @@ describe('VueQueryPlugin', () => { { queries: [ { - queryKey: ['persist2'], + queryKey: key2, queryFn: fnSpy, }, ], From 4335fce4aed3ea1c57fc8b424a57c6173d680399 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 7 Apr 2026 13:41:37 +0900 Subject: [PATCH 068/414] test(angular-query-experimental): replace hardcoded query keys with 'queryKey()' utility (#10418) --- .../infinite-query-options.test-d.ts | 57 ++++++++++------ .../__tests__/infinite-query-options.test.ts | 4 +- .../__tests__/inject-infinite-query.test-d.ts | 5 +- .../__tests__/inject-infinite-query.test.ts | 11 +-- .../src/__tests__/inject-is-fetching.test.ts | 5 +- .../src/__tests__/inject-is-mutating.test.ts | 5 +- .../__tests__/inject-mutation-state.test.ts | 10 +-- .../src/__tests__/inject-mutation.test.ts | 44 +++++++----- .../src/__tests__/inject-queries.test-d.ts | 37 +++++++--- .../src/__tests__/inject-query.test-d.ts | 41 +++++++---- .../src/__tests__/inject-query.test.ts | 68 ++++++++++++------- .../src/__tests__/mutation-options.test-d.ts | 34 +++++++--- .../src/__tests__/mutation-options.test.ts | 32 ++++++--- .../src/__tests__/pending-tasks.test.ts | 49 ++++++++----- .../src/__tests__/query-options.test-d.ts | 66 ++++++++++-------- 15 files changed, 299 insertions(+), 169 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts index a20596788eb..17ce85b9d46 100644 --- a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts @@ -1,4 +1,5 @@ import { assertType, describe, expectTypeOf, it, test } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient, dataTagSymbol } from '@tanstack/query-core' import { infiniteQueryOptions } from '../infinite-query-options' import { injectInfiniteQuery } from '../inject-infinite-query' @@ -11,9 +12,10 @@ import type { describe('infiniteQueryOptions', () => { it('should not allow excess properties', () => { + const key = queryKey() assertType( infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('data'), getNextPageParam: () => 1, initialPageParam: 1, @@ -23,8 +25,9 @@ describe('infiniteQueryOptions', () => { ) }) it('should infer types for callbacks', () => { + const key = queryKey() infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('data'), staleTime: 1000, getNextPageParam: () => 1, @@ -35,8 +38,9 @@ describe('infiniteQueryOptions', () => { }) }) it('should work when passed to useInfiniteQuery', () => { + const key = queryKey() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -51,8 +55,9 @@ describe('infiniteQueryOptions', () => { }) it('should work when passed to fetchInfiniteQuery', async () => { + const key = queryKey() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -63,61 +68,66 @@ describe('infiniteQueryOptions', () => { expectTypeOf(data).toEqualTypeOf>() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => 'string', getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), select: (data) => data.pages, getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf< InfiniteData | undefined >() }) it('should properly type when passed to setQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf< InfiniteData | undefined >() @@ -130,9 +140,10 @@ describe('infiniteQueryOptions', () => { }) test('should not be allowed to be passed to non-infinite query functions', () => { + const key = queryKey() const queryClient = new QueryClient() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -156,9 +167,10 @@ describe('infiniteQueryOptions', () => { }) test('allow optional initialData function', () => { + const key = queryKey() const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ - queryKey: ['example'], + queryKey: key, queryFn: () => initialData, initialData: initialData ? () => ({ pages: [initialData], pageParams: [] }) @@ -174,9 +186,10 @@ describe('infiniteQueryOptions', () => { }) test('allow optional initialData object', () => { + const key = queryKey() const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ - queryKey: ['example'], + queryKey: key, queryFn: () => initialData, initialData: initialData ? { pages: [initialData], pageParams: [] } diff --git a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts index 225a63f3b13..9459d96839f 100644 --- a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts +++ b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts @@ -1,12 +1,14 @@ import { describe, expect, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { infiniteQueryOptions } from '../infinite-query-options' import type { CreateInfiniteQueryOptions } from '../types' describe('infiniteQueryOptions', () => { it('should return the object received as a parameter without any modification.', () => { + const key = queryKey() const object: CreateInfiniteQueryOptions = { - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), getNextPageParam: () => null, initialPageParam: null, diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts index 7ec133adfb1..e9db0edafb9 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expectTypeOf, test, vi } from 'vitest' import { provideZonelessChangeDetection } from '@angular/core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' import type { InfiniteData } from '@tanstack/query-core' @@ -24,9 +24,10 @@ describe('injectInfiniteQuery', () => { }) test('should narrow type after isSuccess', () => { + const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectInfiniteQuery(() => ({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: ({ pageParam }) => sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index 23fcc4ba0f0..55890b38d2a 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { Injector, provideZonelessChangeDetection } from '@angular/core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' import { expectSignals } from './test-utils' @@ -24,9 +24,10 @@ describe('injectInfiniteQuery', () => { }) test('should properly execute infinite query', async () => { + const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectInfiniteQuery(() => ({ - queryKey: ['infiniteQuery'], + queryKey: key, queryFn: ({ pageParam }) => sleep(10).then(() => 'data on page ' + pageParam), initialPageParam: 0, @@ -64,9 +65,10 @@ describe('injectInfiniteQuery', () => { describe('injection context', () => { test('throws NG0203 with descriptive error outside injection context', () => { + const key = queryKey() expect(() => { injectInfiniteQuery(() => ({ - queryKey: ['injectionContextError'], + queryKey: key, queryFn: ({ pageParam }) => sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, @@ -76,9 +78,10 @@ describe('injectInfiniteQuery', () => { }) test('can be used outside injection context when passing an injector', () => { + const key = queryKey() const query = injectInfiniteQuery( () => ({ - queryKey: ['manualInjector'], + queryKey: key, queryFn: ({ pageParam }) => sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index 9e5126b5a84..983f5d16ca2 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { Injector, provideZonelessChangeDetection } from '@angular/core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectIsFetching, @@ -29,9 +29,10 @@ describe('injectIsFetching', () => { }) test('Returns number of fetching queries', async () => { + const key = queryKey() const isFetching = TestBed.runInInjectionContext(() => { injectQuery(() => ({ - queryKey: ['isFetching1'], + queryKey: key, queryFn: () => sleep(100).then(() => 'Some data'), })) return injectIsFetching() diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 69685d91882..b24dfd88f1c 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { TestBed } from '@angular/core/testing' import { Injector, provideZonelessChangeDetection } from '@angular/core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectIsMutating, @@ -29,9 +29,10 @@ describe('injectIsMutating', () => { }) test('should properly return isMutating state', async () => { + const key = queryKey() const [mutation, isMutating] = TestBed.runInInjectionContext(() => [ injectMutation(() => ({ - mutationKey: ['isMutating1'], + mutationKey: key, mutationFn: (params: { par1: string }) => sleep(10).then(() => params), })), injectIsMutating(), diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index cd75f4e1e3b..e06d0322358 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -8,7 +8,7 @@ import { import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { By } from '@angular/platform-browser' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectMutation, @@ -37,7 +37,7 @@ describe('injectMutationState', () => { describe('injectMutationState', () => { test('should return variables after calling mutate 1', () => { - const mutationKey = ['mutation'] + const mutationKey = queryKey() const variables = 'foo123' const mutation = TestBed.runInInjectionContext(() => { @@ -60,8 +60,8 @@ describe('injectMutationState', () => { }) test('reactive options should update injectMutationState', () => { - const mutationKey1 = ['mutation1'] - const mutationKey2 = ['mutation2'] + const mutationKey1 = queryKey() + const mutationKey2 = queryKey() const variables1 = 'foo123' const variables2 = 'bar234' @@ -98,7 +98,7 @@ describe('injectMutationState', () => { test('should return variables after calling mutate 2', () => { queryClient.clear() - const mutationKey = ['mutation'] + const mutationKey = queryKey() const variables = 'bar234' const mutation = TestBed.runInInjectionContext(() => { diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index b4d923707ec..7a7120ce02b 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -9,7 +9,7 @@ import { import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { By } from '@angular/platform-browser' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectMutation, provideTanStackQuery } from '..' import { expectSignals, setFixtureSignalInputs } from './test-utils' @@ -118,7 +118,9 @@ describe('injectMutation', () => { const mutationCache = queryClient.getMutationCache() // Signal will be updated before the mutation is called // this test confirms that the mutation uses the updated value - const mutationKey = signal(['1']) + const key1 = queryKey() + const key2 = queryKey() + const mutationKey = signal(key1) const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationKey: mutationKey(), @@ -126,13 +128,13 @@ describe('injectMutation', () => { })) }) - mutationKey.set(['2']) + mutationKey.set(key2) mutation.mutate('xyz') - const mutations = mutationCache.find({ mutationKey: ['2'] }) + const mutations = mutationCache.find({ mutationKey: key2 }) - expect(mutations?.options.mutationKey).toEqual(['2']) + expect(mutations?.options.mutationKey).toEqual(key2) }) test('should reset state after invoking mutation.reset', async () => { @@ -391,11 +393,12 @@ describe('injectMutation', () => { describe('throwOnError', () => { test('should evaluate throwOnError when mutation is expected to throw', async () => { + const key = queryKey() const err = new Error('Expected mock error. All is well!') const boundaryFn = vi.fn() const { mutate } = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationKey: ['fake'], + mutationKey: key, mutationFn: () => { return Promise.reject(err) }, @@ -414,9 +417,10 @@ describe('injectMutation', () => { }) test('should throw when throwOnError is true and mutate is used', async () => { + const key = queryKey() const { mutate } = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationKey: ['fake'], + mutationKey: key, mutationFn: () => { return Promise.reject( new Error('Expected mock error. All is well!'), @@ -437,10 +441,11 @@ describe('injectMutation', () => { }) test('should throw when throwOnError is true', async () => { + const key = queryKey() const err = new Error('Expected mock error. All is well!') const { mutateAsync } = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationKey: ['fake'], + mutationKey: key, mutationFn: () => { return Promise.reject(err) }, @@ -452,10 +457,11 @@ describe('injectMutation', () => { }) test('should throw when throwOnError function returns true', async () => { + const key = queryKey() const err = new Error('Expected mock error. All is well!') const { mutateAsync } = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationKey: ['fake'], + mutationKey: key, mutationFn: () => { return Promise.reject(err) }, @@ -468,19 +474,21 @@ describe('injectMutation', () => { describe('injection context', () => { test('throws NG0203 with descriptive error outside injection context', () => { + const key = queryKey() expect(() => { injectMutation(() => ({ - mutationKey: ['injectionContextError'], + mutationKey: key, mutationFn: () => Promise.resolve(), })) }).toThrow(/NG0203(.*?)injectMutation/) }) test('can be used outside injection context when passing an injector', () => { + const key = queryKey() expect(() => { injectMutation( () => ({ - mutationKey: ['injectionContextError'], + mutationKey: key, mutationFn: () => Promise.resolve(), }), { @@ -495,9 +503,10 @@ describe('injectMutation', () => { let mutationStarted = false let mutationCompleted = false + const key = queryKey() const mutation = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationKey: ['pendingTasksTest'], + mutationKey: key, mutationFn: async (data: string) => { mutationStarted = true await sleep(50) @@ -588,9 +597,11 @@ describe('injectMutation', () => { const app = TestBed.inject(ApplicationRef) let callCount = 0 + const key = queryKey() + const mutation1 = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationKey: ['sync-mutation-key'], + mutationKey: key, mutationFn: async (data: string) => { callCount++ return `mutation1: ${data}` @@ -600,7 +611,7 @@ describe('injectMutation', () => { const mutation2 = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationKey: ['sync-mutation-key'], + mutationKey: key, mutationFn: async (data: string) => { callCount++ return `mutation2: ${data}` @@ -638,7 +649,7 @@ describe('injectMutation', () => { }) const app = TestBed.inject(ApplicationRef) - const testQueryKey = ['sync-optimistic'] + const testQueryKey = queryKey() let onMutateCalled = false let onSuccessCalled = false @@ -691,9 +702,10 @@ describe('injectMutation', () => { const app = TestBed.inject(ApplicationRef) + const key = queryKey() const mutation = TestBed.runInInjectionContext(() => injectMutation(() => ({ - mutationKey: ['cancel-sync'], + mutationKey: key, mutationFn: async (data: string) => `processed: ${data}`, // Synchronous resolution })), ) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts index de3f7e68578..b133575746c 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts @@ -1,4 +1,5 @@ import { describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { skipToken } from '..' import { injectQueries } from '../inject-queries' import { queryOptions } from '../query-options' @@ -8,8 +9,12 @@ import type { Signal } from '@angular/core' describe('injectQueries', () => { describe('config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() + const query1 = { - queryKey: ['key1'], + queryKey: key1, queryFn: () => { return { wow: true, @@ -21,13 +26,13 @@ describe('injectQueries', () => { } const query2 = { - queryKey: ['key2'], + queryKey: key2, queryFn: () => 'Query Data', initialData: 'initial data', } const query3 = { - queryKey: ['key2'], + queryKey: key3, queryFn: () => 'Query Data', } @@ -45,8 +50,9 @@ describe('injectQueries', () => { }) it('TData should be defined when passed through queryOptions', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -64,14 +70,17 @@ describe('injectQueries', () => { }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into injectQuery', () => { + const key1 = queryKey() + const key2 = queryKey() + const query1 = queryOptions({ - queryKey: ['key'], + queryKey: key1, queryFn: () => Promise.resolve(1), select: (data) => data > 1, }) const query2 = { - queryKey: ['key'], + queryKey: key2, queryFn: () => Promise.resolve(1), select: (data: number) => data > 1, } @@ -85,10 +94,11 @@ describe('injectQueries', () => { }) it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const key = queryKey() const queryResults = injectQueries(() => ({ queries: [ { - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -107,6 +117,7 @@ describe('injectQueries', () => { describe('custom injectable', () => { it('should allow custom hooks using UseQueryOptions', () => { type Data = string + const key = queryKey() const injectCustomQueries = ( options?: OmitKeyof, 'queryKey' | 'queryFn'>, @@ -115,7 +126,7 @@ describe('injectQueries', () => { queries: [ { ...options, - queryKey: ['todos-key'], + queryKey: key, queryFn: () => Promise.resolve('data'), }, ], @@ -130,10 +141,11 @@ describe('injectQueries', () => { }) it('TData should have correct type when conditional skipToken is passed', () => { + const key = queryKey() const queryResults = injectQueries(() => ({ queries: [ { - queryKey: ['withSkipToken'], + queryKey: key, queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }, ], @@ -148,17 +160,20 @@ describe('injectQueries', () => { }) it('should return correct data for dynamic queries with mixed result types', () => { + const key1 = queryKey() + const key2 = queryKey() + const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: key1, queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: key2, queryFn: () => Promise.resolve(true), }), } diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts index a220ccfa6fe..d48146aa677 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts @@ -1,5 +1,5 @@ import { describe, expectTypeOf, it, test } from 'vitest' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { injectQuery, queryOptions } from '..' import type { Signal } from '@angular/core' @@ -7,8 +7,9 @@ describe('injectQuery', () => { describe('initialData', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { + const key = queryKey() const { data } = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => ({ wow: true }), initialData: { wow: true }, })) @@ -17,9 +18,10 @@ describe('injectQuery', () => { }) it('TData should be defined when passed through queryOptions', () => { + const key = queryKey() const options = () => queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -35,8 +37,9 @@ describe('injectQuery', () => { }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(1), }) @@ -49,8 +52,9 @@ describe('injectQuery', () => { }) it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { + const key = queryKey() const { data } = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -65,8 +69,9 @@ describe('injectQuery', () => { }) it('TData should have undefined in the union when initialData is NOT provided', () => { + const key = queryKey() const { data } = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -78,8 +83,9 @@ describe('injectQuery', () => { }) it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const key = queryKey() const { data } = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -92,8 +98,9 @@ describe('injectQuery', () => { }) it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { + const key = queryKey() const query = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => { return { wow: true, @@ -110,9 +117,10 @@ describe('injectQuery', () => { describe('structuralSharing', () => { it('should be able to use structuralSharing with unknown types', () => { + const key = queryKey() // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => 5, structuralSharing: (oldData, newData) => { expectTypeOf(oldData).toBeUnknown() @@ -126,8 +134,9 @@ describe('injectQuery', () => { describe('Discriminated union return type', () => { test('data should be possibly undefined by default', () => { + const key = queryKey() const query = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), })) @@ -135,8 +144,9 @@ describe('injectQuery', () => { }) test('data should be defined when query is success', () => { + const key = queryKey() const query = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), })) @@ -146,8 +156,9 @@ describe('injectQuery', () => { }) test('error should be null when query is success', () => { + const key = queryKey() const query = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), })) @@ -157,8 +168,9 @@ describe('injectQuery', () => { }) test('data should be undefined when query is pending', () => { + const key = queryKey() const query = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), })) @@ -168,8 +180,9 @@ describe('injectQuery', () => { }) test('error should be defined when query is error', () => { + const key = queryKey() const query = injectQuery(() => ({ - queryKey: ['key'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), })) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 29eab92d643..9b1a92f5338 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -267,9 +267,10 @@ describe('injectQuery', () => { }) test('should return pending status initially', () => { + const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['key1'], + queryKey: key, queryFn: () => sleep(10).then(() => 'Some data'), })) }) @@ -282,9 +283,10 @@ describe('injectQuery', () => { }) test('should resolve to success and update signal: injectQuery()', async () => { + const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['key2'], + queryKey: key, queryFn: () => sleep(10).then(() => 'result2'), })) }) @@ -299,10 +301,11 @@ describe('injectQuery', () => { }) test('should reject and update signal', async () => { + const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ retry: false, - queryKey: ['key3'], + queryKey: key, queryFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), })) @@ -320,7 +323,9 @@ describe('injectQuery', () => { }) test('should update query on options contained signal change', async () => { - const key = signal(['key6', 'key7']) + const key1 = queryKey() + const key2 = queryKey() + const key = signal(key1) const spy = vi.fn(() => sleep(10).then(() => 'Some data')) const query = TestBed.runInInjectionContext(() => { @@ -336,7 +341,7 @@ describe('injectQuery', () => { await vi.advanceTimersByTimeAsync(11) expect(query.status()).toBe('success') - key.set(['key8']) + key.set(key2) TestBed.tick() expect(spy).toHaveBeenCalledTimes(2) @@ -344,18 +349,19 @@ describe('injectQuery', () => { expect(spy).toBeCalledWith({ client: queryClient, meta: undefined, - queryKey: ['key8'], + queryKey: key2, signal: expect.anything(), }) }) test('should only run query once enabled signal is set to true', async () => { + const key = queryKey() const spy = vi.fn(() => sleep(10).then(() => 'Some data')) const enabled = signal(false) const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['key9'], + queryKey: key, queryFn: spy, enabled: enabled(), })) @@ -372,9 +378,12 @@ describe('injectQuery', () => { }) test('should properly execute dependent queries', async () => { + const key1 = queryKey() + const key2 = queryKey() + const query1 = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['dependent1'], + queryKey: key1, queryFn: () => sleep(10).then(() => 'Some data'), })) }) @@ -386,7 +395,7 @@ describe('injectQuery', () => { const query2 = TestBed.runInInjectionContext(() => { return injectQuery( computed(() => ({ - queryKey: ['dependent2'], + queryKey: key2, queryFn: dependentQueryFn, enabled: !!query1.data(), })), @@ -408,17 +417,18 @@ describe('injectQuery', () => { expect(query2.status()).toStrictEqual('success') expect(dependentQueryFn).toHaveBeenCalledTimes(1) expect(dependentQueryFn).toHaveBeenCalledWith( - expect.objectContaining({ queryKey: ['dependent2'] }), + expect.objectContaining({ queryKey: key2 }), ) }) test('should use the current value for the queryKey when refetch is called', async () => { + const key = queryKey() const fetchFn = vi.fn(() => sleep(10).then(() => 'Some data')) const keySignal = signal('key11') const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['key10', keySignal()], + queryKey: [...key, keySignal()], queryFn: fetchFn, enabled: false, })) @@ -430,7 +440,7 @@ describe('injectQuery', () => { expect(fetchFn).toHaveBeenCalledTimes(1) expect(fetchFn).toHaveBeenCalledWith( expect.objectContaining({ - queryKey: ['key10', 'key11'], + queryKey: [...key, 'key11'], }), ) }) @@ -443,7 +453,7 @@ describe('injectQuery', () => { expect(fetchFn).toHaveBeenCalledTimes(2) expect(fetchFn).toHaveBeenCalledWith( expect.objectContaining({ - queryKey: ['key10', 'key12'], + queryKey: [...key, 'key12'], }), ) }) @@ -453,10 +463,11 @@ describe('injectQuery', () => { describe('throwOnError', () => { test('should evaluate throwOnError when query is expected to throw', async () => { + const key = queryKey() const boundaryFn = vi.fn() TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['key12'], + queryKey: key, queryFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), retry: false, @@ -475,9 +486,10 @@ describe('injectQuery', () => { }) test('should throw when throwOnError is true', async () => { + const key = queryKey() TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['key13'], + queryKey: key, queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), throwOnError: true, @@ -488,9 +500,10 @@ describe('injectQuery', () => { }) test('should throw when throwOnError function returns true', async () => { + const key = queryKey() TestBed.runInInjectionContext(() => { return injectQuery(() => ({ - queryKey: ['key14'], + queryKey: key, queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), throwOnError: () => true, @@ -502,10 +515,11 @@ describe('injectQuery', () => { }) test('should set state to error when queryFn returns reject promise', async () => { + const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ retry: false, - queryKey: ['key15'], + queryKey: key, queryFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), })) @@ -584,18 +598,20 @@ describe('injectQuery', () => { describe('injection context', () => { test('throws NG0203 with descriptive error outside injection context', () => { + const key = queryKey() expect(() => { injectQuery(() => ({ - queryKey: ['injectionContextError'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), })) }).toThrow(/NG0203(.*?)injectQuery/) }) test('can be used outside injection context when passing an injector', () => { + const key = queryKey() const query = injectQuery( () => ({ - queryKey: ['manualInjector'], + queryKey: key, queryFn: () => sleep(0).then(() => 'Some data'), }), { @@ -607,11 +623,12 @@ describe('injectQuery', () => { }) test('should complete queries before whenStable() resolves', async () => { + const key = queryKey() const app = TestBed.inject(ApplicationRef) const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['pendingTasksTest'], + queryKey: key, queryFn: () => sleep(50).then(() => 'test data'), })), ) @@ -643,9 +660,10 @@ describe('injectQuery', () => { const httpTestingController = TestBed.inject(HttpTestingController) // Create a query using HttpClient + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['httpClientTest'], + queryKey: key, queryFn: () => lastValueFrom(httpClient.get<{ message: string }>('/api/test')), })), @@ -684,9 +702,10 @@ describe('injectQuery', () => { const app = TestBed.inject(ApplicationRef) let callCount = 0 + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['sync-stale'], + queryKey: key, staleTime: 1000, queryFn: () => { callCount++ @@ -728,9 +747,10 @@ describe('injectQuery', () => { const enabledSignal = signal(false) let callCount = 0 + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['sync-enabled'], + queryKey: key, enabled: enabledSignal(), queryFn: () => { callCount++ @@ -766,7 +786,7 @@ describe('injectQuery', () => { }) const app = TestBed.inject(ApplicationRef) - const testKey = ['sync-invalidate'] + const testKey = queryKey() let callCount = 0 const query = TestBed.runInInjectionContext(() => diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts index 968eda7b30d..89691bf81a4 100644 --- a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts @@ -1,4 +1,5 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '@tanstack/query-core' import { injectIsMutating, @@ -16,10 +17,11 @@ import type { CreateMutationOptions, CreateMutationResult } from '../types' describe('mutationOptions', () => { it('should not allow excess properties', () => { + const key = queryKey() // @ts-expect-error this is a good error, because onMutates does not exist! mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: key, onMutates: 1000, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -28,9 +30,10 @@ describe('mutationOptions', () => { }) it('should infer types for callbacks', () => { + const key = queryKey() mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: key, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -38,11 +41,12 @@ describe('mutationOptions', () => { }) it('should infer types for onError callback', () => { + const key = queryKey() mutationOptions({ mutationFn: () => { throw new Error('fail') }, - mutationKey: ['key'], + mutationKey: key, onError: (error) => { expectTypeOf(error).toEqualTypeOf() }, @@ -50,19 +54,21 @@ describe('mutationOptions', () => { }) it('should infer types for variables', () => { + const key = queryKey() mutationOptions({ mutationFn: (vars) => { expectTypeOf(vars).toEqualTypeOf<{ id: string }>() return Promise.resolve(5) }, - mutationKey: ['with-vars'], + mutationKey: key, }) }) it('should infer result type correctly', () => { + const key = queryKey() mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: key, onMutate: () => { return { name: 'onMutateResult' } }, @@ -73,12 +79,13 @@ describe('mutationOptions', () => { }) it('should infer context type correctly', () => { + const key = queryKey() mutationOptions({ mutationFn: (_variables, context) => { expectTypeOf(context).toEqualTypeOf() return Promise.resolve(5) }, - mutationKey: ['key'], + mutationKey: key, onMutate: (_variables, context) => { expectTypeOf(context).toEqualTypeOf() }, @@ -113,10 +120,11 @@ describe('mutationOptions', () => { }) it('should infer all types when not explicitly provided', () => { + const key = queryKey() expectTypeOf( mutationOptions({ mutationFn: (id: string) => Promise.resolve(id.length), - mutationKey: ['key'], + mutationKey: key, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -140,9 +148,10 @@ describe('mutationOptions', () => { }) it('should infer types when used with injectMutation', () => { + const key = queryKey() const mutation = injectMutation(() => mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve('data'), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -166,9 +175,10 @@ describe('mutationOptions', () => { }) it('should infer types when used with injectIsMutating', () => { + const key = queryKey() const isMutating = injectIsMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve(5), }), ) @@ -183,11 +193,12 @@ describe('mutationOptions', () => { }) it('should infer types when used with queryClient.isMutating', () => { + const key = queryKey() const queryClient = new QueryClient() const isMutating = queryClient.isMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve(5), }), ) @@ -202,9 +213,10 @@ describe('mutationOptions', () => { }) it('should infer types when used with injectMutationState', () => { + const key = queryKey() const mutationState = injectMutationState(() => ({ filters: mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => Promise.resolve(5), }), })) diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test.ts index e07b371c6a6..538e353852b 100644 --- a/packages/angular-query-experimental/src/__tests__/mutation-options.test.ts +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test.ts @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { provideZonelessChangeDetection } from '@angular/core' import { TestBed } from '@angular/core/testing' import { QueryClient } from '@tanstack/query-core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { injectIsMutating, injectMutation, @@ -31,8 +31,9 @@ describe('mutationOptions', () => { }) it('should return the object received as a parameter without any modification (with mutationKey in mutationOptions)', () => { + const key = queryKey() const object: CreateMutationOptions = { - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 5), } as const @@ -48,8 +49,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with injectIsMutating (with mutationKey in mutationOptions)', async () => { + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data'), }) @@ -89,8 +91,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with injectIsMutating', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -117,8 +120,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with injectIsMutating (filter mutationOpts1.mutationKey)', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -145,8 +149,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data'), }) @@ -180,8 +185,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -203,8 +209,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with queryClient.isMutating (filter mutationOpt1.mutationKey)', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -232,8 +239,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with injectMutationState (with mutationKey in mutationOptions)', async () => { + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data'), }) @@ -273,8 +281,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with injectMutationState', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -302,8 +311,9 @@ describe('mutationOptions', () => { }) it('should return the number of fetching mutations when used with injectMutationState (filter mutationOpt1.mutationKey)', async () => { + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ diff --git a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts index 643e140589e..65f1395f933 100644 --- a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts +++ b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts @@ -10,7 +10,7 @@ import { provideHttpClientTesting, } from '@angular/common/http/testing' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { lastValueFrom } from 'rxjs' import { QueryClient, @@ -55,9 +55,10 @@ describe('PendingTasks Integration', () => { test('should handle synchronous queryFn with whenStable()', async () => { const app = TestBed.inject(ApplicationRef) + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['sync'], + queryKey: key, queryFn: () => 'instant-data', // Resolves synchronously })), ) @@ -80,9 +81,10 @@ describe('PendingTasks Integration', () => { test('should handle synchronous error with whenStable()', async () => { const app = TestBed.inject(ApplicationRef) + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['sync-error'], + queryKey: key, queryFn: () => { throw new Error('instant-error') }, // Throws synchronously @@ -155,6 +157,7 @@ describe('PendingTasks Integration', () => { describe('Race Conditions', () => { test('should handle query that completes during initial subscription', async () => { + const key = queryKey() const app = TestBed.inject(ApplicationRef) let resolveQuery: (value: string) => void @@ -164,7 +167,7 @@ describe('PendingTasks Integration', () => { const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['race-condition'], + queryKey: key, queryFn: () => queryPromise, })), ) @@ -185,9 +188,10 @@ describe('PendingTasks Integration', () => { const app = TestBed.inject(ApplicationRef) let callCount = 0 + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['rapid-refetch'], + queryKey: key, queryFn: async () => { callCount++ await sleep(10) @@ -213,9 +217,10 @@ describe('PendingTasks Integration', () => { const app = TestBed.inject(ApplicationRef) let attempt = 0 + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['paused-offline'], + queryKey: key, retry: 1, retryDelay: 50, // Longer delay to ensure we can go offline before retry queryFn: async () => { @@ -328,25 +333,28 @@ describe('PendingTasks Integration', () => { describe('Concurrent Operations', () => { test('should handle multiple queries running simultaneously', async () => { + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() const app = TestBed.inject(ApplicationRef) const query1 = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['concurrent-1'], + queryKey: key1, queryFn: () => sleep(30).then(() => 'data-1'), })), ) const query2 = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['concurrent-2'], + queryKey: key2, queryFn: () => sleep(50).then(() => 'data-2'), })), ) const query3 = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['concurrent-3'], + queryKey: key3, queryFn: () => 'instant-data', // Synchronous })), ) @@ -418,9 +426,10 @@ describe('PendingTasks Integration', () => { test('should handle mixed queries and mutations', async () => { const app = TestBed.inject(ApplicationRef) + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['mixed-query'], + queryKey: key, queryFn: () => sleep(40).then(() => 'query-data'), })), ) @@ -465,9 +474,12 @@ describe('PendingTasks Integration', () => { const httpClient = TestBed.inject(HttpClient) const httpTestingController = TestBed.inject(HttpTestingController) + const key1 = queryKey() + const key2 = queryKey() + const query1 = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['http-1'], + queryKey: key1, queryFn: () => lastValueFrom(httpClient.get<{ id: number }>('/api/1')), })), @@ -475,7 +487,7 @@ describe('PendingTasks Integration', () => { const query2 = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['http-2'], + queryKey: key2, queryFn: () => lastValueFrom(httpClient.get<{ id: number }>('/api/2')), })), @@ -507,9 +519,10 @@ describe('PendingTasks Integration', () => { const httpClient = TestBed.inject(HttpClient) const httpTestingController = TestBed.inject(HttpTestingController) + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['http-cancel'], + queryKey: key, queryFn: () => lastValueFrom(httpClient.get<{ data: string }>('/api/cancel')), })), @@ -536,18 +549,19 @@ describe('PendingTasks Integration', () => { describe('Edge Cases', () => { test('should handle query cancellation mid-flight', async () => { + const key = queryKey() const app = TestBed.inject(ApplicationRef) const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['cancel-test'], + queryKey: key, queryFn: () => sleep(100).then(() => 'data'), })), ) // Cancel the query after a short delay setTimeout(() => { - queryClient.cancelQueries({ queryKey: ['cancel-test'] }) + queryClient.cancelQueries({ queryKey: key }) }, 20) // Advance to the cancellation point @@ -568,9 +582,10 @@ describe('PendingTasks Integration', () => { const app = TestBed.inject(ApplicationRef) let attemptCount = 0 + const key = queryKey() const query = TestBed.runInInjectionContext(() => injectQuery(() => ({ - queryKey: ['retry-test'], + queryKey: key, retry: 2, retryDelay: 10, queryFn: async () => { @@ -594,7 +609,7 @@ describe('PendingTasks Integration', () => { test('should handle mutation with optimistic updates', async () => { const app = TestBed.inject(ApplicationRef) - const testQueryKey = ['optimistic-test'] + const testQueryKey = queryKey() queryClient.setQueryData(testQueryKey, 'initial-data') diff --git a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts index 350ab3dda28..cfd1890d1c4 100644 --- a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts @@ -1,4 +1,5 @@ import { assertType, describe, expectTypeOf, test } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient, dataTagSymbol, injectQuery, queryOptions } from '..' import type { Signal } from '@angular/core' @@ -8,8 +9,9 @@ describe('queryOptions', () => { }) test('should infer types for callbacks', () => { + const key = queryKey() queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), staleTime: 1000, select: (data) => { @@ -19,9 +21,10 @@ describe('queryOptions', () => { }) test('should allow undefined response in initialData', () => { + const key = queryKey() const options = (id: string | null) => queryOptions({ - queryKey: ['todo', id], + queryKey: [...key, id], queryFn: () => Promise.resolve({ id: '1', @@ -43,8 +46,9 @@ describe('queryOptions', () => { }) test('should work when passed to injectQuery', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), }) @@ -53,8 +57,9 @@ test('should work when passed to injectQuery', () => { }) test('should work when passed to fetchQuery', () => { + const key = queryKey() const options = queryOptions({ - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), }) @@ -63,59 +68,65 @@ test('should work when passed to fetchQuery', () => { }) test('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) - assertType(queryKey[dataTagSymbol]) + assertType(tagged[dataTagSymbol]) }) test('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => 5, }) - assertType(queryKey[dataTagSymbol]) + assertType(tagged[dataTagSymbol]) }) test('should tag the queryKey with unknown if there is no queryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, }) - assertType(queryKey[dataTagSymbol]) + assertType(tagged[dataTagSymbol]) }) test('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), select: (data) => data.toString(), }) - assertType(queryKey[dataTagSymbol]) + assertType(tagged[dataTagSymbol]) }) test('should return the proper type when passed to getQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf() }) test('should properly type updaterFn when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -124,19 +135,20 @@ test('should properly type updaterFn when passed to setQueryData', () => { }) test('should properly type value when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const key = queryKey() + const { queryKey: tagged } = queryOptions({ + queryKey: key, queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '5') + queryClient.setQueryData(tagged, '5') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '5') + queryClient.setQueryData(tagged, () => '5') - const data = queryClient.setQueryData(queryKey, 5) + const data = queryClient.setQueryData(tagged, 5) expectTypeOf(data).toEqualTypeOf() }) From 389bbca9560877530356941a3d6d080198aa975d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 7 Apr 2026 15:38:54 +0900 Subject: [PATCH 069/414] test(preact-query): replace hardcoded query keys with 'queryKey()' utility (#10419) --- .../src/__tests__/HydrationBoundary.test.tsx | 75 +++++++++--------- .../__tests__/infiniteQueryOptions.test-d.tsx | 49 ++++++------ .../__tests__/infiniteQueryOptions.test.tsx | 4 +- .../src/__tests__/mutationOptions.test-d.tsx | 23 +++--- .../src/__tests__/mutationOptions.test.tsx | 29 ++++--- .../src/__tests__/queryOptions.test-d.tsx | 79 ++++++++++--------- .../src/__tests__/ssr-hydration.test.tsx | 14 ++-- .../src/__tests__/suspense.test.tsx | 4 +- .../src/__tests__/useInfiniteQuery.test-d.tsx | 17 ++-- .../src/__tests__/useMutationState.test.tsx | 29 ++++--- .../usePrefetchInfiniteQuery.test-d.tsx | 11 +-- .../src/__tests__/usePrefetchQuery.test-d.tsx | 13 +-- .../src/__tests__/useQueries.test-d.tsx | 23 +++--- .../src/__tests__/useQueries.test.tsx | 14 ++-- .../src/__tests__/useQuery.test-d.tsx | 22 +++--- .../src/__tests__/useQuery.test.tsx | 3 +- .../useSuspenseInfiniteQuery.test-d.tsx | 17 ++-- .../__tests__/useSuspenseQueries.test-d.tsx | 33 ++++---- .../src/__tests__/useSuspenseQuery.test-d.tsx | 19 ++--- 19 files changed, 258 insertions(+), 220 deletions(-) diff --git a/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx b/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx index a15173ce03a..56d21306c7e 100644 --- a/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx @@ -1,6 +1,6 @@ import * as coreModule from '@tanstack/query-core' import type { hydrate } from '@tanstack/query-core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { render } from '@testing-library/preact' import { Suspense, startTransition } from 'preact/compat' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' @@ -14,13 +14,16 @@ import { } from '..' describe('Preact hydration', () => { + const stringKey = queryKey() + const addedKey = queryKey() + const promiseKey = queryKey() let stringifiedState: string beforeEach(async () => { vi.useFakeTimers() const queryClient = new QueryClient() queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(10).then(() => ['stringCached']), }) await vi.advanceTimersByTimeAsync(10) @@ -38,7 +41,7 @@ describe('Preact hydration', () => { function Page() { const { data } = useQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(20).then(() => ['string']), }) return ( @@ -70,7 +73,7 @@ describe('Preact hydration', () => { function Page() { const { data } = useQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(20).then(() => ['string']), }) return ( @@ -103,10 +106,10 @@ describe('Preact hydration', () => { const dehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() - function Page({ queryKey }: { queryKey: [string] }) { + function Page({ queryKey: pageKey }: { queryKey: Array }) { const { data } = useQuery({ - queryKey, - queryFn: () => sleep(20).then(() => queryKey), + queryKey: pageKey, + queryFn: () => sleep(20).then(() => pageKey), }) return (
@@ -118,24 +121,24 @@ describe('Preact hydration', () => { const rendered = render( - + , ) expect(rendered.getByText('stringCached')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(21) - expect(rendered.getByText('string')).toBeInTheDocument() + expect(rendered.getByText(stringKey[0]!)).toBeInTheDocument() const intermediateClient = new QueryClient() intermediateClient.prefetchQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(20).then(() => ['should change']), }) intermediateClient.prefetchQuery({ - queryKey: ['added'], - queryFn: () => sleep(20).then(() => ['added']), + queryKey: addedKey, + queryFn: () => sleep(20).then(() => [addedKey[0]]), }) await vi.advanceTimersByTimeAsync(20) const dehydrated = dehydrate(intermediateClient) @@ -144,21 +147,21 @@ describe('Preact hydration', () => { rendered.rerender( - - + + , ) // Existing observer should not have updated at this point, // as that would indicate a side effect in the render phase - expect(rendered.getByText('string')).toBeInTheDocument() + expect(rendered.getByText(stringKey[0]!)).toBeInTheDocument() // New query data should be available immediately - expect(rendered.getByText('added')).toBeInTheDocument() + expect(rendered.getByText(addedKey[0]!)).toBeInTheDocument() await vi.advanceTimersByTimeAsync(0) // After effects phase has had time to run, the observer should have updated - expect(rendered.queryByText('string')).not.toBeInTheDocument() + expect(rendered.queryByText(stringKey[0]!)).not.toBeInTheDocument() expect(rendered.getByText('should change')).toBeInTheDocument() queryClient.clear() @@ -174,10 +177,10 @@ describe('Preact hydration', () => { const initialDehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() - function Page({ queryKey }: { queryKey: [string] }) { + function Page({ queryKey: pageKey }: { queryKey: Array }) { const { data } = useQuery({ - queryKey, - queryFn: () => sleep(20).then(() => queryKey), + queryKey: pageKey, + queryFn: () => sleep(20).then(() => pageKey), }) return (
@@ -189,23 +192,23 @@ describe('Preact hydration', () => { const rendered = render( - + , ) expect(rendered.getByText('stringCached')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(21) - expect(rendered.getByText('string')).toBeInTheDocument() + expect(rendered.getByText(stringKey[0]!)).toBeInTheDocument() const intermediateClient = new QueryClient() intermediateClient.prefetchQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(20).then(() => ['should not change']), }) intermediateClient.prefetchQuery({ - queryKey: ['added'], - queryFn: () => sleep(20).then(() => ['added']), + queryKey: addedKey, + queryFn: () => sleep(20).then(() => [addedKey[0]]), }) await vi.advanceTimersByTimeAsync(20) @@ -223,8 +226,8 @@ describe('Preact hydration', () => { - - + + @@ -238,26 +241,26 @@ describe('Preact hydration', () => { rendered.rerender( - - + + , ) // This query existed before the transition so it should stay the same - expect(rendered.getByText('string')).toBeInTheDocument() + expect(rendered.getByText(stringKey[0]!)).toBeInTheDocument() expect( rendered.queryByText('should not change'), ).not.toBeInTheDocument() // New query data should be available immediately because it was // hydrated in the previous transition, even though the new dehydrated // state did not contain it - expect(rendered.getByText('added')).toBeInTheDocument() + expect(rendered.getByText(addedKey[0]!)).toBeInTheDocument() }) await vi.advanceTimersByTimeAsync(20) // It should stay the same even after effects have had a chance to run - expect(rendered.getByText('string')).toBeInTheDocument() + expect(rendered.getByText(stringKey[0]!)).toBeInTheDocument() expect(rendered.queryByText('should not change')).not.toBeInTheDocument() queryClient.clear() @@ -269,7 +272,7 @@ describe('Preact hydration', () => { function Page() { const { data } = useQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(20).then(() => ['string']), }) return ( @@ -429,7 +432,7 @@ describe('Preact hydration', () => { // with a dataUpdatedAt earlier than the dehydratedAt of the next query const clientQueryClient = new QueryClient() clientQueryClient.prefetchQuery({ - queryKey: ['promise'], + queryKey: promiseKey, queryFn: () => sleep(20).then(() => 'existing'), }) await vi.advanceTimersByTimeAsync(20) @@ -442,7 +445,7 @@ describe('Preact hydration', () => { }, }) prefetchQueryClient.prefetchQuery({ - queryKey: ['promise'], + queryKey: promiseKey, queryFn: () => sleep(10).then(() => Promise.reject(new Error('Query failed'))), }) @@ -455,7 +458,7 @@ describe('Preact hydration', () => { function Page() { const { data } = useQuery({ - queryKey: ['promise'], + queryKey: promiseKey, queryFn: () => sleep(20).then(() => ['new']), }) return ( diff --git a/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx index 5c27ced8ee2..bf3daec3355 100644 --- a/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -4,6 +4,7 @@ import type { InfiniteData, InitialDataFunction, } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it, test } from 'vitest' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -15,7 +16,7 @@ describe('infiniteQueryOptions', () => { it('should not allow excess properties', () => { assertType( infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), getNextPageParam: () => 1, initialPageParam: 1, @@ -26,7 +27,7 @@ describe('infiniteQueryOptions', () => { }) it('should infer types for callbacks', () => { infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), staleTime: 1000, getNextPageParam: () => 1, @@ -38,7 +39,7 @@ describe('infiniteQueryOptions', () => { }) it('should work when passed to useInfiniteQuery', () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -53,7 +54,7 @@ describe('infiniteQueryOptions', () => { }) it('should work when passed to useSuspenseInfiniteQuery', () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -65,7 +66,7 @@ describe('infiniteQueryOptions', () => { }) it('should work when passed to fetchInfiniteQuery', async () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -76,61 +77,61 @@ describe('infiniteQueryOptions', () => { expectTypeOf(data).toEqualTypeOf>() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => 'string', getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), select: (data) => data.pages, getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf< InfiniteData | undefined >() }) it('should properly type when passed to setQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf< InfiniteData | undefined >() @@ -143,7 +144,7 @@ describe('infiniteQueryOptions', () => { }) it('should throw a type error when using queryFn with skipToken in a suspense query', () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve('string'), getNextPageParam: () => 1, @@ -157,7 +158,7 @@ describe('infiniteQueryOptions', () => { test('should not be allowed to be passed to non-infinite query functions', () => { const queryClient = new QueryClient() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -183,7 +184,7 @@ describe('infiniteQueryOptions', () => { test('allow optional initialData function', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ - queryKey: ['example'], + queryKey: queryKey(), queryFn: () => initialData, initialData: initialData ? () => ({ pages: [initialData], pageParams: [] }) @@ -201,7 +202,7 @@ describe('infiniteQueryOptions', () => { test('allow optional initialData object', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ - queryKey: ['example'], + queryKey: queryKey(), queryFn: () => initialData, initialData: initialData ? { pages: [initialData], pageParams: [] } diff --git a/packages/preact-query/src/__tests__/infiniteQueryOptions.test.tsx b/packages/preact-query/src/__tests__/infiniteQueryOptions.test.tsx index 88017ced53b..4ba6cddbcb0 100644 --- a/packages/preact-query/src/__tests__/infiniteQueryOptions.test.tsx +++ b/packages/preact-query/src/__tests__/infiniteQueryOptions.test.tsx @@ -1,3 +1,4 @@ +import { queryKey } from '@tanstack/query-test-utils' import { describe, expect, it } from 'vitest' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -5,8 +6,9 @@ import type { UseInfiniteQueryOptions } from '../types' describe('infiniteQueryOptions', () => { it('should return the object received as a parameter without any modification.', () => { + const key = queryKey() const object: UseInfiniteQueryOptions = { - queryKey: ['key'], + queryKey: key, queryFn: () => Promise.resolve(5), getNextPageParam: () => null, initialPageParam: null, diff --git a/packages/preact-query/src/__tests__/mutationOptions.test-d.tsx b/packages/preact-query/src/__tests__/mutationOptions.test-d.tsx index b945477f8dc..86f48506a53 100644 --- a/packages/preact-query/src/__tests__/mutationOptions.test-d.tsx +++ b/packages/preact-query/src/__tests__/mutationOptions.test-d.tsx @@ -5,6 +5,7 @@ import type { MutationState, WithRequired, } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it } from 'vitest' import { useIsMutating, useMutation, useMutationState } from '..' @@ -16,7 +17,7 @@ describe('mutationOptions', () => { // @ts-expect-error this is a good error, because onMutates does not exist! mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onMutates: 1000, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -27,7 +28,7 @@ describe('mutationOptions', () => { it('should infer types for callbacks', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -39,7 +40,7 @@ describe('mutationOptions', () => { mutationFn: () => { throw new Error('fail') }, - mutationKey: ['key'], + mutationKey: queryKey(), onError: (error) => { expectTypeOf(error).toEqualTypeOf() }, @@ -52,14 +53,14 @@ describe('mutationOptions', () => { expectTypeOf(vars).toEqualTypeOf<{ id: string }>() return Promise.resolve(5) }, - mutationKey: ['with-vars'], + mutationKey: queryKey(), }) }) it('should infer result type correctly', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onMutate: () => { return { name: 'onMutateResult' } }, @@ -75,7 +76,7 @@ describe('mutationOptions', () => { expectTypeOf(context).toEqualTypeOf() return Promise.resolve(5) }, - mutationKey: ['key'], + mutationKey: queryKey(), onMutate: (_variables, context) => { expectTypeOf(context).toEqualTypeOf() }, @@ -113,7 +114,7 @@ describe('mutationOptions', () => { expectTypeOf( mutationOptions({ mutationFn: (id: string) => Promise.resolve(id.length), - mutationKey: ['key'], + mutationKey: queryKey(), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -139,7 +140,7 @@ describe('mutationOptions', () => { it('should infer types when used with useMutation', () => { const mutation = useMutation( mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve('data'), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -164,7 +165,7 @@ describe('mutationOptions', () => { it('should infer types when used with useIsMutating', () => { const isMutating = useIsMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), ) @@ -183,7 +184,7 @@ describe('mutationOptions', () => { const isMutating = queryClient.isMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), ) @@ -200,7 +201,7 @@ describe('mutationOptions', () => { it('should infer types when used with useMutationState', () => { const mutationState = useMutationState({ filters: mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), }) diff --git a/packages/preact-query/src/__tests__/mutationOptions.test.tsx b/packages/preact-query/src/__tests__/mutationOptions.test.tsx index 359919d121d..8b3864b4688 100644 --- a/packages/preact-query/src/__tests__/mutationOptions.test.tsx +++ b/packages/preact-query/src/__tests__/mutationOptions.test.tsx @@ -1,6 +1,6 @@ import { QueryClient } from '@tanstack/query-core' import type { MutationState } from '@tanstack/query-core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { fireEvent } from '@testing-library/preact' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' @@ -38,8 +38,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data'), }) @@ -129,8 +130,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useIsMutating', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -181,8 +183,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with useIsMutating (filter mutationOpts1.mutationKey)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: key, mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -235,8 +238,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data'), }) @@ -298,8 +302,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -336,8 +341,9 @@ describe('mutationOptions', () => { it('should return the number of fetching mutations when used with queryClient.isMutating (filter mutationOpt1.mutationKey)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -378,8 +384,9 @@ describe('mutationOptions', () => { MutationState > = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data'), }) @@ -447,8 +454,9 @@ describe('mutationOptions', () => { MutationState > = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -489,8 +497,9 @@ describe('mutationOptions', () => { MutationState > = [] const queryClient = new QueryClient() + const key = queryKey() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ diff --git a/packages/preact-query/src/__tests__/queryOptions.test-d.tsx b/packages/preact-query/src/__tests__/queryOptions.test-d.tsx index 1e44792264f..6f0d34c6bac 100644 --- a/packages/preact-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/preact-query/src/__tests__/queryOptions.test-d.tsx @@ -9,6 +9,7 @@ import type { InitialDataFunction, QueryObserverResult, } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it } from 'vitest' import { queryOptions } from '../queryOptions' @@ -21,7 +22,7 @@ describe('queryOptions', () => { it('should not allow excess properties', () => { assertType( queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error this is a good error, because stallTime does not exist! stallTime: 1000, @@ -30,7 +31,7 @@ describe('queryOptions', () => { }) it('should infer types for callbacks', () => { queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), staleTime: 1000, select: (data) => { @@ -40,7 +41,7 @@ describe('queryOptions', () => { }) it('should work when passed to useQuery', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -49,7 +50,7 @@ describe('queryOptions', () => { }) it('should work when passed to useSuspenseQuery', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -59,7 +60,7 @@ describe('queryOptions', () => { it('should work when passed to fetchQuery', async () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -68,7 +69,7 @@ describe('queryOptions', () => { }) it('should work when passed to useQueries', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -79,90 +80,90 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => 5, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with unknown if there is no queryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), select: (data) => data.toString(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf() }) it('should return the proper type when passed to getQueryState', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const state = queryClient.getQueryState(queryKey) + const state = queryClient.getQueryState(tagged) expectTypeOf(state?.data).toEqualTypeOf() }) it('should properly type updaterFn when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) expectTypeOf(data).toEqualTypeOf() }) it('should properly type value when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '5') + queryClient.setQueryData(tagged, '5') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '5') + queryClient.setQueryData(tagged, () => '5') - const data = queryClient.setQueryData(queryKey, 5) + const data = queryClient.setQueryData(tagged, 5) expectTypeOf(data).toEqualTypeOf() }) it('should infer even if there is a conditional skipToken', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }) @@ -173,7 +174,7 @@ describe('queryOptions', () => { it('should infer to unknown if we disable a query with just a skipToken', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: skipToken, }) @@ -184,7 +185,7 @@ describe('queryOptions', () => { it('should throw a type error when using queryFn with skipToken in a suspense query', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }) // @ts-expect-error TS2345 @@ -194,7 +195,7 @@ describe('queryOptions', () => { it('should return the proper type when passed to QueriesObserver', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -208,7 +209,7 @@ describe('queryOptions', () => { it('should allow undefined response in initialData', () => { assertType((id: string | null) => queryOptions({ - queryKey: ['todo', id], + queryKey: [...queryKey(), id], queryFn: () => Promise.resolve({ id: '1', @@ -228,7 +229,7 @@ describe('queryOptions', () => { it('should allow optional initialData object', () => { const testFn = (id?: string) => { const options = queryOptions({ - queryKey: ['test'], + queryKey: queryKey(), queryFn: () => Promise.resolve('something string'), initialData: id ? 'initial string' : undefined, }) @@ -248,7 +249,7 @@ describe('queryOptions', () => { } const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }) diff --git a/packages/preact-query/src/__tests__/ssr-hydration.test.tsx b/packages/preact-query/src/__tests__/ssr-hydration.test.tsx index 10154d01890..c090696811e 100644 --- a/packages/preact-query/src/__tests__/ssr-hydration.test.tsx +++ b/packages/preact-query/src/__tests__/ssr-hydration.test.tsx @@ -1,3 +1,4 @@ +import { queryKey } from '@tanstack/query-test-utils' import { act } from '@testing-library/preact' import { hydrate as preactHydrate, render } from 'preact' import type { VNode } from 'preact' @@ -36,6 +37,9 @@ function PrintStateComponent({ componentName, result }: any): any { } describe('Server side rendering with de/rehydration', () => { + const successKey = queryKey() + const errorKey = queryKey() + beforeAll(() => { vi.useFakeTimers() }) @@ -53,7 +57,7 @@ describe('Server side rendering with de/rehydration', () => { // -- Shared part -- function SuccessComponent() { const result = useQuery({ - queryKey: ['success'], + queryKey: successKey, queryFn: () => fetchDataSuccess('success!'), }) return ( @@ -69,7 +73,7 @@ describe('Server side rendering with de/rehydration', () => { queryCache: prefetchCache, }) await prefetchClient.prefetchQuery({ - queryKey: ['success'], + queryKey: successKey, queryFn: () => fetchDataSuccess('success'), }) const dehydratedStateServer = dehydrate(prefetchClient) @@ -130,7 +134,7 @@ describe('Server side rendering with de/rehydration', () => { // -- Shared part -- function ErrorComponent() { const result = useQuery({ - queryKey: ['error'], + queryKey: errorKey, queryFn: () => fetchDataError(), retry: false, }) @@ -146,7 +150,7 @@ describe('Server side rendering with de/rehydration', () => { queryCache: prefetchCache, }) await prefetchClient.prefetchQuery({ - queryKey: ['error'], + queryKey: errorKey, queryFn: () => fetchDataError(), }) const dehydratedStateServer = dehydrate(prefetchClient) @@ -207,7 +211,7 @@ describe('Server side rendering with de/rehydration', () => { // -- Shared part -- function SuccessComponent() { const result = useQuery({ - queryKey: ['success'], + queryKey: successKey, queryFn: () => fetchDataSuccess('success!'), }) return ( diff --git a/packages/preact-query/src/__tests__/suspense.test.tsx b/packages/preact-query/src/__tests__/suspense.test.tsx index 05f50d0abeb..237919de17b 100644 --- a/packages/preact-query/src/__tests__/suspense.test.tsx +++ b/packages/preact-query/src/__tests__/suspense.test.tsx @@ -59,7 +59,7 @@ describe('Suspense Timer Tests', () => { it('should enforce minimum staleTime of 1000ms when using suspense with number', async () => { const TestComponent = createTestQuery({ fetchCount, - queryKey: ['test'], + queryKey: queryKey(), staleTime: 10, }) @@ -85,7 +85,7 @@ describe('Suspense Timer Tests', () => { it('should enforce minimum staleTime of 1000ms when using suspense with function', async () => { const TestComponent = createTestQuery({ fetchCount, - queryKey: ['test-func'], + queryKey: queryKey(), staleTime: () => 10, }) diff --git a/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx b/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx index ec858b17038..b11002c9e2c 100644 --- a/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx @@ -1,5 +1,6 @@ import { QueryClient } from '@tanstack/query-core' import type { InfiniteData } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { describe, expectTypeOf, it } from 'vitest' import { useInfiniteQuery } from '../useInfiniteQuery' @@ -7,7 +8,7 @@ import { useInfiniteQuery } from '../useInfiniteQuery' describe('pageParam', () => { it('initialPageParam should define type of param passed to queryFunctionContext', () => { useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { expectTypeOf(pageParam).toEqualTypeOf() }, @@ -18,7 +19,7 @@ describe('pageParam', () => { it('direction should be passed to queryFn of useInfiniteQuery', () => { useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ direction }) => { expectTypeOf(direction).toEqualTypeOf<'forward' | 'backward'>() }, @@ -30,7 +31,7 @@ describe('pageParam', () => { it('initialPageParam should define type of param passed to queryFunctionContext for fetchInfiniteQuery', () => { const queryClient = new QueryClient() queryClient.fetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { expectTypeOf(pageParam).toEqualTypeOf() }, @@ -41,7 +42,7 @@ describe('pageParam', () => { it('initialPageParam should define type of param passed to queryFunctionContext for prefetchInfiniteQuery', () => { const queryClient = new QueryClient() queryClient.prefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { expectTypeOf(pageParam).toEqualTypeOf() }, @@ -52,7 +53,7 @@ describe('pageParam', () => { describe('select', () => { it('should still return paginated data if no select result', () => { const infiniteQuery = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return pageParam * 5 }, @@ -68,7 +69,7 @@ describe('select', () => { it('should be able to transform data to arbitrary result', () => { const infiniteQuery = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return pageParam * 5 }, @@ -86,7 +87,7 @@ describe('select', () => { describe('getNextPageParam / getPreviousPageParam', () => { it('should get typed params', () => { const infiniteQuery = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return String(pageParam) }, @@ -127,7 +128,7 @@ describe('error booleans', () => { isLoadingError, isRefetchError, } = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return pageParam * 5 }, diff --git a/packages/preact-query/src/__tests__/useMutationState.test.tsx b/packages/preact-query/src/__tests__/useMutationState.test.tsx index 8618a5d9fd3..33ff004f325 100644 --- a/packages/preact-query/src/__tests__/useMutationState.test.tsx +++ b/packages/preact-query/src/__tests__/useMutationState.test.tsx @@ -1,4 +1,4 @@ -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { fireEvent, render } from '@testing-library/preact' import { useEffect } from 'preact/hooks' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' @@ -18,6 +18,8 @@ describe('useIsMutating', () => { it('should return the number of fetching mutations', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationKey1 = queryKey() + const mutationKey2 = queryKey() function IsMutating() { const isMutating = useIsMutating() @@ -29,11 +31,11 @@ describe('useIsMutating', () => { function Mutations() { const { mutate: mutate1 } = useMutation({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(50).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ - mutationKey: ['mutation2'], + mutationKey: mutationKey2, mutationFn: () => sleep(10).then(() => 'data'), }) @@ -79,20 +81,22 @@ describe('useIsMutating', () => { it('should filter correctly by mutationKey', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationKey1 = queryKey() + const mutationKey2 = queryKey() function IsMutating() { - const isMutating = useIsMutating({ mutationKey: ['mutation1'] }) + const isMutating = useIsMutating({ mutationKey: mutationKey1 }) isMutatingArray.push(isMutating) return null } function Page() { const { mutate: mutate1 } = useMutation({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(100).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ - mutationKey: ['mutation2'], + mutationKey: mutationKey2, mutationFn: () => sleep(100).then(() => 'data'), }) @@ -113,11 +117,13 @@ describe('useIsMutating', () => { it('should filter correctly by predicate', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationKey1 = queryKey() + const mutationKey2 = queryKey() function IsMutating() { const isMutating = useIsMutating({ predicate: (mutation) => - mutation.options.mutationKey?.[0] === 'mutation1', + mutation.options.mutationKey?.[0] === mutationKey1[0], }) isMutatingArray.push(isMutating) return null @@ -125,11 +131,11 @@ describe('useIsMutating', () => { function Page() { const { mutate: mutate1 } = useMutation({ - mutationKey: ['mutation1'], + mutationKey: mutationKey1, mutationFn: () => sleep(100).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ - mutationKey: ['mutation2'], + mutationKey: mutationKey2, mutationFn: () => sleep(100).then(() => 'data'), }) @@ -149,12 +155,13 @@ describe('useIsMutating', () => { it('should use provided custom queryClient', async () => { const queryClient = new QueryClient() + const key = queryKey() function Page() { const isMutating = useIsMutating({}, queryClient) const { mutate } = useMutation( { - mutationKey: ['mutation1'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data'), }, queryClient, @@ -190,7 +197,7 @@ describe('useMutationState', () => { it('should return variables after calling mutate', async () => { const queryClient = new QueryClient() const variables: Array> = [] - const mutationKey = ['mutation'] + const mutationKey = queryKey() function Variables() { variables.push( diff --git a/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx b/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx index 83f2a537c75..048f340991f 100644 --- a/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx @@ -1,3 +1,4 @@ +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it } from 'vitest' import { usePrefetchInfiniteQuery } from '..' @@ -5,7 +6,7 @@ import { usePrefetchInfiniteQuery } from '..' describe('usePrefetchInfiniteQuery', () => { it('should return nothing', () => { const result = usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -18,7 +19,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( // @ts-expect-error TS2345 usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }), ) @@ -27,7 +28,7 @@ describe('usePrefetchInfiniteQuery', () => { it('should not allow refetchInterval, enabled or throwOnError options', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -38,7 +39,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -49,7 +50,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, diff --git a/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx b/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx index 17f0dc5437d..6f5d5102514 100644 --- a/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx @@ -1,3 +1,4 @@ +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it } from 'vitest' import { skipToken, usePrefetchQuery } from '..' @@ -5,7 +6,7 @@ import { skipToken, usePrefetchQuery } from '..' describe('usePrefetchQuery', () => { it('should return nothing', () => { const result = usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -15,7 +16,7 @@ describe('usePrefetchQuery', () => { it('should not allow refetchInterval, enabled or throwOnError options', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 refetchInterval: 1000, @@ -24,7 +25,7 @@ describe('usePrefetchQuery', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 enabled: true, @@ -33,7 +34,7 @@ describe('usePrefetchQuery', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 throwOnError: true, @@ -44,14 +45,14 @@ describe('usePrefetchQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }), ) assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), diff --git a/packages/preact-query/src/__tests__/useQueries.test-d.tsx b/packages/preact-query/src/__tests__/useQueries.test-d.tsx index ca6cd0cb451..b9a12ab0094 100644 --- a/packages/preact-query/src/__tests__/useQueries.test-d.tsx +++ b/packages/preact-query/src/__tests__/useQueries.test-d.tsx @@ -1,3 +1,4 @@ +import { queryKey } from '@tanstack/query-test-utils' import { describe, expectTypeOf, it } from 'vitest' import { skipToken } from '..' @@ -9,7 +10,7 @@ import { useQueries } from '../useQueries' describe('UseQueries config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { const query1 = { - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -21,13 +22,13 @@ describe('UseQueries config object overload', () => { } const query2 = { - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'Query Data', initialData: 'initial data', } const query3 = { - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'Query Data', } @@ -44,7 +45,7 @@ describe('UseQueries config object overload', () => { it('TData should be defined when passed through queryOptions', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -63,13 +64,13 @@ describe('UseQueries config object overload', () => { it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { const query1 = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data) => data > 1, }) const query2 = { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data: number) => data > 1, } @@ -86,7 +87,7 @@ describe('UseQueries config object overload', () => { const queryResults = useQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -113,7 +114,7 @@ describe('UseQueries config object overload', () => { queries: [ { ...options, - queryKey: ['todos-key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), }, ], @@ -131,7 +132,7 @@ describe('UseQueries config object overload', () => { const queryResults = useQueries({ queries: [ { - queryKey: ['withSkipToken'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }, ], @@ -147,14 +148,14 @@ describe('UseQueries config object overload', () => { const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => Promise.resolve(true), }), } diff --git a/packages/preact-query/src/__tests__/useQueries.test.tsx b/packages/preact-query/src/__tests__/useQueries.test.tsx index 4a59b4e3389..6b5d3934359 100644 --- a/packages/preact-query/src/__tests__/useQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useQueries.test.tsx @@ -389,7 +389,7 @@ describe('useQueries', () => { const result4 = useQueries({ queries: [ queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() @@ -397,7 +397,7 @@ describe('useQueries', () => { }, }), queryOptions({ - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() @@ -1697,15 +1697,17 @@ describe('useQueries', () => { it('should not cause infinite re-renders when removing last query', async () => { let renderCount = 0 + const key1 = queryKey() + const key2 = queryKey() function Page() { const [queries, setQueries] = useState([ { - queryKey: ['query1'], + queryKey: key1, queryFn: () => 'data1', }, { - queryKey: ['query2'], + queryKey: key2, queryFn: () => 'data2', }, ]) @@ -1721,7 +1723,7 @@ describe('useQueries', () => { onClick={() => { setQueries([ { - queryKey: ['query1'], + queryKey: key1, queryFn: () => 'data1', }, ]) @@ -1733,7 +1735,7 @@ describe('useQueries', () => { onClick={() => { setQueries([ { - queryKey: ['query2'], + queryKey: key2, queryFn: () => 'data2', }, ]) diff --git a/packages/preact-query/src/__tests__/useQuery.test-d.tsx b/packages/preact-query/src/__tests__/useQuery.test-d.tsx index d304b90d69d..55461084db7 100644 --- a/packages/preact-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test-d.tsx @@ -180,7 +180,7 @@ describe('useQuery', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: { wow: true }, }) @@ -190,7 +190,7 @@ describe('useQuery', () => { it('TData should be defined when passed through queryOptions', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -207,7 +207,7 @@ describe('useQuery', () => { it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }) @@ -221,7 +221,7 @@ describe('useQuery', () => { it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -237,7 +237,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is NOT provided', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -250,7 +250,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -264,7 +264,7 @@ describe('useQuery', () => { it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { const { data, isSuccess } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -283,7 +283,7 @@ describe('useQuery', () => { // @ts-expect-error // eslint-disable-next-line const result: UseQueryResult<{ wow: string }> = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -297,7 +297,7 @@ describe('useQuery', () => { it('data should not have undefined when initialData is provided', () => { const { data } = useQuery({ - queryKey: ['query-key'], + queryKey: queryKey(), initialData: 42, }) @@ -314,7 +314,7 @@ describe('useQuery', () => { ) => { return useQuery({ ...options, - queryKey: ['todos-key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), }) } @@ -329,7 +329,7 @@ describe('useQuery', () => { it('should be able to use structuralSharing with unknown types', () => { // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => 5, structuralSharing: (oldData, newData) => { expectTypeOf(oldData).toBeUnknown() diff --git a/packages/preact-query/src/__tests__/useQuery.test.tsx b/packages/preact-query/src/__tests__/useQuery.test.tsx index ed569d52930..1f26a863951 100644 --- a/packages/preact-query/src/__tests__/useQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test.tsx @@ -4907,6 +4907,7 @@ describe('useQuery', () => { }) it('should refetch when changed enabled to true in error state', async () => { + const key = queryKey() const queryFn = vi.fn<(...args: Array) => unknown>() queryFn.mockImplementation(() => sleep(10).then(() => Promise.reject(new Error('Suspense Error Bingo'))), @@ -4914,7 +4915,7 @@ describe('useQuery', () => { function Page({ enabled }: { enabled: boolean }) { const { error, isPending } = useQuery({ - queryKey: ['key'], + queryKey: key, queryFn, enabled, retry: false, diff --git a/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx b/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx index 9487a500491..d2b3835de08 100644 --- a/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx @@ -1,5 +1,6 @@ import { skipToken } from '@tanstack/query-core' import type { InfiniteData } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it } from 'vitest' import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery' @@ -7,7 +8,7 @@ import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery' describe('useSuspenseInfiniteQuery', () => { it('should always have data defined', () => { const { data } = useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -19,7 +20,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }), @@ -27,7 +28,7 @@ describe('useSuspenseInfiniteQuery', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), @@ -36,7 +37,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not have pending status', () => { const { status } = useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -48,7 +49,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not allow placeholderData, enabled or throwOnError props', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -60,7 +61,7 @@ describe('useSuspenseInfiniteQuery', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -71,7 +72,7 @@ describe('useSuspenseInfiniteQuery', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -83,7 +84,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not return isPlaceholderData', () => { const query = useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, diff --git a/packages/preact-query/src/__tests__/useSuspenseQueries.test-d.tsx b/packages/preact-query/src/__tests__/useSuspenseQueries.test-d.tsx index 99dd4a9e2d3..9101d203ce4 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQueries.test-d.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQueries.test-d.tsx @@ -1,3 +1,4 @@ +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it } from 'vitest' import { skipToken, useSuspenseQueries } from '..' @@ -8,7 +9,7 @@ import type { UseQueryOptions, UseSuspenseQueryResult } from '../types' describe('UseSuspenseQueries config object overload', () => { it('TData should always be defined', () => { const query1 = { - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -20,7 +21,7 @@ describe('UseSuspenseQueries config object overload', () => { } const query2 = { - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'Query Data', } @@ -35,7 +36,7 @@ describe('UseSuspenseQueries config object overload', () => { it('TData should be defined when passed through queryOptions', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -51,13 +52,13 @@ describe('UseSuspenseQueries config object overload', () => { it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { const query1 = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data) => data > 1, }) const query2 = { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data: number) => data > 1, } @@ -74,7 +75,7 @@ describe('UseSuspenseQueries config object overload', () => { const queryResults = useSuspenseQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -95,7 +96,7 @@ describe('UseSuspenseQueries config object overload', () => { useSuspenseQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }, @@ -107,7 +108,7 @@ describe('UseSuspenseQueries config object overload', () => { useSuspenseQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }, @@ -120,7 +121,7 @@ describe('UseSuspenseQueries config object overload', () => { const queryResults = useSuspenseQueries({ queries: [ { - queryKey: ['withSkipToken'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }, @@ -146,7 +147,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ { ...options, - queryKey: ['todos-key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), }, ], @@ -164,14 +165,14 @@ describe('UseSuspenseQueries config object overload', () => { const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => Promise.resolve(true), }), } @@ -199,7 +200,7 @@ describe('UseSuspenseQueries config object overload', () => { it('queryOptions with initialData works on useSuspenseQueries', () => { const query1 = queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => 'Query Data', initialData: 'initial data', }) @@ -216,7 +217,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ // @ts-expect-error queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), ], @@ -228,7 +229,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ // @ts-expect-error queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), initialData: 5, }), @@ -243,7 +244,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ { ...queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => 'Query Data', }), select(data: string) { diff --git a/packages/preact-query/src/__tests__/useSuspenseQuery.test-d.tsx b/packages/preact-query/src/__tests__/useSuspenseQuery.test-d.tsx index 310d2a49248..53adae90660 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQuery.test-d.tsx @@ -1,4 +1,5 @@ import { skipToken } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { assertType, describe, expectTypeOf, it } from 'vitest' import { useSuspenseQuery } from '../useSuspenseQuery' @@ -6,7 +7,7 @@ import { useSuspenseQuery } from '../useSuspenseQuery' describe('useSuspenseQuery', () => { it('should always have data defined', () => { const { data } = useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -15,7 +16,7 @@ describe('useSuspenseQuery', () => { it('should not have pending status', () => { const { status } = useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -25,14 +26,14 @@ describe('useSuspenseQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }), ) assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), @@ -42,7 +43,7 @@ describe('useSuspenseQuery', () => { it('should not allow placeholderData, enabled or throwOnError props', () => { assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 placeholderData: 5, @@ -51,7 +52,7 @@ describe('useSuspenseQuery', () => { ) assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 enabled: true, @@ -59,7 +60,7 @@ describe('useSuspenseQuery', () => { ) assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 throwOnError: true, @@ -70,7 +71,7 @@ describe('useSuspenseQuery', () => { it('should not return isPlaceholderData', () => { expectTypeOf( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }), ).not.toHaveProperty('isPlaceholderData') @@ -78,7 +79,7 @@ describe('useSuspenseQuery', () => { it('should type-narrow the error field', () => { const query = useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) From f6991900dcd50367a3580d27f69ddfb6bd3a34f3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 7 Apr 2026 16:46:01 +0900 Subject: [PATCH 070/414] test(react-query): replace hardcoded query keys with 'queryKey()' utility (#10420) * test(react-query): replace hardcoded query keys with 'queryKey()' utility * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../__tests__/infiniteQueryOptions.test-d.tsx | 49 ++++++------ .../__tests__/infiniteQueryOptions.test.tsx | 3 +- .../src/__tests__/mutationOptions.test-d.tsx | 23 +++--- .../src/__tests__/mutationOptions.test.tsx | 20 ++--- .../src/__tests__/queryOptions.test-d.tsx | 77 ++++++++++--------- .../src/__tests__/ssr-hydration.test.tsx | 14 ++-- .../src/__tests__/suspense.test.tsx | 4 +- .../src/__tests__/useInfiniteQuery.test-d.tsx | 17 ++-- .../src/__tests__/useMutationState.test.tsx | 28 ++++--- .../usePrefetchInfiniteQuery.test-d.tsx | 11 +-- .../src/__tests__/usePrefetchQuery.test-d.tsx | 13 ++-- .../src/__tests__/useQueries.test-d.tsx | 23 +++--- .../src/__tests__/useQueries.test.tsx | 17 ++-- .../src/__tests__/useQuery.test-d.tsx | 22 +++--- .../src/__tests__/useQuery.test.tsx | 3 +- .../useSuspenseInfiniteQuery.test-d.tsx | 17 ++-- .../__tests__/useSuspenseQueries.test-d.tsx | 33 ++++---- .../src/__tests__/useSuspenseQuery.test-d.tsx | 19 ++--- 18 files changed, 209 insertions(+), 184 deletions(-) diff --git a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx index 01e1cca41b1..aaa38f4aa37 100644 --- a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -1,5 +1,6 @@ import { assertType, describe, expectTypeOf, it, test } from 'vitest' import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { infiniteQueryOptions } from '../infiniteQueryOptions' import { useInfiniteQuery } from '../useInfiniteQuery' import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery' @@ -14,7 +15,7 @@ describe('infiniteQueryOptions', () => { it('should not allow excess properties', () => { assertType( infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), getNextPageParam: () => 1, initialPageParam: 1, @@ -25,7 +26,7 @@ describe('infiniteQueryOptions', () => { }) it('should infer types for callbacks', () => { infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), staleTime: 1000, getNextPageParam: () => 1, @@ -37,7 +38,7 @@ describe('infiniteQueryOptions', () => { }) it('should work when passed to useInfiniteQuery', () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -52,7 +53,7 @@ describe('infiniteQueryOptions', () => { }) it('should work when passed to useSuspenseInfiniteQuery', () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -64,7 +65,7 @@ describe('infiniteQueryOptions', () => { }) it('should work when passed to fetchInfiniteQuery', async () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -75,61 +76,61 @@ describe('infiniteQueryOptions', () => { expectTypeOf(data).toEqualTypeOf>() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => 'string', getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), select: (data) => data.pages, getNextPageParam: () => 1, initialPageParam: 1, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf>() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf< InfiniteData | undefined >() }) it('should properly type when passed to setQueryData', () => { - const { queryKey } = infiniteQueryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = infiniteQueryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf< InfiniteData | undefined >() @@ -142,7 +143,7 @@ describe('infiniteQueryOptions', () => { }) it('should throw a type error when using queryFn with skipToken in a suspense query', () => { const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve('string'), getNextPageParam: () => 1, @@ -156,7 +157,7 @@ describe('infiniteQueryOptions', () => { test('should not be allowed to be passed to non-infinite query functions', () => { const queryClient = new QueryClient() const options = infiniteQueryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -182,7 +183,7 @@ describe('infiniteQueryOptions', () => { test('allow optional initialData function', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ - queryKey: ['example'], + queryKey: queryKey(), queryFn: () => initialData, initialData: initialData ? () => ({ pages: [initialData], pageParams: [] }) @@ -200,7 +201,7 @@ describe('infiniteQueryOptions', () => { test('allow optional initialData object', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ - queryKey: ['example'], + queryKey: queryKey(), queryFn: () => initialData, initialData: initialData ? { pages: [initialData], pageParams: [] } diff --git a/packages/react-query/src/__tests__/infiniteQueryOptions.test.tsx b/packages/react-query/src/__tests__/infiniteQueryOptions.test.tsx index 88017ced53b..d48fd504378 100644 --- a/packages/react-query/src/__tests__/infiniteQueryOptions.test.tsx +++ b/packages/react-query/src/__tests__/infiniteQueryOptions.test.tsx @@ -1,4 +1,5 @@ import { describe, expect, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { infiniteQueryOptions } from '../infiniteQueryOptions' import type { UseInfiniteQueryOptions } from '../types' @@ -6,7 +7,7 @@ import type { UseInfiniteQueryOptions } from '../types' describe('infiniteQueryOptions', () => { it('should return the object received as a parameter without any modification.', () => { const object: UseInfiniteQueryOptions = { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), getNextPageParam: () => null, initialPageParam: null, diff --git a/packages/react-query/src/__tests__/mutationOptions.test-d.tsx b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx index 2988426d655..5163fb210cb 100644 --- a/packages/react-query/src/__tests__/mutationOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx @@ -1,5 +1,6 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { useIsMutating, useMutation, useMutationState } from '..' import { mutationOptions } from '../mutationOptions' import type { @@ -15,7 +16,7 @@ describe('mutationOptions', () => { // @ts-expect-error this is a good error, because onMutates does not exist! mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onMutates: 1000, onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -26,7 +27,7 @@ describe('mutationOptions', () => { it('should infer types for callbacks', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -38,7 +39,7 @@ describe('mutationOptions', () => { mutationFn: () => { throw new Error('fail') }, - mutationKey: ['key'], + mutationKey: queryKey(), onError: (error) => { expectTypeOf(error).toEqualTypeOf() }, @@ -51,14 +52,14 @@ describe('mutationOptions', () => { expectTypeOf(vars).toEqualTypeOf<{ id: string }>() return Promise.resolve(5) }, - mutationKey: ['with-vars'], + mutationKey: queryKey(), }) }) it('should infer result type correctly', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], + mutationKey: queryKey(), onMutate: () => { return { name: 'onMutateResult' } }, @@ -74,7 +75,7 @@ describe('mutationOptions', () => { expectTypeOf(context).toEqualTypeOf() return Promise.resolve(5) }, - mutationKey: ['key'], + mutationKey: queryKey(), onMutate: (_variables, context) => { expectTypeOf(context).toEqualTypeOf() }, @@ -112,7 +113,7 @@ describe('mutationOptions', () => { expectTypeOf( mutationOptions({ mutationFn: (id: string) => Promise.resolve(id.length), - mutationKey: ['key'], + mutationKey: queryKey(), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, @@ -138,7 +139,7 @@ describe('mutationOptions', () => { it('should infer types when used with useMutation', () => { const mutation = useMutation( mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve('data'), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() @@ -163,7 +164,7 @@ describe('mutationOptions', () => { it('should infer types when used with useIsMutating', () => { const isMutating = useIsMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), ) @@ -182,7 +183,7 @@ describe('mutationOptions', () => { const isMutating = queryClient.isMutating( mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), ) @@ -199,7 +200,7 @@ describe('mutationOptions', () => { it('should infer types when used with useMutationState', () => { const mutationState = useMutationState({ filters: mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => Promise.resolve(5), }), }) diff --git a/packages/react-query/src/__tests__/mutationOptions.test.tsx b/packages/react-query/src/__tests__/mutationOptions.test.tsx index 0e43a149595..45129a398d0 100644 --- a/packages/react-query/src/__tests__/mutationOptions.test.tsx +++ b/packages/react-query/src/__tests__/mutationOptions.test.tsx @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryClient } from '@tanstack/query-core' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { fireEvent } from '@testing-library/react' import { mutationOptions } from '../mutationOptions' import { useIsMutating, useMutation, useMutationState } from '..' @@ -38,7 +38,7 @@ describe('mutationOptions', () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() const mutationOpts = mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => sleep(50).then(() => 'data'), }) @@ -129,7 +129,7 @@ describe('mutationOptions', () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -181,7 +181,7 @@ describe('mutationOptions', () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() const mutationOpts1 = mutationOptions({ - mutationKey: ['key'], + mutationKey: queryKey(), mutationFn: () => sleep(50).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -235,7 +235,7 @@ describe('mutationOptions', () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: queryKey(), mutationFn: () => sleep(500).then(() => 'data'), }) @@ -298,7 +298,7 @@ describe('mutationOptions', () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: queryKey(), mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -336,7 +336,7 @@ describe('mutationOptions', () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: queryKey(), mutationFn: () => sleep(500).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -378,7 +378,7 @@ describe('mutationOptions', () => { > = [] const queryClient = new QueryClient() const mutationOpts = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: queryKey(), mutationFn: () => sleep(10).then(() => 'data'), }) @@ -447,7 +447,7 @@ describe('mutationOptions', () => { > = [] const queryClient = new QueryClient() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: queryKey(), mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ @@ -489,7 +489,7 @@ describe('mutationOptions', () => { > = [] const queryClient = new QueryClient() const mutationOpts1 = mutationOptions({ - mutationKey: ['mutation'], + mutationKey: queryKey(), mutationFn: () => sleep(10).then(() => 'data1'), }) const mutationOpts2 = mutationOptions({ diff --git a/packages/react-query/src/__tests__/queryOptions.test-d.tsx b/packages/react-query/src/__tests__/queryOptions.test-d.tsx index b9c8602b5e8..dcfaeab6589 100644 --- a/packages/react-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/queryOptions.test-d.tsx @@ -5,6 +5,7 @@ import { dataTagSymbol, skipToken, } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { queryOptions } from '../queryOptions' import { useQuery } from '../useQuery' import { useQueries } from '../useQueries' @@ -20,7 +21,7 @@ describe('queryOptions', () => { it('should not allow excess properties', () => { assertType( queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error this is a good error, because stallTime does not exist! stallTime: 1000, @@ -29,7 +30,7 @@ describe('queryOptions', () => { }) it('should infer types for callbacks', () => { queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), staleTime: 1000, select: (data) => { @@ -39,7 +40,7 @@ describe('queryOptions', () => { }) it('should work when passed to useQuery', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -48,7 +49,7 @@ describe('queryOptions', () => { }) it('should work when passed to useSuspenseQuery', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -58,7 +59,7 @@ describe('queryOptions', () => { it('should work when passed to fetchQuery', async () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -67,7 +68,7 @@ describe('queryOptions', () => { }) it('should work when passed to useQueries', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -78,90 +79,90 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey even if no promise is returned', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => 5, }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with unknown if there is no queryFn', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should tag the queryKey with the result type of the QueryFn if select is used', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), select: (data) => data.toString(), }) - expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() + expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) it('should return the proper type when passed to getQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(tagged) expectTypeOf(data).toEqualTypeOf() }) it('should return the proper type when passed to getQueryState', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const state = queryClient.getQueryState(queryKey) + const state = queryClient.getQueryState(tagged) expectTypeOf(state?.data).toEqualTypeOf() }) it('should properly type updaterFn when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(tagged, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) expectTypeOf(data).toEqualTypeOf() }) it('should properly type value when passed to setQueryData', () => { - const { queryKey } = queryOptions({ - queryKey: ['key'], + const { queryKey: tagged } = queryOptions({ + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '5') + queryClient.setQueryData(tagged, '5') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '5') + queryClient.setQueryData(tagged, () => '5') - const data = queryClient.setQueryData(queryKey, 5) + const data = queryClient.setQueryData(tagged, 5) expectTypeOf(data).toEqualTypeOf() }) it('should infer even if there is a conditional skipToken', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }) @@ -172,7 +173,7 @@ describe('queryOptions', () => { it('should infer to unknown if we disable a query with just a skipToken', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: skipToken, }) @@ -183,7 +184,7 @@ describe('queryOptions', () => { it('should throw a type error when using queryFn with skipToken in a suspense query', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }) // @ts-expect-error TS2345 @@ -193,7 +194,7 @@ describe('queryOptions', () => { it('should return the proper type when passed to QueriesObserver', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -227,7 +228,7 @@ describe('queryOptions', () => { it('should allow optional initialData object', () => { const testFn = (id?: string) => { const options = queryOptions({ - queryKey: ['test'], + queryKey: queryKey(), queryFn: () => Promise.resolve('something string'), initialData: id ? 'initial string' : undefined, }) @@ -247,7 +248,7 @@ describe('queryOptions', () => { } const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }) diff --git a/packages/react-query/src/__tests__/ssr-hydration.test.tsx b/packages/react-query/src/__tests__/ssr-hydration.test.tsx index 07f469b5684..587726b3623 100644 --- a/packages/react-query/src/__tests__/ssr-hydration.test.tsx +++ b/packages/react-query/src/__tests__/ssr-hydration.test.tsx @@ -2,6 +2,7 @@ import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' import { hydrateRoot } from 'react-dom/client' import { act } from 'react' import * as ReactDOMServer from 'react-dom/server' +import { queryKey } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, @@ -50,11 +51,12 @@ describe('Server side rendering with de/rehydration', () => { consoleMock.mockImplementation(() => undefined) const fetchDataSuccess = vi.fn(fetchData) + const key = queryKey() // -- Shared part -- function SuccessComponent() { const result = useQuery({ - queryKey: ['success'], + queryKey: key, queryFn: () => fetchDataSuccess('success!'), }) return ( @@ -70,7 +72,7 @@ describe('Server side rendering with de/rehydration', () => { queryCache: prefetchCache, }) await prefetchClient.prefetchQuery({ - queryKey: ['success'], + queryKey: key, queryFn: () => fetchDataSuccess('success'), }) const dehydratedStateServer = dehydrate(prefetchClient) @@ -127,11 +129,12 @@ describe('Server side rendering with de/rehydration', () => { const fetchDataError = vi.fn(() => { throw new Error('fetchDataError') }) + const key = queryKey() // -- Shared part -- function ErrorComponent() { const result = useQuery({ - queryKey: ['error'], + queryKey: key, queryFn: () => fetchDataError(), retry: false, }) @@ -147,7 +150,7 @@ describe('Server side rendering with de/rehydration', () => { queryCache: prefetchCache, }) await prefetchClient.prefetchQuery({ - queryKey: ['error'], + queryKey: key, queryFn: () => fetchDataError(), }) const dehydratedStateServer = dehydrate(prefetchClient) @@ -204,11 +207,12 @@ describe('Server side rendering with de/rehydration', () => { consoleMock.mockImplementation(() => undefined) const fetchDataSuccess = vi.fn(fetchData) + const key = queryKey() // -- Shared part -- function SuccessComponent() { const result = useQuery({ - queryKey: ['success'], + queryKey: key, queryFn: () => fetchDataSuccess('success!'), }) return ( diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index 99e9ff7fe9d..2290cd21049 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -57,7 +57,7 @@ describe('Suspense Timer Tests', () => { it('should enforce minimum staleTime of 1000ms when using suspense with number', async () => { const TestComponent = createTestQuery({ fetchCount, - queryKey: ['test'], + queryKey: queryKey(), staleTime: 10, }) @@ -83,7 +83,7 @@ describe('Suspense Timer Tests', () => { it('should enforce minimum staleTime of 1000ms when using suspense with function', async () => { const TestComponent = createTestQuery({ fetchCount, - queryKey: ['test-func'], + queryKey: queryKey(), staleTime: () => 10, }) diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test-d.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test-d.tsx index a231d206008..b4784aa4b09 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test-d.tsx @@ -1,12 +1,13 @@ import { describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { useInfiniteQuery } from '../useInfiniteQuery' import type { InfiniteData } from '@tanstack/query-core' describe('pageParam', () => { it('initialPageParam should define type of param passed to queryFunctionContext', () => { useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { expectTypeOf(pageParam).toEqualTypeOf() }, @@ -17,7 +18,7 @@ describe('pageParam', () => { it('direction should be passed to queryFn of useInfiniteQuery', () => { useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ direction }) => { expectTypeOf(direction).toEqualTypeOf<'forward' | 'backward'>() }, @@ -29,7 +30,7 @@ describe('pageParam', () => { it('initialPageParam should define type of param passed to queryFunctionContext for fetchInfiniteQuery', () => { const queryClient = new QueryClient() queryClient.fetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { expectTypeOf(pageParam).toEqualTypeOf() }, @@ -40,7 +41,7 @@ describe('pageParam', () => { it('initialPageParam should define type of param passed to queryFunctionContext for prefetchInfiniteQuery', () => { const queryClient = new QueryClient() queryClient.prefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { expectTypeOf(pageParam).toEqualTypeOf() }, @@ -51,7 +52,7 @@ describe('pageParam', () => { describe('select', () => { it('should still return paginated data if no select result', () => { const infiniteQuery = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return pageParam * 5 }, @@ -67,7 +68,7 @@ describe('select', () => { it('should be able to transform data to arbitrary result', () => { const infiniteQuery = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return pageParam * 5 }, @@ -85,7 +86,7 @@ describe('select', () => { describe('getNextPageParam / getPreviousPageParam', () => { it('should get typed params', () => { const infiniteQuery = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return String(pageParam) }, @@ -126,7 +127,7 @@ describe('error booleans', () => { isLoadingError, isRefetchError, } = useInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: ({ pageParam }) => { return pageParam * 5 }, diff --git a/packages/react-query/src/__tests__/useMutationState.test.tsx b/packages/react-query/src/__tests__/useMutationState.test.tsx index e80b9c10f9b..69bd9720904 100644 --- a/packages/react-query/src/__tests__/useMutationState.test.tsx +++ b/packages/react-query/src/__tests__/useMutationState.test.tsx @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, useIsMutating, useMutation, useMutationState } from '..' import { renderWithClient } from './utils' @@ -17,6 +17,8 @@ describe('useIsMutating', () => { it('should return the number of fetching mutations', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key1 = queryKey() + const key2 = queryKey() function IsMutating() { const isMutating = useIsMutating() @@ -28,11 +30,11 @@ describe('useIsMutating', () => { function Mutations() { const { mutate: mutate1 } = useMutation({ - mutationKey: ['mutation1'], + mutationKey: key1, mutationFn: () => sleep(50).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ - mutationKey: ['mutation2'], + mutationKey: key2, mutationFn: () => sleep(10).then(() => 'data'), }) @@ -78,20 +80,22 @@ describe('useIsMutating', () => { it('should filter correctly by mutationKey', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key1 = queryKey() + const key2 = queryKey() function IsMutating() { - const isMutating = useIsMutating({ mutationKey: ['mutation1'] }) + const isMutating = useIsMutating({ mutationKey: key1 }) isMutatingArray.push(isMutating) return null } function Page() { const { mutate: mutate1 } = useMutation({ - mutationKey: ['mutation1'], + mutationKey: key1, mutationFn: () => sleep(100).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ - mutationKey: ['mutation2'], + mutationKey: key2, mutationFn: () => sleep(100).then(() => 'data'), }) @@ -112,11 +116,12 @@ describe('useIsMutating', () => { it('should filter correctly by predicate', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const key1 = queryKey() + const key2 = queryKey() function IsMutating() { const isMutating = useIsMutating({ - predicate: (mutation) => - mutation.options.mutationKey?.[0] === 'mutation1', + predicate: (mutation) => mutation.options.mutationKey?.[0] === key1[0], }) isMutatingArray.push(isMutating) return null @@ -124,11 +129,11 @@ describe('useIsMutating', () => { function Page() { const { mutate: mutate1 } = useMutation({ - mutationKey: ['mutation1'], + mutationKey: key1, mutationFn: () => sleep(100).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ - mutationKey: ['mutation2'], + mutationKey: key2, mutationFn: () => sleep(100).then(() => 'data'), }) @@ -148,12 +153,13 @@ describe('useIsMutating', () => { it('should use provided custom queryClient', async () => { const queryClient = new QueryClient() + const key = queryKey() function Page() { const isMutating = useIsMutating({}, queryClient) const { mutate } = useMutation( { - mutationKey: ['mutation1'], + mutationKey: key, mutationFn: () => sleep(10).then(() => 'data'), }, queryClient, diff --git a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx index 03af450c93a..231c47cedb3 100644 --- a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx @@ -1,10 +1,11 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { usePrefetchInfiniteQuery } from '..' describe('usePrefetchInfiniteQuery', () => { it('should return nothing', () => { const result = usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -17,7 +18,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( // @ts-expect-error TS2345 usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }), ) @@ -26,7 +27,7 @@ describe('usePrefetchInfiniteQuery', () => { it('should not allow refetchInterval, enabled or throwOnError options', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -37,7 +38,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -48,7 +49,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx index 09dbaf18c1a..d5c1d7c2359 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx @@ -1,10 +1,11 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { skipToken, usePrefetchQuery } from '..' describe('usePrefetchQuery', () => { it('should return nothing', () => { const result = usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -14,7 +15,7 @@ describe('usePrefetchQuery', () => { it('should not allow refetchInterval, enabled or throwOnError options', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 refetchInterval: 1000, @@ -23,7 +24,7 @@ describe('usePrefetchQuery', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 enabled: true, @@ -32,7 +33,7 @@ describe('usePrefetchQuery', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 throwOnError: true, @@ -43,14 +44,14 @@ describe('usePrefetchQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }), ) assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), diff --git a/packages/react-query/src/__tests__/useQueries.test-d.tsx b/packages/react-query/src/__tests__/useQueries.test-d.tsx index 9aaeb45dc23..7c064d55341 100644 --- a/packages/react-query/src/__tests__/useQueries.test-d.tsx +++ b/packages/react-query/src/__tests__/useQueries.test-d.tsx @@ -1,4 +1,5 @@ import { describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { skipToken } from '..' import { useQueries } from '../useQueries' import { queryOptions } from '../queryOptions' @@ -8,7 +9,7 @@ import type { UseQueryOptions, UseQueryResult } from '../types' describe('UseQueries config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { const query1 = { - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -20,13 +21,13 @@ describe('UseQueries config object overload', () => { } const query2 = { - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'Query Data', initialData: 'initial data', } const query3 = { - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'Query Data', } @@ -43,7 +44,7 @@ describe('UseQueries config object overload', () => { it('TData should be defined when passed through queryOptions', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -62,13 +63,13 @@ describe('UseQueries config object overload', () => { it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { const query1 = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data) => data > 1, }) const query2 = { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data: number) => data > 1, } @@ -85,7 +86,7 @@ describe('UseQueries config object overload', () => { const queryResults = useQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -112,7 +113,7 @@ describe('UseQueries config object overload', () => { queries: [ { ...options, - queryKey: ['todos-key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), }, ], @@ -130,7 +131,7 @@ describe('UseQueries config object overload', () => { const queryResults = useQueries({ queries: [ { - queryKey: ['withSkipToken'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }, ], @@ -146,14 +147,14 @@ describe('UseQueries config object overload', () => { const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => Promise.resolve(true), }), } diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index 65870764742..0dfd61f2b23 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -388,7 +388,7 @@ describe('useQueries', () => { const result4 = useQueries({ queries: [ queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() @@ -396,7 +396,7 @@ describe('useQueries', () => { }, }), queryOptions({ - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'string', select: (a) => { expectTypeOf(a).toEqualTypeOf() @@ -1696,15 +1696,17 @@ describe('useQueries', () => { it('should not cause infinite re-renders when removing last query', async () => { let renderCount = 0 + const key1 = queryKey() + const key2 = queryKey() function Page() { const [queries, setQueries] = React.useState([ { - queryKey: ['query1'], + queryKey: key1, queryFn: () => 'data1', }, { - queryKey: ['query2'], + queryKey: key2, queryFn: () => 'data2', }, ]) @@ -1720,7 +1722,7 @@ describe('useQueries', () => { onClick={() => { setQueries([ { - queryKey: ['query1'], + queryKey: key1, queryFn: () => 'data1', }, ]) @@ -1732,7 +1734,7 @@ describe('useQueries', () => { onClick={() => { setQueries([ { - queryKey: ['query2'], + queryKey: key2, queryFn: () => 'data2', }, ]) @@ -1766,6 +1768,7 @@ describe('useQueries', () => { it('should return correct results when queries count changes with stable combine reference', async () => { const combine = (results: Array) => results + const key = queryKey() const results: Array<{ n: number; length: number }> = [] @@ -1775,7 +1778,7 @@ describe('useQueries', () => { const queries = useQueries( { queries: [...Array(n).keys()].map((i) => ({ - queryKey: ['dynamic', i], + queryKey: [...key, i], queryFn: () => i, })), combine, diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index 7e99666bebc..9eabb3a2ef3 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -179,7 +179,7 @@ describe('useQuery', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => ({ wow: true }), initialData: { wow: true }, }) @@ -189,7 +189,7 @@ describe('useQuery', () => { it('TData should be defined when passed through queryOptions', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -206,7 +206,7 @@ describe('useQuery', () => { it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }) @@ -220,7 +220,7 @@ describe('useQuery', () => { it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -236,7 +236,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is NOT provided', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -249,7 +249,7 @@ describe('useQuery', () => { it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { const { data } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -263,7 +263,7 @@ describe('useQuery', () => { it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { const { data, isSuccess } = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -281,7 +281,7 @@ describe('useQuery', () => { it('TData should depend from only arguments, not the result', () => { // @ts-expect-error const result: UseQueryResult<{ wow: string }> = useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -295,7 +295,7 @@ describe('useQuery', () => { it('data should not have undefined when initialData is provided', () => { const { data } = useQuery({ - queryKey: ['query-key'], + queryKey: queryKey(), initialData: 42, }) @@ -312,7 +312,7 @@ describe('useQuery', () => { ) => { return useQuery({ ...options, - queryKey: ['todos-key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), }) } @@ -327,7 +327,7 @@ describe('useQuery', () => { it('should be able to use structuralSharing with unknown types', () => { // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 useQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => 5, structuralSharing: (oldData, newData) => { expectTypeOf(oldData).toBeUnknown() diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index c89c5513c8b..66e8ed27288 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -4886,6 +4886,7 @@ describe('useQuery', () => { }) it('should refetch when changed enabled to true in error state', async () => { + const key = queryKey() const queryFn = vi.fn<(...args: Array) => unknown>() queryFn.mockImplementation(() => sleep(10).then(() => Promise.reject(new Error('Suspense Error Bingo'))), @@ -4893,7 +4894,7 @@ describe('useQuery', () => { function Page({ enabled }: { enabled: boolean }) { const { error, isPending } = useQuery({ - queryKey: ['key'], + queryKey: key, queryFn, enabled, retry: false, diff --git a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx index 49cdb7939b9..e656e8cb50c 100644 --- a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx @@ -1,12 +1,13 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { skipToken } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery' import type { InfiniteData } from '@tanstack/query-core' describe('useSuspenseInfiniteQuery', () => { it('should always have data defined', () => { const { data } = useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -18,7 +19,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }), @@ -26,7 +27,7 @@ describe('useSuspenseInfiniteQuery', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), @@ -35,7 +36,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not have pending status', () => { const { status } = useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -47,7 +48,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not allow placeholderData, enabled or throwOnError props', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -59,7 +60,7 @@ describe('useSuspenseInfiniteQuery', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -70,7 +71,7 @@ describe('useSuspenseInfiniteQuery', () => { assertType( useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -82,7 +83,7 @@ describe('useSuspenseInfiniteQuery', () => { it('should not return isPlaceholderData', () => { const query = useSuspenseInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx index 76fb13a9f5c..98bf336c8df 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx @@ -1,4 +1,5 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { skipToken, useSuspenseQueries } from '..' import { queryOptions } from '../queryOptions' import type { OmitKeyof } from '..' @@ -7,7 +8,7 @@ import type { UseQueryOptions, UseSuspenseQueryResult } from '../types' describe('UseSuspenseQueries config object overload', () => { it('TData should always be defined', () => { const query1 = { - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -19,7 +20,7 @@ describe('UseSuspenseQueries config object overload', () => { } const query2 = { - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => 'Query Data', } @@ -34,7 +35,7 @@ describe('UseSuspenseQueries config object overload', () => { it('TData should be defined when passed through queryOptions', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -50,13 +51,13 @@ describe('UseSuspenseQueries config object overload', () => { it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { const query1 = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data) => data > 1, }) const query2 = { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), select: (data: number) => data > 1, } @@ -73,7 +74,7 @@ describe('UseSuspenseQueries config object overload', () => { const queryResults = useSuspenseQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => { return { wow: true, @@ -94,7 +95,7 @@ describe('UseSuspenseQueries config object overload', () => { useSuspenseQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }, @@ -106,7 +107,7 @@ describe('UseSuspenseQueries config object overload', () => { useSuspenseQueries({ queries: [ { - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }, @@ -119,7 +120,7 @@ describe('UseSuspenseQueries config object overload', () => { const queryResults = useSuspenseQueries({ queries: [ { - queryKey: ['withSkipToken'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }, @@ -145,7 +146,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ { ...options, - queryKey: ['todos-key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('data'), }, ], @@ -163,14 +164,14 @@ describe('UseSuspenseQueries config object overload', () => { const Queries1 = { get: () => queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), }), } const Queries2 = { get: () => queryOptions({ - queryKey: ['key2'], + queryKey: queryKey(), queryFn: () => Promise.resolve(true), }), } @@ -198,7 +199,7 @@ describe('UseSuspenseQueries config object overload', () => { it('queryOptions with initialData works on useSuspenseQueries', () => { const query1 = queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => 'Query Data', initialData: 'initial data', }) @@ -215,7 +216,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ // @ts-expect-error queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), ], @@ -227,7 +228,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ // @ts-expect-error queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), initialData: 5, }), @@ -242,7 +243,7 @@ describe('UseSuspenseQueries config object overload', () => { queries: [ { ...queryOptions({ - queryKey: ['key1'], + queryKey: queryKey(), queryFn: () => 'Query Data', }), select(data: string) { diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx index e78b8a907dd..6e0fb5534bc 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx @@ -1,11 +1,12 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { skipToken } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { useSuspenseQuery } from '../useSuspenseQuery' describe('useSuspenseQuery', () => { it('should always have data defined', () => { const { data } = useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -14,7 +15,7 @@ describe('useSuspenseQuery', () => { it('should not have pending status', () => { const { status } = useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -24,14 +25,14 @@ describe('useSuspenseQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }), ) assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), @@ -41,7 +42,7 @@ describe('useSuspenseQuery', () => { it('should not allow placeholderData, enabled or throwOnError props', () => { assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 placeholderData: 5, @@ -50,7 +51,7 @@ describe('useSuspenseQuery', () => { ) assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 enabled: true, @@ -58,7 +59,7 @@ describe('useSuspenseQuery', () => { ) assertType( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2345 throwOnError: true, @@ -69,7 +70,7 @@ describe('useSuspenseQuery', () => { it('should not return isPlaceholderData', () => { expectTypeOf( useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }), ).not.toHaveProperty('isPlaceholderData') @@ -77,7 +78,7 @@ describe('useSuspenseQuery', () => { it('should type-narrow the error field', () => { const query = useSuspenseQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) From 79dee50d56164fd0232977104e0710f52369f264 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 8 Apr 2026 01:33:49 +0900 Subject: [PATCH 071/414] test(query-core/mutationCache): add test for removing a mutation that does not exist in the cache (#10423) * test(query-core/mutationCache): add test for removing a mutation that does not exist in the cache * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/mutationCache.test.tsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/query-core/src/__tests__/mutationCache.test.tsx b/packages/query-core/src/__tests__/mutationCache.test.tsx index d2c16987bcc..a3f41d99b74 100644 --- a/packages/query-core/src/__tests__/mutationCache.test.tsx +++ b/packages/query-core/src/__tests__/mutationCache.test.tsx @@ -483,5 +483,31 @@ describe('mutationCache', () => { expect(testCache.getAll()).toHaveLength(0) }) + + test('should still notify removal when removing a mutation that does not exist in the cache', () => { + const testCache = new MutationCache() + const testClient = new QueryClient({ mutationCache: testCache }) + + const mutation = testCache.build(testClient, { + mutationFn: () => Promise.resolve('data'), + }) + + expect(testCache.getAll()).toHaveLength(1) + testCache.remove(mutation) + expect(testCache.getAll()).toHaveLength(0) + + // Remove again — mutation is already gone from the cache + const callback = vi.fn() + const unsubscribe = testCache.subscribe(callback) + testCache.remove(mutation) + + expect(testCache.getAll()).toHaveLength(0) + expect(callback).toHaveBeenCalledTimes(1) + expect(callback).toHaveBeenCalledWith( + expect.objectContaining({ type: 'removed', mutation }), + ) + + unsubscribe() + }) }) }) From 2e26f14a41a771efb7bc818d09c18eb53f7bc269 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 8 Apr 2026 03:28:04 +0900 Subject: [PATCH 072/414] test(query-core): replace hardcoded query keys with 'queryKey()' utility (#10425) * test(query-core): replace hardcoded query keys with 'queryKey()' utility * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/hydration.test.tsx | 324 ++++++++++-------- .../query-core/src/__tests__/query.test.tsx | 9 +- .../src/__tests__/queryCache.test.tsx | 9 +- .../src/__tests__/queryClient.test-d.tsx | 119 +++---- .../src/__tests__/queryObserver.test-d.tsx | 4 +- .../query-core/src/__tests__/utils.test.tsx | 15 +- 6 files changed, 257 insertions(+), 223 deletions(-) diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index 46945e1b891..d07cfef75e8 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { QueryCache } from '../queryCache' import { dehydrate, hydrate } from '../hydration' @@ -16,42 +16,49 @@ describe('dehydration and rehydration', () => { }) test('should work with serializable values', async () => { + const stringKey = queryKey() + const numberKey = queryKey() + const booleanKey = queryKey() + const nullKey = queryKey() + const arrayKey = queryKey() + const nestedKey = queryKey() + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(0).then(() => 'string'), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['number'], + queryKey: numberKey, queryFn: () => sleep(0).then(() => 1), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['boolean'], + queryKey: booleanKey, queryFn: () => sleep(0).then(() => true), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['null'], + queryKey: nullKey, queryFn: () => sleep(0).then(() => null), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['array'], + queryKey: arrayKey, queryFn: () => sleep(0).then(() => ['string', 0]), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['nested'], + queryKey: nestedKey, queryFn: () => sleep(0).then(() => ({ key: [{ nestedKey: 1 }] })), }), ) @@ -66,51 +73,49 @@ describe('dehydration and rehydration', () => { queryCache: hydrationCache, }) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ queryKey: ['string'] })?.state.data).toBe( + expect(hydrationCache.find({ queryKey: stringKey })?.state.data).toBe( 'string', ) - expect(hydrationCache.find({ queryKey: ['number'] })?.state.data).toBe(1) - expect(hydrationCache.find({ queryKey: ['boolean'] })?.state.data).toBe( - true, - ) - expect(hydrationCache.find({ queryKey: ['null'] })?.state.data).toBe(null) - expect(hydrationCache.find({ queryKey: ['array'] })?.state.data).toEqual([ + expect(hydrationCache.find({ queryKey: numberKey })?.state.data).toBe(1) + expect(hydrationCache.find({ queryKey: booleanKey })?.state.data).toBe(true) + expect(hydrationCache.find({ queryKey: nullKey })?.state.data).toBe(null) + expect(hydrationCache.find({ queryKey: arrayKey })?.state.data).toEqual([ 'string', 0, ]) - expect(hydrationCache.find({ queryKey: ['nested'] })?.state.data).toEqual({ + expect(hydrationCache.find({ queryKey: nestedKey })?.state.data).toEqual({ key: [{ nestedKey: 1 }], }) const fetchDataAfterHydration = vi.fn<(...args: Array) => unknown>() await hydrationClient.prefetchQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: fetchDataAfterHydration, staleTime: 1000, }) await hydrationClient.prefetchQuery({ - queryKey: ['number'], + queryKey: numberKey, queryFn: fetchDataAfterHydration, staleTime: 1000, }) await hydrationClient.prefetchQuery({ - queryKey: ['boolean'], + queryKey: booleanKey, queryFn: fetchDataAfterHydration, staleTime: 1000, }) await hydrationClient.prefetchQuery({ - queryKey: ['null'], + queryKey: nullKey, queryFn: fetchDataAfterHydration, staleTime: 1000, }) await hydrationClient.prefetchQuery({ - queryKey: ['array'], + queryKey: arrayKey, queryFn: fetchDataAfterHydration, staleTime: 1000, }) await hydrationClient.prefetchQuery({ - queryKey: ['nested'], + queryKey: nestedKey, queryFn: fetchDataAfterHydration, staleTime: 1000, }) @@ -121,11 +126,12 @@ describe('dehydration and rehydration', () => { }) test('should not dehydrate queries if dehydrateQueries is set to false', () => { + const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => sleep(0).then(() => 'string'), }), ) @@ -140,11 +146,12 @@ describe('dehydration and rehydration', () => { }) test('should use the garbage collection time from the client', async () => { + const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => sleep(0).then(() => 'string'), gcTime: 50, }), @@ -160,22 +167,21 @@ describe('dehydration and rehydration', () => { const hydrationCache = new QueryCache() const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ queryKey: ['string'] })?.state.data).toBe( - 'string', - ) + expect(hydrationCache.find({ queryKey: key })?.state.data).toBe('string') await vi.advanceTimersByTimeAsync(100) - expect(hydrationCache.find({ queryKey: ['string'] })).toBeTruthy() + expect(hydrationCache.find({ queryKey: key })).toBeTruthy() queryClient.clear() hydrationClient.clear() }) test('should be able to provide default options for the hydrated queries', async () => { + const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => sleep(0).then(() => 'string'), }), ) @@ -187,14 +193,13 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, parsed, { defaultOptions: { queries: { retry: 10 } }, }) - expect(hydrationCache.find({ queryKey: ['string'] })?.options.retry).toBe( - 10, - ) + expect(hydrationCache.find({ queryKey: key })?.options.retry).toBe(10) queryClient.clear() hydrationClient.clear() }) test('should respect query defaultOptions specified on the QueryClient', async () => { + const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache, @@ -204,7 +209,7 @@ describe('dehydration and rehydration', () => { }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, retry: 0, queryFn: () => Promise.reject(new Error('error')), }), @@ -222,17 +227,14 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, parsed, { defaultOptions: { queries: { gcTime: 10 } }, }) - expect(hydrationCache.find({ queryKey: ['string'] })?.options.retry).toBe( - 10, - ) - expect(hydrationCache.find({ queryKey: ['string'] })?.options.gcTime).toBe( - 10, - ) + expect(hydrationCache.find({ queryKey: key })?.options.retry).toBe(10) + expect(hydrationCache.find({ queryKey: key })?.options.gcTime).toBe(10) queryClient.clear() hydrationClient.clear() }) test('should respect mutation defaultOptions specified on the QueryClient', async () => { + const key = queryKey() const mutationCache = new MutationCache() const queryClient = new QueryClient({ mutationCache, @@ -245,7 +247,7 @@ describe('dehydration and rehydration', () => { await executeMutation( queryClient, { - mutationKey: ['string'], + mutationKey: key, mutationFn: () => Promise.resolve('done'), }, undefined, @@ -264,22 +266,20 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, parsed, { defaultOptions: { mutations: { gcTime: 10 } }, }) - expect( - hydrationCache.find({ mutationKey: ['string'] })?.options.retry, - ).toBe(10) - expect( - hydrationCache.find({ mutationKey: ['string'] })?.options.gcTime, - ).toBe(10) + expect(hydrationCache.find({ mutationKey: key })?.options.retry).toBe(10) + expect(hydrationCache.find({ mutationKey: key })?.options.gcTime).toBe(10) queryClient.clear() hydrationClient.clear() }) test('should work with complex keys', async () => { + const key = queryKey() + const complexKey = [...key, { key: ['string'], key2: 0 }] const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string', { key: ['string'], key2: 0 }], + queryKey: complexKey, queryFn: () => sleep(0).then(() => 'string'), }), ) @@ -294,7 +294,7 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, parsed) expect( hydrationCache.find({ - queryKey: ['string', { key: ['string'], key2: 0 }], + queryKey: complexKey, })?.state.data, ).toBe('string') @@ -302,7 +302,7 @@ describe('dehydration and rehydration', () => { vi.fn<(...args: Array) => unknown>() await vi.waitFor(() => hydrationClient.prefetchQuery({ - queryKey: ['string', { key: ['string'], key2: 0 }], + queryKey: complexKey, queryFn: fetchDataAfterHydration, staleTime: 100, }), @@ -314,6 +314,10 @@ describe('dehydration and rehydration', () => { }) test('should only hydrate successful queries by default', async () => { + const successKey = queryKey() + const loadingKey = queryKey() + const errorKey = queryKey() + const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -321,17 +325,17 @@ describe('dehydration and rehydration', () => { const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['success'], + queryKey: successKey, queryFn: () => sleep(0).then(() => 'success'), }), ) queryClient.prefetchQuery({ - queryKey: ['loading'], + queryKey: loadingKey, queryFn: () => sleep(10000).then(() => 'loading'), }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['error'], + queryKey: errorKey, queryFn: () => { throw new Error() }, @@ -347,9 +351,9 @@ describe('dehydration and rehydration', () => { const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ queryKey: ['success'] })).toBeTruthy() - expect(hydrationCache.find({ queryKey: ['loading'] })).toBeFalsy() - expect(hydrationCache.find({ queryKey: ['error'] })).toBeFalsy() + expect(hydrationCache.find({ queryKey: successKey })).toBeTruthy() + expect(hydrationCache.find({ queryKey: loadingKey })).toBeFalsy() + expect(hydrationCache.find({ queryKey: errorKey })).toBeFalsy() queryClient.clear() hydrationClient.clear() @@ -357,28 +361,30 @@ describe('dehydration and rehydration', () => { }) test('should filter queries via dehydrateQuery', async () => { + const stringKey = queryKey() + const numberKey = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: stringKey, queryFn: () => sleep(0).then(() => 'string'), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['number'], + queryKey: numberKey, queryFn: () => sleep(0).then(() => 1), }), ) const dehydrated = dehydrate(queryClient, { - shouldDehydrateQuery: (query) => query.queryKey[0] !== 'string', + shouldDehydrateQuery: (query) => query.queryKey !== stringKey, }) // This is testing implementation details that can change and are not // part of the public API, but is important for keeping the payload small const dehydratedQuery = dehydrated.queries.find( - (query) => query.queryKey[0] === 'string', + (query) => query.queryKey === stringKey, ) expect(dehydratedQuery).toBeUndefined() @@ -390,19 +396,20 @@ describe('dehydration and rehydration', () => { const hydrationCache = new QueryCache() const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ queryKey: ['string'] })).toBeUndefined() - expect(hydrationCache.find({ queryKey: ['number'] })?.state.data).toBe(1) + expect(hydrationCache.find({ queryKey: stringKey })).toBeUndefined() + expect(hydrationCache.find({ queryKey: numberKey })?.state.data).toBe(1) queryClient.clear() hydrationClient.clear() }) test('should not overwrite query in cache if hydrated query is older', async () => { + const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => sleep(5).then(() => 'string-older'), }), ) @@ -416,13 +423,13 @@ describe('dehydration and rehydration', () => { const hydrationClient = new QueryClient({ queryCache: hydrationCache }) await vi.waitFor(() => hydrationClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => sleep(5).then(() => 'string-newer'), }), ) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ queryKey: ['string'] })?.state.data).toBe( + expect(hydrationCache.find({ queryKey: key })?.state.data).toBe( 'string-newer', ) @@ -431,11 +438,12 @@ describe('dehydration and rehydration', () => { }) test('should overwrite query in cache if hydrated query is newer', async () => { + const key = queryKey() const hydrationCache = new QueryCache() const hydrationClient = new QueryClient({ queryCache: hydrationCache }) await vi.waitFor(() => hydrationClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => sleep(5).then(() => 'string-older'), }), ) @@ -446,7 +454,7 @@ describe('dehydration and rehydration', () => { const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => sleep(5).then(() => 'string-newer'), }), ) @@ -457,7 +465,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ queryKey: ['string'] })?.state.data).toBe( + expect(hydrationCache.find({ queryKey: key })?.state.data).toBe( 'string-newer', ) @@ -466,6 +474,7 @@ describe('dehydration and rehydration', () => { }) test('should be able to dehydrate mutations and continue on hydration', async () => { + const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) const onlineMock = mockOnlineManagerIsOnline(false) @@ -483,7 +492,7 @@ describe('dehydration and rehydration', () => { const serverClient = new QueryClient() - serverClient.setMutationDefaults(['addTodo'], { + serverClient.setMutationDefaults(key, { mutationFn: serverAddTodo, onMutate: serverOnMutate, onSuccess: serverOnSuccess, @@ -494,7 +503,7 @@ describe('dehydration and rehydration', () => { executeMutation( serverClient, { - mutationKey: ['addTodo'], + mutationKey: key, }, { text: 'text' }, ).catch(() => undefined) @@ -526,7 +535,7 @@ describe('dehydration and rehydration', () => { }) const clientOnSuccess = vi.fn() - client.setMutationDefaults(['addTodo'], { + client.setMutationDefaults(key, { mutationFn: clientAddTodo, onMutate: clientOnMutate, onSuccess: clientOnSuccess, @@ -545,7 +554,7 @@ describe('dehydration and rehydration', () => { { id: 2, text: 'text' }, { text: 'text' }, { optimisticTodo: { id: 1, text: 'text' } }, - { client: client, meta: undefined, mutationKey: ['addTodo'] }, + { client: client, meta: undefined, mutationKey: key }, ) client.clear() @@ -554,6 +563,7 @@ describe('dehydration and rehydration', () => { }) test('should not dehydrate mutations if dehydrateMutations is set to false', async () => { + const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -563,7 +573,7 @@ describe('dehydration and rehydration', () => { const queryClient = new QueryClient() - queryClient.setMutationDefaults(['addTodo'], { + queryClient.setMutationDefaults(key, { mutationFn: serverAddTodo, retry: false, }) @@ -571,7 +581,7 @@ describe('dehydration and rehydration', () => { executeMutation( queryClient, { - mutationKey: ['addTodo'], + mutationKey: key, }, { text: 'text' }, ).catch(() => undefined) @@ -588,6 +598,7 @@ describe('dehydration and rehydration', () => { }) test('should not dehydrate mutation if mutation state is set to pause', async () => { + const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -597,7 +608,7 @@ describe('dehydration and rehydration', () => { const queryClient = new QueryClient() - queryClient.setMutationDefaults(['addTodo'], { + queryClient.setMutationDefaults(key, { mutationFn: serverAddTodo, retry: 1, retryDelay: 20, @@ -606,7 +617,7 @@ describe('dehydration and rehydration', () => { executeMutation( queryClient, { - mutationKey: ['addTodo'], + mutationKey: key, }, { text: 'text' }, ).catch(() => undefined) @@ -643,6 +654,7 @@ describe('dehydration and rehydration', () => { }) test('should set the fetchStatus to idle when creating a query with dehydrate', async () => { + const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -663,16 +675,16 @@ describe('dehydration and rehydration', () => { } await queryClient.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => customFetchData(), }) - queryClient.refetchQueries({ queryKey: ['string'] }) + queryClient.refetchQueries({ queryKey: key }) const dehydrated = dehydrate(queryClient) resolvePromise('string') expect( - dehydrated.queries.find((q) => q.queryHash === '["string"]')?.state + dehydrated.queries.find((q) => q.queryHash === JSON.stringify(key))?.state .fetchStatus, ).toBe('fetching') const stringified = JSON.stringify(dehydrated) @@ -682,17 +694,19 @@ describe('dehydration and rehydration', () => { const hydrationCache = new QueryCache() const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) - expect( - hydrationCache.find({ queryKey: ['string'] })?.state.fetchStatus, - ).toBe('idle') + expect(hydrationCache.find({ queryKey: key })?.state.fetchStatus).toBe( + 'idle', + ) }) test('should dehydrate and hydrate meta for queries', async () => { + const metaKey = queryKey() + const noMetaKey = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['meta'], + queryKey: metaKey, queryFn: () => Promise.resolve('meta'), meta: { some: 'meta', @@ -701,7 +715,7 @@ describe('dehydration and rehydration', () => { ) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['no-meta'], + queryKey: noMetaKey, queryFn: () => Promise.resolve('no-meta'), }), ) @@ -709,18 +723,22 @@ describe('dehydration and rehydration', () => { const dehydrated = dehydrate(queryClient) expect( - dehydrated.queries.find((q) => q.queryHash === '["meta"]')?.meta, + dehydrated.queries.find((q) => q.queryHash === JSON.stringify(metaKey)) + ?.meta, ).toEqual({ some: 'meta', }) expect( - dehydrated.queries.find((q) => q.queryHash === '["no-meta"]')?.meta, + dehydrated.queries.find((q) => q.queryHash === JSON.stringify(noMetaKey)) + ?.meta, ).toEqual(undefined) expect( Object.keys( - dehydrated.queries.find((q) => q.queryHash === '["no-meta"]')!, + dehydrated.queries.find( + (q) => q.queryHash === JSON.stringify(noMetaKey), + )!, ), ).not.toEqual(expect.arrayContaining(['meta'])) @@ -734,22 +752,24 @@ describe('dehydration and rehydration', () => { queryCache: hydrationCache, }) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ queryKey: ['meta'] })?.meta).toEqual({ + expect(hydrationCache.find({ queryKey: metaKey })?.meta).toEqual({ some: 'meta', }) - expect(hydrationCache.find({ queryKey: ['no-meta'] })?.meta).toEqual( + expect(hydrationCache.find({ queryKey: noMetaKey })?.meta).toEqual( undefined, ) }) test('should dehydrate and hydrate meta for mutations', async () => { + const metaKey = queryKey() + const noMetaKey = queryKey() const mutationCache = new MutationCache() const queryClient = new QueryClient({ mutationCache }) await executeMutation( queryClient, { - mutationKey: ['meta'], + mutationKey: metaKey, mutationFn: () => Promise.resolve('meta'), meta: { some: 'meta', @@ -761,7 +781,7 @@ describe('dehydration and rehydration', () => { await executeMutation( queryClient, { - mutationKey: ['no-meta'], + mutationKey: noMetaKey, mutationFn: () => Promise.resolve('no-meta'), }, undefined, @@ -793,19 +813,20 @@ describe('dehydration and rehydration', () => { mutationCache: hydrationCache, }) hydrate(hydrationClient, parsed) - expect(hydrationCache.find({ mutationKey: ['meta'] })?.meta).toEqual({ + expect(hydrationCache.find({ mutationKey: metaKey })?.meta).toEqual({ some: 'meta', }) - expect(hydrationCache.find({ mutationKey: ['no-meta'] })?.meta).toEqual( + expect(hydrationCache.find({ mutationKey: noMetaKey })?.meta).toEqual( undefined, ) }) test('should not change fetchStatus when updating a query with dehydrate', async () => { + const key = queryKey() const queryClient = new QueryClient() const options = { - queryKey: ['string'], + queryKey: key, queryFn: async () => { await sleep(10) return 'string' @@ -816,7 +837,7 @@ describe('dehydration and rehydration', () => { const dehydrated = dehydrate(queryClient) expect( - dehydrated.queries.find((q) => q.queryHash === '["string"]')?.state + dehydrated.queries.find((q) => q.queryHash === JSON.stringify(key))?.state .fetchStatus, ).toBe('idle') const stringified = JSON.stringify(dehydrated) @@ -828,23 +849,24 @@ describe('dehydration and rehydration', () => { const promise = hydrationClient.prefetchQuery(options) hydrate(hydrationClient, parsed) - expect( - hydrationCache.find({ queryKey: ['string'] })?.state.fetchStatus, - ).toBe('fetching') + expect(hydrationCache.find({ queryKey: key })?.state.fetchStatus).toBe( + 'fetching', + ) await vi.waitFor(() => promise) - expect( - hydrationCache.find({ queryKey: ['string'] })?.state.fetchStatus, - ).toBe('idle') + expect(hydrationCache.find({ queryKey: key })?.state.fetchStatus).toBe( + 'idle', + ) }) test('should dehydrate and hydrate mutation scopes', () => { + const key = queryKey() const queryClient = new QueryClient() const onlineMock = mockOnlineManagerIsOnline(false) void executeMutation( queryClient, { - mutationKey: ['mutation'], + mutationKey: key, mutationFn: () => { return Promise.resolve('mutation') }, @@ -872,6 +894,8 @@ describe('dehydration and rehydration', () => { }) test('should dehydrate promises for pending queries', async () => { + const successKey = queryKey() + const pendingKey = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache, @@ -879,13 +903,13 @@ describe('dehydration and rehydration', () => { }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['success'], + queryKey: successKey, queryFn: () => sleep(0).then(() => 'success'), }), ) const promise = queryClient.prefetchQuery({ - queryKey: ['pending'], + queryKey: pendingKey, queryFn: () => sleep(10).then(() => 'pending'), }) const dehydrated = dehydrate(queryClient) @@ -898,6 +922,8 @@ describe('dehydration and rehydration', () => { }) test('should hydrate promises even without observers', async () => { + const successKey = queryKey() + const pendingKey = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache, @@ -905,13 +931,13 @@ describe('dehydration and rehydration', () => { }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['success'], + queryKey: successKey, queryFn: () => sleep(0).then(() => 'success'), }), ) void queryClient.prefetchQuery({ - queryKey: ['pending'], + queryKey: pendingKey, queryFn: () => sleep(20).then(() => 'pending'), }) const dehydrated = dehydrate(queryClient) @@ -925,30 +951,28 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, dehydrated) - expect(hydrationCache.find({ queryKey: ['success'] })?.state.data).toBe( + expect(hydrationCache.find({ queryKey: successKey })?.state.data).toBe( 'success', ) - expect(hydrationCache.find({ queryKey: ['pending'] })?.state).toMatchObject( - { - data: undefined, - dataUpdateCount: 0, - dataUpdatedAt: 0, - error: null, - errorUpdateCount: 0, - errorUpdatedAt: 0, - fetchFailureCount: 0, - fetchFailureReason: null, - fetchMeta: null, - fetchStatus: 'fetching', - isInvalidated: false, - status: 'pending', - }, - ) + expect(hydrationCache.find({ queryKey: pendingKey })?.state).toMatchObject({ + data: undefined, + dataUpdateCount: 0, + dataUpdatedAt: 0, + error: null, + errorUpdateCount: 0, + errorUpdatedAt: 0, + fetchFailureCount: 0, + fetchFailureReason: null, + fetchMeta: null, + fetchStatus: 'fetching', + isInvalidated: false, + status: 'pending', + }) await vi.waitFor(() => expect( - hydrationCache.find({ queryKey: ['pending'] })?.state, + hydrationCache.find({ queryKey: pendingKey })?.state, ).toMatchObject({ data: 'pending', dataUpdateCount: 1, @@ -967,6 +991,7 @@ describe('dehydration and rehydration', () => { }) test('should transform promise result', async () => { + const key = queryKey() const queryClient = new QueryClient({ defaultOptions: { dehydrate: { @@ -977,7 +1002,7 @@ describe('dehydration and rehydration', () => { }) const promise = queryClient.prefetchQuery({ - queryKey: ['transformedStringToDate'], + queryKey: key, queryFn: () => sleep(20).then(() => new Date('2024-01-01T00:00:00.000Z')), }) const dehydrated = dehydrate(queryClient) @@ -994,15 +1019,14 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, dehydrated) await vi.waitFor(() => promise) await vi.waitFor(() => - expect( - hydrationClient.getQueryData(['transformedStringToDate']), - ).toBeInstanceOf(Date), + expect(hydrationClient.getQueryData(key)).toBeInstanceOf(Date), ) queryClient.clear() }) test('should transform query data if promise is already resolved', async () => { + const key = queryKey() const queryClient = new QueryClient({ defaultOptions: { dehydrate: { @@ -1013,7 +1037,7 @@ describe('dehydration and rehydration', () => { }) const promise = queryClient.prefetchQuery({ - queryKey: ['transformedStringToDate'], + queryKey: key, queryFn: () => sleep(0).then(() => new Date('2024-01-01T00:00:00.000Z')), }) await vi.advanceTimersByTimeAsync(20) @@ -1030,15 +1054,14 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, dehydrated) await vi.waitFor(() => promise) await vi.waitFor(() => - expect( - hydrationClient.getQueryData(['transformedStringToDate']), - ).toBeInstanceOf(Date), + expect(hydrationClient.getQueryData(key)).toBeInstanceOf(Date), ) queryClient.clear() }) test('should overwrite query in cache if hydrated query is newer (with transformation)', async () => { + const key = queryKey() const hydrationClient = new QueryClient({ defaultOptions: { hydrate: { @@ -1048,7 +1071,7 @@ describe('dehydration and rehydration', () => { }) await vi.waitFor(() => hydrationClient.prefetchQuery({ - queryKey: ['date'], + queryKey: key, queryFn: () => sleep(5).then(() => new Date('2024-01-01T00:00:00.000Z')), }), @@ -1066,7 +1089,7 @@ describe('dehydration and rehydration', () => { }) await vi.waitFor(() => queryClient.prefetchQuery({ - queryKey: ['date'], + queryKey: key, queryFn: () => sleep(10).then(() => new Date('2024-01-02T00:00:00.000Z')), }), @@ -1077,7 +1100,7 @@ describe('dehydration and rehydration', () => { hydrate(hydrationClient, dehydrated) - expect(hydrationClient.getQueryData(['date'])).toStrictEqual( + expect(hydrationClient.getQueryData(key)).toStrictEqual( new Date('2024-01-02T00:00:00.000Z'), ) @@ -1086,6 +1109,7 @@ describe('dehydration and rehydration', () => { }) test('should overwrite query in cache if hydrated query is newer (with promise)', async () => { + const key = queryKey() // --- server --- const serverQueryClient = new QueryClient({ @@ -1097,7 +1121,7 @@ describe('dehydration and rehydration', () => { }) const promise = serverQueryClient.prefetchQuery({ - queryKey: ['data'], + queryKey: key, queryFn: async () => { await sleep(10) return 'server data' @@ -1110,13 +1134,13 @@ describe('dehydration and rehydration', () => { const clientQueryClient = new QueryClient() - clientQueryClient.setQueryData(['data'], 'old data', { updatedAt: 10 }) + clientQueryClient.setQueryData(key, 'old data', { updatedAt: 10 }) hydrate(clientQueryClient, dehydrated) await vi.waitFor(() => promise) await vi.waitFor(() => - expect(clientQueryClient.getQueryData(['data'])).toBe('server data'), + expect(clientQueryClient.getQueryData(key)).toBe('server data'), ) clientQueryClient.clear() @@ -1124,6 +1148,7 @@ describe('dehydration and rehydration', () => { }) test('should not overwrite query in cache if existing query is newer (with promise)', async () => { + const key = queryKey() // --- server --- const serverQueryClient = new QueryClient({ @@ -1135,7 +1160,7 @@ describe('dehydration and rehydration', () => { }) const promise = serverQueryClient.prefetchQuery({ - queryKey: ['data'], + queryKey: key, queryFn: async () => { await sleep(10) return 'server data' @@ -1155,7 +1180,7 @@ describe('dehydration and rehydration', () => { const clientQueryClient = new QueryClient() - clientQueryClient.setQueryData(['data'], 'newer data', { + clientQueryClient.setQueryData(key, 'newer data', { updatedAt: Date.now(), }) @@ -1165,12 +1190,10 @@ describe('dehydration and rehydration', () => { // to end up in the cache, so for the test to fail properly on regressions, // wait for the fetchStatus to be idle await vi.waitFor(() => - expect(clientQueryClient.getQueryState(['data'])?.fetchStatus).toBe( - 'idle', - ), + expect(clientQueryClient.getQueryState(key)?.fetchStatus).toBe('idle'), ) await vi.waitFor(() => - expect(clientQueryClient.getQueryData(['data'])).toBe('newer data'), + expect(clientQueryClient.getQueryData(key)).toBe('newer data'), ) clientQueryClient.clear() @@ -1178,6 +1201,7 @@ describe('dehydration and rehydration', () => { }) test('should overwrite data when a new promise is streamed in', async () => { + const key = queryKey() const serializeDataMock = vi.fn((data: any) => data) const deserializeDataMock = vi.fn((data: any) => data) @@ -1193,7 +1217,7 @@ describe('dehydration and rehydration', () => { }) const query = { - queryKey: ['data'], + queryKey: key, queryFn: async () => { await sleep(10) return countRef.current @@ -1254,6 +1278,7 @@ describe('dehydration and rehydration', () => { }) test('should not redact errors when shouldRedactErrors returns false', async () => { + const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache, @@ -1269,7 +1294,7 @@ describe('dehydration and rehydration', () => { const promise = queryClient .prefetchQuery({ - queryKey: ['error'], + queryKey: key, queryFn: () => Promise.reject(testError), retry: false, }) @@ -1283,6 +1308,7 @@ describe('dehydration and rehydration', () => { }) test('should handle errors in promises for pending queries', async () => { + const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -1298,7 +1324,7 @@ describe('dehydration and rehydration', () => { const promise = queryClient .prefetchQuery({ - queryKey: ['error'], + queryKey: key, queryFn: () => Promise.reject(new Error('test error')), retry: false, }) @@ -1314,6 +1340,7 @@ describe('dehydration and rehydration', () => { }) test('should log error in development environment when redacting errors', async () => { + const key = queryKey() const originalNodeEnv = process.env.NODE_ENV process.env.NODE_ENV = 'development' @@ -1335,7 +1362,7 @@ describe('dehydration and rehydration', () => { const promise = queryClient .prefetchQuery({ - queryKey: ['error'], + queryKey: key, queryFn: () => Promise.reject(testError), retry: false, }) @@ -1364,6 +1391,7 @@ describe('dehydration and rehydration', () => { // server, but the client renders a Suspense fallback, only to immediately show // the data again. test('should rehydrate synchronous thenable immediately', async () => { + const key = queryKey() // --- server --- const serverQueryClient = new QueryClient({ @@ -1374,7 +1402,7 @@ describe('dehydration and rehydration', () => { }, }) const originalPromise = serverQueryClient.prefetchQuery({ - queryKey: ['data'], + queryKey: key, queryFn: () => null, }) @@ -1394,7 +1422,7 @@ describe('dehydration and rehydration', () => { hydrate(clientQueryClient, dehydrated) // If data is already resolved, it should end up in the cache immediately - expect(clientQueryClient.getQueryData(['data'])).toBe('server data') + expect(clientQueryClient.getQueryData(key)).toBe('server data') // Need to await the original promise or else it will get a cancellation // error and test will fail diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index dfb8c0381a3..646ec621938 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -482,9 +482,10 @@ describe('query', () => { }) test('should reset to default state when created from hydration', async () => { + const key = queryKey() const client = new QueryClient() await client.prefetchQuery({ - queryKey: ['string'], + queryKey: key, queryFn: () => Promise.resolve('string'), }) @@ -493,12 +494,12 @@ describe('query', () => { const hydrationClient = new QueryClient() hydrate(hydrationClient, dehydrated) - expect(hydrationClient.getQueryData(['string'])).toBe('string') + expect(hydrationClient.getQueryData(key)).toBe('string') - const query = hydrationClient.getQueryCache().find({ queryKey: ['string'] }) + const query = hydrationClient.getQueryCache().find({ queryKey: key }) query?.reset() - expect(hydrationClient.getQueryData(['string'])).toBe(undefined) + expect(hydrationClient.getQueryData(key)).toBe(undefined) }) test('should be able to refetch a cancelled query', async () => { diff --git a/packages/query-core/src/__tests__/queryCache.test.tsx b/packages/query-core/src/__tests__/queryCache.test.tsx index 821efa8061a..67c807a8380 100644 --- a/packages/query-core/src/__tests__/queryCache.test.tsx +++ b/packages/query-core/src/__tests__/queryCache.test.tsx @@ -125,18 +125,21 @@ describe('queryCache', () => { const testClient = new QueryClient({ queryCache: testCache }) + const key1 = queryKey() + const key2 = queryKey() + const key3 = queryKey() testClient.prefetchQuery({ - queryKey: ['key1'], + queryKey: key1, queryFn: () => sleep(100).then(() => 'data1'), }) expect(testCache.findAll().length).toBe(1) testClient.prefetchQuery({ - queryKey: ['key2'], + queryKey: key2, queryFn: () => sleep(100).then(() => 'data2'), }) expect(testCache.findAll().length).toBe(2) testClient.prefetchQuery({ - queryKey: ['key3'], + queryKey: key3, queryFn: () => sleep(100).then(() => 'data3'), }) await vi.advanceTimersByTimeAsync(100) diff --git a/packages/query-core/src/__tests__/queryClient.test-d.tsx b/packages/query-core/src/__tests__/queryClient.test-d.tsx index 8a3be1a9e23..4cd092ddd64 100644 --- a/packages/query-core/src/__tests__/queryClient.test-d.tsx +++ b/packages/query-core/src/__tests__/queryClient.test-d.tsx @@ -1,4 +1,5 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import type { MutationFilters, QueryFilters, Updater } from '../utils' import type { Mutation } from '../mutation' @@ -18,25 +19,25 @@ import type { describe('getQueryData', () => { it('should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(key) expectTypeOf(data).toEqualTypeOf() }) it('should infer unknown if key is not tagged', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(key) expectTypeOf(data).toEqualTypeOf() }) it('should infer passed generic if passed', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(key) expectTypeOf(data).toEqualTypeOf() }) @@ -51,9 +52,9 @@ describe('getQueryData', () => { describe('setQueryData', () => { it('updater should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(key, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -62,24 +63,24 @@ describe('setQueryData', () => { }) it('value should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '1') + queryClient.setQueryData(key, '1') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '1') + queryClient.setQueryData(key, () => '1') - const data = queryClient.setQueryData(queryKey, 1) + const data = queryClient.setQueryData(key, 1) expectTypeOf(data).toEqualTypeOf() }) it('should infer unknown for updater if key is not tagged', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(key, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -88,17 +89,17 @@ describe('setQueryData', () => { }) it('should infer unknown for value if key is not tagged', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, 'foo') + const data = queryClient.setQueryData(key, 'foo') expectTypeOf(data).toEqualTypeOf() }) it('should infer passed generic if passed', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(key, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -107,21 +108,21 @@ describe('setQueryData', () => { }) it('should infer passed generic for value', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, 'foo') + const data = queryClient.setQueryData(key, 'foo') expectTypeOf(data).toEqualTypeOf() }) it('should preserve updater parameter type inference when used in functions with explicit return types', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() // Simulate usage inside a function with explicit return type // The outer function returns 'unknown' but this shouldn't affect the updater's type inference ;(() => - queryClient.setQueryData(queryKey, (data) => { + queryClient.setQueryData(key, (data) => { expectTypeOf(data).toEqualTypeOf() return data })) satisfies () => unknown @@ -130,26 +131,26 @@ describe('setQueryData', () => { describe('getQueryState', () => { it('should be loose typed without tag', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.getQueryState(queryKey) + const data = queryClient.getQueryState(key) expectTypeOf(data).toEqualTypeOf | undefined>() }) it('should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() - const data = queryClient.getQueryState(queryKey) + const data = queryClient.getQueryState(key) expectTypeOf(data).toEqualTypeOf | undefined>() }) it('should be typed including error if key is tagged', () => { type CustomError = Error & { customError: string } - const queryKey = ['key'] as DataTag, number, CustomError> + const key = ['key'] as DataTag, number, CustomError> const queryClient = new QueryClient() - const data = queryClient.getQueryState(queryKey) + const data = queryClient.getQueryState(key) expectTypeOf(data).toEqualTypeOf< QueryState | undefined @@ -160,7 +161,7 @@ describe('getQueryState', () => { describe('fetchInfiniteQuery', () => { it('should allow passing pages', async () => { const data = await new QueryClient().fetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve('string'), getNextPageParam: () => 1, initialPageParam: 1, @@ -252,7 +253,7 @@ describe('fully typed usage', () => { return false }, } - const queryKey = queryFilters.queryKey! + const filterKey = queryFilters.queryKey! const mutationFilters: MutationFilters = { predicate(mutation) { @@ -268,10 +269,10 @@ describe('fully typed usage', () => { // Method type tests // - const state = queryClient.getQueryState(queryKey) + const state = queryClient.getQueryState(filterKey) expectTypeOf(state).toEqualTypeOf | undefined>() - const queryData1 = queryClient.getQueryData(queryKey) + const queryData1 = queryClient.getQueryData(filterKey) expectTypeOf(queryData1).toEqualTypeOf() const queryData2 = await queryClient.ensureQueryData(queryOptions) @@ -282,9 +283,9 @@ describe('fully typed usage', () => { Array<[ReadonlyArray, unknown]> >() - const queryData3 = queryClient.setQueryData(queryKey, { foo: '' }) + const queryData3 = queryClient.setQueryData(filterKey, { foo: '' }) type SetQueryDataUpdaterArg = Parameters< - typeof queryClient.setQueryData + typeof queryClient.setQueryData >[1] expectTypeOf().toEqualTypeOf< @@ -302,7 +303,7 @@ describe('fully typed usage', () => { >() expectTypeOf(queriesData2).toEqualTypeOf>() - const queryState = queryClient.getQueryState(queryKey) + const queryState = queryClient.getQueryState(filterKey) expectTypeOf(queryState).toEqualTypeOf< QueryState | undefined >() @@ -343,7 +344,7 @@ describe('fully typed usage', () => { }, }) - const queryDefaults = queryClient.getQueryDefaults(queryKey) + const queryDefaults = queryClient.getQueryDefaults(filterKey) expectTypeOf(queryDefaults).toEqualTypeOf< OmitKeyof, 'queryKey'> >() @@ -358,7 +359,7 @@ describe('fully typed usage', () => { queryClient.invalidateQueries(queryFilters) queryClient.refetchQueries(queryFilters) queryClient.prefetchInfiniteQuery(fetchInfiniteQueryOptions) - queryClient.setQueryDefaults(queryKey, {} as any) + queryClient.setQueryDefaults(filterKey, {} as any) queryClient.getMutationDefaults(mutationKey) }) @@ -391,7 +392,7 @@ describe('fully typed usage', () => { return false }, } - const queryKey = queryFilters.queryKey! + const filterKey = queryFilters.queryKey! const mutationFilters: MutationFilters = { predicate(mutation) { @@ -407,12 +408,12 @@ describe('fully typed usage', () => { // Method type tests // - const state = queryClient.getQueryState(queryKey) + const state = queryClient.getQueryState(filterKey) expectTypeOf(state).toEqualTypeOf< QueryState | undefined >() - const queryData1 = queryClient.getQueryData(queryKey) + const queryData1 = queryClient.getQueryData(filterKey) expectTypeOf(queryData1).toEqualTypeOf() const queryData2 = await queryClient.ensureQueryData(queryOptions) @@ -421,9 +422,9 @@ describe('fully typed usage', () => { const queriesData = queryClient.getQueriesData(queryFilters) expectTypeOf(queriesData).toEqualTypeOf>() - const queryData3 = queryClient.setQueryData(queryKey, { foo: '' }) + const queryData3 = queryClient.setQueryData(filterKey, { foo: '' }) type SetQueryDataUpdaterArg = Parameters< - typeof queryClient.setQueryData + typeof queryClient.setQueryData >[1] expectTypeOf().toEqualTypeOf< @@ -441,7 +442,7 @@ describe('fully typed usage', () => { >() expectTypeOf(queriesData2).toEqualTypeOf>() - const queryState = queryClient.getQueryState(queryKey) + const queryState = queryClient.getQueryState(filterKey) expectTypeOf(queryState).toEqualTypeOf< QueryState | undefined >() @@ -488,7 +489,7 @@ describe('fully typed usage', () => { }, }) - const queryDefaults = queryClient.getQueryDefaults(queryKey) + const queryDefaults = queryClient.getQueryDefaults(filterKey) expectTypeOf(queryDefaults).toEqualTypeOf< OmitKeyof, 'queryKey'> >() @@ -503,7 +504,7 @@ describe('fully typed usage', () => { queryClient.invalidateQueries(queryFilters) queryClient.refetchQueries(queryFilters) queryClient.prefetchInfiniteQuery(fetchInfiniteQueryOptions) - queryClient.setQueryDefaults(queryKey, {} as any) + queryClient.setQueryDefaults(filterKey, {} as any) queryClient.getMutationDefaults(mutationKey) }) }) @@ -526,10 +527,10 @@ describe('invalidateQueries', () => { }) }) it('predicate should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() queryClient.invalidateQueries({ - queryKey, + queryKey: key, predicate: (query) => { expectTypeOf(query.state.data).toEqualTypeOf() expectTypeOf(query.queryKey).toEqualTypeOf() @@ -541,10 +542,10 @@ describe('invalidateQueries', () => { describe('cancelQueries', () => { it('predicate should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() queryClient.cancelQueries({ - queryKey, + queryKey: key, predicate: (query) => { expectTypeOf(query.state.data).toEqualTypeOf() expectTypeOf(query.queryKey).toEqualTypeOf() @@ -556,10 +557,10 @@ describe('cancelQueries', () => { describe('removeQueries', () => { it('predicate should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() queryClient.removeQueries({ - queryKey, + queryKey: key, predicate: (query) => { expectTypeOf(query.state.data).toEqualTypeOf() expectTypeOf(query.queryKey).toEqualTypeOf() @@ -571,10 +572,10 @@ describe('removeQueries', () => { describe('refetchQueries', () => { it('predicate should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() queryClient.refetchQueries({ - queryKey, + queryKey: key, predicate: (query) => { expectTypeOf(query.state.data).toEqualTypeOf() expectTypeOf(query.queryKey).toEqualTypeOf() @@ -586,10 +587,10 @@ describe('refetchQueries', () => { describe('resetQueries', () => { it('predicate should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() queryClient.resetQueries({ - queryKey, + queryKey: key, predicate: (query) => { expectTypeOf(query.state.data).toEqualTypeOf() expectTypeOf(query.queryKey).toEqualTypeOf() @@ -600,24 +601,24 @@ describe('resetQueries', () => { }) type SuccessCallback = () => unknown it('should infer types correctly with expression body arrow functions', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() // @ts-expect-error const callbackTest: SuccessCallback = () => - queryClient.setQueryData(queryKey, (data) => { + queryClient.setQueryData(key, (data) => { expectTypeOf(data).toEqualTypeOf() return data }) }) it('should infer types correctly with block body arrow functions', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() // @ts-expect-error const callbackTest2: SuccessCallback = () => { - queryClient.setQueryData(queryKey, (data) => { + queryClient.setQueryData(key, (data) => { expectTypeOf(data).toEqualTypeOf() return data }) diff --git a/packages/query-core/src/__tests__/queryObserver.test-d.tsx b/packages/query-core/src/__tests__/queryObserver.test-d.tsx index f248c393de2..5d929e40ad8 100644 --- a/packages/query-core/src/__tests__/queryObserver.test-d.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test-d.tsx @@ -122,7 +122,7 @@ describe('queryObserver', () => { } new QueryObserver(new QueryClient(), { - queryKey: ['key'], + queryKey: queryKey(), placeholderData: (_, previousQuery) => { if (previousQuery) { expectTypeOf( @@ -138,7 +138,7 @@ describe('queryObserver', () => { const queryData = { foo: 'bar' } as const new QueryObserver(new QueryClient(), { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => queryData, select: (data) => data.foo, placeholderData: (previousData) => { diff --git a/packages/query-core/src/__tests__/utils.test.tsx b/packages/query-core/src/__tests__/utils.test.tsx index 9cee1b46424..f9b0ee4fa07 100644 --- a/packages/query-core/src/__tests__/utils.test.tsx +++ b/packages/query-core/src/__tests__/utils.test.tsx @@ -1,4 +1,5 @@ import { describe, expect, it, vi } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '..' import { addToEnd, @@ -19,21 +20,21 @@ import { Mutation } from '../mutation' describe('core/utils', () => { describe('hashQueryKeyByOptions', () => { it('should use custom hash function when provided in options', () => { - const queryKey = ['test', { a: 1, b: 2 }] + const key = ['test', { a: 1, b: 2 }] const customHashFn = vi.fn(() => 'custom-hash') - const result = hashQueryKeyByOptions(queryKey, { + const result = hashQueryKeyByOptions(key, { queryKeyHashFn: customHashFn, }) - expect(customHashFn).toHaveBeenCalledWith(queryKey) + expect(customHashFn).toHaveBeenCalledWith(key) expect(result).toEqual('custom-hash') }) it('should use default hash function when no options provided', () => { - const queryKey = ['test', { a: 1, b: 2 }] - const defaultResult = hashKey(queryKey) - const result = hashQueryKeyByOptions(queryKey) + const key = ['test', { a: 1, b: 2 }] + const defaultResult = hashKey(key) + const result = hashQueryKeyByOptions(key) expect(result).toEqual(defaultResult) }) @@ -420,7 +421,7 @@ describe('core/utils', () => { describe('matchMutation', () => { it('should return false if mutationKey options is undefined', () => { - const filters = { mutationKey: ['key1'] } + const filters = { mutationKey: queryKey() } const queryClient = new QueryClient() const mutation = new Mutation({ client: queryClient, From ef62f7b0acb4a5c00049bbe63b55306512fa9e46 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 8 Apr 2026 10:31:14 +0900 Subject: [PATCH 073/414] test(query-core/hydration): replace 'vi.waitFor' with 'vi.advanceTimersByTimeAsync' (#10428) * test(query-core/hydration): replace 'vi.waitFor' with 'vi.advanceTimersByTimeAsync' * ci: trigger CI --- .../src/__tests__/hydration.test.tsx | 399 ++++++++---------- 1 file changed, 184 insertions(+), 215 deletions(-) diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index d07cfef75e8..e369ce03fd7 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -25,43 +25,31 @@ describe('dehydration and rehydration', () => { const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: stringKey, - queryFn: () => sleep(0).then(() => 'string'), - }), - ) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: numberKey, - queryFn: () => sleep(0).then(() => 1), - }), - ) - - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: booleanKey, - queryFn: () => sleep(0).then(() => true), - }), - ) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: nullKey, - queryFn: () => sleep(0).then(() => null), - }), - ) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: arrayKey, - queryFn: () => sleep(0).then(() => ['string', 0]), - }), - ) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: nestedKey, - queryFn: () => sleep(0).then(() => ({ key: [{ nestedKey: 1 }] })), - }), - ) + queryClient.prefetchQuery({ + queryKey: stringKey, + queryFn: () => sleep(0).then(() => 'string'), + }) + queryClient.prefetchQuery({ + queryKey: numberKey, + queryFn: () => sleep(0).then(() => 1), + }) + queryClient.prefetchQuery({ + queryKey: booleanKey, + queryFn: () => sleep(0).then(() => true), + }) + queryClient.prefetchQuery({ + queryKey: nullKey, + queryFn: () => sleep(0).then(() => null), + }) + queryClient.prefetchQuery({ + queryKey: arrayKey, + queryFn: () => sleep(0).then(() => ['string', 0]), + }) + queryClient.prefetchQuery({ + queryKey: nestedKey, + queryFn: () => sleep(0).then(() => ({ key: [{ nestedKey: 1 }] })), + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) @@ -125,16 +113,15 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should not dehydrate queries if dehydrateQueries is set to false', () => { + test('should not dehydrate queries if dehydrateQueries is set to false', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(0).then(() => 'string'), - }), - ) + queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(0).then(() => 'string'), + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient, { shouldDehydrateQuery: () => false, @@ -149,13 +136,12 @@ describe('dehydration and rehydration', () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(0).then(() => 'string'), - gcTime: 50, - }), - ) + queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(0).then(() => 'string'), + gcTime: 50, + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) @@ -179,12 +165,11 @@ describe('dehydration and rehydration', () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(0).then(() => 'string'), - }), - ) + queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(0).then(() => 'string'), + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) const parsed = JSON.parse(stringified) @@ -207,13 +192,12 @@ describe('dehydration and rehydration', () => { dehydrate: { shouldDehydrateQuery: () => true }, }, }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: key, - retry: 0, - queryFn: () => Promise.reject(new Error('error')), - }), - ) + queryClient.prefetchQuery({ + queryKey: key, + retry: 0, + queryFn: () => Promise.reject(new Error('error')), + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient) expect(dehydrated.queries.length).toBe(1) expect(dehydrated.queries[0]?.state.error).toStrictEqual(new Error('error')) @@ -277,12 +261,11 @@ describe('dehydration and rehydration', () => { const complexKey = [...key, { key: ['string'], key2: 0 }] const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: complexKey, - queryFn: () => sleep(0).then(() => 'string'), - }), - ) + queryClient.prefetchQuery({ + queryKey: complexKey, + queryFn: () => sleep(0).then(() => 'string'), + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) @@ -300,13 +283,11 @@ describe('dehydration and rehydration', () => { const fetchDataAfterHydration = vi.fn<(...args: Array) => unknown>() - await vi.waitFor(() => - hydrationClient.prefetchQuery({ - queryKey: complexKey, - queryFn: fetchDataAfterHydration, - staleTime: 100, - }), - ) + await hydrationClient.prefetchQuery({ + queryKey: complexKey, + queryFn: fetchDataAfterHydration, + staleTime: 100, + }) expect(fetchDataAfterHydration).toHaveBeenCalledTimes(0) queryClient.clear() @@ -323,24 +304,22 @@ describe('dehydration and rehydration', () => { const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: successKey, - queryFn: () => sleep(0).then(() => 'success'), - }), - ) + queryClient.prefetchQuery({ + queryKey: successKey, + queryFn: () => sleep(0).then(() => 'success'), + }) + await vi.advanceTimersByTimeAsync(0) queryClient.prefetchQuery({ queryKey: loadingKey, queryFn: () => sleep(10000).then(() => 'loading'), }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: errorKey, - queryFn: () => { - throw new Error() - }, - }), - ) + queryClient.prefetchQuery({ + queryKey: errorKey, + queryFn: () => { + throw new Error() + }, + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) @@ -365,18 +344,15 @@ describe('dehydration and rehydration', () => { const numberKey = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: stringKey, - queryFn: () => sleep(0).then(() => 'string'), - }), - ) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: numberKey, - queryFn: () => sleep(0).then(() => 1), - }), - ) + queryClient.prefetchQuery({ + queryKey: stringKey, + queryFn: () => sleep(0).then(() => 'string'), + }) + queryClient.prefetchQuery({ + queryKey: numberKey, + queryFn: () => sleep(0).then(() => 1), + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient, { shouldDehydrateQuery: (query) => query.queryKey !== stringKey, }) @@ -407,12 +383,12 @@ describe('dehydration and rehydration', () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(5).then(() => 'string-older'), - }), - ) + const promise1 = queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(5).then(() => 'string-older'), + }) + await vi.advanceTimersByTimeAsync(5) + await promise1 const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) @@ -421,12 +397,12 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() const hydrationClient = new QueryClient({ queryCache: hydrationCache }) - await vi.waitFor(() => - hydrationClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(5).then(() => 'string-newer'), - }), - ) + const promise2 = hydrationClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(5).then(() => 'string-newer'), + }) + await vi.advanceTimersByTimeAsync(5) + await promise2 hydrate(hydrationClient, parsed) expect(hydrationCache.find({ queryKey: key })?.state.data).toBe( @@ -441,23 +417,23 @@ describe('dehydration and rehydration', () => { const key = queryKey() const hydrationCache = new QueryCache() const hydrationClient = new QueryClient({ queryCache: hydrationCache }) - await vi.waitFor(() => - hydrationClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(5).then(() => 'string-older'), - }), - ) + const promise1 = hydrationClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(5).then(() => 'string-older'), + }) + await vi.advanceTimersByTimeAsync(5) + await promise1 // --- const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(5).then(() => 'string-newer'), - }), - ) + const promise2 = queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(5).then(() => 'string-newer'), + }) + await vi.advanceTimersByTimeAsync(5) + await promise2 const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) @@ -704,21 +680,18 @@ describe('dehydration and rehydration', () => { const noMetaKey = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: metaKey, - queryFn: () => Promise.resolve('meta'), - meta: { - some: 'meta', - }, - }), - ) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: noMetaKey, - queryFn: () => Promise.resolve('no-meta'), - }), - ) + queryClient.prefetchQuery({ + queryKey: metaKey, + queryFn: () => Promise.resolve('meta'), + meta: { + some: 'meta', + }, + }) + queryClient.prefetchQuery({ + queryKey: noMetaKey, + queryFn: () => Promise.resolve('no-meta'), + }) + await vi.advanceTimersByTimeAsync(0) const dehydrated = dehydrate(queryClient) @@ -833,7 +806,9 @@ describe('dehydration and rehydration', () => { }, } as const - await vi.waitFor(() => queryClient.prefetchQuery(options)) + const prefetchPromise = queryClient.prefetchQuery(options) + await vi.advanceTimersByTimeAsync(10) + await prefetchPromise const dehydrated = dehydrate(queryClient) expect( @@ -852,7 +827,8 @@ describe('dehydration and rehydration', () => { expect(hydrationCache.find({ queryKey: key })?.state.fetchStatus).toBe( 'fetching', ) - await vi.waitFor(() => promise) + await vi.advanceTimersByTimeAsync(10) + await promise expect(hydrationCache.find({ queryKey: key })?.state.fetchStatus).toBe( 'idle', ) @@ -901,12 +877,11 @@ describe('dehydration and rehydration', () => { queryCache, defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true } }, }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: successKey, - queryFn: () => sleep(0).then(() => 'success'), - }), - ) + queryClient.prefetchQuery({ + queryKey: successKey, + queryFn: () => sleep(0).then(() => 'success'), + }) + await vi.advanceTimersByTimeAsync(0) const promise = queryClient.prefetchQuery({ queryKey: pendingKey, @@ -917,7 +892,8 @@ describe('dehydration and rehydration', () => { expect(dehydrated.queries[0]?.promise).toBeUndefined() expect(dehydrated.queries[1]?.promise).toBeInstanceOf(Promise) - await vi.waitFor(() => promise) + await vi.advanceTimersByTimeAsync(10) + await promise queryClient.clear() }) @@ -929,12 +905,11 @@ describe('dehydration and rehydration', () => { queryCache, defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true } }, }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: successKey, - queryFn: () => sleep(0).then(() => 'success'), - }), - ) + queryClient.prefetchQuery({ + queryKey: successKey, + queryFn: () => sleep(0).then(() => 'success'), + }) + await vi.advanceTimersByTimeAsync(0) void queryClient.prefetchQuery({ queryKey: pendingKey, @@ -970,24 +945,22 @@ describe('dehydration and rehydration', () => { status: 'pending', }) - await vi.waitFor(() => - expect( - hydrationCache.find({ queryKey: pendingKey })?.state, - ).toMatchObject({ - data: 'pending', - dataUpdateCount: 1, - dataUpdatedAt: expect.any(Number), - error: null, - errorUpdateCount: 0, - errorUpdatedAt: 0, - fetchFailureCount: 0, - fetchFailureReason: null, - fetchMeta: null, - fetchStatus: 'idle', - isInvalidated: false, - status: 'success', - }), - ) + await vi.advanceTimersByTimeAsync(20) + + expect(hydrationCache.find({ queryKey: pendingKey })?.state).toMatchObject({ + data: 'pending', + dataUpdateCount: 1, + dataUpdatedAt: expect.any(Number), + error: null, + errorUpdateCount: 0, + errorUpdatedAt: 0, + fetchFailureCount: 0, + fetchFailureReason: null, + fetchMeta: null, + fetchStatus: 'idle', + isInvalidated: false, + status: 'success', + }) }) test('should transform promise result', async () => { @@ -1017,10 +990,10 @@ describe('dehydration and rehydration', () => { }) hydrate(hydrationClient, dehydrated) - await vi.waitFor(() => promise) - await vi.waitFor(() => - expect(hydrationClient.getQueryData(key)).toBeInstanceOf(Date), - ) + await vi.advanceTimersByTimeAsync(20) + await promise + + expect(hydrationClient.getQueryData(key)).toBeInstanceOf(Date) queryClient.clear() }) @@ -1052,10 +1025,9 @@ describe('dehydration and rehydration', () => { }) hydrate(hydrationClient, dehydrated) - await vi.waitFor(() => promise) - await vi.waitFor(() => - expect(hydrationClient.getQueryData(key)).toBeInstanceOf(Date), - ) + await promise + + expect(hydrationClient.getQueryData(key)).toBeInstanceOf(Date) queryClient.clear() }) @@ -1069,13 +1041,12 @@ describe('dehydration and rehydration', () => { }, }, }) - await vi.waitFor(() => - hydrationClient.prefetchQuery({ - queryKey: key, - queryFn: () => - sleep(5).then(() => new Date('2024-01-01T00:00:00.000Z')), - }), - ) + const hydrationPromise = hydrationClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(5).then(() => new Date('2024-01-01T00:00:00.000Z')), + }) + await vi.advanceTimersByTimeAsync(5) + await hydrationPromise // --- @@ -1087,13 +1058,12 @@ describe('dehydration and rehydration', () => { }, }, }) - await vi.waitFor(() => - queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => - sleep(10).then(() => new Date('2024-01-02T00:00:00.000Z')), - }), - ) + const queryPromise = queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(10).then(() => new Date('2024-01-02T00:00:00.000Z')), + }) + await vi.advanceTimersByTimeAsync(10) + await queryPromise const dehydrated = dehydrate(queryClient) // --- @@ -1138,10 +1108,10 @@ describe('dehydration and rehydration', () => { hydrate(clientQueryClient, dehydrated) - await vi.waitFor(() => promise) - await vi.waitFor(() => - expect(clientQueryClient.getQueryData(key)).toBe('server data'), - ) + await vi.advanceTimersByTimeAsync(10) + await promise + + expect(clientQueryClient.getQueryData(key)).toBe('server data') clientQueryClient.clear() serverQueryClient.clear() @@ -1189,12 +1159,10 @@ describe('dehydration and rehydration', () => { // If the query was hydrated in error, it would still take some time for it // to end up in the cache, so for the test to fail properly on regressions, // wait for the fetchStatus to be idle - await vi.waitFor(() => - expect(clientQueryClient.getQueryState(key)?.fetchStatus).toBe('idle'), - ) - await vi.waitFor(() => - expect(clientQueryClient.getQueryData(key)).toBe('newer data'), - ) + await vi.advanceTimersByTimeAsync(0) + + expect(clientQueryClient.getQueryState(key)?.fetchStatus).toBe('idle') + expect(clientQueryClient.getQueryData(key)).toBe('newer data') clientQueryClient.clear() serverQueryClient.clear() @@ -1240,10 +1208,10 @@ describe('dehydration and rehydration', () => { hydrate(clientQueryClient, dehydrated) - await vi.waitFor(() => promise) - await vi.waitFor(() => - expect(clientQueryClient.getQueryData(query.queryKey)).toBe(0), - ) + await vi.advanceTimersByTimeAsync(10) + await promise + + expect(clientQueryClient.getQueryData(query.queryKey)).toBe(0) expect(serializeDataMock).toHaveBeenCalledTimes(1) expect(serializeDataMock).toHaveBeenCalledWith(0) @@ -1253,6 +1221,7 @@ describe('dehydration and rehydration', () => { // --- server --- countRef.current++ + await vi.advanceTimersByTimeAsync(1) serverQueryClient.clear() const promise2 = serverQueryClient.prefetchQuery(query) @@ -1262,10 +1231,10 @@ describe('dehydration and rehydration', () => { hydrate(clientQueryClient, dehydrated) - await vi.waitFor(() => promise2) - await vi.waitFor(() => - expect(clientQueryClient.getQueryData(query.queryKey)).toBe(1), - ) + await vi.advanceTimersByTimeAsync(10) + await promise2 + + expect(clientQueryClient.getQueryData(query.queryKey)).toBe(1) expect(serializeDataMock).toHaveBeenCalledTimes(2) expect(serializeDataMock).toHaveBeenCalledWith(1) From 6b95cd871a0165111d2f7f1b8e9827d84f1e10b3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 9 Apr 2026 09:41:31 +0900 Subject: [PATCH 074/414] test(query-core): replace 'vi.waitFor' with 'vi.advanceTimersByTimeAsync' in 'query.test.tsx' (#10434) --- packages/query-core/src/__tests__/query.test.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index 646ec621938..06908ed2fbc 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -1067,8 +1067,7 @@ describe('query', () => { queryFn, }) - await vi.advanceTimersByTimeAsync(10) - + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(1) x = 1 @@ -1076,10 +1075,9 @@ describe('query', () => { // cancel ongoing re-fetches void queryClient.refetchQueries({ queryKey: key }, { cancelRefetch: true }) - await vi.advanceTimersByTimeAsync(10) - // The promise should not reject - await vi.waitFor(() => expect(promise).resolves.toBe('data1')) + await vi.advanceTimersByTimeAsync(100) + await expect(promise).resolves.toBe('data1') expect(queryFn).toHaveBeenCalledTimes(2) }) @@ -1322,7 +1320,8 @@ describe('query', () => { query.fetch() await expect(promise1).rejects.toBeInstanceOf(CancelledError) - await vi.waitFor(() => expect(query.state.fetchStatus).toBe('idle')) + await vi.advanceTimersByTimeAsync(50) + expect(query.state.fetchStatus).toBe('idle') expect(queryFn).toHaveBeenCalledTimes(2) From 48c3975afbefc4b251396e93200fbcc26ca9cc2b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 9 Apr 2026 10:46:52 +0900 Subject: [PATCH 075/414] test(query-core): replace 'async/await sleep' with 'sleep().then()' in test 'queryFn' and 'mutationFn' (#10435) --- .../src/__tests__/hydration.test.tsx | 20 ++-------- .../src/__tests__/mutations.test.tsx | 10 +---- .../src/__tests__/queriesObserver.test.tsx | 5 +-- .../query-core/src/__tests__/query.test.tsx | 28 ++++---------- .../src/__tests__/queryClient.test.tsx | 5 +-- .../src/__tests__/queryObserver.test.tsx | 38 ++++++------------- 6 files changed, 28 insertions(+), 78 deletions(-) diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index e369ce03fd7..8bb79ec6e9b 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -800,10 +800,7 @@ describe('dehydration and rehydration', () => { const options = { queryKey: key, - queryFn: async () => { - await sleep(10) - return 'string' - }, + queryFn: () => sleep(10).then(() => 'string'), } as const const prefetchPromise = queryClient.prefetchQuery(options) @@ -1092,10 +1089,7 @@ describe('dehydration and rehydration', () => { const promise = serverQueryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'server data' - }, + queryFn: () => sleep(10).then(() => 'server data'), }) const dehydrated = dehydrate(serverQueryClient) @@ -1131,10 +1125,7 @@ describe('dehydration and rehydration', () => { const promise = serverQueryClient.prefetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'server data' - }, + queryFn: () => sleep(10).then(() => 'server data'), }) const dehydrated = dehydrate(serverQueryClient) @@ -1186,10 +1177,7 @@ describe('dehydration and rehydration', () => { const query = { queryKey: key, - queryFn: async () => { - await sleep(10) - return countRef.current - }, + queryFn: () => sleep(10).then(() => countRef.current), } const promise = serverQueryClient.prefetchQuery(query) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index cc36cd3b2d3..e04ca39c96d 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -406,10 +406,7 @@ describe('mutations', () => { const onSuccess = vi.fn() const mutation = new MutationObserver(queryClient, { - mutationFn: async () => { - await sleep(100) - return Promise.resolve('update') - }, + mutationFn: () => sleep(100).then(() => Promise.resolve('update')), onSuccess: () => { onSuccess(1) }, @@ -418,10 +415,7 @@ describe('mutations', () => { void mutation.mutate() mutation.setOptions({ - mutationFn: async () => { - await sleep(100) - return Promise.resolve('update') - }, + mutationFn: () => sleep(100).then(() => Promise.resolve('update')), onSuccess: () => { onSuccess(2) }, diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index 88b763f712c..b2fab48b664 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -296,10 +296,7 @@ describe('queriesObserver', () => { const observer = new QueriesObserver(queryClient, [ { queryKey: key1, - queryFn: async () => { - await sleep(20) - return 1 - }, + queryFn: () => sleep(20).then(() => 1), }, ]) diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index 06908ed2fbc..e84943558ff 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -236,10 +236,7 @@ describe('query', () => { const observer = new QueryObserver(queryClient, { queryKey: key, - queryFn: async () => { - await sleep(100) - return 'data' - }, + queryFn: () => sleep(100).then(() => 'data'), }) const unsubscribe = observer.subscribe(() => undefined) @@ -249,10 +246,7 @@ describe('query', () => { const promise = queryClient.fetchQuery({ queryKey: key, - queryFn: async ({ signal }) => { - await sleep(100) - return 'data2' + String(signal) - }, + queryFn: ({ signal }) => sleep(100).then(() => 'data2' + String(signal)), }) // Ensure the fetch is in progress @@ -326,10 +320,8 @@ describe('query', () => { queryClient.prefetchQuery({ queryKey: key, - queryFn: async ({ signal }) => { - await sleep(100) - return signal.aborted ? 'aborted' : 'data' - }, + queryFn: ({ signal }) => + sleep(100).then(() => (signal.aborted ? 'aborted' : 'data')), }) await vi.advanceTimersByTimeAsync(10) @@ -1057,10 +1049,9 @@ describe('query', () => { let x = 0 queryClient.setQueryData(key, 'initial') - const queryFn = vi.fn().mockImplementation(async () => { - await sleep(100) - return 'data' + x - }) + const queryFn = vi + .fn() + .mockImplementation(() => sleep(100).then(() => 'data' + x)) const promise = queryClient.fetchQuery({ queryKey: key, @@ -1221,10 +1212,7 @@ describe('query', () => { test('should update initialData when Query exists without data', async () => { const key = queryKey() - const queryFn = vi.fn(async () => { - await sleep(100) - return 'data' - }) + const queryFn = vi.fn(() => sleep(100).then(() => 'data')) const promise = queryClient.prefetchQuery({ queryKey: key, diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index 2676717fb62..4871d823c1f 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -1038,10 +1038,7 @@ describe('queryClient', () => { const promise = queryClient.fetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(50) - return 25 - }, + queryFn: () => sleep(50).then(() => 25), }) await vi.advanceTimersByTimeAsync(10) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index b27d5d53ef3..58306f072c0 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -489,10 +489,7 @@ describe('queryObserver', () => { test('should always run the selector again if selector throws an error and selector is not referentially stable', async () => { const key = queryKey() const results: Array = [] - const queryFn = async () => { - await sleep(10) - return { count: 1 } - } + const queryFn = () => sleep(10).then(() => ({ count: 1 })) const observer = new QueryObserver(queryClient, { queryKey: key, queryFn, @@ -537,10 +534,7 @@ describe('queryObserver', () => { const observer = new QueryObserver(queryClient, { queryKey: key, retry: 0, - queryFn: async () => { - await sleep(10) - return shouldError ? 2 : 1 - }, + queryFn: () => sleep(10).then(() => (shouldError ? 2 : 1)), select: (num) => { if (shouldError) { throw error @@ -1163,13 +1157,11 @@ describe('queryObserver', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, - queryFn: async () => { - await sleep(5) - return { + queryFn: () => + sleep(5).then(() => ({ data: 'data', staleTime: 20, - } - }, + })), staleTime: (query) => query.state.data?.staleTime ?? 0, }) const results: Array> = [] @@ -1191,12 +1183,10 @@ describe('queryObserver', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, - queryFn: async () => { - await sleep(5) - return { + queryFn: () => + sleep(5).then(() => ({ data: 'data', - } - }, + })), staleTime: 'static', }) const result = observer.getCurrentResult() @@ -1564,10 +1554,7 @@ describe('queryObserver', () => { describe('StrictMode behavior', () => { it('should deduplicate calls to queryFn', async () => { const key = queryKey() - const queryFn = vi.fn(async () => { - await sleep(50) - return 'data' - }) + const queryFn = vi.fn(() => sleep(50).then(() => 'data')) const observer = new QueryObserver(queryClient, { queryKey: key, queryFn, @@ -1596,10 +1583,9 @@ describe('queryObserver', () => { it('should resolve with data when signal was consumed', async () => { const key = queryKey() - const queryFn = vi.fn(async ({ signal }) => { - await sleep(50) - return 'data' + String(signal) - }) + const queryFn = vi.fn(({ signal }) => + sleep(50).then(() => 'data' + String(signal)), + ) const observer = new QueryObserver(queryClient, { queryKey: key, queryFn, From 2bfb12cc44f1d8495106136e4ddacb817135f8f9 Mon Sep 17 00:00:00 2001 From: semimikoh <123785695+semimikoh@users.noreply.github.com> Date: Thu, 9 Apr 2026 16:26:00 +0900 Subject: [PATCH 076/414] fix(query-core): clear timers when timer ID is 0 (#10401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(query-core): use explicit undefined check for timer IDs Custom TimeoutProvider implementations may return 0 as a valid timer ID (e.g. a counter-based provider), but the existing truthy checks treated 0 as "no timer" and skipped clearTimeout/clearInterval. This left stale timers running, causing unexpected refetches and GC leaks. Compare against undefined instead, matching the optional `?: ManagedTimerId` field types. Fixes #10395 * chore: add changeset for #10395 --------- Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/fix-timer-id-zero-falsy-check.md | 5 +++++ packages/query-core/src/queryObserver.ts | 4 ++-- packages/query-core/src/removable.ts | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .changeset/fix-timer-id-zero-falsy-check.md diff --git a/.changeset/fix-timer-id-zero-falsy-check.md b/.changeset/fix-timer-id-zero-falsy-check.md new file mode 100644 index 00000000000..7bec3cdab1c --- /dev/null +++ b/.changeset/fix-timer-id-zero-falsy-check.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +fix(query-core): use explicit `undefined` check for timer IDs so that custom `TimeoutProvider`s returning `0` as a valid timer ID are properly cleared diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index a290c700b58..fa950bcfff3 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -417,14 +417,14 @@ export class QueryObserver< } #clearStaleTimeout(): void { - if (this.#staleTimeoutId) { + if (this.#staleTimeoutId !== undefined) { timeoutManager.clearTimeout(this.#staleTimeoutId) this.#staleTimeoutId = undefined } } #clearRefetchInterval(): void { - if (this.#refetchIntervalId) { + if (this.#refetchIntervalId !== undefined) { timeoutManager.clearInterval(this.#refetchIntervalId) this.#refetchIntervalId = undefined } diff --git a/packages/query-core/src/removable.ts b/packages/query-core/src/removable.ts index 68545f74383..62e524219ca 100644 --- a/packages/query-core/src/removable.ts +++ b/packages/query-core/src/removable.ts @@ -30,7 +30,7 @@ export abstract class Removable { } protected clearGcTimeout() { - if (this.#gcTimeout) { + if (this.#gcTimeout !== undefined) { timeoutManager.clearTimeout(this.#gcTimeout) this.#gcTimeout = undefined } From 23a4029c9a8a9cf88421fe9b9f031b5f01fc12d4 Mon Sep 17 00:00:00 2001 From: Byungsker <72309817+byungsker@users.noreply.github.com> Date: Thu, 9 Apr 2026 17:31:00 +0900 Subject: [PATCH 077/414] feat(eslint-plugin-query): add ESLint v10 to peer dependencies (#10182) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(eslint-plugin-query): add ESLint v10 to peer dependencies * fix: bump @typescript-eslint/utils to ^8.56.0 for ESLint v10 peer support * chore: fix lockfile * add typescript v6 support * Apply suggestions from code review Co-authored-by: Dominik Dorfmeister 🔮 --------- Co-authored-by: TkDodo --- .changeset/eslint-plugin-query-eslint-v10.md | 5 + package.json | 24 +- packages/eslint-plugin-query/package.json | 6 +- pnpm-lock.yaml | 402 +++++++++---------- 4 files changed, 221 insertions(+), 216 deletions(-) create mode 100644 .changeset/eslint-plugin-query-eslint-v10.md diff --git a/.changeset/eslint-plugin-query-eslint-v10.md b/.changeset/eslint-plugin-query-eslint-v10.md new file mode 100644 index 00000000000..4fd7336f588 --- /dev/null +++ b/.changeset/eslint-plugin-query-eslint-v10.md @@ -0,0 +1,5 @@ +--- +"@tanstack/eslint-plugin-query": minor +--- + +feat(eslint): support eslint v10 and typescript v6 diff --git a/package.json b/package.json index e4e28cb5d55..b00e2ce430b 100644 --- a/package.json +++ b/package.json @@ -88,18 +88,18 @@ "@types/react": "^19.2.7", "@types/react-dom": "^19.2.3", "@types/node": "^22.15.3", - "@typescript-eslint/eslint-plugin": "8.56.1", - "@typescript-eslint/parser": "8.56.1", - "@typescript-eslint/project-service": "8.56.1", - "@typescript-eslint/rule-tester": "8.56.1", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/tsconfig-utils": "8.56.1", - "@typescript-eslint/type-utils": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/utils": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", - "typescript-eslint": "8.56.1", + "@typescript-eslint/eslint-plugin": "8.58.1", + "@typescript-eslint/parser": "8.58.1", + "@typescript-eslint/project-service": "8.58.1", + "@typescript-eslint/rule-tester": "8.58.1", + "@typescript-eslint/scope-manager": "8.58.1", + "@typescript-eslint/tsconfig-utils": "8.58.1", + "@typescript-eslint/type-utils": "8.58.1", + "@typescript-eslint/types": "8.58.1", + "@typescript-eslint/typescript-estree": "8.58.1", + "@typescript-eslint/utils": "8.58.1", + "@typescript-eslint/visitor-keys": "8.58.1", + "typescript-eslint": "8.58.1", "vite": "^6.4.1", "esbuild": "^0.27.2" } diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index b69dcf98821..88af7e13c12 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -58,7 +58,7 @@ "!src/__tests__" ], "dependencies": { - "@typescript-eslint/utils": "^8.48.0" + "@typescript-eslint/utils": "^8.58.1" }, "devDependencies": { "@typescript-eslint/parser": "^8.48.0", @@ -68,8 +68,8 @@ "npm-run-all2": "^5.0.0" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "^5.4.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": "^5.4.0 || ^6.0.0" }, "peerDependenciesMeta": { "typescript": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e1296385b9..bb546f237a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,18 +8,18 @@ overrides: '@types/react': ^19.2.7 '@types/react-dom': ^19.2.3 '@types/node': ^22.15.3 - '@typescript-eslint/eslint-plugin': 8.56.1 - '@typescript-eslint/parser': 8.56.1 - '@typescript-eslint/project-service': 8.56.1 - '@typescript-eslint/rule-tester': 8.56.1 - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/tsconfig-utils': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1 - '@typescript-eslint/utils': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 - typescript-eslint: 8.56.1 + '@typescript-eslint/eslint-plugin': 8.58.1 + '@typescript-eslint/parser': 8.58.1 + '@typescript-eslint/project-service': 8.58.1 + '@typescript-eslint/rule-tester': 8.58.1 + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/tsconfig-utils': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1 + '@typescript-eslint/utils': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + typescript-eslint: 8.58.1 vite: ^6.4.1 esbuild: ^0.27.2 @@ -47,7 +47,7 @@ importers: version: 1.2.0 '@tanstack/eslint-config': specifier: 0.3.2 - version: 0.3.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 0.3.2(@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@tanstack/typedoc-config': specifier: 0.3.1 version: 0.3.1(typescript@5.9.3) @@ -71,7 +71,7 @@ importers: version: 4.0.6(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@vitest/eslint-plugin': specifier: ^1.4.0 - version: 1.6.14(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 1.6.14(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) esbuild-plugin-file-path-extensions: specifier: ^2.1.4 version: 2.1.4 @@ -913,8 +913,8 @@ importers: specifier: 5.8.3 version: 5.8.3 typescript-eslint: - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) examples/react/infinite-query-with-max-pages: dependencies: @@ -2429,18 +2429,18 @@ importers: packages/eslint-plugin-query: dependencies: '@typescript-eslint/utils': - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) typescript: - specifier: ^5.4.0 + specifier: ^5.4.0 || ^6.0.0 version: 5.9.3 devDependencies: '@typescript-eslint/parser': - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/rule-tester': - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) combinate: specifier: ^1.1.11 version: 1.1.11 @@ -2488,8 +2488,8 @@ importers: specifier: 5.9.3 version: 5.9.3 typescript-eslint: - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) packages/preact-query-devtools: dependencies: @@ -2519,8 +2519,8 @@ importers: specifier: 5.9.3 version: 5.9.3 typescript-eslint: - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) packages/preact-query-persist-client: dependencies: @@ -2553,8 +2553,8 @@ importers: specifier: 5.9.3 version: 5.9.3 typescript-eslint: - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) packages/query-async-storage-persister: dependencies: @@ -2903,8 +2903,8 @@ importers: specifier: ^5.2.8 version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@typescript-eslint/parser': - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-svelte: specifier: ^3.11.0 version: 3.16.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.55.1) @@ -2937,8 +2937,8 @@ importers: specifier: workspace:* version: link:../svelte-query '@typescript-eslint/parser': - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-svelte: specifier: ^3.11.0 version: 3.16.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.55.1) @@ -2974,8 +2974,8 @@ importers: specifier: ^5.2.8 version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@typescript-eslint/parser': - specifier: 8.56.1 - version: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-svelte: specifier: ^3.11.0 version: 3.16.0(eslint@9.39.4(jiti@2.6.1))(svelte@5.55.1) @@ -3015,7 +3015,7 @@ importers: version: 1.7.2(vue@3.5.31(typescript@5.9.3)) eslint-plugin-vue: specifier: ^10.5.0 - version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))) + version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))) vue: specifier: ^3.4.27 version: 3.5.31(typescript@5.9.3) @@ -3040,7 +3040,7 @@ importers: version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) eslint-plugin-vue: specifier: ^10.5.0 - version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))) + version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))) typescript: specifier: 5.8.3 version: 5.8.3 @@ -7323,69 +7323,69 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.56.1': - resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} + '@typescript-eslint/eslint-plugin@8.58.1': + resolution: {integrity: sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': 8.56.1 + '@typescript-eslint/parser': 8.58.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.56.1': - resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} + '@typescript-eslint/parser@8.58.1': + resolution: {integrity: sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} + '@typescript-eslint/project-service@8.58.1': + resolution: {integrity: sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/rule-tester@8.56.1': - resolution: {integrity: sha512-EWuV5Vq1EFYJEOVcILyWPO35PjnT0c6tv99PCpD12PgfZae5/Jo+F17hGjsEs2Moe+Dy1J7KIr8y037cK8+/rQ==} + '@typescript-eslint/rule-tester@8.58.1': + resolution: {integrity: sha512-xNpISfU2bSCaw4zOy81xZJ3zC+CV6byOGRtMJGheAVqLGhRCX6NcA1UcKMpIWu4Vva8Jh76+j6VoeKKtYbeXNQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} + '@typescript-eslint/scope-manager@8.58.1': + resolution: {integrity: sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} + '@typescript-eslint/tsconfig-utils@8.58.1': + resolution: {integrity: sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.56.1': - resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} + '@typescript-eslint/type-utils@8.58.1': + resolution: {integrity: sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} + '@typescript-eslint/types@8.58.1': + resolution: {integrity: sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} + '@typescript-eslint/typescript-estree@8.58.1': + resolution: {integrity: sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} + '@typescript-eslint/utils@8.58.1': + resolution: {integrity: sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} + '@typescript-eslint/visitor-keys@8.58.1': + resolution: {integrity: sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -7588,7 +7588,7 @@ packages: resolution: {integrity: sha512-PXZ5ysw4eHU9h8nDtBvVcGC7Z2C/T9CFdheqSw1NNXFYqViojub0V9bgdYI67iBTOcra2mwD0EYldlY9bGPf2Q==} engines: {node: '>=18'} peerDependencies: - '@typescript-eslint/eslint-plugin': 8.56.1 + '@typescript-eslint/eslint-plugin': 8.58.1 eslint: '>=8.57.0' typescript: '>=5.0.0' vitest: '*' @@ -9804,7 +9804,7 @@ packages: resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/utils': 8.56.1 + '@typescript-eslint/utils': 8.58.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint-import-resolver-node: '*' peerDependenciesMeta: @@ -9900,7 +9900,7 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - '@typescript-eslint/parser': 8.56.1 + '@typescript-eslint/parser': 8.58.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 vue-eslint-parser: ^10.0.0 peerDependenciesMeta: @@ -15197,12 +15197,12 @@ packages: typescript-auto-import-cache@0.3.6: resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} - typescript-eslint@8.56.1: - resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} + typescript-eslint@8.58.1: + resolution: {integrity: sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} @@ -18239,7 +18239,7 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.58.1 comment-parser: 1.4.1 esquery: 1.7.0 jsdoc-type-pratt-parser: 4.1.0 @@ -18332,9 +18332,9 @@ snapshots: '@eslint-react/ast@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.13.0 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) string-ts: 2.3.1 typescript: 5.9.3 @@ -18347,9 +18347,9 @@ snapshots: '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 @@ -18362,10 +18362,10 @@ snapshots: dependencies: '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) eslint-plugin-react-dom: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-react-hooks-extra: 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -18381,7 +18381,7 @@ snapshots: '@eslint-react/shared@2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.13.0 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 @@ -18394,9 +18394,9 @@ snapshots: '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 @@ -20683,7 +20683,7 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.58.1 eslint: 9.39.4(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -20899,14 +20899,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint/js': 9.39.4 '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-n: 17.24.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) globals: 16.5.0 - typescript-eslint: 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + typescript-eslint: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) vue-eslint-parser: 10.4.0(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - '@typescript-eslint/utils' @@ -21239,14 +21239,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.58.1 eslint: 9.39.4(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -21255,14 +21255,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.1 eslint: 9.39.4(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -21271,53 +21271,53 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.58.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.3) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.8.3) + '@typescript-eslint/types': 8.58.1 debug: 4.4.3 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/rule-tester@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) ajv: 6.14.0 eslint: 9.39.4(jiti@2.6.1) json-stable-stringify-without-jsonify: 1.0.1 @@ -21327,24 +21327,24 @@ snapshots: - supports-color - typescript - '@typescript-eslint/scope-manager@8.56.1': + '@typescript-eslint/scope-manager@8.58.1': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.8.3) @@ -21352,11 +21352,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -21364,14 +21364,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.56.1': {} + '@typescript-eslint/types@8.58.1': {} - '@typescript-eslint/typescript-estree@8.56.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.58.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.56.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/project-service': 8.58.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.8.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 @@ -21381,12 +21381,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/project-service': 8.58.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 @@ -21396,31 +21396,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.8.3) eslint: 9.39.4(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.56.1': + '@typescript-eslint/visitor-keys@8.58.1': dependencies: - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.58.1 eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.0': {} @@ -21643,13 +21643,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': + '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': dependencies: - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) typescript: 5.9.3 vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: @@ -24436,10 +24436,10 @@ snapshots: eslint: 9.39.4(jiti@2.6.1) eslint-compat-utils: 0.5.1(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.58.1 comment-parser: 1.4.6 debug: 4.4.3 eslint: 9.39.4(jiti@2.6.1) @@ -24450,7 +24450,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - supports-color @@ -24492,9 +24492,9 @@ snapshots: '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) compare-versions: 6.1.1 eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 @@ -24509,10 +24509,10 @@ snapshots: '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 @@ -24540,10 +24540,10 @@ snapshots: '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) compare-versions: 6.1.1 eslint: 9.39.4(jiti@2.6.1) string-ts: 2.3.1 @@ -24557,8 +24557,8 @@ snapshots: '@eslint-react/ast': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 @@ -24572,9 +24572,9 @@ snapshots: '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) birecord: 0.1.1 eslint: 9.39.4(jiti@2.6.1) ts-pattern: 5.9.0 @@ -24589,10 +24589,10 @@ snapshots: '@eslint-react/eff': 2.13.0 '@eslint-react/shared': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/var': 2.13.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) compare-versions: 6.1.1 eslint: 9.39.4(jiti@2.6.1) is-immutable-type: 5.0.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -24642,7 +24642,7 @@ snapshots: transitivePeerDependencies: - ts-node - eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) eslint: 9.39.4(jiti@2.6.1) @@ -24654,9 +24654,9 @@ snapshots: xml-name-validator: 4.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1)) - '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) - eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) eslint: 9.39.4(jiti@2.6.1) @@ -24668,7 +24668,7 @@ snapshots: xml-name-validator: 4.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1)) - '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-scope@4.0.3: dependencies: @@ -24764,7 +24764,7 @@ snapshots: esrap@2.2.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.58.1 esrecurse@4.3.0: dependencies: @@ -26099,7 +26099,7 @@ snapshots: is-immutable-type@5.0.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) ts-declaration-location: 1.0.7(typescript@5.9.3) @@ -31319,23 +31319,23 @@ snapshots: dependencies: semver: 7.7.4 - typescript-eslint@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3): + typescript-eslint@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3) eslint: 9.39.4(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - typescript-eslint@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: From c9456940078a58c2b9b93c131688dcc0336df93a Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Thu, 9 Apr 2026 09:32:00 +0100 Subject: [PATCH 078/414] docs(examples): fix Solid README dev commands (#10430) --- examples/solid/basic-graphql-request/README.md | 4 ++-- examples/solid/basic/README.md | 4 ++-- examples/solid/default-query-function/README.md | 4 ++-- examples/solid/offline/README.md | 4 ++-- examples/solid/simple/README.md | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/solid/basic-graphql-request/README.md b/examples/solid/basic-graphql-request/README.md index 310f37f62fd..93f18812e1c 100644 --- a/examples/solid/basic-graphql-request/README.md +++ b/examples/solid/basic-graphql-request/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` -- `npm run start` +- `pnpm install` +- `pnpm dev` diff --git a/examples/solid/basic/README.md b/examples/solid/basic/README.md index 310f37f62fd..93f18812e1c 100644 --- a/examples/solid/basic/README.md +++ b/examples/solid/basic/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` -- `npm run start` +- `pnpm install` +- `pnpm dev` diff --git a/examples/solid/default-query-function/README.md b/examples/solid/default-query-function/README.md index 310f37f62fd..93f18812e1c 100644 --- a/examples/solid/default-query-function/README.md +++ b/examples/solid/default-query-function/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` -- `npm run start` +- `pnpm install` +- `pnpm dev` diff --git a/examples/solid/offline/README.md b/examples/solid/offline/README.md index 310f37f62fd..93f18812e1c 100644 --- a/examples/solid/offline/README.md +++ b/examples/solid/offline/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` -- `npm run start` +- `pnpm install` +- `pnpm dev` diff --git a/examples/solid/simple/README.md b/examples/solid/simple/README.md index 310f37f62fd..93f18812e1c 100644 --- a/examples/solid/simple/README.md +++ b/examples/solid/simple/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` -- `npm run start` +- `pnpm install` +- `pnpm dev` From 05771b1c2a8a107ed67fd8922f3ed3554ee0e71b Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Thu, 9 Apr 2026 09:32:43 +0100 Subject: [PATCH 079/414] docs(examples): guard the react shadow-dom mount target (#10431) --- examples/react/shadow-dom/src/main.tsx | 49 +++++++++++++------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/examples/react/shadow-dom/src/main.tsx b/examples/react/shadow-dom/src/main.tsx index cf1b9e53493..2f7ea2400a1 100644 --- a/examples/react/shadow-dom/src/main.tsx +++ b/examples/react/shadow-dom/src/main.tsx @@ -6,30 +6,29 @@ import { ReactQueryDevtools } from '@tanstack/react-query-devtools' import { DogList } from './DogList' const appRoot = document.getElementById('root') +if (!appRoot) throw new Error('Missing #root element') -if (appRoot) { - const queryClient = new QueryClient() - const shadowRoot = appRoot.attachShadow({ mode: 'open' }) - const root = ReactDOM.createRoot(shadowRoot) +const queryClient = new QueryClient() +const shadowRoot = appRoot.attachShadow({ mode: 'open' }) +const root = ReactDOM.createRoot(shadowRoot) - root.render( - - -
-

Dog Breeds

- -
- -
-
, - ) -} +root.render( + + +
+

Dog Breeds

+ +
+ +
+
, +) From aeb5fa0dc05f0bc559639ce8c237ccd63afafb59 Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Thu, 9 Apr 2026 09:33:07 +0100 Subject: [PATCH 080/414] docs(examples): fix Vue example README headings (#10432) --- examples/vue/persister/README.md | 2 +- examples/vue/simple/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/vue/persister/README.md b/examples/vue/persister/README.md index 7573cb91da8..7bfc1189b22 100644 --- a/examples/vue/persister/README.md +++ b/examples/vue/persister/README.md @@ -1,4 +1,4 @@ -# Basic example +# Persister example To run this example: diff --git a/examples/vue/simple/README.md b/examples/vue/simple/README.md index a9aad379b0f..01f10919199 100644 --- a/examples/vue/simple/README.md +++ b/examples/vue/simple/README.md @@ -1,4 +1,4 @@ -# Basic example +# Simple example To run this example: From 57a61d1027359342f0e8d92fa9c75d1ae015fb5e Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Thu, 9 Apr 2026 09:33:33 +0100 Subject: [PATCH 081/414] docs(examples): add install step to preact simple README (#10433) --- examples/preact/simple/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/preact/simple/README.md b/examples/preact/simple/README.md index a9d90bf0398..88b7fc571a5 100644 --- a/examples/preact/simple/README.md +++ b/examples/preact/simple/README.md @@ -8,6 +8,8 @@ ## Getting Started +- `pnpm install` - Installs dependencies + - `pnpm dev` - Starts a dev server at http://localhost:5173/ - `pnpm build` - Builds for production, emitting to `dist/` From 125067c05adf6a8bfef14a34aa5b963bc885885d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 10:33:54 +0200 Subject: [PATCH 082/414] ci: Version Packages (#10436) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/eslint-plugin-query-eslint-v10.md | 5 - .changeset/fix-timer-id-zero-falsy-check.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 6 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 244 +++++++++--------- 109 files changed, 441 insertions(+), 278 deletions(-) delete mode 100644 .changeset/eslint-plugin-query-eslint-v10.md delete mode 100644 .changeset/fix-timer-id-zero-falsy-check.md diff --git a/.changeset/eslint-plugin-query-eslint-v10.md b/.changeset/eslint-plugin-query-eslint-v10.md deleted file mode 100644 index 4fd7336f588..00000000000 --- a/.changeset/eslint-plugin-query-eslint-v10.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@tanstack/eslint-plugin-query": minor ---- - -feat(eslint): support eslint v10 and typescript v6 diff --git a/.changeset/fix-timer-id-zero-falsy-check.md b/.changeset/fix-timer-id-zero-falsy-check.md deleted file mode 100644 index 7bec3cdab1c..00000000000 --- a/.changeset/fix-timer-id-zero-falsy-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -fix(query-core): use explicit `undefined` check for timer IDs so that custom `TimeoutProvider`s returning `0` as a valid timer ID are properly cleared diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 30e8335fca7..f92d63996df 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 5aeb6d7aa4d..f5e27a20fe9 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", - "@tanstack/angular-query-persist-client": "^5.96.2", - "@tanstack/query-async-storage-persister": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-persist-client": "^5.97.0", + "@tanstack/query-async-storage-persister": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 1c2b2747501..574c3a25de7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 659ed2f3026..e848bc139f1 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 329895ad339..80723c3c897 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 03b7cded53f..6b9c369d19d 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 48b6fafff9c..1833e486f7d 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 74ba3d7aaf7..784a015ae3f 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index b456fd9254a..e8f9a881ffc 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index eb4a035f36c..0758231913e 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index a52cda50a53..a4e4b39c567 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 5caf74323e9..6b41dc2d921 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.2", + "@tanstack/eslint-plugin-query": "^5.97.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 77f1868f44d..51e9db3dccb 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index c31a0d3eb74..001d6ebc669 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index ccbcc0dbaba..590ec41fc54 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.2", - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", - "@tanstack/react-query-persist-client": "^5.96.2", + "@tanstack/query-async-storage-persister": "^5.97.0", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query-persist-client": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.2", + "@tanstack/eslint-plugin-query": "^5.97.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 43887591c6b..e9d366fa8ff 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 9676ef84f90..8a057cc574e 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index f78effb159f..73016058257 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 5955d848d5c..320fffd5fbc 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.2", - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", - "@tanstack/react-query-persist-client": "^5.96.2", + "@tanstack/query-async-storage-persister": "^5.97.0", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query-persist-client": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.2", + "@tanstack/eslint-plugin-query": "^5.97.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index ba21d341d8d..f33557e7d6a 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", + "@tanstack/react-query": "^5.97.0", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.2", + "@tanstack/eslint-plugin-query": "^5.97.0", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index d2f1bb17823..a186b989a58 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index e91e4e7b4ee..1eacfaff879 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 0fc5da9f506..67a67aabe63 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index dee3655803a..5f871d281f5 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", - "@tanstack/react-query-next-experimental": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query-next-experimental": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 51ee8ed6e65..3aae0fa7d7e 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index b7c14b99dd0..1e91205f235 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.2", + "@tanstack/query-async-storage-persister": "^5.97.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", - "@tanstack/react-query-persist-client": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query-persist-client": "^5.97.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 68558e6032b..271cf7891b6 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 27234ae2551..79e768b13ec 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 99451ff7065..e1b09052680 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 16fa9cfca52..07c9bdf0cac 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index a43a680a8f2..38669bc9103 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index fc01852ca23..02aedd7dc9f 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 6e26b5e59f5..b9f1f3ed28c 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 7a4492f6f3d..98e0a61a80e 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 07940a2e7f4..f0e4d5d120c 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 94ebcb9dcd5..2e04440386f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 9b627830b44..232e99209ab 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 251130c1eca..1d4e7586da9 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.96.2", - "@tanstack/react-query-devtools": "^5.96.2", + "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query-devtools": "^5.97.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 86f7ec3cc99..4d793e08a97 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.96.2", - "@tanstack/solid-query-devtools": "^5.96.2", + "@tanstack/solid-query": "^5.97.0", + "@tanstack/solid-query-devtools": "^5.97.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 524d797a3f5..920e73cf661 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.2", - "@tanstack/solid-query-devtools": "^5.96.2", + "@tanstack/solid-query": "^5.97.0", + "@tanstack/solid-query-devtools": "^5.97.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index a37dd90091f..011fad2ec13 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.2", - "@tanstack/solid-query-devtools": "^5.96.2", + "@tanstack/solid-query": "^5.97.0", + "@tanstack/solid-query-devtools": "^5.97.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 048bbb32af7..0044e4593fa 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.2", - "@tanstack/solid-query-devtools": "^5.96.2", + "@tanstack/solid-query": "^5.97.0", + "@tanstack/solid-query-devtools": "^5.97.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index a13a827bdd7..915b4c26720 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.2", - "@tanstack/solid-query": "^5.96.2", - "@tanstack/solid-query-devtools": "^5.96.2", - "@tanstack/solid-query-persist-client": "^5.96.2", + "@tanstack/query-async-storage-persister": "^5.97.0", + "@tanstack/solid-query": "^5.97.0", + "@tanstack/solid-query-devtools": "^5.97.0", + "@tanstack/solid-query-persist-client": "^5.97.0", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 331f7db69d5..4a561261927 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.96.2", - "@tanstack/solid-query-devtools": "^5.96.2", + "@tanstack/solid-query": "^5.97.0", + "@tanstack/solid-query-devtools": "^5.97.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.96.2", + "@tanstack/eslint-plugin-query": "^5.97.0", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 6eae1a6d488..87777d60bf1 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.96.2", - "@tanstack/solid-query-devtools": "^5.96.2", + "@tanstack/solid-query": "^5.97.0", + "@tanstack/solid-query-devtools": "^5.97.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 4d148eeb893..9e5bb0f116f 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13" + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 27029338ae8..0fe9d5c867a 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.96.2", - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13", - "@tanstack/svelte-query-persist-client": "^6.1.13" + "@tanstack/query-async-storage-persister": "^5.97.0", + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14", + "@tanstack/svelte-query-persist-client": "^6.1.14" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 7895aefa191..761ee20de15 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13" + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index c22bb838a03..c08f9de1346 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13" + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index d78c6f5d763..2d93ed0fe62 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13" + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 4871d7152ee..84a66a6c196 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13" + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 3e11511e787..6162038e533 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13" + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 7aca99c6d7c..d03c80f2148 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.13", - "@tanstack/svelte-query-devtools": "^6.1.13" + "@tanstack/svelte-query": "^6.1.14", + "@tanstack/svelte-query-devtools": "^6.1.14" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 6794769b8cc..255ed9ec8ef 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.2", - "@tanstack/vue-query-devtools": "^6.1.13", + "@tanstack/vue-query": "^5.97.0", + "@tanstack/vue-query-devtools": "^6.1.14", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index cdede88f251..22981f12fc8 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.2", + "@tanstack/vue-query": "^5.97.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index f7fcf8eb190..e7499114ea5 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.96.2", - "@tanstack/query-persist-client-core": "^5.96.2", - "@tanstack/query-sync-storage-persister": "^5.96.2", - "@tanstack/vue-query": "^5.96.2", + "@tanstack/query-core": "^5.97.0", + "@tanstack/query-persist-client-core": "^5.97.0", + "@tanstack/query-sync-storage-persister": "^5.97.0", + "@tanstack/vue-query": "^5.97.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 0f1b525fe8d..39aba2ef5af 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.96.2", - "@tanstack/vue-query-devtools": "^6.1.13", + "@tanstack/vue-query": "^5.97.0", + "@tanstack/vue-query-devtools": "^6.1.14", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index b108cda7612..3c0337a168a 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.96.2", + "@tanstack/angular-query-experimental": "^5.97.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 6eb00340db7..d9e2d787976 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 28541dc5bfc..cd5c2a295ea 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.96.2", + "version": "5.97.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index a29ea3c7200..dc252926da4 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.97.0 + - @tanstack/query-persist-client-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index afa50dcb1a9..64fcd8a497e 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.96.2", + "version": "5.97.0", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 60ddcef942a..eaa24c8ff31 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/eslint-plugin-query +## 5.97.0 + +### Minor Changes + +- feat(eslint): support eslint v10 and typescript v6 ([#10182](https://github.com/TanStack/query/pull/10182)) + ## 5.96.2 ### Patch Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 88af7e13c12..e56f488d728 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.96.2", + "version": "5.97.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 3eded3f69b3..276de2e6e8d 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.97.0 + - @tanstack/query-devtools@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 97fb019e667..63c74137deb 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.96.2", + "version": "5.97.0", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index d927bcd0967..851b1941459 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.97.0 + - @tanstack/query-persist-client-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 30705886132..9a380ad049e 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.96.2", + "version": "5.97.0", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 8c5ce54f218..7b72c356bb1 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 727d34eb47e..10d70c4bdcd 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.96.2", + "version": "5.97.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index dc39865cbb0..dbb71dccdcf 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + - @tanstack/query-persist-client-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 52da89e4262..4fe0605fdf2 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.96.2", + "version": "5.97.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 6c0c58fef54..422af6a75a0 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 7fc1f175de0..920d6777f4f 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.96.2", + "version": "5.97.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index b34f73b1a66..b033b43bebd 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.97.0 + +### Patch Changes + +- fix(query-core): use explicit `undefined` check for timer IDs so that custom `TimeoutProvider`s returning `0` as a valid timer ID are properly cleared ([#10401](https://github.com/TanStack/query/pull/10401)) + ## 5.96.2 ## 5.96.1 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a797ff8f8f8..2f3c5b8514b 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.96.2", + "version": "5.97.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index e86c3900c64..c018fce10d4 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.97.0 + ## 5.96.2 ## 5.96.1 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 3d86350a88a..88ab5856f9d 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.96.2", + "version": "5.97.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 57c79706ce3..dc35b485571 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 41b13bf6e3a..9b19865a67b 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.96.2", + "version": "5.97.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index aae8dcf9a5e..e7782d976c9 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + - @tanstack/query-persist-client-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index e37366e6cee..ccb5167cd54 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.96.2", + "version": "5.97.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index d2f5650b776..eb90ad56f5e 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.97.0 + - @tanstack/react-query@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 134d9ffd646..aa9dbe2bb72 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.96.2", + "version": "5.97.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index c781c1918f0..f75dc60c340 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index c4ba9eca6ce..cb90d127452 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.96.2", + "version": "5.97.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index b5c5c54795c..de4afc3f71a 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.97.0 + - @tanstack/react-query@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 7d75281a5ce..69bcdbc2534 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.96.2", + "version": "5.97.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 1c2c9958d71..d8b6ea90222 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 7979dd77462..1809c50a436 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.96.2", + "version": "5.97.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 81e190dea12..831bc8e6886 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.97.0 + - @tanstack/solid-query@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 83720ce9b42..2c9e7cd240c 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.96.2", + "version": "5.97.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index c6aaf0f9e06..3add0458191 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.97.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.97.0 + - @tanstack/solid-query@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index d4be2216ad8..5a86726a0d8 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.96.2", + "version": "5.97.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index d1bedab0496..5e7657ea05f 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 43cd43011f2..5f4044128d8 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.96.2", + "version": "5.97.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 1fe953ef6a1..85f13f53ac1 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.97.0 + - @tanstack/svelte-query@6.1.14 + ## 6.1.13 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 1f2ddfd5b71..fd3178e7656 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.13", + "version": "6.1.14", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index a4df7b89d25..7d8611fb62a 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.97.0 + - @tanstack/svelte-query@6.1.14 + ## 6.1.13 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 4c0546511ca..95cffb9799e 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.13", + "version": "6.1.14", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index fc8fdd1014c..48b7fe612ca 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.14 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 6.1.13 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 129c515cd4a..b4d3c80d065 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.13", + "version": "6.1.14", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 452e75229be..c5c9f965ff8 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.97.0 + - @tanstack/vue-query@5.97.0 + ## 6.1.13 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 9a740de3091..17198528adc 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.13", + "version": "6.1.14", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 46f38a866bc..d34a3a5547b 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.97.0 + +### Patch Changes + +- Updated dependencies [[`2bfb12c`](https://github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: + - @tanstack/query-core@5.97.0 + ## 5.96.2 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index d5e36fecffd..03228c25431 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.96.2", + "version": "5.97.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb546f237a0..322b0ed55aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.13 + specifier: ^6.1.14 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.96.2 + specifier: ^5.97.0 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From d45ec4d099e0694e98a50c76888a18f8966a7504 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 10 Apr 2026 11:54:52 +0900 Subject: [PATCH 083/414] test(svelte-query/createQuery): add test for not fetching when 'isRestoring' is true (#10440) --- .../createQuery/IsRestoringExample.svelte | 29 +++++++++++++++ .../createQuery/createQuery.svelte.test.ts | 36 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 packages/svelte-query/tests/createQuery/IsRestoringExample.svelte create mode 100644 packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts diff --git a/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte b/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte new file mode 100644 index 00000000000..679a1ff1a7c --- /dev/null +++ b/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte @@ -0,0 +1,29 @@ + + +
+
{query.status}
+
{query.fetchStatus}
+
{query.data ?? 'undefined'}
+
diff --git a/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts new file mode 100644 index 00000000000..540cf294046 --- /dev/null +++ b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts @@ -0,0 +1,36 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/svelte' +import { sleep } from '@tanstack/query-test-utils' +import IsRestoringExample from './IsRestoringExample.svelte' + +describe('createQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { + const queryFn = vi.fn(() => sleep(10).then(() => 'data')) + + const rendered = render(IsRestoringExample, { + props: { queryFn }, + }) + + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getByTestId('status')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle') + expect(rendered.getByTestId('data')).toHaveTextContent('undefined') + expect(queryFn).toHaveBeenCalledTimes(0) + + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByTestId('status')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle') + expect(rendered.getByTestId('data')).toHaveTextContent('undefined') + expect(queryFn).toHaveBeenCalledTimes(0) + }) +}) From 5048e868ee237036264a8f04b0d3aba85e07d65d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 10 Apr 2026 12:19:04 +0900 Subject: [PATCH 084/414] test(svelte-query/createQuery): move test files into 'createQuery' directory (#10441) --- .../tests/createQuery.svelte.test.ts | 1920 ----------------- .../createQuery/createQuery.svelte.test.ts | 1912 +++++++++++++++- .../{ => createQuery}/createQuery.test-d.ts | 2 +- 3 files changed, 1911 insertions(+), 1923 deletions(-) delete mode 100644 packages/svelte-query/tests/createQuery.svelte.test.ts rename packages/svelte-query/tests/{ => createQuery}/createQuery.test-d.ts (98%) diff --git a/packages/svelte-query/tests/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery.svelte.test.ts deleted file mode 100644 index b0cf6916086..00000000000 --- a/packages/svelte-query/tests/createQuery.svelte.test.ts +++ /dev/null @@ -1,1920 +0,0 @@ -import { flushSync } from 'svelte' -import { - afterEach, - beforeEach, - describe, - expect, - expectTypeOf, - it, - vi, -} from 'vitest' -import { queryKey, sleep } from '@tanstack/query-test-utils' -import { QueryClient, createQuery, keepPreviousData } from '../src/index.js' -import { promiseWithResolvers, withEffectRoot } from './utils.svelte.js' -import type { CreateQueryResult, QueryCache } from '../src/index.js' - -describe('createQuery', () => { - let queryClient: QueryClient - let queryCache: QueryCache - - beforeEach(() => { - vi.useFakeTimers() - queryClient = new QueryClient() - queryCache = queryClient.getQueryCache() - }) - - afterEach(() => { - queryClient.clear() - vi.useRealTimers() - }) - - it( - 'should return the correct states for a successful query', - withEffectRoot(async () => { - const key = queryKey() - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => promise, - }), - () => queryClient, - ) - - if (query.isPending) { - expectTypeOf(query.data).toEqualTypeOf() - expectTypeOf(query.error).toEqualTypeOf() - } else if (query.isLoadingError) { - expectTypeOf(query.data).toEqualTypeOf() - expectTypeOf(query.error).toEqualTypeOf() - } else { - expectTypeOf(query.data).toEqualTypeOf() - expectTypeOf(query.error).toEqualTypeOf() - } - - const promise1 = query.promise - - expect(query).toEqual({ - data: undefined, - dataUpdatedAt: 0, - error: null, - errorUpdatedAt: 0, - failureCount: 0, - failureReason: null, - errorUpdateCount: 0, - isEnabled: true, - isError: false, - isFetched: false, - isFetchedAfterMount: false, - isFetching: true, - isPaused: false, - isPending: true, - isInitialLoading: true, - isLoading: true, - isLoadingError: false, - isPlaceholderData: false, - isRefetchError: false, - isRefetching: false, - isStale: true, - isSuccess: false, - refetch: expect.any(Function), - status: 'pending', - fetchStatus: 'fetching', - promise: expect.any(Promise), - }) - resolve('resolved') - await vi.advanceTimersByTimeAsync(0) - expect(query).toEqual({ - data: 'resolved', - dataUpdatedAt: expect.any(Number), - error: null, - errorUpdatedAt: 0, - failureCount: 0, - failureReason: null, - errorUpdateCount: 0, - isEnabled: true, - isError: false, - isFetched: true, - isFetchedAfterMount: true, - isFetching: false, - isPaused: false, - isPending: false, - isInitialLoading: false, - isLoading: false, - isLoadingError: false, - isPlaceholderData: false, - isRefetchError: false, - isRefetching: false, - isStale: true, - isSuccess: true, - refetch: expect.any(Function), - status: 'success', - fetchStatus: 'idle', - promise: expect.any(Promise), - }) - - expect(promise1).toBe(query.promise) - }), - ) - - it( - 'should return the correct states for an unsuccessful query', - withEffectRoot(async () => { - const key = queryKey() - let count = 0 - const states: Array = [] - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => { - return Promise.reject(new Error('rejected #' + ++count)) - }, - retry: 1, - retryDelay: 1, - }), - () => queryClient, - ) - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(1) - await vi.advanceTimersByTimeAsync(0) - expect(query.isError).toBe(true) - - expect(states[0]).toEqual({ - data: undefined, - dataUpdatedAt: 0, - error: null, - errorUpdatedAt: 0, - failureCount: 0, - failureReason: null, - errorUpdateCount: 0, - isEnabled: true, - isError: false, - isFetched: false, - isFetchedAfterMount: false, - isFetching: true, - isPaused: false, - isPending: true, - isInitialLoading: true, - isLoading: true, - isLoadingError: false, - isPlaceholderData: false, - isRefetchError: false, - isRefetching: false, - isStale: true, - isSuccess: false, - refetch: expect.any(Function), - status: 'pending', - fetchStatus: 'fetching', - promise: expect.any(Promise), - }) - - expect(states[1]).toEqual({ - data: undefined, - dataUpdatedAt: 0, - error: null, - errorUpdatedAt: 0, - failureCount: 1, - failureReason: new Error('rejected #1'), - errorUpdateCount: 0, - isEnabled: true, - isError: false, - isFetched: false, - isFetchedAfterMount: false, - isFetching: true, - isPaused: false, - isPending: true, - isInitialLoading: true, - isLoading: true, - isLoadingError: false, - isPlaceholderData: false, - isRefetchError: false, - isRefetching: false, - isStale: true, - isSuccess: false, - refetch: expect.any(Function), - status: 'pending', - fetchStatus: 'fetching', - promise: expect.any(Promise), - }) - - expect(states[2]).toEqual({ - data: undefined, - dataUpdatedAt: 0, - error: new Error('rejected #2'), - errorUpdatedAt: expect.any(Number), - failureCount: 2, - failureReason: new Error('rejected #2'), - errorUpdateCount: 1, - isEnabled: true, - isError: true, - isFetched: true, - isFetchedAfterMount: true, - isFetching: false, - isPaused: false, - isPending: false, - isInitialLoading: false, - isLoading: false, - isLoadingError: true, - isPlaceholderData: false, - isRefetchError: false, - isRefetching: false, - isStale: true, - isSuccess: false, - refetch: expect.any(Function), - status: 'error', - fetchStatus: 'idle', - promise: expect.any(Promise), - }) - }), - ) - - it('should set isFetchedAfterMount to true after a query has been fetched', async () => { - const key = queryKey() - - await queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => Promise.resolve('prefetched'), - }) - - await withEffectRoot(async () => { - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => promise, - }), - () => queryClient, - ) - - expect(query).toEqual( - expect.objectContaining({ - data: 'prefetched', - isFetched: true, - isFetchedAfterMount: false, - }), - ) - resolve('resolved') - await vi.advanceTimersByTimeAsync(0) - expect(query).toEqual( - expect.objectContaining({ - data: 'resolved', - isFetched: true, - isFetchedAfterMount: true, - }), - ) - })() - }) - - it( - 'should not cancel an ongoing fetch when refetch is called with cancelRefetch=false if we have data already', - withEffectRoot(async () => { - const key = queryKey() - let fetchCount = 0 - - const { promise, resolve } = promiseWithResolvers() - - const { refetch } = createQuery( - () => ({ - queryKey: key, - queryFn: () => { - fetchCount++ - return promise - }, - enabled: false, - initialData: 'initial', - }), - () => queryClient, - ) - - refetch() - refetch({ cancelRefetch: false }) - - resolve('resolved') - await promise - - expect(fetchCount).toBe(1) - }), - ) - - it( - 'should cancel an ongoing fetch when refetch is called (cancelRefetch=true) if we have data already', - withEffectRoot(async () => { - const key = queryKey() - let fetchCount = 0 - - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: async () => { - fetchCount++ - return promise - }, - enabled: false, - initialData: 'initialData', - }), - () => queryClient, - ) - - // Trigger two refetch close together - query.refetch() - query.refetch() - - resolve('resolved') - await promise - - expect(fetchCount).toBe(2) - }), - ) - - it( - 'should not cancel an ongoing fetch when refetch is called (cancelRefetch=true) if we do not have data yet', - withEffectRoot(async () => { - const key = queryKey() - let fetchCount = 0 - - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: async () => { - fetchCount++ - return promise - }, - enabled: false, - }), - () => queryClient, - ) - - // Trigger two refetch close together - query.refetch() - query.refetch() - - resolve('resolved') - await promise - - expect(fetchCount).toBe(1) - }), - ) - - it( - 'should be able to watch a query without providing a query function', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - - queryClient.setQueryDefaults(key, { - queryFn: () => 'data', - }) - - const query = createQuery( - () => ({ queryKey: key }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('data') - - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ data: undefined }) - expect(states[1]).toMatchObject({ data: 'data' }) - }), - ) - - it('should pick up a query when re-mounting with gcTime 0', async () => { - const key = queryKey() - // this needs to be split into two different effect roots because - // effects won't pick up dependencies created after the first `await` - // -- the two roots effectively emulate two consecutive components being rendered - await withEffectRoot(async () => { - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => promise, - gcTime: 0, - notifyOnChangeProps: 'all', - }), - () => queryClient, - ) - - expect(query).toMatchObject({ - isPending: true, - isSuccess: false, - isFetching: true, - }) - - resolve('resolved: 1') - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('resolved: 1') - - expect(query).toMatchObject({ - isPending: false, - isSuccess: true, - isFetching: false, - }) - })() - - await withEffectRoot(async () => { - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => promise, - gcTime: 0, - notifyOnChangeProps: 'all', - }), - () => queryClient, - ) - - expect(query).toMatchObject({ - data: 'resolved: 1', - isPending: false, - isSuccess: true, - isFetching: true, - }) - - resolve('resolved: 2') - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('resolved: 2') - - expect(query).toMatchObject({ - data: 'resolved: 2', - isPending: false, - isSuccess: true, - isFetching: false, - }) - })() - }) - - it('should not get into an infinite loop when removing a query with gcTime 0 and rerendering', async () => { - const key = queryKey() - const states: Array> = [] - - // First mount: render the query and let it fetch - await withEffectRoot(async () => { - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('data'), - gcTime: 0, - notifyOnChangeProps: ['isPending', 'isSuccess', 'data'], - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('data') - })() - - // Simulate rerender by removing the query and mounting again - await withEffectRoot(async () => { - queryClient.removeQueries({ queryKey: key }) - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('data'), - gcTime: 0, - notifyOnChangeProps: ['isPending', 'isSuccess', 'data'], - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('data') - - // Give it time to catch any accidental infinite updates - await vi.advanceTimersByTimeAsync(100) - })() - - expect(states.length).toBe(4) - expect(states[0]).toMatchObject({ - isPending: true, - isSuccess: false, - data: undefined, - }) - expect(states[1]).toMatchObject({ - isPending: false, - isSuccess: true, - data: 'data', - }) - expect(states[2]).toMatchObject({ - isPending: true, - isSuccess: false, - data: undefined, - }) - expect(states[3]).toMatchObject({ - isPending: false, - isSuccess: true, - data: 'data', - }) - }) - - it( - 'should fetch when refetchOnMount is false and nothing has been fetched yet', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => 'test', - refetchOnMount: false, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('test') - - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ data: undefined }) - expect(states[1]).toMatchObject({ data: 'test' }) - }), - ) - - it( - 'should not fetch when refetchOnMount is false and data has been fetched already', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - - queryClient.setQueryData(key, 'prefetched') - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => 'test', - refetchOnMount: false, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('prefetched') - - expect(states.length).toBe(1) - expect(states[0]).toMatchObject({ data: 'prefetched' }) - }), - ) - - it( - 'should be able to select a part of the data with select', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - - const query = createQuery<{ name: string }, Error, string>( - () => ({ - queryKey: key, - queryFn: () => ({ name: 'test' }), - select: (data) => data.name, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('test') - - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ data: undefined }) - expect(states[1]).toMatchObject({ data: 'test' }) - }), - ) - - it( - 'should throw an error when a selector throws', - withEffectRoot(async () => { - const key = queryKey() - const error = new Error('Select Error') - const states: Array> = [] - - const query = createQuery<{ name: string }, Error, string>( - () => ({ - queryKey: key, - queryFn: () => ({ name: 'test' }), - select: () => { - throw error - }, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.status).toBe('error') - - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ status: 'pending', data: undefined }) - expect(states[1]).toMatchObject({ status: 'error', error }) - }), - ) - - it( - 'should be able to remove a query', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = 0 - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => ++count, - notifyOnChangeProps: 'all', - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(1) - - queryClient.removeQueries({ queryKey: key }) - query.refetch() - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(2) - - expect(states.length).toBe(4) - expect(states[0]).toMatchObject({ - status: 'pending', - data: undefined, - dataUpdatedAt: 0, - }) - expect(states[1]).toMatchObject({ status: 'success', data: 1 }) - expect(states[2]).toMatchObject({ - status: 'pending', - data: undefined, - dataUpdatedAt: 0, - }) - expect(states[3]).toMatchObject({ status: 'success', data: 2 }) - }), - ) - - it( - 'keeps up-to-date with query key changes', - withEffectRoot(async () => { - const key = queryKey() - let search = $state('') - const states: Array> = [] - - const query = createQuery( - () => ({ - queryKey: [...key, search], - queryFn: async () => Promise.resolve(search), - placeholderData: keepPreviousData, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('') - search = 'phone' - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('phone') - - expect(states.length).toBe(4) - expect(states[0]).toMatchObject({ - status: 'pending', - fetchStatus: 'fetching', - data: undefined, - }) - expect(states[1]).toMatchObject({ - status: 'success', - fetchStatus: 'idle', - data: '', - }) - expect(states[2]).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: '', - }) - expect(states[3]).toMatchObject({ - status: 'success', - fetchStatus: 'idle', - data: 'phone', - }) - }), - ) - - it( - 'should create a new query when refetching a removed query', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve(++count), - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(1) - - queryClient.removeQueries({ queryKey: key }) - query.refetch() - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(2) - - expect(states.length).toBe(4) - // Initial - expect(states[0]).toMatchObject({ data: undefined, dataUpdatedAt: 0 }) - // Fetched - expect(states[1]).toMatchObject({ data: 1 }) - // Switch - expect(states[2]).toMatchObject({ data: undefined, dataUpdatedAt: 0 }) - // Fetched - expect(states[3]).toMatchObject({ data: 2 }) - }), - ) - - it( - 'should share equal data structures between query results', - withEffectRoot(async () => { - const key = queryKey() - - const result1 = [ - { id: '1', done: false }, - { id: '2', done: false }, - ] - - const result2 = [ - { id: '1', done: false }, - { id: '2', done: true }, - ] - - const states: Array> = [] - - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => { - count++ - return Promise.resolve(count === 1 ? result1 : result2) - }, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data?.[1]?.done).toBe(false) - query.refetch() - await vi.advanceTimersByTimeAsync(0) - expect(query.data?.[1]?.done).toBe(true) - - expect(states.length).toBe(4) - - const todos = states[1]?.data - const todo1 = todos?.[0] - const todo2 = todos?.[1] - - const newTodos = states[3]?.data - const newTodo1 = newTodos?.[0] - const newTodo2 = newTodos?.[1] - - expect(todos).toEqual(result1) - expect(newTodos).toEqual(result2) - expect(newTodos).not.toBe(todos) - expect(newTodo1).toBe(todo1) - expect(newTodo2).not.toBe(todo2) - }), - ) - - it( - 'should use query function from hook when the existing query does not have a query function', - withEffectRoot(async () => { - const key = queryKey() - - queryClient.setQueryData(key, 'set') - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('fetched'), - initialData: 'initial', - staleTime: Infinity, - }), - () => queryClient, - ) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('set') - queryClient.refetchQueries({ queryKey: key }) - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('fetched') - }), - ) - - it( - 'should update query stale state and refetch when invalidated with invalidateQueries', - withEffectRoot(async () => { - const key = queryKey() - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve(++count), - staleTime: Infinity, - }), - () => queryClient, - ) - - await vi.advanceTimersByTimeAsync(0) - expect(query).toEqual( - expect.objectContaining({ - data: 1, - isStale: false, - isFetching: false, - }), - ) - queryClient.invalidateQueries({ queryKey: key }) - await vi.advanceTimersByTimeAsync(0) - expect(query).toEqual( - expect.objectContaining({ - data: 2, - isStale: false, - isFetching: false, - }), - ) - }), - ) - - it( - 'should not update disabled query when refetching with refetchQueries', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve(++count), - enabled: false, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - - expect(states.length).toBe(1) - expect(states[0]).toMatchObject({ - data: undefined, - isSuccess: false, - isFetching: false, - isStale: false, - }) - }), - ) - - it( - 'should not refetch disabled query when invalidated with invalidateQueries', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve(++count), - enabled: false, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - queryClient.invalidateQueries({ queryKey: key }) - - // Wait long enough for the invalidation and potential refetch - await vi.advanceTimersByTimeAsync(100) - - expect(states.length).toBe(1) - expect(states[0]).toMatchObject({ - data: undefined, - isFetching: false, - isSuccess: false, - isStale: false, - }) - }), - ) - - it( - 'should not fetch when switching to a disabled query', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = $state(0) - - const query = createQuery( - () => ({ - queryKey: [...key, count], - queryFn: () => Promise.resolve(count), - enabled: count === 0, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(0) - count = 1 - await vi.advanceTimersByTimeAsync(0) - expect(states.length).toBe(3) - - // Fetch query - expect(states[0]).toMatchObject({ - isFetching: true, - isSuccess: false, - }) - // Fetched query - expect(states[1]).toMatchObject({ - data: 0, - isFetching: false, - isSuccess: true, - }) - // Switch to disabled query - expect(states[2]).toMatchObject({ - isFetching: false, - isSuccess: false, - }) - }), - ) - - it( - 'should keep the previous data when placeholderData is set', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = $state(0) - - const query = createQuery( - () => ({ - queryKey: [...key, count], - queryFn: () => Promise.resolve(count), - placeholderData: keepPreviousData, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the initial fetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(0) - - // Update count to trigger a new fetch - count = 1 - - // Wait for all state updates to complete - await vi.advanceTimersByTimeAsync(0) - expect(states.length).toBe(4) - - // Initial - expect(states[0]).toMatchObject({ - data: undefined, - isFetching: true, - isSuccess: false, - isPlaceholderData: false, - }) - // Fetched - expect(states[1]).toMatchObject({ - data: 0, - isFetching: false, - isSuccess: true, - isPlaceholderData: false, - }) - // Set state - expect(states[2]).toMatchObject({ - data: 0, - isFetching: true, - isSuccess: true, - isPlaceholderData: true, - }) - // New data - expect(states[3]).toMatchObject({ - data: 1, - isFetching: false, - isSuccess: true, - isPlaceholderData: false, - }) - }), - ) - - it( - 'should not show initial data from next query if placeholderData is set', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = $state(0) - - const query = createQuery( - () => ({ - queryKey: [...key, count], - queryFn: () => Promise.resolve(count), - initialData: 99, - placeholderData: keepPreviousData, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the initial fetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(0) - - // Update count to trigger a new fetch - count = 1 - - // Wait for the new fetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(1) - - // Wait for all state updates to complete - expect(states.length).toBe(4) - - // Initial - expect(states[0]).toMatchObject({ - data: 99, - isFetching: true, - isSuccess: true, - isPlaceholderData: false, - }) - // Fetched - expect(states[1]).toMatchObject({ - data: 0, - isFetching: false, - isSuccess: true, - isPlaceholderData: false, - }) - // Set state - expect(states[2]).toMatchObject({ - data: 99, - isFetching: true, - isSuccess: true, - isPlaceholderData: false, - }) - // New data - expect(states[3]).toMatchObject({ - data: 1, - isFetching: false, - isSuccess: true, - isPlaceholderData: false, - }) - }), - ) - - it( - 'should keep the previous data on disabled query when placeholderData is set and switching query key multiple times', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - - // Set initial query data - queryClient.setQueryData([...key, 10], 10) - - let count = $state(10) - - const query = createQuery( - () => ({ - queryKey: [...key, count], - queryFn: () => Promise.resolve(count), - enabled: false, - placeholderData: keepPreviousData, - notifyOnChangeProps: 'all', - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // let that effect ^ run to push the initial state - flushSync() - flushSync(() => (count = 11)) - flushSync(() => (count = 12)) - query.refetch() - // Wait for all operations to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(12) - - // Disabled query - expect(states[0]).toMatchObject({ - data: 10, - isFetching: false, - isSuccess: true, - isPlaceholderData: false, - }) - // Set state (11) - expect(states[1]).toMatchObject({ - data: 10, - isFetching: false, - isSuccess: true, - isPlaceholderData: true, - }) - // Set state (12) - expect(states[2]).toMatchObject({ - data: 10, - isFetching: false, - isSuccess: true, - isPlaceholderData: true, - }) - // Refetch - expect(states[3]).toMatchObject({ - data: 10, - isFetching: true, - isSuccess: true, - isPlaceholderData: true, - }) - // Refetch done - expect(states[4]).toMatchObject({ - data: 12, - isFetching: false, - isSuccess: true, - isPlaceholderData: false, - }) - }), - ) - - it( - 'should use the correct query function when components use different configurations', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - const { promise, resolve } = promiseWithResolvers() - - // Simulate FirstComponent - const firstQuery = createQuery( - () => ({ - queryKey: key, - queryFn: () => promise, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...firstQuery }) - }) - - // Simulate SecondComponent - createQuery( - () => ({ - queryKey: key, - queryFn: () => 2, - }), - () => queryClient, - ) - - // Resolve the first query - resolve(1) - - // Wait for the first query to complete - await vi.advanceTimersByTimeAsync(0) - expect(firstQuery.data).toBe(1) - - // Refetch the first query - firstQuery.refetch() - - // Wait for all state updates to complete - await vi.advanceTimersByTimeAsync(0) - expect(states.length).toBe(4) - - expect(states[0]).toMatchObject({ - data: undefined, - }) - expect(states[1]).toMatchObject({ - data: 1, - }) - expect(states[2]).toMatchObject({ - data: 1, - }) - // This state should be 1 instead of 2 - expect(states[3]).toMatchObject({ - data: 1, - }) - }), - ) - - it('should be able to set different stale times for a query', async () => { - const key = queryKey() - const states1: Array> = [] - const states2: Array> = [] - - // Prefetch the query - const prefetchPromise = queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => sleep(10).then(() => 'prefetch'), - }) - await vi.advanceTimersByTimeAsync(10) - await prefetchPromise - - expect(queryClient.getQueryState(key)?.data).toBe('prefetch') - // Advance time so secondQuery (staleTime: 10) sees prefetched data as stale - await vi.advanceTimersByTimeAsync(10) - - await withEffectRoot(async () => { - const firstQuery = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('one'), - staleTime: 100, - }), - () => queryClient, - ) - - $effect(() => { - states1.push({ ...firstQuery }) - }) - - const secondQuery = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('two'), - staleTime: 10, - }), - () => queryClient, - ) - - $effect(() => { - states2.push({ ...secondQuery }) - }) - - // Wait for both staleTime to expire (100ms for firstQuery) - await vi.advanceTimersByTimeAsync(101) - expect(firstQuery).toMatchObject({ data: 'two', isStale: true }) - expect(secondQuery).toMatchObject({ data: 'two', isStale: true }) - - expect(states1).toMatchObject([ - // First render - { - data: 'prefetch', - isStale: false, - }, - // Second createQuery started fetching - { - data: 'prefetch', - isStale: false, - }, - // Second createQuery data came in - { - data: 'two', - isStale: false, - }, - // Data became stale after 100ms - { - data: 'two', - isStale: true, - }, - ]) - - expect(states2).toMatchObject([ - // First render, data is stale and starts fetching - { - data: 'prefetch', - isStale: true, - }, - // Second createQuery data came in - { - data: 'two', - isStale: false, - }, - // Data became stale after 10ms - { - data: 'two', - isStale: true, - }, - ]) - })() - }) - - it( - 'should re-render when a query becomes stale', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => 'test', - staleTime: 50, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the query to become stale - await vi.advanceTimersByTimeAsync(51) - - expect(states.length).toBe(3) - expect(states[0]).toMatchObject({ isStale: true }) - expect(states[1]).toMatchObject({ isStale: false }) - expect(states[2]).toMatchObject({ isStale: true }) - }), - ) - - it( - 'should not re-render when it should only re-render on data changes and the data did not change', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => promise, - notifyOnChangeProps: ['data'], - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - resolve('test') - - // Refetch the query - setTimeout(() => { - query.refetch() - }, 10) - - await vi.advanceTimersByTimeAsync(10) - expect(states.length).toBe(2) - - expect(states[0]).toMatchObject({ - data: undefined, - status: 'pending', - isFetching: true, - }) - expect(states[1]).toMatchObject({ - data: 'test', - status: 'success', - isFetching: false, - }) - }), - ) - - it( - 'should track properties and only re-render when a tracked property changes', - withEffectRoot(async () => { - const key = queryKey() - const states: Array = [] - const { promise, resolve } = promiseWithResolvers() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => promise, - }), - () => queryClient, - ) - - $effect(() => { - states.push(query.data) - }) - - // Resolve the promise after a delay - setTimeout(() => { - resolve('test') - }, 10) - - await vi.advanceTimersByTimeAsync(10) - expect(query.data).toBe('test') - - // Refetch after data is available - setTimeout(() => { - if (query.data) { - query.refetch() - } - }, 20) - - // Wait for refetch to complete - await vi.advanceTimersByTimeAsync(20) - - expect(states.length).toBe(2) - expect(states[0]).toBe(undefined) - expect(states[1]).toBe('test') - }), - ) - - it( - 'should always re-render if we are tracking props but not using any', - withEffectRoot(async () => { - const key = queryKey() - let renderCount = 0 - const states: Array> = [] - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('test'), - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Track changes to the query state - $effect(() => { - // @ts-expect-error - const _ = { ...query } - renderCount++ - }) - - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('test') - - expect(renderCount).toBe(2) - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ data: undefined }) - expect(states[1]).toMatchObject({ data: 'test' }) - }), - ) - - it( - 'should update query options', - withEffectRoot(() => { - const key = queryKey() - - const queryFn = () => sleep(10).then(() => 'data1') - - // Create two queries with the same key but different options - createQuery( - () => ({ queryKey: key, queryFn, retryDelay: 10 }), - () => queryClient, - ) - - createQuery( - () => ({ queryKey: key, queryFn, retryDelay: 20 }), - () => queryClient, - ) - - // The last options should win - expect(queryCache.find({ queryKey: key })!.options.retryDelay).toBe(20) - }), - ) - - it( - 'should start with status pending, fetchStatus idle if enabled is false', - withEffectRoot(async () => { - const key1 = queryKey() - const key2 = queryKey() - const states1: Array> = [] - const states2: Array> = [] - - const query1 = createQuery( - () => ({ - queryKey: key1, - queryFn: () => 'data', - enabled: false, - }), - () => queryClient, - ) - - const query2 = createQuery( - () => ({ - queryKey: key2, - queryFn: () => 'data', - }), - () => queryClient, - ) - - $effect(() => { - states1.push({ ...query1 }) - }) - - $effect(() => { - states2.push({ ...query2 }) - }) - - // Check initial states - expect(query1.status).toBe('pending') - expect(query1.fetchStatus).toBe('idle') - - // Wait for second query to complete - await vi.advanceTimersByTimeAsync(0) - expect(query2.status).toBe('success') - expect(query2.fetchStatus).toBe('idle') - - // Verify the state transitions for the second query - expect(states2[0]?.status).toBe('pending') - expect(states2[0]?.fetchStatus).toBe('fetching') - }), - ) - - it( - 'should be in "pending" state by default', - withEffectRoot(() => { - const key = queryKey() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => new Promise(() => {}), - }), - () => queryClient, - ) - - expect(query.status).toBe('pending') - }), - ) - - it( - 'should not refetch query on focus when `enabled` is set to `false`', - withEffectRoot(async () => { - const key = queryKey() - const queryFn = vi.fn().mockReturnValue('data') - - const query = createQuery( - () => ({ - queryKey: key, - queryFn, - enabled: false, - }), - () => queryClient, - ) - - // Wait a bit to ensure the query has time to settle - await vi.advanceTimersByTimeAsync(10) - - // Simulate window focus - window.dispatchEvent(new Event('visibilitychange')) - - // Wait a bit more to ensure no refetch happens - await vi.advanceTimersByTimeAsync(10) - - // The query function should not have been called - expect(queryFn).not.toHaveBeenCalled() - - // Data should be undefined since the query is disabled - expect(query.data).toBeUndefined() - }), - ) - - it( - 'should not refetch stale query on focus when `refetchOnWindowFocus` is set to `false`', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => count++, - staleTime: 0, - refetchOnWindowFocus: false, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the initial fetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(0) - - // Simulate window focus - window.dispatchEvent(new Event('visibilitychange')) - - // Wait a bit to ensure no refetch happens - await vi.advanceTimersByTimeAsync(10) - - // Should only have 2 states: initial and after fetch - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) - expect(states[1]).toMatchObject({ data: 0, isFetching: false }) - - // Count should still be 0 since no refetch occurred - expect(count).toBe(1) - }), - ) - - it( - 'should not refetch stale query on focus when `refetchOnWindowFocus` is set to a function that returns `false`', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => count++, - staleTime: 0, - refetchOnWindowFocus: () => false, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the initial fetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(0) - - // Simulate window focus - window.dispatchEvent(new Event('visibilitychange')) - - // Wait a bit to ensure no refetch happens - await vi.advanceTimersByTimeAsync(10) - - // Should only have 2 states: initial and after fetch - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) - expect(states[1]).toMatchObject({ data: 0, isFetching: false }) - - // Count should still be 0 since no refetch occurred - expect(count).toBe(1) - }), - ) - - it( - 'should not refetch fresh query on focus when `refetchOnWindowFocus` is set to `true`', - withEffectRoot(async () => { - const key = queryKey() - const states: Array> = [] - let count = 0 - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => count++, - staleTime: Infinity, - refetchOnWindowFocus: true, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the initial fetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe(0) - - // Simulate window focus - window.dispatchEvent(new Event('visibilitychange')) - - // Wait a bit to ensure no refetch happens - await vi.advanceTimersByTimeAsync(10) - - // Should only have 2 states: initial and after fetch - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) - expect(states[1]).toMatchObject({ data: 0, isFetching: false }) - - // Count should still be 0 since no refetch occurred - expect(count).toBe(1) - }), - ) - - it('should refetch fresh query when refetchOnMount is set to always', async () => { - const key = queryKey() - const states: Array> = [] - - // Prefetch the query - await queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => 'prefetched', - }) - - await withEffectRoot(async () => { - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => 'data', - refetchOnMount: 'always', - staleTime: Infinity, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the refetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('data') - - // Should have 2 states: initial (with prefetched data) and after refetch - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ - data: 'prefetched', - isStale: false, - isFetching: true, - }) - expect(states[1]).toMatchObject({ - data: 'data', - isStale: false, - isFetching: false, - }) - })() - }) - - it('should refetch stale query when refetchOnMount is set to true', async () => { - const key = queryKey() - const states: Array> = [] - - // Prefetch the query - await queryClient.prefetchQuery({ - queryKey: key, - queryFn: () => 'prefetched', - }) - - await withEffectRoot(async () => { - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => 'data', - refetchOnMount: true, - staleTime: 0, - }), - () => queryClient, - ) - - $effect(() => { - states.push({ ...query }) - }) - - // Wait for the refetch to complete - await vi.advanceTimersByTimeAsync(0) - expect(query.data).toBe('data') - - // Should have 2 states: initial (with prefetched data) and after refetch - expect(states.length).toBe(2) - expect(states[0]).toMatchObject({ - data: 'prefetched', - isStale: true, - isFetching: true, - }) - expect(states[1]).toMatchObject({ - data: 'data', - isStale: true, - isFetching: false, - }) - })() - }) - - it( - 'should set status to error if queryFn throws', - withEffectRoot(async () => { - const key = queryKey() - const consoleMock = vi - .spyOn(console, 'error') - .mockImplementation(() => undefined) - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.reject(new Error('Error test')), - retry: false, - }), - () => queryClient, - ) - - await vi.advanceTimersByTimeAsync(0) - expect(query.status).toBe('error') - expect(query.error?.message).toBe('Error test') - - consoleMock.mockRestore() - }), - ) - - it( - 'should set status to error instead of throwing when error should not be thrown', - withEffectRoot(async () => { - const key = queryKey() - - const query = createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.reject(new Error('Local Error')), - retry: false, - throwOnError: (err) => err.message !== 'Local Error', - }), - () => queryClient, - ) - - await vi.advanceTimersByTimeAsync(0) - expect(query.status).toBe('error') - expect(query.error?.message).toBe('Local Error') - }), - ) - - it( - 'should support changing provided query client', - withEffectRoot(() => { - const queryClient1 = new QueryClient() - const queryClient2 = new QueryClient() - - let currentClient = $state(queryClient1) - - const key = queryKey() - - createQuery( - () => ({ - queryKey: key, - queryFn: () => Promise.resolve('prefetched'), - }), - () => currentClient, - ) - - expect(queryClient1.getQueryCache().find({ queryKey: key })).toBeDefined() - - currentClient = queryClient2 - flushSync() - - expect(queryClient2.getQueryCache().find({ queryKey: key })).toBeDefined() - }), - ) -}) diff --git a/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts index 540cf294046..b20c5d76fa6 100644 --- a/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts +++ b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts @@ -1,17 +1,1925 @@ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@testing-library/svelte' -import { sleep } from '@tanstack/query-test-utils' +import { flushSync } from 'svelte' +import { + afterEach, + beforeEach, + describe, + expect, + expectTypeOf, + it, + vi, +} from 'vitest' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { QueryClient, createQuery, keepPreviousData } from '../../src/index.js' +import { promiseWithResolvers, withEffectRoot } from '../utils.svelte.js' import IsRestoringExample from './IsRestoringExample.svelte' +import type { CreateQueryResult, QueryCache } from '../../src/index.js' describe('createQuery', () => { + let queryClient: QueryClient + let queryCache: QueryCache + beforeEach(() => { vi.useFakeTimers() + queryClient = new QueryClient() + queryCache = queryClient.getQueryCache() }) afterEach(() => { + queryClient.clear() vi.useRealTimers() }) + it( + 'should return the correct states for a successful query', + withEffectRoot(async () => { + const key = queryKey() + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => promise, + }), + () => queryClient, + ) + + if (query.isPending) { + expectTypeOf(query.data).toEqualTypeOf() + expectTypeOf(query.error).toEqualTypeOf() + } else if (query.isLoadingError) { + expectTypeOf(query.data).toEqualTypeOf() + expectTypeOf(query.error).toEqualTypeOf() + } else { + expectTypeOf(query.data).toEqualTypeOf() + expectTypeOf(query.error).toEqualTypeOf() + } + + const promise1 = query.promise + + expect(query).toEqual({ + data: undefined, + dataUpdatedAt: 0, + error: null, + errorUpdatedAt: 0, + failureCount: 0, + failureReason: null, + errorUpdateCount: 0, + isEnabled: true, + isError: false, + isFetched: false, + isFetchedAfterMount: false, + isFetching: true, + isPaused: false, + isPending: true, + isInitialLoading: true, + isLoading: true, + isLoadingError: false, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isSuccess: false, + refetch: expect.any(Function), + status: 'pending', + fetchStatus: 'fetching', + promise: expect.any(Promise), + }) + resolve('resolved') + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual({ + data: 'resolved', + dataUpdatedAt: expect.any(Number), + error: null, + errorUpdatedAt: 0, + failureCount: 0, + failureReason: null, + errorUpdateCount: 0, + isEnabled: true, + isError: false, + isFetched: true, + isFetchedAfterMount: true, + isFetching: false, + isPaused: false, + isPending: false, + isInitialLoading: false, + isLoading: false, + isLoadingError: false, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isSuccess: true, + refetch: expect.any(Function), + status: 'success', + fetchStatus: 'idle', + promise: expect.any(Promise), + }) + + expect(promise1).toBe(query.promise) + }), + ) + + it( + 'should return the correct states for an unsuccessful query', + withEffectRoot(async () => { + const key = queryKey() + let count = 0 + const states: Array = [] + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => { + return Promise.reject(new Error('rejected #' + ++count)) + }, + retry: 1, + retryDelay: 1, + }), + () => queryClient, + ) + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) + expect(query.isError).toBe(true) + + expect(states[0]).toEqual({ + data: undefined, + dataUpdatedAt: 0, + error: null, + errorUpdatedAt: 0, + failureCount: 0, + failureReason: null, + errorUpdateCount: 0, + isEnabled: true, + isError: false, + isFetched: false, + isFetchedAfterMount: false, + isFetching: true, + isPaused: false, + isPending: true, + isInitialLoading: true, + isLoading: true, + isLoadingError: false, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isSuccess: false, + refetch: expect.any(Function), + status: 'pending', + fetchStatus: 'fetching', + promise: expect.any(Promise), + }) + + expect(states[1]).toEqual({ + data: undefined, + dataUpdatedAt: 0, + error: null, + errorUpdatedAt: 0, + failureCount: 1, + failureReason: new Error('rejected #1'), + errorUpdateCount: 0, + isEnabled: true, + isError: false, + isFetched: false, + isFetchedAfterMount: false, + isFetching: true, + isPaused: false, + isPending: true, + isInitialLoading: true, + isLoading: true, + isLoadingError: false, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isSuccess: false, + refetch: expect.any(Function), + status: 'pending', + fetchStatus: 'fetching', + promise: expect.any(Promise), + }) + + expect(states[2]).toEqual({ + data: undefined, + dataUpdatedAt: 0, + error: new Error('rejected #2'), + errorUpdatedAt: expect.any(Number), + failureCount: 2, + failureReason: new Error('rejected #2'), + errorUpdateCount: 1, + isEnabled: true, + isError: true, + isFetched: true, + isFetchedAfterMount: true, + isFetching: false, + isPaused: false, + isPending: false, + isInitialLoading: false, + isLoading: false, + isLoadingError: true, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isSuccess: false, + refetch: expect.any(Function), + status: 'error', + fetchStatus: 'idle', + promise: expect.any(Promise), + }) + }), + ) + + it('should set isFetchedAfterMount to true after a query has been fetched', async () => { + const key = queryKey() + + await queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => Promise.resolve('prefetched'), + }) + + await withEffectRoot(async () => { + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => promise, + }), + () => queryClient, + ) + + expect(query).toEqual( + expect.objectContaining({ + data: 'prefetched', + isFetched: true, + isFetchedAfterMount: false, + }), + ) + resolve('resolved') + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual( + expect.objectContaining({ + data: 'resolved', + isFetched: true, + isFetchedAfterMount: true, + }), + ) + })() + }) + + it( + 'should not cancel an ongoing fetch when refetch is called with cancelRefetch=false if we have data already', + withEffectRoot(async () => { + const key = queryKey() + let fetchCount = 0 + + const { promise, resolve } = promiseWithResolvers() + + const { refetch } = createQuery( + () => ({ + queryKey: key, + queryFn: () => { + fetchCount++ + return promise + }, + enabled: false, + initialData: 'initial', + }), + () => queryClient, + ) + + refetch() + refetch({ cancelRefetch: false }) + + resolve('resolved') + await promise + + expect(fetchCount).toBe(1) + }), + ) + + it( + 'should cancel an ongoing fetch when refetch is called (cancelRefetch=true) if we have data already', + withEffectRoot(async () => { + const key = queryKey() + let fetchCount = 0 + + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: async () => { + fetchCount++ + return promise + }, + enabled: false, + initialData: 'initialData', + }), + () => queryClient, + ) + + // Trigger two refetch close together + query.refetch() + query.refetch() + + resolve('resolved') + await promise + + expect(fetchCount).toBe(2) + }), + ) + + it( + 'should not cancel an ongoing fetch when refetch is called (cancelRefetch=true) if we do not have data yet', + withEffectRoot(async () => { + const key = queryKey() + let fetchCount = 0 + + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: async () => { + fetchCount++ + return promise + }, + enabled: false, + }), + () => queryClient, + ) + + // Trigger two refetch close together + query.refetch() + query.refetch() + + resolve('resolved') + await promise + + expect(fetchCount).toBe(1) + }), + ) + + it( + 'should be able to watch a query without providing a query function', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + + queryClient.setQueryDefaults(key, { + queryFn: () => 'data', + }) + + const query = createQuery( + () => ({ queryKey: key }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') + + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ data: undefined }) + expect(states[1]).toMatchObject({ data: 'data' }) + }), + ) + + it('should pick up a query when re-mounting with gcTime 0', async () => { + const key = queryKey() + // this needs to be split into two different effect roots because + // effects won't pick up dependencies created after the first `await` + // -- the two roots effectively emulate two consecutive components being rendered + await withEffectRoot(async () => { + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => promise, + gcTime: 0, + notifyOnChangeProps: 'all', + }), + () => queryClient, + ) + + expect(query).toMatchObject({ + isPending: true, + isSuccess: false, + isFetching: true, + }) + + resolve('resolved: 1') + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('resolved: 1') + + expect(query).toMatchObject({ + isPending: false, + isSuccess: true, + isFetching: false, + }) + })() + + await withEffectRoot(async () => { + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => promise, + gcTime: 0, + notifyOnChangeProps: 'all', + }), + () => queryClient, + ) + + expect(query).toMatchObject({ + data: 'resolved: 1', + isPending: false, + isSuccess: true, + isFetching: true, + }) + + resolve('resolved: 2') + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('resolved: 2') + + expect(query).toMatchObject({ + data: 'resolved: 2', + isPending: false, + isSuccess: true, + isFetching: false, + }) + })() + }) + + it('should not get into an infinite loop when removing a query with gcTime 0 and rerendering', async () => { + const key = queryKey() + const states: Array> = [] + + // First mount: render the query and let it fetch + await withEffectRoot(async () => { + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('data'), + gcTime: 0, + notifyOnChangeProps: ['isPending', 'isSuccess', 'data'], + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') + })() + + // Simulate rerender by removing the query and mounting again + await withEffectRoot(async () => { + queryClient.removeQueries({ queryKey: key }) + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('data'), + gcTime: 0, + notifyOnChangeProps: ['isPending', 'isSuccess', 'data'], + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') + + // Give it time to catch any accidental infinite updates + await vi.advanceTimersByTimeAsync(100) + })() + + expect(states.length).toBe(4) + expect(states[0]).toMatchObject({ + isPending: true, + isSuccess: false, + data: undefined, + }) + expect(states[1]).toMatchObject({ + isPending: false, + isSuccess: true, + data: 'data', + }) + expect(states[2]).toMatchObject({ + isPending: true, + isSuccess: false, + data: undefined, + }) + expect(states[3]).toMatchObject({ + isPending: false, + isSuccess: true, + data: 'data', + }) + }) + + it( + 'should fetch when refetchOnMount is false and nothing has been fetched yet', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => 'test', + refetchOnMount: false, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('test') + + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ data: undefined }) + expect(states[1]).toMatchObject({ data: 'test' }) + }), + ) + + it( + 'should not fetch when refetchOnMount is false and data has been fetched already', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + + queryClient.setQueryData(key, 'prefetched') + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => 'test', + refetchOnMount: false, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('prefetched') + + expect(states.length).toBe(1) + expect(states[0]).toMatchObject({ data: 'prefetched' }) + }), + ) + + it( + 'should be able to select a part of the data with select', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + + const query = createQuery<{ name: string }, Error, string>( + () => ({ + queryKey: key, + queryFn: () => ({ name: 'test' }), + select: (data) => data.name, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('test') + + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ data: undefined }) + expect(states[1]).toMatchObject({ data: 'test' }) + }), + ) + + it( + 'should throw an error when a selector throws', + withEffectRoot(async () => { + const key = queryKey() + const error = new Error('Select Error') + const states: Array> = [] + + const query = createQuery<{ name: string }, Error, string>( + () => ({ + queryKey: key, + queryFn: () => ({ name: 'test' }), + select: () => { + throw error + }, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.status).toBe('error') + + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ status: 'pending', data: undefined }) + expect(states[1]).toMatchObject({ status: 'error', error }) + }), + ) + + it( + 'should be able to remove a query', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = 0 + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => ++count, + notifyOnChangeProps: 'all', + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(1) + + queryClient.removeQueries({ queryKey: key }) + query.refetch() + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(2) + + expect(states.length).toBe(4) + expect(states[0]).toMatchObject({ + status: 'pending', + data: undefined, + dataUpdatedAt: 0, + }) + expect(states[1]).toMatchObject({ status: 'success', data: 1 }) + expect(states[2]).toMatchObject({ + status: 'pending', + data: undefined, + dataUpdatedAt: 0, + }) + expect(states[3]).toMatchObject({ status: 'success', data: 2 }) + }), + ) + + it( + 'keeps up-to-date with query key changes', + withEffectRoot(async () => { + const key = queryKey() + let search = $state('') + const states: Array> = [] + + const query = createQuery( + () => ({ + queryKey: [...key, search], + queryFn: async () => Promise.resolve(search), + placeholderData: keepPreviousData, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('') + search = 'phone' + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('phone') + + expect(states.length).toBe(4) + expect(states[0]).toMatchObject({ + status: 'pending', + fetchStatus: 'fetching', + data: undefined, + }) + expect(states[1]).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: '', + }) + expect(states[2]).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: '', + }) + expect(states[3]).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: 'phone', + }) + }), + ) + + it( + 'should create a new query when refetching a removed query', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve(++count), + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(1) + + queryClient.removeQueries({ queryKey: key }) + query.refetch() + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(2) + + expect(states.length).toBe(4) + // Initial + expect(states[0]).toMatchObject({ data: undefined, dataUpdatedAt: 0 }) + // Fetched + expect(states[1]).toMatchObject({ data: 1 }) + // Switch + expect(states[2]).toMatchObject({ data: undefined, dataUpdatedAt: 0 }) + // Fetched + expect(states[3]).toMatchObject({ data: 2 }) + }), + ) + + it( + 'should share equal data structures between query results', + withEffectRoot(async () => { + const key = queryKey() + + const result1 = [ + { id: '1', done: false }, + { id: '2', done: false }, + ] + + const result2 = [ + { id: '1', done: false }, + { id: '2', done: true }, + ] + + const states: Array> = [] + + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => { + count++ + return Promise.resolve(count === 1 ? result1 : result2) + }, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data?.[1]?.done).toBe(false) + query.refetch() + await vi.advanceTimersByTimeAsync(0) + expect(query.data?.[1]?.done).toBe(true) + + expect(states.length).toBe(4) + + const todos = states[1]?.data + const todo1 = todos?.[0] + const todo2 = todos?.[1] + + const newTodos = states[3]?.data + const newTodo1 = newTodos?.[0] + const newTodo2 = newTodos?.[1] + + expect(todos).toEqual(result1) + expect(newTodos).toEqual(result2) + expect(newTodos).not.toBe(todos) + expect(newTodo1).toBe(todo1) + expect(newTodo2).not.toBe(todo2) + }), + ) + + it( + 'should use query function from hook when the existing query does not have a query function', + withEffectRoot(async () => { + const key = queryKey() + + queryClient.setQueryData(key, 'set') + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('fetched'), + initialData: 'initial', + staleTime: Infinity, + }), + () => queryClient, + ) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('set') + queryClient.refetchQueries({ queryKey: key }) + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('fetched') + }), + ) + + it( + 'should update query stale state and refetch when invalidated with invalidateQueries', + withEffectRoot(async () => { + const key = queryKey() + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve(++count), + staleTime: Infinity, + }), + () => queryClient, + ) + + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual( + expect.objectContaining({ + data: 1, + isStale: false, + isFetching: false, + }), + ) + queryClient.invalidateQueries({ queryKey: key }) + await vi.advanceTimersByTimeAsync(0) + expect(query).toEqual( + expect.objectContaining({ + data: 2, + isStale: false, + isFetching: false, + }), + ) + }), + ) + + it( + 'should not update disabled query when refetching with refetchQueries', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve(++count), + enabled: false, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + + expect(states.length).toBe(1) + expect(states[0]).toMatchObject({ + data: undefined, + isSuccess: false, + isFetching: false, + isStale: false, + }) + }), + ) + + it( + 'should not refetch disabled query when invalidated with invalidateQueries', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve(++count), + enabled: false, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + queryClient.invalidateQueries({ queryKey: key }) + + // Wait long enough for the invalidation and potential refetch + await vi.advanceTimersByTimeAsync(100) + + expect(states.length).toBe(1) + expect(states[0]).toMatchObject({ + data: undefined, + isFetching: false, + isSuccess: false, + isStale: false, + }) + }), + ) + + it( + 'should not fetch when switching to a disabled query', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = $state(0) + + const query = createQuery( + () => ({ + queryKey: [...key, count], + queryFn: () => Promise.resolve(count), + enabled: count === 0, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) + count = 1 + await vi.advanceTimersByTimeAsync(0) + expect(states.length).toBe(3) + + // Fetch query + expect(states[0]).toMatchObject({ + isFetching: true, + isSuccess: false, + }) + // Fetched query + expect(states[1]).toMatchObject({ + data: 0, + isFetching: false, + isSuccess: true, + }) + // Switch to disabled query + expect(states[2]).toMatchObject({ + isFetching: false, + isSuccess: false, + }) + }), + ) + + it( + 'should keep the previous data when placeholderData is set', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = $state(0) + + const query = createQuery( + () => ({ + queryKey: [...key, count], + queryFn: () => Promise.resolve(count), + placeholderData: keepPreviousData, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the initial fetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) + + // Update count to trigger a new fetch + count = 1 + + // Wait for all state updates to complete + await vi.advanceTimersByTimeAsync(0) + expect(states.length).toBe(4) + + // Initial + expect(states[0]).toMatchObject({ + data: undefined, + isFetching: true, + isSuccess: false, + isPlaceholderData: false, + }) + // Fetched + expect(states[1]).toMatchObject({ + data: 0, + isFetching: false, + isSuccess: true, + isPlaceholderData: false, + }) + // Set state + expect(states[2]).toMatchObject({ + data: 0, + isFetching: true, + isSuccess: true, + isPlaceholderData: true, + }) + // New data + expect(states[3]).toMatchObject({ + data: 1, + isFetching: false, + isSuccess: true, + isPlaceholderData: false, + }) + }), + ) + + it( + 'should not show initial data from next query if placeholderData is set', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = $state(0) + + const query = createQuery( + () => ({ + queryKey: [...key, count], + queryFn: () => Promise.resolve(count), + initialData: 99, + placeholderData: keepPreviousData, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the initial fetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) + + // Update count to trigger a new fetch + count = 1 + + // Wait for the new fetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(1) + + // Wait for all state updates to complete + expect(states.length).toBe(4) + + // Initial + expect(states[0]).toMatchObject({ + data: 99, + isFetching: true, + isSuccess: true, + isPlaceholderData: false, + }) + // Fetched + expect(states[1]).toMatchObject({ + data: 0, + isFetching: false, + isSuccess: true, + isPlaceholderData: false, + }) + // Set state + expect(states[2]).toMatchObject({ + data: 99, + isFetching: true, + isSuccess: true, + isPlaceholderData: false, + }) + // New data + expect(states[3]).toMatchObject({ + data: 1, + isFetching: false, + isSuccess: true, + isPlaceholderData: false, + }) + }), + ) + + it( + 'should keep the previous data on disabled query when placeholderData is set and switching query key multiple times', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + + // Set initial query data + queryClient.setQueryData([...key, 10], 10) + + let count = $state(10) + + const query = createQuery( + () => ({ + queryKey: [...key, count], + queryFn: () => Promise.resolve(count), + enabled: false, + placeholderData: keepPreviousData, + notifyOnChangeProps: 'all', + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // let that effect ^ run to push the initial state + flushSync() + flushSync(() => (count = 11)) + flushSync(() => (count = 12)) + query.refetch() + // Wait for all operations to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(12) + + // Disabled query + expect(states[0]).toMatchObject({ + data: 10, + isFetching: false, + isSuccess: true, + isPlaceholderData: false, + }) + // Set state (11) + expect(states[1]).toMatchObject({ + data: 10, + isFetching: false, + isSuccess: true, + isPlaceholderData: true, + }) + // Set state (12) + expect(states[2]).toMatchObject({ + data: 10, + isFetching: false, + isSuccess: true, + isPlaceholderData: true, + }) + // Refetch + expect(states[3]).toMatchObject({ + data: 10, + isFetching: true, + isSuccess: true, + isPlaceholderData: true, + }) + // Refetch done + expect(states[4]).toMatchObject({ + data: 12, + isFetching: false, + isSuccess: true, + isPlaceholderData: false, + }) + }), + ) + + it( + 'should use the correct query function when components use different configurations', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + const { promise, resolve } = promiseWithResolvers() + + // Simulate FirstComponent + const firstQuery = createQuery( + () => ({ + queryKey: key, + queryFn: () => promise, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...firstQuery }) + }) + + // Simulate SecondComponent + createQuery( + () => ({ + queryKey: key, + queryFn: () => 2, + }), + () => queryClient, + ) + + // Resolve the first query + resolve(1) + + // Wait for the first query to complete + await vi.advanceTimersByTimeAsync(0) + expect(firstQuery.data).toBe(1) + + // Refetch the first query + firstQuery.refetch() + + // Wait for all state updates to complete + await vi.advanceTimersByTimeAsync(0) + expect(states.length).toBe(4) + + expect(states[0]).toMatchObject({ + data: undefined, + }) + expect(states[1]).toMatchObject({ + data: 1, + }) + expect(states[2]).toMatchObject({ + data: 1, + }) + // This state should be 1 instead of 2 + expect(states[3]).toMatchObject({ + data: 1, + }) + }), + ) + + it('should be able to set different stale times for a query', async () => { + const key = queryKey() + const states1: Array> = [] + const states2: Array> = [] + + // Prefetch the query + const prefetchPromise = queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => sleep(10).then(() => 'prefetch'), + }) + await vi.advanceTimersByTimeAsync(10) + await prefetchPromise + + expect(queryClient.getQueryState(key)?.data).toBe('prefetch') + // Advance time so secondQuery (staleTime: 10) sees prefetched data as stale + await vi.advanceTimersByTimeAsync(10) + + await withEffectRoot(async () => { + const firstQuery = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('one'), + staleTime: 100, + }), + () => queryClient, + ) + + $effect(() => { + states1.push({ ...firstQuery }) + }) + + const secondQuery = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('two'), + staleTime: 10, + }), + () => queryClient, + ) + + $effect(() => { + states2.push({ ...secondQuery }) + }) + + // Wait for both staleTime to expire (100ms for firstQuery) + await vi.advanceTimersByTimeAsync(101) + expect(firstQuery).toMatchObject({ data: 'two', isStale: true }) + expect(secondQuery).toMatchObject({ data: 'two', isStale: true }) + + expect(states1).toMatchObject([ + // First render + { + data: 'prefetch', + isStale: false, + }, + // Second createQuery started fetching + { + data: 'prefetch', + isStale: false, + }, + // Second createQuery data came in + { + data: 'two', + isStale: false, + }, + // Data became stale after 100ms + { + data: 'two', + isStale: true, + }, + ]) + + expect(states2).toMatchObject([ + // First render, data is stale and starts fetching + { + data: 'prefetch', + isStale: true, + }, + // Second createQuery data came in + { + data: 'two', + isStale: false, + }, + // Data became stale after 10ms + { + data: 'two', + isStale: true, + }, + ]) + })() + }) + + it( + 'should re-render when a query becomes stale', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => 'test', + staleTime: 50, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the query to become stale + await vi.advanceTimersByTimeAsync(51) + + expect(states.length).toBe(3) + expect(states[0]).toMatchObject({ isStale: true }) + expect(states[1]).toMatchObject({ isStale: false }) + expect(states[2]).toMatchObject({ isStale: true }) + }), + ) + + it( + 'should not re-render when it should only re-render on data changes and the data did not change', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => promise, + notifyOnChangeProps: ['data'], + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + resolve('test') + + // Refetch the query + setTimeout(() => { + query.refetch() + }, 10) + + await vi.advanceTimersByTimeAsync(10) + expect(states.length).toBe(2) + + expect(states[0]).toMatchObject({ + data: undefined, + status: 'pending', + isFetching: true, + }) + expect(states[1]).toMatchObject({ + data: 'test', + status: 'success', + isFetching: false, + }) + }), + ) + + it( + 'should track properties and only re-render when a tracked property changes', + withEffectRoot(async () => { + const key = queryKey() + const states: Array = [] + const { promise, resolve } = promiseWithResolvers() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => promise, + }), + () => queryClient, + ) + + $effect(() => { + states.push(query.data) + }) + + // Resolve the promise after a delay + setTimeout(() => { + resolve('test') + }, 10) + + await vi.advanceTimersByTimeAsync(10) + expect(query.data).toBe('test') + + // Refetch after data is available + setTimeout(() => { + if (query.data) { + query.refetch() + } + }, 20) + + // Wait for refetch to complete + await vi.advanceTimersByTimeAsync(20) + + expect(states.length).toBe(2) + expect(states[0]).toBe(undefined) + expect(states[1]).toBe('test') + }), + ) + + it( + 'should always re-render if we are tracking props but not using any', + withEffectRoot(async () => { + const key = queryKey() + let renderCount = 0 + const states: Array> = [] + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('test'), + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Track changes to the query state + $effect(() => { + // @ts-expect-error + const _ = { ...query } + renderCount++ + }) + + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('test') + + expect(renderCount).toBe(2) + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ data: undefined }) + expect(states[1]).toMatchObject({ data: 'test' }) + }), + ) + + it( + 'should update query options', + withEffectRoot(() => { + const key = queryKey() + + const queryFn = () => sleep(10).then(() => 'data1') + + // Create two queries with the same key but different options + createQuery( + () => ({ queryKey: key, queryFn, retryDelay: 10 }), + () => queryClient, + ) + + createQuery( + () => ({ queryKey: key, queryFn, retryDelay: 20 }), + () => queryClient, + ) + + // The last options should win + expect(queryCache.find({ queryKey: key })!.options.retryDelay).toBe(20) + }), + ) + + it( + 'should start with status pending, fetchStatus idle if enabled is false', + withEffectRoot(async () => { + const key1 = queryKey() + const key2 = queryKey() + const states1: Array> = [] + const states2: Array> = [] + + const query1 = createQuery( + () => ({ + queryKey: key1, + queryFn: () => 'data', + enabled: false, + }), + () => queryClient, + ) + + const query2 = createQuery( + () => ({ + queryKey: key2, + queryFn: () => 'data', + }), + () => queryClient, + ) + + $effect(() => { + states1.push({ ...query1 }) + }) + + $effect(() => { + states2.push({ ...query2 }) + }) + + // Check initial states + expect(query1.status).toBe('pending') + expect(query1.fetchStatus).toBe('idle') + + // Wait for second query to complete + await vi.advanceTimersByTimeAsync(0) + expect(query2.status).toBe('success') + expect(query2.fetchStatus).toBe('idle') + + // Verify the state transitions for the second query + expect(states2[0]?.status).toBe('pending') + expect(states2[0]?.fetchStatus).toBe('fetching') + }), + ) + + it( + 'should be in "pending" state by default', + withEffectRoot(() => { + const key = queryKey() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => new Promise(() => {}), + }), + () => queryClient, + ) + + expect(query.status).toBe('pending') + }), + ) + + it( + 'should not refetch query on focus when `enabled` is set to `false`', + withEffectRoot(async () => { + const key = queryKey() + const queryFn = vi.fn().mockReturnValue('data') + + const query = createQuery( + () => ({ + queryKey: key, + queryFn, + enabled: false, + }), + () => queryClient, + ) + + // Wait a bit to ensure the query has time to settle + await vi.advanceTimersByTimeAsync(10) + + // Simulate window focus + window.dispatchEvent(new Event('visibilitychange')) + + // Wait a bit more to ensure no refetch happens + await vi.advanceTimersByTimeAsync(10) + + // The query function should not have been called + expect(queryFn).not.toHaveBeenCalled() + + // Data should be undefined since the query is disabled + expect(query.data).toBeUndefined() + }), + ) + + it( + 'should not refetch stale query on focus when `refetchOnWindowFocus` is set to `false`', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => count++, + staleTime: 0, + refetchOnWindowFocus: false, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the initial fetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) + + // Simulate window focus + window.dispatchEvent(new Event('visibilitychange')) + + // Wait a bit to ensure no refetch happens + await vi.advanceTimersByTimeAsync(10) + + // Should only have 2 states: initial and after fetch + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) + expect(states[1]).toMatchObject({ data: 0, isFetching: false }) + + // Count should still be 0 since no refetch occurred + expect(count).toBe(1) + }), + ) + + it( + 'should not refetch stale query on focus when `refetchOnWindowFocus` is set to a function that returns `false`', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => count++, + staleTime: 0, + refetchOnWindowFocus: () => false, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the initial fetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) + + // Simulate window focus + window.dispatchEvent(new Event('visibilitychange')) + + // Wait a bit to ensure no refetch happens + await vi.advanceTimersByTimeAsync(10) + + // Should only have 2 states: initial and after fetch + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) + expect(states[1]).toMatchObject({ data: 0, isFetching: false }) + + // Count should still be 0 since no refetch occurred + expect(count).toBe(1) + }), + ) + + it( + 'should not refetch fresh query on focus when `refetchOnWindowFocus` is set to `true`', + withEffectRoot(async () => { + const key = queryKey() + const states: Array> = [] + let count = 0 + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => count++, + staleTime: Infinity, + refetchOnWindowFocus: true, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the initial fetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe(0) + + // Simulate window focus + window.dispatchEvent(new Event('visibilitychange')) + + // Wait a bit to ensure no refetch happens + await vi.advanceTimersByTimeAsync(10) + + // Should only have 2 states: initial and after fetch + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) + expect(states[1]).toMatchObject({ data: 0, isFetching: false }) + + // Count should still be 0 since no refetch occurred + expect(count).toBe(1) + }), + ) + + it('should refetch fresh query when refetchOnMount is set to always', async () => { + const key = queryKey() + const states: Array> = [] + + // Prefetch the query + await queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => 'prefetched', + }) + + await withEffectRoot(async () => { + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => 'data', + refetchOnMount: 'always', + staleTime: Infinity, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the refetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') + + // Should have 2 states: initial (with prefetched data) and after refetch + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ + data: 'prefetched', + isStale: false, + isFetching: true, + }) + expect(states[1]).toMatchObject({ + data: 'data', + isStale: false, + isFetching: false, + }) + })() + }) + + it('should refetch stale query when refetchOnMount is set to true', async () => { + const key = queryKey() + const states: Array> = [] + + // Prefetch the query + await queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => 'prefetched', + }) + + await withEffectRoot(async () => { + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => 'data', + refetchOnMount: true, + staleTime: 0, + }), + () => queryClient, + ) + + $effect(() => { + states.push({ ...query }) + }) + + // Wait for the refetch to complete + await vi.advanceTimersByTimeAsync(0) + expect(query.data).toBe('data') + + // Should have 2 states: initial (with prefetched data) and after refetch + expect(states.length).toBe(2) + expect(states[0]).toMatchObject({ + data: 'prefetched', + isStale: true, + isFetching: true, + }) + expect(states[1]).toMatchObject({ + data: 'data', + isStale: true, + isFetching: false, + }) + })() + }) + + it( + 'should set status to error if queryFn throws', + withEffectRoot(async () => { + const key = queryKey() + const consoleMock = vi + .spyOn(console, 'error') + .mockImplementation(() => undefined) + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.reject(new Error('Error test')), + retry: false, + }), + () => queryClient, + ) + + await vi.advanceTimersByTimeAsync(0) + expect(query.status).toBe('error') + expect(query.error?.message).toBe('Error test') + + consoleMock.mockRestore() + }), + ) + + it( + 'should set status to error instead of throwing when error should not be thrown', + withEffectRoot(async () => { + const key = queryKey() + + const query = createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.reject(new Error('Local Error')), + retry: false, + throwOnError: (err) => err.message !== 'Local Error', + }), + () => queryClient, + ) + + await vi.advanceTimersByTimeAsync(0) + expect(query.status).toBe('error') + expect(query.error?.message).toBe('Local Error') + }), + ) + + it( + 'should support changing provided query client', + withEffectRoot(() => { + const queryClient1 = new QueryClient() + const queryClient2 = new QueryClient() + + let currentClient = $state(queryClient1) + + const key = queryKey() + + createQuery( + () => ({ + queryKey: key, + queryFn: () => Promise.resolve('prefetched'), + }), + () => currentClient, + ) + + expect(queryClient1.getQueryCache().find({ queryKey: key })).toBeDefined() + + currentClient = queryClient2 + flushSync() + + expect(queryClient2.getQueryCache().find({ queryKey: key })).toBeDefined() + }), + ) + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { const queryFn = vi.fn(() => sleep(10).then(() => 'data')) diff --git a/packages/svelte-query/tests/createQuery.test-d.ts b/packages/svelte-query/tests/createQuery/createQuery.test-d.ts similarity index 98% rename from packages/svelte-query/tests/createQuery.test-d.ts rename to packages/svelte-query/tests/createQuery/createQuery.test-d.ts index 55115db6665..8b6590b3347 100644 --- a/packages/svelte-query/tests/createQuery.test-d.ts +++ b/packages/svelte-query/tests/createQuery/createQuery.test-d.ts @@ -1,6 +1,6 @@ import { describe, expectTypeOf, it } from 'vitest' import { queryKey } from '@tanstack/query-test-utils' -import { createQuery, queryOptions } from '../src/index.js' +import { createQuery, queryOptions } from '../../src/index.js' describe('createQuery', () => { describe('initialData', () => { From d36ece2928ca896abf42f2792045cf28e4106193 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 10 Apr 2026 15:54:31 +0900 Subject: [PATCH 085/414] test(svelte-query): replace hardcoded query keys with 'queryKey()' in Svelte test components (#10443) --- .../tests/createInfiniteQuery/BaseExample.svelte | 4 ++-- .../tests/createInfiniteQuery/SelectExample.svelte | 4 ++-- .../tests/createQueries/IsRestoringExample.svelte | 5 +++-- .../svelte-query/tests/createQuery/IsRestoringExample.svelte | 3 ++- packages/svelte-query/tests/useIsFetching/Query.svelte | 4 ++-- packages/svelte-query/tests/useIsMutating/Query.svelte | 4 ++-- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte index a16cdc9214b..6c64621d86b 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte @@ -1,7 +1,7 @@ From 300d81ec9d5b6ea1d2fcd486b6d9706b2f0eb44a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 11 Apr 2026 13:14:30 +0900 Subject: [PATCH 086/414] test(svelte-query): unify queryClient passing to 'setQueryClientContext' and rename test components (#10446) * test(svelte-query): unify queryClient passing to 'setQueryClientContext' and rename test components * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../svelte-query/tests/ProviderWrapper.svelte | 14 ---------- ...entComponent.svelte => BaseExample.svelte} | 4 +-- ...hildComponent.svelte => QueryChild.svelte} | 0 .../QueryClientProvider.svelte.test.ts | 4 +-- .../createInfiniteQuery/BaseExample.svelte | 17 ++++++------ ...ient.svelte => ChangeClientExample.svelte} | 18 ++++++------- .../createInfiniteQuery/SelectExample.svelte | 23 ++++++++-------- .../createInfiniteQuery.svelte.test.ts | 4 +-- .../createQueries/IsRestoringExample.svelte | 22 +++++++-------- .../createQuery/IsRestoringExample.svelte | 18 ++++++------- .../tests/useIsFetching/BaseExample.svelte | 27 ++++++++++++++----- .../tests/useIsFetching/FetchStatus.svelte | 6 ----- .../tests/useIsFetching/Query.svelte | 16 ----------- .../tests/useIsMutating/BaseExample.svelte | 23 +++++++++++----- .../tests/useIsMutating/MutatingStatus.svelte | 6 ----- .../tests/useIsMutating/Query.svelte | 11 -------- 16 files changed, 90 insertions(+), 123 deletions(-) delete mode 100644 packages/svelte-query/tests/ProviderWrapper.svelte rename packages/svelte-query/tests/QueryClientProvider/{ParentComponent.svelte => BaseExample.svelte} (78%) rename packages/svelte-query/tests/QueryClientProvider/{ChildComponent.svelte => QueryChild.svelte} (100%) rename packages/svelte-query/tests/createInfiniteQuery/{ChangeClient.svelte => ChangeClientExample.svelte} (62%) delete mode 100644 packages/svelte-query/tests/useIsFetching/FetchStatus.svelte delete mode 100644 packages/svelte-query/tests/useIsFetching/Query.svelte delete mode 100644 packages/svelte-query/tests/useIsMutating/MutatingStatus.svelte delete mode 100644 packages/svelte-query/tests/useIsMutating/Query.svelte diff --git a/packages/svelte-query/tests/ProviderWrapper.svelte b/packages/svelte-query/tests/ProviderWrapper.svelte deleted file mode 100644 index b61d2d99daf..00000000000 --- a/packages/svelte-query/tests/ProviderWrapper.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - - - {@render children()} - diff --git a/packages/svelte-query/tests/QueryClientProvider/ParentComponent.svelte b/packages/svelte-query/tests/QueryClientProvider/BaseExample.svelte similarity index 78% rename from packages/svelte-query/tests/QueryClientProvider/ParentComponent.svelte rename to packages/svelte-query/tests/QueryClientProvider/BaseExample.svelte index c7b6fa0c5bf..847135b1a71 100644 --- a/packages/svelte-query/tests/QueryClientProvider/ParentComponent.svelte +++ b/packages/svelte-query/tests/QueryClientProvider/BaseExample.svelte @@ -1,11 +1,11 @@ - + diff --git a/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte b/packages/svelte-query/tests/QueryClientProvider/QueryChild.svelte similarity index 100% rename from packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte rename to packages/svelte-query/tests/QueryClientProvider/QueryChild.svelte diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts index 754e492fccd..151bc2bf921 100644 --- a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts +++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' -import ParentComponent from './ParentComponent.svelte' +import BaseExample from './BaseExample.svelte' describe('QueryClientProvider', () => { beforeEach(() => { @@ -16,7 +16,7 @@ describe('QueryClientProvider', () => { const queryClient = new QueryClient() const queryCache = queryClient.getQueryCache() - const rendered = render(ParentComponent, { + const rendered = render(BaseExample, { props: { queryClient: queryClient, }, diff --git a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte index 6c64621d86b..a2c7c1aef79 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte @@ -3,21 +3,20 @@ import { QueryClient } from '@tanstack/query-core' import { queryKey, sleep } from '@tanstack/query-test-utils' import { createInfiniteQuery } from '../../src/index.js' + import { setQueryClientContext } from '../../src/context.js' import type { QueryObserverResult } from '@tanstack/query-core' let { states }: { states: { value: Array } } = $props() const queryClient = new QueryClient() + setQueryClientContext(queryClient) - const query = createInfiniteQuery( - () => ({ - queryKey: queryKey(), - queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), - getNextPageParam: (lastPage) => lastPage + 1, - initialPageParam: 0, - }), - () => queryClient, - ) + const query = createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), + getNextPageParam: (lastPage) => lastPage + 1, + initialPageParam: 0, + })) $effect(() => { // @ts-expect-error diff --git a/packages/svelte-query/tests/createInfiniteQuery/ChangeClient.svelte b/packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte similarity index 62% rename from packages/svelte-query/tests/createInfiniteQuery/ChangeClient.svelte rename to packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte index 1993dca149e..41dfd6434c4 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/ChangeClient.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte @@ -1,6 +1,7 @@ - - +
isFetching: {isFetching.current}
+
Data: {query.data ?? 'undefined'}
diff --git a/packages/svelte-query/tests/useIsFetching/FetchStatus.svelte b/packages/svelte-query/tests/useIsFetching/FetchStatus.svelte deleted file mode 100644 index 5b10705709e..00000000000 --- a/packages/svelte-query/tests/useIsFetching/FetchStatus.svelte +++ /dev/null @@ -1,6 +0,0 @@ - - -
isFetching: {isFetching.current}
diff --git a/packages/svelte-query/tests/useIsFetching/Query.svelte b/packages/svelte-query/tests/useIsFetching/Query.svelte deleted file mode 100644 index 6dd05ba5250..00000000000 --- a/packages/svelte-query/tests/useIsFetching/Query.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - - - -
Data: {query.data ?? 'undefined'}
diff --git a/packages/svelte-query/tests/useIsMutating/BaseExample.svelte b/packages/svelte-query/tests/useIsMutating/BaseExample.svelte index e2e46622c7e..90cfe98f8e9 100644 --- a/packages/svelte-query/tests/useIsMutating/BaseExample.svelte +++ b/packages/svelte-query/tests/useIsMutating/BaseExample.svelte @@ -1,11 +1,20 @@ - - + - - +
isMutating: {isMutating.current}
diff --git a/packages/svelte-query/tests/useIsMutating/MutatingStatus.svelte b/packages/svelte-query/tests/useIsMutating/MutatingStatus.svelte deleted file mode 100644 index a747ed83261..00000000000 --- a/packages/svelte-query/tests/useIsMutating/MutatingStatus.svelte +++ /dev/null @@ -1,6 +0,0 @@ - - -
isMutating: {isMutating.current}
diff --git a/packages/svelte-query/tests/useIsMutating/Query.svelte b/packages/svelte-query/tests/useIsMutating/Query.svelte deleted file mode 100644 index 9ac53da16e3..00000000000 --- a/packages/svelte-query/tests/useIsMutating/Query.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - From 1881109db6ab36d3c87521994e92fc92993ac992 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 11 Apr 2026 15:16:54 +0900 Subject: [PATCH 087/414] test(svelte-query): extract 'queryClient' creation from Svelte components to test files (#10447) * test(svelte-query): extract 'queryClient' creation from Svelte components to test files * ci: apply automated fixes * test(svelte-query/createMutation): rename 'client1'/'client2' to 'queryClient1'/'queryClient2' for clarity --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../HydrationBoundary/BaseExample.svelte | 5 +++-- .../HydrationBoundary.svelte.test.ts | 12 +++++++---- .../QueryClientProvider.svelte.test.ts | 7 +++++-- .../createInfiniteQuery/BaseExample.svelte | 12 +++++++---- .../createInfiniteQuery/SelectExample.svelte | 12 +++++++---- .../createInfiniteQuery.svelte.test.ts | 8 ++++++-- .../createMutation/FailureExample.svelte | 10 ++++++---- .../createMutation/OnSuccessExample.svelte | 6 +++--- .../tests/createMutation/ResetExample.svelte | 5 +++-- .../createMutation.svelte.test.ts | 16 +++++++++++---- .../createQueries/IsRestoringExample.svelte | 5 +++-- .../createQueries.svelte.test.ts | 4 ++-- .../createQuery/IsRestoringExample.svelte | 5 +++-- .../createQuery/createQuery.svelte.test.ts | 2 +- .../tests/mutationOptions/BaseExample.svelte | 5 +++-- .../tests/mutationOptions/MultiExample.svelte | 5 +++-- .../mutationOptions.svelte.test.ts | 20 ++++++++++++++++--- .../tests/useIsFetching/BaseExample.svelte | 5 +++-- .../useIsFetching.svelte.test.ts | 9 ++++++++- .../tests/useIsMutating/BaseExample.svelte | 5 +++-- .../useIsMutating.svelte.test.ts | 9 ++++++++- .../tests/useMutationState/BaseExample.svelte | 5 +++-- .../useMutationState/SelectExample.svelte | 5 +++-- .../useMutationState.svelte.test.ts | 9 +++++++++ 24 files changed, 131 insertions(+), 55 deletions(-) diff --git a/packages/svelte-query/tests/HydrationBoundary/BaseExample.svelte b/packages/svelte-query/tests/HydrationBoundary/BaseExample.svelte index 59930aab542..67853f1b6ed 100644 --- a/packages/svelte-query/tests/HydrationBoundary/BaseExample.svelte +++ b/packages/svelte-query/tests/HydrationBoundary/BaseExample.svelte @@ -1,5 +1,5 @@ diff --git a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte index 0e3dde1ffb1..0c2992d2188 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte @@ -5,13 +5,12 @@ import { setQueryClientContext } from '../../src/context.js' import type { QueryClient, QueryObserverResult } from '@tanstack/query-core' - let { - queryClient, - states, - }: { + type Props = { queryClient: QueryClient states: { value: Array } - } = $props() + } + + let { queryClient, states }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte index 41dfd6434c4..b126dc11b77 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte @@ -4,7 +4,11 @@ import { setQueryClientContext } from '../../src/context.js' import { sleep } from '@tanstack/query-test-utils' - let { queryClient }: { queryClient: QueryClient } = $props() + type Props = { + queryClient: QueryClient + } + + let { queryClient }: Props = $props() const queryKey = ['test'] diff --git a/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte index e62238b6595..67ed277a5bd 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte @@ -5,13 +5,12 @@ import type { QueryClient, QueryObserverResult } from '@tanstack/query-core' import { queryKey, sleep } from '@tanstack/query-test-utils' - let { - queryClient, - states, - }: { + type Props = { queryClient: QueryClient states: { value: Array } - } = $props() + } + + let { queryClient, states }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/createMutation/FailureExample.svelte b/packages/svelte-query/tests/createMutation/FailureExample.svelte index 4de6bbefc31..4e4ee154f44 100644 --- a/packages/svelte-query/tests/createMutation/FailureExample.svelte +++ b/packages/svelte-query/tests/createMutation/FailureExample.svelte @@ -2,13 +2,12 @@ import type { QueryClient } from '@tanstack/query-core' import { createMutation, setQueryClientContext } from '../../src/index.js' - let { - queryClient, - mutationFn, - }: { + type Props = { queryClient: QueryClient mutationFn: (value: { count: number }) => Promise<{ count: number }> - } = $props() + } + + let { queryClient, mutationFn }: Props = $props() let count = $state(0) diff --git a/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte b/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte index b2b870a1138..20b38722390 100644 --- a/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte +++ b/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte @@ -5,8 +5,8 @@ type Props = { queryClient: QueryClient - onSuccessMock: any - onSettledMock: any + onSuccessMock: (data: number) => void + onSettledMock: (data: number | undefined) => void } const { queryClient, onSettledMock, onSuccessMock }: Props = $props() diff --git a/packages/svelte-query/tests/createMutation/ResetExample.svelte b/packages/svelte-query/tests/createMutation/ResetExample.svelte index 84fa09e2136..0faf9cd572a 100644 --- a/packages/svelte-query/tests/createMutation/ResetExample.svelte +++ b/packages/svelte-query/tests/createMutation/ResetExample.svelte @@ -3,7 +3,11 @@ import { createMutation, setQueryClientContext } from '../../src/index.js' import { sleep } from '@tanstack/query-test-utils' - let { queryClient }: { queryClient: QueryClient } = $props() + type Props = { + queryClient: QueryClient + } + + let { queryClient }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte index 0e41860e698..ad179a27da1 100644 --- a/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte +++ b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte @@ -7,15 +7,13 @@ } from '../../src/context.js' import { createQueries } from '../../src/index.js' - let { - queryClient, - queryFn1, - queryFn2, - }: { + type Props = { queryClient: QueryClient queryFn1: () => Promise queryFn2: () => Promise - } = $props() + } + + let { queryClient, queryFn1, queryFn2 }: Props = $props() setQueryClientContext(queryClient) setIsRestoringContext({ current: true }) diff --git a/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte b/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte index 5b268f56b8d..ffbde4806bc 100644 --- a/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte +++ b/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte @@ -7,13 +7,12 @@ } from '../../src/context.js' import { createQuery } from '../../src/index.js' - let { - queryClient, - queryFn, - }: { + type Props = { queryClient: QueryClient queryFn: () => Promise - } = $props() + } + + let { queryClient, queryFn }: Props = $props() setQueryClientContext(queryClient) setIsRestoringContext({ current: true }) diff --git a/packages/svelte-query/tests/mutationOptions/BaseExample.svelte b/packages/svelte-query/tests/mutationOptions/BaseExample.svelte index fd58a4e9b78..c1388abab0a 100644 --- a/packages/svelte-query/tests/mutationOptions/BaseExample.svelte +++ b/packages/svelte-query/tests/mutationOptions/BaseExample.svelte @@ -13,17 +13,19 @@ } from '../../src/index.js' import type { MutationFilters } from '@tanstack/query-core' + type Props = { + queryClient: QueryClient + mutationOpts: Accessor> + isMutatingFilters?: MutationFilters + mutationStateOpts?: MutationStateOptions + } + let { queryClient, mutationOpts, isMutatingFilters, mutationStateOpts, - }: { - queryClient: QueryClient - mutationOpts: Accessor> - isMutatingFilters?: MutationFilters - mutationStateOpts?: MutationStateOptions - } = $props() + }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/mutationOptions/MultiExample.svelte b/packages/svelte-query/tests/mutationOptions/MultiExample.svelte index a924dd4c24e..ee55f81403c 100644 --- a/packages/svelte-query/tests/mutationOptions/MultiExample.svelte +++ b/packages/svelte-query/tests/mutationOptions/MultiExample.svelte @@ -13,19 +13,21 @@ } from '../../src/index.js' import type { MutationFilters } from '@tanstack/query-core' + type Props = { + queryClient: QueryClient + mutationOpts1: Accessor> + mutationOpts2: Accessor> + isMutatingFilters?: MutationFilters + mutationStateOpts?: MutationStateOptions + } + let { queryClient, mutationOpts1, mutationOpts2, isMutatingFilters, mutationStateOpts, - }: { - queryClient: QueryClient - mutationOpts1: Accessor> - mutationOpts2: Accessor> - isMutatingFilters?: MutationFilters - mutationStateOpts?: MutationStateOptions - } = $props() + }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/useIsFetching/BaseExample.svelte b/packages/svelte-query/tests/useIsFetching/BaseExample.svelte index 6c18cd166bb..1feeace6a17 100644 --- a/packages/svelte-query/tests/useIsFetching/BaseExample.svelte +++ b/packages/svelte-query/tests/useIsFetching/BaseExample.svelte @@ -4,7 +4,11 @@ import { setQueryClientContext } from '../../src/context.js' import { createQuery, useIsFetching } from '../../src/index.js' - let { queryClient }: { queryClient: QueryClient } = $props() + type Props = { + queryClient: QueryClient + } + + let { queryClient }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/useIsMutating/BaseExample.svelte b/packages/svelte-query/tests/useIsMutating/BaseExample.svelte index 8e02cf94569..37577820744 100644 --- a/packages/svelte-query/tests/useIsMutating/BaseExample.svelte +++ b/packages/svelte-query/tests/useIsMutating/BaseExample.svelte @@ -4,7 +4,11 @@ import { setQueryClientContext } from '../../src/context.js' import { createMutation, useIsMutating } from '../../src/index.js' - let { queryClient }: { queryClient: QueryClient } = $props() + type Props = { + queryClient: QueryClient + } + + let { queryClient }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/useMutationState/BaseExample.svelte b/packages/svelte-query/tests/useMutationState/BaseExample.svelte index 105eced302c..b6b6b935732 100644 --- a/packages/svelte-query/tests/useMutationState/BaseExample.svelte +++ b/packages/svelte-query/tests/useMutationState/BaseExample.svelte @@ -11,17 +11,19 @@ MutationStateOptions, } from '../../src/index.js' + type Props = { + queryClient: QueryClient + successMutationOpts: Accessor> + errorMutationOpts: Accessor> + mutationStateOpts?: MutationStateOptions + } + let { queryClient, successMutationOpts, errorMutationOpts, mutationStateOpts, - }: { - queryClient: QueryClient - successMutationOpts: Accessor - errorMutationOpts: Accessor - mutationStateOpts?: MutationStateOptions | undefined - } = $props() + }: Props = $props() setQueryClientContext(queryClient) diff --git a/packages/svelte-query/tests/useMutationState/SelectExample.svelte b/packages/svelte-query/tests/useMutationState/SelectExample.svelte index e96afb1b005..80c00a05652 100644 --- a/packages/svelte-query/tests/useMutationState/SelectExample.svelte +++ b/packages/svelte-query/tests/useMutationState/SelectExample.svelte @@ -11,15 +11,13 @@ MutationStateOptions, } from '../../src/index.js' - let { - queryClient, - mutationOpts, - mutationStateOpts, - }: { + type Props = { queryClient: QueryClient - mutationOpts: Accessor - mutationStateOpts: MutationStateOptions - } = $props() + mutationOpts: Accessor> + mutationStateOpts: MutationStateOptions + } + + let { queryClient, mutationOpts, mutationStateOpts }: Props = $props() setQueryClientContext(queryClient) From 3d95119ee75581f78833e9d2393bed33d59ad69d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 11 Apr 2026 17:23:26 +0900 Subject: [PATCH 089/414] test(svelte-query/createInfiniteQuery): remove unused 'svelte-ignore state_snapshot_uncloneable' comments (#10449) --- .../svelte-query/tests/createInfiniteQuery/BaseExample.svelte | 1 - .../svelte-query/tests/createInfiniteQuery/SelectExample.svelte | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte index 0c2992d2188..0d521f8af5e 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte @@ -23,7 +23,6 @@ $effect(() => { // @ts-expect-error - // svelte-ignore state_snapshot_uncloneable states.value = [...untrack(() => states.value), $state.snapshot(query)] }) diff --git a/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte index 67ed277a5bd..d2069bd414c 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte @@ -27,7 +27,6 @@ $effect(() => { // @ts-expect-error - // svelte-ignore state_snapshot_uncloneable states.value = [...untrack(() => states.value), $state.snapshot(query)] }) From 3f56a861b01486489653e8da4d10918139b70776 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 11 Apr 2026 17:51:44 +0900 Subject: [PATCH 090/414] test(svelte-query): add 'assertType' and 'expectTypeOf' to type tests with no assertions (#10450) * test(svelte-query): add 'assertType' to type tests with no assertions * test(svelte-query): replace 'assertType' with 'expectTypeOf' for 'initialData' type validation --- .../tests/infiniteQueryOptions.test-d.ts | 20 ++++++++------- .../svelte-query/tests/queryOptions.test-d.ts | 25 ++++++++++++------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts index 38bd9fc6706..edd0eab1265 100644 --- a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts +++ b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, test } from 'vitest' +import { assertType, describe, expectTypeOf, test } from 'vitest' import { QueryClient } from '@tanstack/query-core' import { queryKey } from '@tanstack/query-test-utils' import { createInfiniteQuery, infiniteQueryOptions } from '../src/index.js' @@ -7,14 +7,16 @@ import type { InfiniteData } from '@tanstack/query-core' describe('infiniteQueryOptions', () => { test('Should not allow excess properties', () => { const key = queryKey() - infiniteQueryOptions({ - queryKey: key, - queryFn: () => Promise.resolve('data'), - getNextPageParam: () => 1, - initialPageParam: 1, - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + assertType( + infiniteQueryOptions({ + queryKey: key, + queryFn: () => Promise.resolve('data'), + getNextPageParam: () => 1, + initialPageParam: 1, + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) }) test('Should infer types for callbacks', () => { diff --git a/packages/svelte-query/tests/queryOptions.test-d.ts b/packages/svelte-query/tests/queryOptions.test-d.ts index 968d05409ad..ab796a22dd8 100644 --- a/packages/svelte-query/tests/queryOptions.test-d.ts +++ b/packages/svelte-query/tests/queryOptions.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, test } from 'vitest' +import { assertType, describe, expectTypeOf, test } from 'vitest' import { QueriesObserver, QueryClient, @@ -12,12 +12,14 @@ import type { QueryObserverResult } from '@tanstack/query-core' describe('queryOptions', () => { test('Should not allow excess properties', () => { const key = queryKey() - queryOptions({ - queryKey: key, - queryFn: () => Promise.resolve(5), - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + assertType( + queryOptions({ + queryKey: key, + queryFn: () => Promise.resolve(5), + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) }) test('Should infer types for callbacks', () => { @@ -193,9 +195,10 @@ describe('queryOptions', () => { }) test('Should allow undefined response in initialData', () => { - return (id: string | null) => + const key = queryKey() + const options = (id: string | null) => queryOptions({ - queryKey: ['todo', id], + queryKey: [...key, id], queryFn: () => Promise.resolve({ id: '1', @@ -209,5 +212,9 @@ describe('queryOptions', () => { title: 'Initial Data', }, }) + + expectTypeOf(options(null).initialData).returns.toEqualTypeOf< + { id: string; title: string } | undefined + >() }) }) From 0c2bf1ebe0a2a17997b692618d48a6e9c051c643 Mon Sep 17 00:00:00 2001 From: semimikoh <123785695+semimikoh@users.noreply.github.com> Date: Sat, 11 Apr 2026 21:52:22 +0900 Subject: [PATCH 091/414] fix(vue-query-devtools): only register cleanup after mount (#10439) * fix(vue-query-devtools): only register cleanup after mount * chore(changeset): add vue-query-devtools patch release note --- .changeset/khaki-coats-divide.md | 5 +++++ packages/vue-query-devtools/src/devtools.vue | 7 +++---- packages/vue-query-devtools/src/devtoolsPanel.vue | 7 +++---- 3 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 .changeset/khaki-coats-divide.md diff --git a/.changeset/khaki-coats-divide.md b/.changeset/khaki-coats-divide.md new file mode 100644 index 00000000000..015a5e3c076 --- /dev/null +++ b/.changeset/khaki-coats-divide.md @@ -0,0 +1,5 @@ +--- +'@tanstack/vue-query-devtools': patch +--- + +Fix Vue SSR devtools cleanup by only registering `unmount()` after `mount()` has run. diff --git a/packages/vue-query-devtools/src/devtools.vue b/packages/vue-query-devtools/src/devtools.vue index d4e5482f9a6..5a160482819 100644 --- a/packages/vue-query-devtools/src/devtools.vue +++ b/packages/vue-query-devtools/src/devtools.vue @@ -33,10 +33,9 @@ watchEffect(() => { onMounted(() => { devtools.mount(div.value as HTMLElement) -}) - -onScopeDispose(() => { - devtools.unmount() + onScopeDispose(() => { + devtools.unmount() + }) }) diff --git a/packages/vue-query-devtools/src/devtoolsPanel.vue b/packages/vue-query-devtools/src/devtoolsPanel.vue index 21aaa90c033..605a632240c 100644 --- a/packages/vue-query-devtools/src/devtoolsPanel.vue +++ b/packages/vue-query-devtools/src/devtoolsPanel.vue @@ -38,10 +38,9 @@ watchEffect(() => { onMounted(() => { devtools.mount(div.value as HTMLElement) -}) - -onScopeDispose(() => { - devtools.unmount() + onScopeDispose(() => { + devtools.unmount() + }) }) From b97513f2888ed1310a5b39bf91d559c5bc6b83e0 Mon Sep 17 00:00:00 2001 From: thalassophilia <61978339+thalassophilia@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:27:47 +0900 Subject: [PATCH 092/414] feat(vue-query): add usePrefetchQuery and usePrefetchInfiniteQuery (#10372) * feat(vue-query): add prefetch composables - Add usePrefetchQuery and usePrefetchInfiniteQuery to vue-query. - Includes runtime and type tests, plus a changeset * docs(vue-query): document prefetch composables * revert unrelated change * ci: apply automated fixes --------- Co-authored-by: Damian Osipiuk Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/puny-poems-tell.md | 5 + docs/config.json | 8 + .../vue/reference/usePrefetchInfiniteQuery.md | 6 + .../vue/reference/usePrefetchQuery.md | 6 + .../usePrefetchInfiniteQuery.test-d.ts | 96 +++++++++++ .../usePrefetchInfiniteQuery.test.ts | 157 ++++++++++++++++++ .../src/__tests__/usePrefetchQuery.test-d.ts | 72 ++++++++ .../src/__tests__/usePrefetchQuery.test.ts | 122 ++++++++++++++ packages/vue-query/src/index.ts | 4 + .../vue-query/src/usePrefetchInfiniteQuery.ts | 113 +++++++++++++ packages/vue-query/src/usePrefetchQuery.ts | 69 ++++++++ 11 files changed, 658 insertions(+) create mode 100644 .changeset/puny-poems-tell.md create mode 100644 docs/framework/vue/reference/usePrefetchInfiniteQuery.md create mode 100644 docs/framework/vue/reference/usePrefetchQuery.md create mode 100644 packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts create mode 100644 packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts create mode 100644 packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts create mode 100644 packages/vue-query/src/__tests__/usePrefetchQuery.test.ts create mode 100644 packages/vue-query/src/usePrefetchInfiniteQuery.ts create mode 100644 packages/vue-query/src/usePrefetchQuery.ts diff --git a/.changeset/puny-poems-tell.md b/.changeset/puny-poems-tell.md new file mode 100644 index 00000000000..a677e7d5a64 --- /dev/null +++ b/.changeset/puny-poems-tell.md @@ -0,0 +1,5 @@ +--- +'@tanstack/vue-query': minor +--- + +Add usePrefetchQuery and usePrefetchInfiniteQuery to vue-query. diff --git a/docs/config.json b/docs/config.json index 620a98618d6..19157d0cf87 100644 --- a/docs/config.json +++ b/docs/config.json @@ -1067,6 +1067,14 @@ "label": "infiniteQueryOptions", "to": "framework/vue/reference/infiniteQueryOptions" }, + { + "label": "usePrefetchQuery", + "to": "framework/vue/reference/usePrefetchQuery" + }, + { + "label": "usePrefetchInfiniteQuery", + "to": "framework/vue/reference/usePrefetchInfiniteQuery" + }, { "label": "hydration", "to": "framework/vue/reference/hydration" diff --git a/docs/framework/vue/reference/usePrefetchInfiniteQuery.md b/docs/framework/vue/reference/usePrefetchInfiniteQuery.md new file mode 100644 index 00000000000..c7af728d36d --- /dev/null +++ b/docs/framework/vue/reference/usePrefetchInfiniteQuery.md @@ -0,0 +1,6 @@ +--- +id: usePrefetchInfiniteQuery +title: usePrefetchInfiniteQuery +ref: docs/framework/react/reference/usePrefetchInfiniteQuery.md +replace: { '@tanstack/react-query': '@tanstack/vue-query' } +--- diff --git a/docs/framework/vue/reference/usePrefetchQuery.md b/docs/framework/vue/reference/usePrefetchQuery.md new file mode 100644 index 00000000000..e518a62ef84 --- /dev/null +++ b/docs/framework/vue/reference/usePrefetchQuery.md @@ -0,0 +1,6 @@ +--- +id: usePrefetchQuery +title: usePrefetchQuery +ref: docs/framework/react/reference/usePrefetchQuery.md +replace: { '@tanstack/react-query': '@tanstack/vue-query' } +--- diff --git a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts new file mode 100644 index 00000000000..99dbb8db4ae --- /dev/null +++ b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts @@ -0,0 +1,96 @@ +import { assertType, describe, expectTypeOf, it } from 'vitest' +import { ref } from 'vue-demi' +import { skipToken } from '@tanstack/query-core' +import { usePrefetchInfiniteQuery } from '..' + +describe('usePrefetchInfiniteQuery', () => { + it('should return nothing', () => { + const result = usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + }) + + expectTypeOf(result).toEqualTypeOf() + }) + + it('should require initialPageParam and getNextPageParam', () => { + assertType( + // @ts-expect-error TS2345 + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + }), + ) + }) + + it('should not allow refetchInterval, enabled or throwOnError options', () => { + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2353 + refetchInterval: 1000, + }), + ) + + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2353 + enabled: true, + }), + ) + + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2353 + throwOnError: true, + }), + ) + }) + + it('should accept refs in infinite query options', () => { + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key', ref('id')], + queryFn: () => Promise.resolve(5), + initialPageParam: ref(1), + getNextPageParam: () => 1, + staleTime: ref(1000), + }), + ) + }) + + it('should not allow skipToken in queryFn', () => { + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error + queryFn: skipToken, + }), + ) + + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }), + ) + }) +}) diff --git a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts new file mode 100644 index 00000000000..63a4486f39a --- /dev/null +++ b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts @@ -0,0 +1,157 @@ +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { nextTick, ref } from 'vue-demi' +import { QueryClient } from '../queryClient' +import { usePrefetchInfiniteQuery } from '../usePrefetchInfiniteQuery' + +describe('usePrefetchInfiniteQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + + test('should prefetch infinite query if query state does not exist', () => { + const queryClient = new QueryClient() + const prefetchInfiniteQuerySpy = vi.spyOn( + queryClient, + 'prefetchInfiniteQuery', + ) + const queryFn = vi.fn(() => + Promise.resolve({ data: 'prefetched', currentPage: 1 }), + ) + + usePrefetchInfiniteQuery( + { + queryKey: ['prefetch-infinite-query'], + queryFn, + initialPageParam: 1, + getNextPageParam: () => undefined, + }, + queryClient, + ) + + expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(1) + expect(prefetchInfiniteQuerySpy).toHaveBeenCalledWith({ + queryKey: ['prefetch-infinite-query'], + queryFn, + initialPageParam: 1, + getNextPageParam: expect.any(Function), + }) + }) + + test('should not prefetch infinite query if query state exists', () => { + const queryClient = new QueryClient() + const prefetchInfiniteQuerySpy = vi.spyOn( + queryClient, + 'prefetchInfiniteQuery', + ) + const queryFn = vi.fn(() => + Promise.resolve({ data: 'prefetched', currentPage: 1 }), + ) + + queryClient.setQueryData(['prefetch-infinite-query-existing'], { + pages: [{ data: 'existing', currentPage: 1 }], + pageParams: [1], + }) + + usePrefetchInfiniteQuery( + { + queryKey: ['prefetch-infinite-query-existing'], + queryFn, + initialPageParam: 1, + getNextPageParam: () => undefined, + }, + queryClient, + ) + + expect(prefetchInfiniteQuerySpy).not.toHaveBeenCalled() + }) + + test('should unwrap refs in infinite query options', () => { + const queryClient = new QueryClient() + const prefetchInfiniteQuerySpy = vi.spyOn( + queryClient, + 'prefetchInfiniteQuery', + ) + const nestedRef = ref('value') + + usePrefetchInfiniteQuery( + { + queryKey: ['prefetch-infinite-query-ref', nestedRef], + queryFn: () => Promise.resolve({ data: 'prefetched', currentPage: 1 }), + initialPageParam: 1, + getNextPageParam: () => undefined, + }, + queryClient, + ) + + expect(prefetchInfiniteQuerySpy).toHaveBeenCalledWith( + expect.objectContaining({ + queryKey: ['prefetch-infinite-query-ref', 'value'], + }), + ) + }) + + test('should prefetch infinite query again when query key changes reactively', async () => { + const queryClient = new QueryClient() + const prefetchInfiniteQuerySpy = vi.spyOn( + queryClient, + 'prefetchInfiniteQuery', + ) + const keyRef = ref('first') + + usePrefetchInfiniteQuery( + () => ({ + queryKey: ['prefetch-infinite-query-reactive', keyRef.value], + queryFn: () => Promise.resolve({ data: keyRef.value, currentPage: 1 }), + initialPageParam: 1, + getNextPageParam: () => undefined, + }), + queryClient, + ) + + expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(1) + expect(prefetchInfiniteQuerySpy).toHaveBeenLastCalledWith( + expect.objectContaining({ + queryKey: ['prefetch-infinite-query-reactive', 'first'], + }), + ) + + keyRef.value = 'second' + await nextTick() + + expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(2) + expect(prefetchInfiniteQuerySpy).toHaveBeenLastCalledWith( + expect.objectContaining({ + queryKey: ['prefetch-infinite-query-reactive', 'second'], + }), + ) + }) + + test('should warn when used outside of setup function in development mode', () => { + vi.stubEnv('NODE_ENV', 'development') + const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) + + try { + usePrefetchInfiniteQuery( + { + queryKey: ['outside-scope-prefetch-infinite-query'], + queryFn: () => + Promise.resolve({ data: 'prefetched', currentPage: 1 }), + initialPageParam: 1, + getNextPageParam: () => undefined, + }, + new QueryClient(), + ) + + expect(warnSpy).toHaveBeenCalledWith( + 'vue-query composable like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.', + ) + } finally { + warnSpy.mockRestore() + vi.unstubAllEnvs() + } + }) +}) diff --git a/packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts b/packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts new file mode 100644 index 00000000000..fd2f4cda1eb --- /dev/null +++ b/packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts @@ -0,0 +1,72 @@ +import { assertType, describe, expectTypeOf, it } from 'vitest' +import { ref } from 'vue-demi' +import { skipToken } from '@tanstack/query-core' +import { usePrefetchQuery } from '..' + +describe('usePrefetchQuery', () => { + it('should return nothing', () => { + const result = usePrefetchQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + }) + + expectTypeOf(result).toEqualTypeOf() + }) + + it('should not allow refetchInterval, enabled or throwOnError options', () => { + assertType( + usePrefetchQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2353 + refetchInterval: 1000, + }), + ) + + assertType( + usePrefetchQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2353 + enabled: true, + }), + ) + + assertType( + usePrefetchQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2353 + throwOnError: true, + }), + ) + }) + + it('should accept refs in query options', () => { + assertType( + usePrefetchQuery({ + queryKey: ['key', ref('id')], + queryFn: () => Promise.resolve(5), + staleTime: ref(1000), + }), + ) + }) + + it('should not allow skipToken in queryFn', () => { + assertType( + usePrefetchQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: skipToken, + }), + ) + + assertType( + usePrefetchQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }), + ) + }) +}) diff --git a/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts new file mode 100644 index 00000000000..996d853ef64 --- /dev/null +++ b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts @@ -0,0 +1,122 @@ +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { nextTick, ref } from 'vue-demi' +import { QueryClient } from '../queryClient' +import { usePrefetchQuery } from '../usePrefetchQuery' + +describe('usePrefetchQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + + test('should prefetch query if query state does not exist', () => { + const queryClient = new QueryClient() + const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') + const queryFn = vi.fn(() => Promise.resolve('prefetched')) + + usePrefetchQuery( + { + queryKey: ['prefetch-query'], + queryFn, + }, + queryClient, + ) + + expect(prefetchQuerySpy).toHaveBeenCalledTimes(1) + expect(prefetchQuerySpy).toHaveBeenCalledWith({ + queryKey: ['prefetch-query'], + queryFn, + }) + }) + + test('should not prefetch query if query state exists', () => { + const queryClient = new QueryClient() + const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') + const queryFn = vi.fn(() => Promise.resolve('prefetched')) + queryClient.setQueryData(['prefetch-query-existing'], 'existing') + + usePrefetchQuery( + { + queryKey: ['prefetch-query-existing'], + queryFn, + }, + queryClient, + ) + + expect(prefetchQuerySpy).not.toHaveBeenCalled() + }) + + test('should unwrap refs in query options', () => { + const queryClient = new QueryClient() + const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') + const nestedRef = ref('value') + + usePrefetchQuery( + { + queryKey: ['prefetch-query-ref', nestedRef], + queryFn: () => Promise.resolve('prefetched'), + }, + queryClient, + ) + + expect(prefetchQuerySpy).toHaveBeenCalledWith( + expect.objectContaining({ + queryKey: ['prefetch-query-ref', 'value'], + }), + ) + }) + + test('should prefetch again when query key changes reactively', async () => { + const queryClient = new QueryClient() + const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') + const keyRef = ref('first') + + usePrefetchQuery( + () => ({ + queryKey: ['prefetch-query-reactive', keyRef.value], + queryFn: () => Promise.resolve(keyRef.value), + }), + queryClient, + ) + + expect(prefetchQuerySpy).toHaveBeenCalledTimes(1) + expect(prefetchQuerySpy).toHaveBeenLastCalledWith({ + queryKey: ['prefetch-query-reactive', 'first'], + queryFn: expect.any(Function), + }) + + keyRef.value = 'second' + await nextTick() + + expect(prefetchQuerySpy).toHaveBeenCalledTimes(2) + expect(prefetchQuerySpy).toHaveBeenLastCalledWith({ + queryKey: ['prefetch-query-reactive', 'second'], + queryFn: expect.any(Function), + }) + }) + + test('should warn when used outside of setup function in development mode', () => { + vi.stubEnv('NODE_ENV', 'development') + const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) + + try { + usePrefetchQuery( + { + queryKey: ['outside-scope-prefetch-query'], + queryFn: () => Promise.resolve('prefetched'), + }, + new QueryClient(), + ) + + expect(warnSpy).toHaveBeenCalledWith( + 'vue-query composable like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.', + ) + } finally { + warnSpy.mockRestore() + vi.unstubAllEnvs() + } + }) +}) diff --git a/packages/vue-query/src/index.ts b/packages/vue-query/src/index.ts index 5ea6e26f836..61eb3c4452e 100644 --- a/packages/vue-query/src/index.ts +++ b/packages/vue-query/src/index.ts @@ -15,11 +15,15 @@ export { MutationCache } from './mutationCache' export { useQuery } from './useQuery' export { useQueries } from './useQueries' export { useInfiniteQuery } from './useInfiniteQuery' +export { usePrefetchQuery } from './usePrefetchQuery' +export { usePrefetchInfiniteQuery } from './usePrefetchInfiniteQuery' export { useMutation } from './useMutation' export { useIsFetching } from './useIsFetching' export { useIsMutating, useMutationState } from './useMutationState' export { VUE_QUERY_CLIENT } from './utils' +export type { UsePrefetchQueryOptions } from './usePrefetchQuery' +export type { UsePrefetchInfiniteQueryOptions } from './usePrefetchInfiniteQuery' export type { UseQueryOptions, UseQueryReturnType, diff --git a/packages/vue-query/src/usePrefetchInfiniteQuery.ts b/packages/vue-query/src/usePrefetchInfiniteQuery.ts new file mode 100644 index 00000000000..ff6ff23c0aa --- /dev/null +++ b/packages/vue-query/src/usePrefetchInfiniteQuery.ts @@ -0,0 +1,113 @@ +import { getCurrentScope, unref, watchEffect } from 'vue-demi' +import { useQueryClient } from './useQueryClient' +import { cloneDeepUnref } from './utils' +import type { + DefaultError, + FetchInfiniteQueryOptions, + FetchQueryOptions, + GetNextPageParamFunction, + InfiniteData, + InitialPageParam, + OmitKeyof, + QueryKey, + SkipToken, +} from '@tanstack/query-core' +import type { QueryClient } from './queryClient' +import type { MaybeRefDeep, MaybeRefOrGetter } from './types' + +type PrefetchInfinitePages = + | { + pages?: never + getNextPageParam?: GetNextPageParamFunction + } + | { + pages: number + getNextPageParam: GetNextPageParamFunction + } + +export type UsePrefetchInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey extends QueryKey, + TPageParam, +> = OmitKeyof< + FetchQueryOptions< + TQueryFnData, + TError, + InfiniteData, + TQueryKey, + TPageParam + >, + 'queryFn' | 'initialPageParam' +> & + InitialPageParam & { + queryFn?: Exclude< + FetchQueryOptions< + TQueryFnData, + TError, + InfiniteData, + TQueryKey, + TPageParam + >['queryFn'], + SkipToken + > + } & PrefetchInfinitePages + +function isGetter(value: MaybeRefOrGetter): value is () => T { + return typeof value === 'function' +} + +export function usePrefetchInfiniteQuery< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = unknown, +>( + options: MaybeRefOrGetter< + MaybeRefDeep< + UsePrefetchInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > + > + >, + queryClient?: QueryClient, +): void { + if (process.env.NODE_ENV === 'development') { + if (!getCurrentScope()) { + console.warn( + 'vue-query composable like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.', + ) + } + } + + const client = queryClient || useQueryClient() + + watchEffect(() => { + const resolvedOptions = isGetter(options) ? options() : unref(options) + const clonedOptions: UsePrefetchInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > = cloneDeepUnref(resolvedOptions) + + if (!client.getQueryState(clonedOptions.queryKey)) { + void client.prefetchInfiniteQuery( + clonedOptions as FetchInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + >, + ) + } + }) +} diff --git a/packages/vue-query/src/usePrefetchQuery.ts b/packages/vue-query/src/usePrefetchQuery.ts new file mode 100644 index 00000000000..85f239c54b4 --- /dev/null +++ b/packages/vue-query/src/usePrefetchQuery.ts @@ -0,0 +1,69 @@ +import { getCurrentScope, unref, watchEffect } from 'vue-demi' +import { useQueryClient } from './useQueryClient' +import { cloneDeepUnref } from './utils' +import type { + DefaultError, + FetchQueryOptions, + OmitKeyof, + QueryKey, + SkipToken, +} from '@tanstack/query-core' +import type { QueryClient } from './queryClient' +import type { MaybeRefDeep, MaybeRefOrGetter } from './types' + +export type UsePrefetchQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey extends QueryKey, +> = OmitKeyof< + FetchQueryOptions, + 'queryFn' +> & { + queryFn?: Exclude< + FetchQueryOptions['queryFn'], + SkipToken + > +} + +function isGetter(value: MaybeRefOrGetter): value is () => T { + return typeof value === 'function' +} + +export function usePrefetchQuery< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: MaybeRefOrGetter< + MaybeRefDeep< + UsePrefetchQueryOptions + > + >, + queryClient?: QueryClient, +): void { + if (process.env.NODE_ENV === 'development') { + if (!getCurrentScope()) { + console.warn( + 'vue-query composable like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.', + ) + } + } + + const client = queryClient || useQueryClient() + + watchEffect(() => { + const resolvedOptions = isGetter(options) ? options() : unref(options) + const clonedOptions: UsePrefetchQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey + > = cloneDeepUnref(resolvedOptions) + + if (!client.getQueryState(clonedOptions.queryKey)) { + void client.prefetchQuery(clonedOptions) + } + }) +} From 29e80d9f79d7b71ac89f2c37ee254a5f718abac7 Mon Sep 17 00:00:00 2001 From: Damian Osipiuk Date: Sat, 11 Apr 2026 18:01:35 +0200 Subject: [PATCH 093/414] fix(vue-query): fix type of queryOptions to allow plain properies or getters (#10452) --- .changeset/three-pillows-enter.md | 5 + .../src/__tests__/queryOptions.test-d.ts | 35 ++++++- .../src/__tests__/queryOptions.test.ts | 7 +- .../src/__tests__/useQueries.test-d.ts | 23 +++++ packages/vue-query/src/index.ts | 1 + packages/vue-query/src/queryClient.ts | 32 ++++-- packages/vue-query/src/queryOptions.ts | 97 ++++++++++++++++++- packages/vue-query/src/types.ts | 2 + packages/vue-query/src/utils.ts | 4 + 9 files changed, 186 insertions(+), 20 deletions(-) create mode 100644 .changeset/three-pillows-enter.md diff --git a/.changeset/three-pillows-enter.md b/.changeset/three-pillows-enter.md new file mode 100644 index 00000000000..cdf3e693d80 --- /dev/null +++ b/.changeset/three-pillows-enter.md @@ -0,0 +1,5 @@ +--- +'@tanstack/vue-query': patch +--- + +fix(vue-query): fix type of queryOptions to allow plain properies or getters diff --git a/packages/vue-query/src/__tests__/queryOptions.test-d.ts b/packages/vue-query/src/__tests__/queryOptions.test-d.ts index 3c98c30296b..d7509080eba 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test-d.ts @@ -11,9 +11,9 @@ describe('queryOptions', () => { const key = queryKey() assertType( queryOptions({ + // @ts-expect-error this is a good error, because stallTime does not exist! queryKey: key, queryFn: () => Promise.resolve(5), - // @ts-expect-error this is a good error, because stallTime does not exist! stallTime: 1000, }), ) @@ -119,11 +119,13 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - it('should allow to be passed to QueryClient methods while containing ref in queryKey', () => { - const options = queryOptions({ - queryKey: ['key', ref(1), { nested: ref(2) }], + it('should allow to be passed to QueryClient methods while containing getter', () => { + const ref1 = ref(1) + const ref2 = ref(2) + const options = queryOptions(() => ({ + queryKey: ['key', ref1.value, { nested: ref2.value }], queryFn: () => Promise.resolve(5), - }) + })) const queryClient = new QueryClient() @@ -228,4 +230,27 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) + + it('should allow accessing queryFn and other properties on the returned options object', () => { + const options = queryOptions({ + queryKey: ['groups'], + queryFn: () => Promise.resolve([]), + }) + + expectTypeOf(options.queryFn).not.toBeUndefined() + expectTypeOf(options.queryKey).not.toBeUndefined() + expectTypeOf(options.staleTime).not.toBeUndefined() + }) + + it('should allow accessing queryFn and other properties on the returned options when used with getter', () => { + const options = queryOptions(() => ({ + queryKey: ['groups'], + queryFn: () => Promise.resolve([]), + })) + + const resolvedGetter = options() + + expectTypeOf(resolvedGetter.queryFn).not.toBeUndefined() + expectTypeOf(resolvedGetter.queryKey).not.toBeUndefined() + }) }) diff --git a/packages/vue-query/src/__tests__/queryOptions.test.ts b/packages/vue-query/src/__tests__/queryOptions.test.ts index 93be949ebce..4f5eb2963c1 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test.ts @@ -1,14 +1,15 @@ import { describe, expect, it } from 'vitest' import { queryOptions } from '../queryOptions' -import type { UseQueryOptions } from '../useQuery' +import type { QueryOptions } from '../queryOptions' describe('queryOptions', () => { it('should return the object received as a parameter without any modification.', () => { - const object: UseQueryOptions = { + const object: QueryOptions = { queryKey: ['key'], queryFn: () => Promise.resolve(5), } as const - expect(queryOptions(object)).toBe(object) + const options = queryOptions(object) + expect(options).toBe(object) }) }) diff --git a/packages/vue-query/src/__tests__/useQueries.test-d.ts b/packages/vue-query/src/__tests__/useQueries.test-d.ts index 7e6783d422f..09feb97e371 100644 --- a/packages/vue-query/src/__tests__/useQueries.test-d.ts +++ b/packages/vue-query/src/__tests__/useQueries.test-d.ts @@ -263,4 +263,27 @@ describe('UseQueries config object overload', () => { number | boolean | undefined >() }) + + it('should infer correct data type from queryOptions without initialData in useQueries', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + }) + + const { value: queriesState } = useQueries({ queries: [options] }) + + expectTypeOf(queriesState[0].data).toEqualTypeOf() + }) + + it('should infer correct data type from queryOptions with select in useQueries', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + select: (data) => data.toString(), + }) + + const { value: queriesState } = useQueries({ queries: [options] }) + + expectTypeOf(queriesState[0].data).toEqualTypeOf() + }) }) diff --git a/packages/vue-query/src/index.ts b/packages/vue-query/src/index.ts index 61eb3c4452e..5fc85eadd34 100644 --- a/packages/vue-query/src/index.ts +++ b/packages/vue-query/src/index.ts @@ -6,6 +6,7 @@ export { VueQueryPlugin } from './vueQueryPlugin' export { QueryClient } from './queryClient' export { QueryCache } from './queryCache' export { queryOptions } from './queryOptions' +export { type QueryOptions } from './queryOptions' export { infiniteQueryOptions } from './infiniteQueryOptions' export type { DefinedInitialDataInfiniteOptions, diff --git a/packages/vue-query/src/queryClient.ts b/packages/vue-query/src/queryClient.ts index 7f9a0894bfe..2568d83f26a 100644 --- a/packages/vue-query/src/queryClient.ts +++ b/packages/vue-query/src/queryClient.ts @@ -202,15 +202,23 @@ export class QueryClient extends QC { TInferredQueryFnData = InferDataFromTag, TInferredError = InferErrorFromTag, >( - filters?: InvalidateQueryFilters, + filters?: + | InvalidateQueryFilters + | (() => InvalidateQueryFilters), options?: MaybeRefDeep, ): Promise invalidateQueries( - filters: MaybeRefDeep> = {}, - options: MaybeRefDeep = {}, + filters: + | MaybeRefDeep> + | (() => InvalidateQueryFilters) = {}, + options: MaybeRefDeep | (() => InvalidateOptions) = {}, ): Promise { - const filtersCloned = cloneDeepUnref(filters) - const optionsCloned = cloneDeepUnref(options) + const filtersCloned = cloneDeepUnref( + filters as MaybeRefDeep>, + ) + const optionsCloned = cloneDeepUnref( + options as MaybeRefDeep, + ) super.invalidateQueries( { ...filtersCloned, refetchType: 'none' }, @@ -275,9 +283,17 @@ export class QueryClient extends QC { TQueryKey extends QueryKey = QueryKey, TPageParam = never, >( - options: MaybeRefDeep< - FetchQueryOptions - >, + options: + | MaybeRefDeep< + FetchQueryOptions + > + | (() => FetchQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + >), ): Promise fetchQuery< TQueryFnData, diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index 4681080f8ca..38132b85bab 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -1,8 +1,60 @@ -import type { DataTag, DefaultError, QueryKey } from '@tanstack/query-core' +import type { DeepUnwrapRef, ShallowOption } from './types' import type { - DefinedInitialQueryOptions, - UndefinedInitialQueryOptions, -} from './useQuery' + DataTag, + DefaultError, + Enabled, + InitialDataFunction, + NonUndefinedGuard, + QueryKey, + QueryObserverOptions, +} from '@tanstack/query-core' + +export type QueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = { + [Property in keyof QueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey + >]: Property extends 'enabled' + ? () => Enabled> + : QueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + DeepUnwrapRef + >[Property] +} & ShallowOption + +export type UndefinedInitialQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = QueryOptions & { + initialData?: + | undefined + | InitialDataFunction> + | NonUndefinedGuard +} + +export type DefinedInitialQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = QueryOptions & { + initialData: + | NonUndefinedGuard + | (() => NonUndefinedGuard) +} export function queryOptions< TQueryFnData = unknown, @@ -15,6 +67,22 @@ export function queryOptions< queryKey: DataTag } +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: () => DefinedInitialQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey + >, +): () => DefinedInitialQueryOptions & { + queryKey: DataTag +} + export function queryOptions< TQueryFnData = unknown, TError = DefaultError, @@ -26,6 +94,27 @@ export function queryOptions< queryKey: DataTag } +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: () => UndefinedInitialQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey + >, +): () => UndefinedInitialQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey +> & { + queryKey: DataTag +} + export function queryOptions(options: unknown) { return options } diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts index eb793c811eb..979a966a2be 100644 --- a/packages/vue-query/src/types.ts +++ b/packages/vue-query/src/types.ts @@ -22,6 +22,8 @@ type UnwrapLeaf = | Set | WeakSet +export type MaybeGetter = T | (() => T) + export type MaybeRef = Ref | ComputedRef | T export type MaybeRefOrGetter = MaybeRef | (() => T) diff --git a/packages/vue-query/src/utils.ts b/packages/vue-query/src/utils.ts index 6072298ee2f..8d644f224ea 100644 --- a/packages/vue-query/src/utils.ts +++ b/packages/vue-query/src/utils.ts @@ -109,3 +109,7 @@ function isPlainObject(value: unknown): value is Object { function isFunction(value: unknown): value is Function { return typeof value === 'function' } + +export function toValueDeep(source: (() => T) | MaybeRefDeep): T { + return isFunction(source) ? source() : cloneDeepUnref(source) +} From 6040278e75bb4395b366c932e48606c51cc7010a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 18:06:24 +0200 Subject: [PATCH 094/414] ci: Version Packages (#10451) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/khaki-coats-divide.md | 5 - .changeset/puny-poems-tell.md | 5 - .changeset/three-pillows-enter.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 10 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 13 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 244 +++++++++--------- 110 files changed, 441 insertions(+), 283 deletions(-) delete mode 100644 .changeset/khaki-coats-divide.md delete mode 100644 .changeset/puny-poems-tell.md delete mode 100644 .changeset/three-pillows-enter.md diff --git a/.changeset/khaki-coats-divide.md b/.changeset/khaki-coats-divide.md deleted file mode 100644 index 015a5e3c076..00000000000 --- a/.changeset/khaki-coats-divide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/vue-query-devtools': patch ---- - -Fix Vue SSR devtools cleanup by only registering `unmount()` after `mount()` has run. diff --git a/.changeset/puny-poems-tell.md b/.changeset/puny-poems-tell.md deleted file mode 100644 index a677e7d5a64..00000000000 --- a/.changeset/puny-poems-tell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/vue-query': minor ---- - -Add usePrefetchQuery and usePrefetchInfiniteQuery to vue-query. diff --git a/.changeset/three-pillows-enter.md b/.changeset/three-pillows-enter.md deleted file mode 100644 index cdf3e693d80..00000000000 --- a/.changeset/three-pillows-enter.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/vue-query': patch ---- - -fix(vue-query): fix type of queryOptions to allow plain properies or getters diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index f92d63996df..7c3da580118 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index f5e27a20fe9..3062a676510 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", - "@tanstack/angular-query-persist-client": "^5.97.0", - "@tanstack/query-async-storage-persister": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-persist-client": "^5.98.0", + "@tanstack/query-async-storage-persister": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 574c3a25de7..751569172d7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index e848bc139f1..b566ee37d46 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 80723c3c897..0627ce1c6e6 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 6b9c369d19d..23aadb89550 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 1833e486f7d..d1f1c7b3d96 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 784a015ae3f..b734fb89ebd 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index e8f9a881ffc..50f0aec2b39 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 0758231913e..79e79bbce49 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index a4e4b39c567..60dcee33dff 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 6b41dc2d921..a423d68f5e0 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.97.0", + "@tanstack/eslint-plugin-query": "^5.98.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 51e9db3dccb..0669c04e92b 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 001d6ebc669..9d8c93feb59 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 590ec41fc54..ce69a15a9ef 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.97.0", - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", - "@tanstack/react-query-persist-client": "^5.97.0", + "@tanstack/query-async-storage-persister": "^5.98.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query-persist-client": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.97.0", + "@tanstack/eslint-plugin-query": "^5.98.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index e9d366fa8ff..3c5bdeab972 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 8a057cc574e..49a4f650543 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 73016058257..fe697e40c17 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 320fffd5fbc..32975bcdffa 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.97.0", - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", - "@tanstack/react-query-persist-client": "^5.97.0", + "@tanstack/query-async-storage-persister": "^5.98.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query-persist-client": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.97.0", + "@tanstack/eslint-plugin-query": "^5.98.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index f33557e7d6a..992771617d6 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", + "@tanstack/react-query": "^5.98.0", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.97.0", + "@tanstack/eslint-plugin-query": "^5.98.0", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index a186b989a58..6bdfd499814 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 1eacfaff879..a25d63039a6 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 67a67aabe63..8940c85fc44 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 5f871d281f5..122405ddec8 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", - "@tanstack/react-query-next-experimental": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query-next-experimental": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 3aae0fa7d7e..c5e88e9b686 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 1e91205f235..ee20620795b 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.97.0", + "@tanstack/query-async-storage-persister": "^5.98.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", - "@tanstack/react-query-persist-client": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query-persist-client": "^5.98.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 271cf7891b6..9dca60d6ecc 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 79e768b13ec..85527b2cfbd 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index e1b09052680..43fec867dc7 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 07c9bdf0cac..5e070a974ac 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 38669bc9103..1f670bcd571 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 02aedd7dc9f..3a2645df899 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index b9f1f3ed28c..5610bdf08a3 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 98e0a61a80e..cdbc280c7d2 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index f0e4d5d120c..b02244c0e8f 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 2e04440386f..cb9b0e94b5a 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 232e99209ab..997648c9f06 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 1d4e7586da9..d53ca36b3c1 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.97.0", - "@tanstack/react-query-devtools": "^5.97.0", + "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query-devtools": "^5.98.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 4d793e08a97..4e1a50c7e52 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.97.0", - "@tanstack/solid-query-devtools": "^5.97.0", + "@tanstack/solid-query": "^5.98.0", + "@tanstack/solid-query-devtools": "^5.98.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 920e73cf661..9eb1fcf4925 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.97.0", - "@tanstack/solid-query-devtools": "^5.97.0", + "@tanstack/solid-query": "^5.98.0", + "@tanstack/solid-query-devtools": "^5.98.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 011fad2ec13..50c9d1a2749 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.97.0", - "@tanstack/solid-query-devtools": "^5.97.0", + "@tanstack/solid-query": "^5.98.0", + "@tanstack/solid-query-devtools": "^5.98.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 0044e4593fa..238af1f06be 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.97.0", - "@tanstack/solid-query-devtools": "^5.97.0", + "@tanstack/solid-query": "^5.98.0", + "@tanstack/solid-query-devtools": "^5.98.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 915b4c26720..b1b42846dc4 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.97.0", - "@tanstack/solid-query": "^5.97.0", - "@tanstack/solid-query-devtools": "^5.97.0", - "@tanstack/solid-query-persist-client": "^5.97.0", + "@tanstack/query-async-storage-persister": "^5.98.0", + "@tanstack/solid-query": "^5.98.0", + "@tanstack/solid-query-devtools": "^5.98.0", + "@tanstack/solid-query-persist-client": "^5.98.0", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 4a561261927..bec83face98 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.97.0", - "@tanstack/solid-query-devtools": "^5.97.0", + "@tanstack/solid-query": "^5.98.0", + "@tanstack/solid-query-devtools": "^5.98.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.97.0", + "@tanstack/eslint-plugin-query": "^5.98.0", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 87777d60bf1..29747477970 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.97.0", - "@tanstack/solid-query-devtools": "^5.97.0", + "@tanstack/solid-query": "^5.98.0", + "@tanstack/solid-query-devtools": "^5.98.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 9e5bb0f116f..a4ebd32692b 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14" + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 0fe9d5c867a..09e55d3553f 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.97.0", - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14", - "@tanstack/svelte-query-persist-client": "^6.1.14" + "@tanstack/query-async-storage-persister": "^5.98.0", + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15", + "@tanstack/svelte-query-persist-client": "^6.1.15" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 761ee20de15..9415b29d0d6 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14" + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index c08f9de1346..8186f96c126 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14" + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 2d93ed0fe62..33a6bd1bb7a 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14" + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 84a66a6c196..aebbf3ef2ca 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14" + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 6162038e533..10c910b7df9 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14" + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index d03c80f2148..554cfc33339 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.14", - "@tanstack/svelte-query-devtools": "^6.1.14" + "@tanstack/svelte-query": "^6.1.15", + "@tanstack/svelte-query-devtools": "^6.1.15" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 255ed9ec8ef..8bfd2f68e7f 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.97.0", - "@tanstack/vue-query-devtools": "^6.1.14", + "@tanstack/vue-query": "^5.98.0", + "@tanstack/vue-query-devtools": "^6.1.15", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 22981f12fc8..44a8a89f71a 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.97.0", + "@tanstack/vue-query": "^5.98.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index e7499114ea5..3d402ba2960 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.97.0", - "@tanstack/query-persist-client-core": "^5.97.0", - "@tanstack/query-sync-storage-persister": "^5.97.0", - "@tanstack/vue-query": "^5.97.0", + "@tanstack/query-core": "^5.98.0", + "@tanstack/query-persist-client-core": "^5.98.0", + "@tanstack/query-sync-storage-persister": "^5.98.0", + "@tanstack/vue-query": "^5.98.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 39aba2ef5af..3bc2735429b 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.97.0", - "@tanstack/vue-query-devtools": "^6.1.14", + "@tanstack/vue-query": "^5.98.0", + "@tanstack/vue-query-devtools": "^6.1.15", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 3c0337a168a..b2e8144f678 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.97.0", + "@tanstack/angular-query-experimental": "^5.98.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index d9e2d787976..b2d4f4c2bd6 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index cd5c2a295ea..3597b8e7b92 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.97.0", + "version": "5.98.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index dc252926da4..35491a98b86 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.98.0 + - @tanstack/query-persist-client-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 64fcd8a497e..54187951dac 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.97.0", + "version": "5.98.0", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index eaa24c8ff31..59114e3524b 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.98.0 + ## 5.97.0 ### Minor Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index e56f488d728..869121cff47 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.97.0", + "version": "5.98.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 276de2e6e8d..2b109e702ed 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.98.0 + - @tanstack/query-devtools@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 63c74137deb..95e3a7fde48 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.97.0", + "version": "5.98.0", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 851b1941459..63568eec002 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.98.0 + - @tanstack/query-persist-client-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 9a380ad049e..02560fefff6 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.97.0", + "version": "5.98.0", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 7b72c356bb1..2b80553df8a 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 10d70c4bdcd..317317b81ce 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.97.0", + "version": "5.98.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index dbb71dccdcf..73bf6b9097d 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + - @tanstack/query-persist-client-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 4fe0605fdf2..36b3f1e811e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.97.0", + "version": "5.98.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 422af6a75a0..1f07fae8aa9 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 920d6777f4f..a139cd68aa2 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.97.0", + "version": "5.98.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index b033b43bebd..e8b9bf38b26 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 2f3c5b8514b..a16916513eb 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.97.0", + "version": "5.98.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index c018fce10d4..69543920ffe 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.98.0 + ## 5.97.0 ## 5.96.2 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 88ab5856f9d..86fbec3f995 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.97.0", + "version": "5.98.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index dc35b485571..4692fd10109 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 9b19865a67b..8ab97cf5c43 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.97.0", + "version": "5.98.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index e7782d976c9..0be0fae91e9 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + - @tanstack/query-persist-client-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index ccb5167cd54..dd9087f6cbe 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.97.0", + "version": "5.98.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index eb90ad56f5e..34e45fc25a3 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.98.0 + - @tanstack/react-query@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index aa9dbe2bb72..7eaee9ded2a 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.97.0", + "version": "5.98.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index f75dc60c340..eb2c3030cab 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index cb90d127452..b8b8dde6302 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.97.0", + "version": "5.98.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index de4afc3f71a..d58c94bb3dd 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.98.0 + - @tanstack/react-query@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 69bcdbc2534..4c65ff04fb6 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.97.0", + "version": "5.98.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index d8b6ea90222..db69281fbd8 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 1809c50a436..492752b3067 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.97.0", + "version": "5.98.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 831bc8e6886..a79449c061d 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.98.0 + - @tanstack/solid-query@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 2c9e7cd240c..08c665693e3 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.97.0", + "version": "5.98.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 3add0458191..78dbd86a2dc 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.98.0 + - @tanstack/solid-query@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 5a86726a0d8..07312016e01 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.97.0", + "version": "5.98.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 5e7657ea05f..8cf688064ee 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.98.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 5f4044128d8..81bbb73149a 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.97.0", + "version": "5.98.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 85f13f53ac1..eb22288eeac 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.15 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.98.0 + - @tanstack/svelte-query@6.1.15 + ## 6.1.14 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index fd3178e7656..ebc642b4574 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.14", + "version": "6.1.15", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 7d8611fb62a..f95d5411318 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.15 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.98.0 + - @tanstack/svelte-query@6.1.15 + ## 6.1.14 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 95cffb9799e..39f5edda780 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.14", + "version": "6.1.15", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 48b7fe612ca..4cdc87aaccd 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.15 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 6.1.14 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index b4d3c80d065..8bb6b53d9b8 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.14", + "version": "6.1.15", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index c5c9f965ff8..084947a1ecb 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/vue-query-devtools +## 6.1.15 + +### Patch Changes + +- Fix Vue SSR devtools cleanup by only registering `unmount()` after `mount()` has run. ([#10439](https://github.com/TanStack/query/pull/10439)) + +- Updated dependencies [[`b97513f`](https://github.com/TanStack/query/commit/b97513f2888ed1310a5b39bf91d559c5bc6b83e0), [`29e80d9`](https://github.com/TanStack/query/commit/29e80d9f79d7b71ac89f2c37ee254a5f718abac7)]: + - @tanstack/vue-query@5.98.0 + - @tanstack/query-devtools@5.98.0 + ## 6.1.14 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 17198528adc..7c05143e46b 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.14", + "version": "6.1.15", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index d34a3a5547b..2e84bd0682f 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,18 @@ # @tanstack/vue-query +## 5.98.0 + +### Minor Changes + +- Add usePrefetchQuery and usePrefetchInfiniteQuery to vue-query. ([#10372](https://github.com/TanStack/query/pull/10372)) + +### Patch Changes + +- fix(vue-query): fix type of queryOptions to allow plain properies or getters ([#10452](https://github.com/TanStack/query/pull/10452)) + +- Updated dependencies []: + - @tanstack/query-core@5.98.0 + ## 5.97.0 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 03228c25431..68d66a25db6 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.97.0", + "version": "5.98.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 322b0ed55aa..ed90271482e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.14 + specifier: ^6.1.15 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.97.0 + specifier: ^5.98.0 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 012d323b9bdeea38ecc5a40e8e78ca0638454da9 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 12 Apr 2026 01:24:06 +0900 Subject: [PATCH 095/414] test(svelte-query): unify all test descriptions with 'should' (#10453) --- .../QueryClientProvider.svelte.test.ts | 2 +- .../tests/context/context.svelte.test.ts | 4 +-- .../createMutation.svelte.test.ts | 6 ++-- .../createQueries/createQueries.test-d.ts | 8 ++--- .../tests/infiniteQueryOptions.test-d.ts | 8 ++--- .../mutationOptions/mutationOptions.test-d.ts | 26 +++++++-------- .../svelte-query/tests/queryOptions.test-d.ts | 32 +++++++++---------- .../useMutationState.svelte.test.ts | 6 ++-- 8 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts index 132974b8ea2..480c63bb32d 100644 --- a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts +++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts @@ -16,7 +16,7 @@ describe('QueryClientProvider', () => { vi.useRealTimers() }) - test('Sets a specific cache for all queries to use', async () => { + test('should set a specific cache for all queries to use', async () => { const queryCache = queryClient.getQueryCache() const rendered = render(BaseExample, { diff --git a/packages/svelte-query/tests/context/context.svelte.test.ts b/packages/svelte-query/tests/context/context.svelte.test.ts index ce086881db7..602989d3f33 100644 --- a/packages/svelte-query/tests/context/context.svelte.test.ts +++ b/packages/svelte-query/tests/context/context.svelte.test.ts @@ -4,7 +4,7 @@ import { getIsRestoringContext } from '../../src/index.js' import BaseExample from './BaseExample.svelte' describe('getQueryClientContext', () => { - test('Throw when called without a client in context', () => { + test('should throw when called without a client in context', () => { expect(() => render(BaseExample)).toThrow( 'No QueryClient was found in Svelte context. Did you forget to wrap your component with QueryClientProvider?', ) @@ -12,7 +12,7 @@ describe('getQueryClientContext', () => { }) describe('getIsRestoringContext', () => { - test('Do not throw when called outside of a component', () => { + test('should not throw when called outside of a component', () => { expect(() => getIsRestoringContext()).not.toThrow() }) }) diff --git a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts index f3e4c9e2286..5a90d567b8a 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts @@ -22,7 +22,7 @@ describe('createMutation', () => { vi.useRealTimers() }) - test('Able to reset `error`', async () => { + test('should be able to reset `error`', async () => { const rendered = render(ResetExample, { props: { queryClient }, }) @@ -38,7 +38,7 @@ describe('createMutation', () => { expect(rendered.getByText('Error: undefined')).toBeInTheDocument() }) - test('Able to call `onSuccess` and `onSettled` after each successful mutate', async () => { + test('should be able to call `onSuccess` and `onSettled` after each successful mutate', async () => { const onSuccessMock = vi.fn() const onSettledMock = vi.fn() @@ -69,7 +69,7 @@ describe('createMutation', () => { expect(onSettledMock).toHaveBeenNthCalledWith(3, 3) }) - test('Set correct values for `failureReason` and `failureCount` on multiple mutate calls', async () => { + test('should set correct values for `failureReason` and `failureCount` on multiple mutate calls', async () => { type Value = { count: number } const mutationFn = vi.fn<(value: Value) => Promise>() diff --git a/packages/svelte-query/tests/createQueries/createQueries.test-d.ts b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts index 53deefadea1..faf30aff858 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.test-d.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test-d.ts @@ -43,7 +43,7 @@ describe('createQueries', () => { >() }) - it('handles type parameter - tuple of tuples', () => { + it('should handle type parameter - tuple of tuples', () => { const queryClient = new QueryClient() const key1 = queryKey() const key2 = queryKey() @@ -158,7 +158,7 @@ describe('createQueries', () => { ) }) - it('handles type parameter - tuple of objects', () => { + it('should handle type parameter - tuple of objects', () => { const queryClient = new QueryClient() const key1 = queryKey() const key2 = queryKey() @@ -315,7 +315,7 @@ describe('createQueries', () => { ) }) - it('handles array literal without type parameter to infer result type', () => { + it('should handle array literal without type parameter to infer result type', () => { const queryClient = new QueryClient() const key1 = queryKey() const key2 = queryKey() @@ -562,7 +562,7 @@ describe('createQueries', () => { ) }) - it('handles strongly typed queryFn factories and createQueries wrappers', () => { + it('should handle strongly typed queryFn factories and createQueries wrappers', () => { const queryClient = new QueryClient() // QueryKey + queryFn factory diff --git a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts index edd0eab1265..74106951142 100644 --- a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts +++ b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts @@ -5,7 +5,7 @@ import { createInfiniteQuery, infiniteQueryOptions } from '../src/index.js' import type { InfiniteData } from '@tanstack/query-core' describe('infiniteQueryOptions', () => { - test('Should not allow excess properties', () => { + test('should not allow excess properties', () => { const key = queryKey() assertType( infiniteQueryOptions({ @@ -19,7 +19,7 @@ describe('infiniteQueryOptions', () => { ) }) - test('Should infer types for callbacks', () => { + test('should infer types for callbacks', () => { const key = queryKey() infiniteQueryOptions({ queryKey: key, @@ -33,7 +33,7 @@ describe('infiniteQueryOptions', () => { }) }) - test('Should work when passed to createInfiniteQuery', () => { + test('should work when passed to createInfiniteQuery', () => { const key = queryKey() const options = infiniteQueryOptions({ queryKey: key, @@ -50,7 +50,7 @@ describe('infiniteQueryOptions', () => { >() }) - test('Should work when passed to fetchInfiniteQuery', async () => { + test('should work when passed to fetchInfiniteQuery', async () => { const key = queryKey() const options = infiniteQueryOptions({ queryKey: key, diff --git a/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts b/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts index 94689b6bac7..9270b377236 100644 --- a/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts +++ b/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts @@ -19,7 +19,7 @@ import type { } from '../../src/types.js' describe('mutationOptions', () => { - test('Should not allow excess properties', () => { + test('should not allow excess properties', () => { const key = queryKey() // @ts-expect-error this is a good error, because onMutates does not exist! @@ -33,7 +33,7 @@ describe('mutationOptions', () => { }) }) - test('Should infer types for callbacks', () => { + test('should infer types for callbacks', () => { const key = queryKey() mutationOptions({ @@ -45,7 +45,7 @@ describe('mutationOptions', () => { }) }) - test('Should infer types for onError callback', () => { + test('should infer types for onError callback', () => { const key = queryKey() mutationOptions({ @@ -59,7 +59,7 @@ describe('mutationOptions', () => { }) }) - test('Should infer types for variables', () => { + test('should infer types for variables', () => { const key = queryKey() mutationOptions({ @@ -71,7 +71,7 @@ describe('mutationOptions', () => { }) }) - test('Should infer result type correctly', () => { + test('should infer result type correctly', () => { const key = queryKey() mutationOptions({ @@ -86,7 +86,7 @@ describe('mutationOptions', () => { }) }) - test('Should infer context type correctly', () => { + test('should infer context type correctly', () => { const key = queryKey() mutationOptions({ @@ -110,7 +110,7 @@ describe('mutationOptions', () => { }) }) - test('Should error if mutationFn return type mismatches TData', () => { + test('should error if mutationFn return type mismatches TData', () => { assertType( mutationOptions({ // @ts-expect-error this is a good error, because return type is string, not number @@ -119,7 +119,7 @@ describe('mutationOptions', () => { ) }) - test('Should allow mutationKey to be omitted', () => { + test('should allow mutationKey to be omitted', () => { return mutationOptions({ mutationFn: () => Promise.resolve(123), onSuccess: (data) => { @@ -128,7 +128,7 @@ describe('mutationOptions', () => { }) }) - test('Should infer all types when not explicitly provided', () => { + test('should infer all types when not explicitly provided', () => { const key = queryKey() expectTypeOf( @@ -157,7 +157,7 @@ describe('mutationOptions', () => { >() }) - test('Should work when used with createMutation', () => { + test('should work when used with createMutation', () => { const key = queryKey() const mutation = createMutation(() => @@ -184,7 +184,7 @@ describe('mutationOptions', () => { ) }) - test('Should work when used with useIsMutating', () => { + test('should work when used with useIsMutating', () => { const key = queryKey() const isMutating = useIsMutating( @@ -203,7 +203,7 @@ describe('mutationOptions', () => { ) }) - test('Should work when used with queryClient.isMutating', () => { + test('should work when used with queryClient.isMutating', () => { const key = queryKey() const queryClient = new QueryClient() @@ -223,7 +223,7 @@ describe('mutationOptions', () => { ) }) - test('Should work when used with useMutationState', () => { + test('should work when used with useMutationState', () => { const key = queryKey() const mutationState = useMutationState({ diff --git a/packages/svelte-query/tests/queryOptions.test-d.ts b/packages/svelte-query/tests/queryOptions.test-d.ts index ab796a22dd8..2ed3245ae75 100644 --- a/packages/svelte-query/tests/queryOptions.test-d.ts +++ b/packages/svelte-query/tests/queryOptions.test-d.ts @@ -10,7 +10,7 @@ import { createQueries, queryOptions } from '../src/index.js' import type { QueryObserverResult } from '@tanstack/query-core' describe('queryOptions', () => { - test('Should not allow excess properties', () => { + test('should not allow excess properties', () => { const key = queryKey() assertType( queryOptions({ @@ -22,7 +22,7 @@ describe('queryOptions', () => { ) }) - test('Should infer types for callbacks', () => { + test('should infer types for callbacks', () => { const key = queryKey() queryOptions({ queryKey: key, @@ -34,7 +34,7 @@ describe('queryOptions', () => { }) }) - test('Should work when passed to fetchQuery', async () => { + test('should work when passed to fetchQuery', async () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -45,7 +45,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('Should work when passed to createQueries', () => { + test('should work when passed to createQueries', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -59,7 +59,7 @@ describe('queryOptions', () => { expectTypeOf(queries[0].data).toEqualTypeOf() }) - test('Should tag the queryKey with the result type of the QueryFn', () => { + test('should tag the queryKey with the result type of the QueryFn', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -69,7 +69,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('Should tag the queryKey even if no promise is returned', () => { + test('should tag the queryKey even if no promise is returned', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -79,7 +79,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('Should tag the queryKey with unknown if there is no queryFn', () => { + test('should tag the queryKey with unknown if there is no queryFn', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -88,7 +88,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('Should tag the queryKey with the result type of the QueryFn if select is used', () => { + test('should tag the queryKey with the result type of the QueryFn if select is used', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -99,7 +99,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('Should return the proper type when passed to getQueryData', () => { + test('should return the proper type when passed to getQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -111,7 +111,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('Should return the proper type when passed to getQueryState', () => { + test('should return the proper type when passed to getQueryState', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -123,7 +123,7 @@ describe('queryOptions', () => { expectTypeOf(state?.data).toEqualTypeOf() }) - test('Should properly type updaterFn when passed to setQueryData', () => { + test('should properly type updaterFn when passed to setQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -138,7 +138,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('Should properly type value when passed to setQueryData', () => { + test('should properly type value when passed to setQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -156,7 +156,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('Should infer even if there is a conditional skipToken', () => { + test('should infer even if there is a conditional skipToken', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -168,7 +168,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('Should infer to unknown if we disable a query with just a skipToken', () => { + test('should infer to unknown if we disable a query with just a skipToken', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -180,7 +180,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('Should return the proper type when passed to QueriesObserver', () => { + test('should return the proper type when passed to QueriesObserver', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -194,7 +194,7 @@ describe('queryOptions', () => { >() }) - test('Should allow undefined response in initialData', () => { + test('should allow undefined response in initialData', () => { const key = queryKey() const options = (id: string | null) => queryOptions({ diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts index bdd3a8e21ad..d32f28eff5d 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts @@ -19,7 +19,7 @@ describe('useMutationState', () => { vi.useRealTimers() }) - test('Run few mutation functions and check from useMutationState', async () => { + test('should run few mutation functions and check from useMutationState', async () => { const successKey = queryKey() const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) @@ -54,7 +54,7 @@ describe('useMutationState', () => { expect(rendered.getByText('Data: ["success","error"]')).toBeInTheDocument() }) - test('Can select specific type of mutation ( i.e: error only )', async () => { + test('should select specific type of mutation ( i.e: error only )', async () => { const successKey = queryKey() const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) @@ -119,7 +119,7 @@ describe('useMutationState', () => { expect(rendered.getByText('Variables: ["success"]')).toBeInTheDocument() }) - test('Can select specific mutation using mutation key', async () => { + test('should select specific mutation using mutation key', async () => { const successKey = queryKey() const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) From f279ad24887051e81185aff64864a938ff7c139b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 12 Apr 2026 02:49:32 +0900 Subject: [PATCH 096/414] feat(vue-query): add 'mutationOptions' (#10381) * feat(vue-query): add 'mutationOptions' * ci: apply automated fixes * chore(.changeset): add changeset for 'mutationOptions' in vue-query * feat(vue-query/mutationOptions): add getter support and fix test descriptions to match actual behavior * refactor(vue-query): rename 'VueMutationOptions' to 'MutationOptions' * docs(vue-query): add 'mutationOptions' reference page * test(vue-query/mutationOptions): add runtime test for getter without 'mutationKey' * docs(vue-query): add 'mutationOptions' to config.json navigation --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/many-symbols-write.md | 5 + docs/config.json | 4 + .../vue/reference/mutationOptions.md | 5 + .../src/__tests__/mutationOptions.test-d.ts | 246 +++++++++++ .../src/__tests__/mutationOptions.test.ts | 411 ++++++++++++++++++ packages/vue-query/src/index.ts | 2 + packages/vue-query/src/mutationOptions.ts | 62 +++ packages/vue-query/src/types.ts | 11 + packages/vue-query/src/useMutation.ts | 17 +- 9 files changed, 749 insertions(+), 14 deletions(-) create mode 100644 .changeset/many-symbols-write.md create mode 100644 docs/framework/vue/reference/mutationOptions.md create mode 100644 packages/vue-query/src/__tests__/mutationOptions.test-d.ts create mode 100644 packages/vue-query/src/__tests__/mutationOptions.test.ts create mode 100644 packages/vue-query/src/mutationOptions.ts diff --git a/.changeset/many-symbols-write.md b/.changeset/many-symbols-write.md new file mode 100644 index 00000000000..d54a9e056a9 --- /dev/null +++ b/.changeset/many-symbols-write.md @@ -0,0 +1,5 @@ +--- +'@tanstack/vue-query': minor +--- + +feat(vue-query): add 'mutationOptions' diff --git a/docs/config.json b/docs/config.json index 19157d0cf87..20c671cbf68 100644 --- a/docs/config.json +++ b/docs/config.json @@ -1067,6 +1067,10 @@ "label": "infiniteQueryOptions", "to": "framework/vue/reference/infiniteQueryOptions" }, + { + "label": "mutationOptions", + "to": "framework/vue/reference/mutationOptions" + }, { "label": "usePrefetchQuery", "to": "framework/vue/reference/usePrefetchQuery" diff --git a/docs/framework/vue/reference/mutationOptions.md b/docs/framework/vue/reference/mutationOptions.md new file mode 100644 index 00000000000..b34296ad545 --- /dev/null +++ b/docs/framework/vue/reference/mutationOptions.md @@ -0,0 +1,5 @@ +--- +id: mutationOptions +title: mutationOptions +ref: docs/framework/react/reference/mutationOptions.md +--- diff --git a/packages/vue-query/src/__tests__/mutationOptions.test-d.ts b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts new file mode 100644 index 00000000000..9f0d1fe4a74 --- /dev/null +++ b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts @@ -0,0 +1,246 @@ +import { assertType, describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { useMutation } from '../useMutation' +import { useIsMutating, useMutationState } from '../useMutationState' +import { mutationOptions } from '../mutationOptions' +import type { + DefaultError, + MutationFunctionContext, + MutationState, + WithRequired, +} from '@tanstack/query-core' +import type { Ref } from 'vue-demi' +import type { MutationOptions } from '../types' + +describe('mutationOptions', () => { + it('should not allow excess properties', () => { + mutationOptions({ + // @ts-expect-error this is a good error, because onMutates does not exist! + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onMutates: 1000, + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }) + }) + + it('should infer types for callbacks', () => { + mutationOptions({ + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }) + }) + + it('should infer types for onError callback', () => { + mutationOptions({ + mutationFn: () => { + throw new Error('fail') + }, + mutationKey: ['key'], + onError: (error) => { + expectTypeOf(error).toEqualTypeOf() + }, + }) + }) + + it('should infer types for variables', () => { + mutationOptions({ + mutationFn: (vars) => { + expectTypeOf(vars).toEqualTypeOf<{ id: string }>() + return Promise.resolve(5) + }, + mutationKey: ['with-vars'], + }) + }) + + it('should infer result type correctly', () => { + mutationOptions({ + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onMutate: () => { + return { name: 'onMutateResult' } + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf<{ name: string }>() + }, + }) + }) + + it('should infer context type correctly', () => { + mutationOptions({ + mutationFn: (_variables, context) => { + expectTypeOf(context).toEqualTypeOf() + return Promise.resolve(5) + }, + mutationKey: ['key'], + onMutate: (_variables, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + onSuccess: (_data, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + onError: (_error, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + onSettled: (_data, _error, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + }) + }) + + it('should error if mutationFn return type mismatches TData', () => { + assertType( + mutationOptions({ + // @ts-expect-error this is a good error, because return type is string, not number + mutationFn: async () => Promise.resolve('wrong return'), + }), + ) + }) + + it('should allow mutationKey to be omitted', () => { + return mutationOptions({ + mutationFn: () => Promise.resolve(123), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }) + }) + + it('should infer all types when not explicitly provided', () => { + expectTypeOf( + mutationOptions({ + mutationFn: (id: string) => Promise.resolve(id.length), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ).toEqualTypeOf< + WithRequired< + MutationOptions, + 'mutationKey' + > + >() + expectTypeOf( + mutationOptions({ + mutationFn: (id: string) => Promise.resolve(id.length), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ).toEqualTypeOf< + Omit< + MutationOptions, + 'mutationKey' + > + >() + }) + + it('should work when used with useMutation', () => { + const mutation = useMutation( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ) + expectTypeOf(mutation.data.value).toEqualTypeOf() + + // should allow when used with useMutation without mutationKey + useMutation( + mutationOptions({ + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ) + }) + + it('should work when used with useIsMutating', () => { + const isMutating = useIsMutating( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + ) + expectTypeOf(isMutating).toEqualTypeOf>() + + useIsMutating( + // @ts-expect-error filters should have mutationKey + mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + ) + }) + + it('should work when used with queryClient.isMutating', () => { + const queryClient = new QueryClient() + + const isMutating = queryClient.isMutating( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + ) + expectTypeOf(isMutating).toEqualTypeOf() + + queryClient.isMutating( + // @ts-expect-error filters should have mutationKey + mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + ) + }) + + it('should work when used with useMutationState', () => { + const mutationState = useMutationState({ + filters: mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + }) + expectTypeOf(mutationState.value).toEqualTypeOf< + Array> + >() + + useMutationState({ + // @ts-expect-error filters should have mutationKey + filters: mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + }) + }) + + it('should allow getter and infer types correctly', () => { + const options = mutationOptions(() => ({ + mutationKey: ['key'] as const, + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })) + + const resolved = options() + expectTypeOf(resolved.mutationFn).not.toBeUndefined() + expectTypeOf(resolved.mutationKey).not.toBeUndefined() + }) + + it('should allow getter without mutationKey', () => { + const options = mutationOptions(() => ({ + mutationFn: () => Promise.resolve(5), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })) + + const resolved = options() + expectTypeOf(resolved.mutationFn).not.toBeUndefined() + }) +}) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts new file mode 100644 index 00000000000..df7678c6438 --- /dev/null +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -0,0 +1,411 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { isReactive, ref } from 'vue-demi' +import { sleep } from '@tanstack/query-test-utils' +import { useMutation } from '../useMutation' +import { useIsMutating, useMutationState } from '../useMutationState' +import { useQueryClient } from '../useQueryClient' +import { mutationOptions } from '../mutationOptions' + +vi.mock('../useQueryClient') + +describe('mutationOptions', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + useQueryClient().clear() + }) + + it('should return the object received as a parameter without any modification (with mutationKey in mutationOptions)', () => { + const object = { + mutationKey: ['key'], + mutationFn: () => sleep(10).then(() => 5), + } as const + + expect(mutationOptions(object)).toStrictEqual(object) + }) + + it('should return the object received as a parameter without any modification (without mutationKey in mutationOptions)', () => { + const object = { + mutationFn: () => sleep(10).then(() => 5), + } as const + + expect(mutationOptions(object)).toStrictEqual(object) + }) + + it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const mutationOpts = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data'), + }) + + const { mutate } = useMutation(mutationOpts) + const isMutating = useIsMutating() + + isMutatingArray.push(isMutating.value) + + mutate() + await vi.advanceTimersByTimeAsync(0) + isMutatingArray.push(isMutating.value) + await vi.advanceTimersByTimeAsync(50) + isMutatingArray.push(isMutating.value) + + expect(isMutatingArray).toEqual([0, 1, 0]) + }) + + it('should return the number of fetching mutations when used with useIsMutating (without mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data'), + }) + + const { mutate } = useMutation(mutationOpts) + const isMutating = useIsMutating() + + isMutatingArray.push(isMutating.value) + + mutate() + await vi.advanceTimersByTimeAsync(0) + isMutatingArray.push(isMutating.value) + await vi.advanceTimersByTimeAsync(50) + isMutatingArray.push(isMutating.value) + + expect(isMutatingArray).toEqual([0, 1, 0]) + }) + + it('should return the number of fetching mutations when used with useIsMutating', async () => { + const isMutatingArray: Array = [] + const mutationOpts1 = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data2'), + }) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const isMutating = useIsMutating() + + isMutatingArray.push(isMutating.value) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + isMutatingArray.push(isMutating.value) + await vi.advanceTimersByTimeAsync(50) + isMutatingArray.push(isMutating.value) + + expect(isMutatingArray).toEqual([0, 2, 0]) + }) + + it('should return the number of fetching mutations when used with useIsMutating (filter mutationOpts1.mutationKey)', async () => { + const isMutatingArray: Array = [] + const mutationOpts1 = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data2'), + }) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const isMutating = useIsMutating({ + mutationKey: mutationOpts1.mutationKey, + }) + + isMutatingArray.push(isMutating.value) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + isMutatingArray.push(isMutating.value) + await vi.advanceTimersByTimeAsync(50) + isMutatingArray.push(isMutating.value) + + expect(isMutatingArray).toEqual([0, 1, 0]) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data'), + }) + + const { mutate } = useMutation(mutationOpts) + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push(queryClient.isMutating(mutationOpts)) + }) + + isMutatingArray.push(queryClient.isMutating(mutationOpts)) + + mutate() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(1) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (without mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data'), + }) + + const { mutate } = useMutation(mutationOpts) + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push(queryClient.isMutating()) + }) + + isMutatingArray.push(queryClient.isMutating()) + + mutate() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(1) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data2'), + }) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push(queryClient.isMutating()) + }) + + isMutatingArray.push(queryClient.isMutating()) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(2) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (filter mutationOpts1.mutationKey)', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data2'), + }) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push( + queryClient.isMutating({ + mutationKey: mutationOpts1.mutationKey, + }), + ) + }) + + isMutatingArray.push( + queryClient.isMutating({ + mutationKey: mutationOpts1.mutationKey, + }), + ) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(1) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + + it('should return mutation states when used with useMutationState (with mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data'), + }) + + const { mutate } = useMutation(mutationOpts) + const states = useMutationState({ + filters: { mutationKey: mutationOpts.mutationKey, status: 'success' }, + select: (mutation) => mutation.state.data, + }) + + expect(states.value).toEqual([]) + + mutate() + await vi.advanceTimersByTimeAsync(10) + expect(states.value).toEqual(['data']) + }) + + it('should return mutation states when used with useMutationState (without mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data'), + }) + + const { mutate } = useMutation(mutationOpts) + const states = useMutationState({ + filters: { status: 'success' }, + select: (mutation) => mutation.state.data, + }) + + expect(states.value).toEqual([]) + + mutate() + await vi.advanceTimersByTimeAsync(10) + expect(states.value).toEqual(['data']) + }) + + it('should return mutation states when used with useMutationState', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data2'), + }) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const states = useMutationState({ + filters: { status: 'success' }, + select: (mutation) => mutation.state.data, + }) + + expect(states.value).toEqual([]) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(10) + expect(states.value).toEqual(['data1', 'data2']) + }) + + it('should return mutation states when used with useMutationState (filter mutationOpts1.mutationKey)', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data2'), + }) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const states = useMutationState({ + filters: { mutationKey: mutationOpts1.mutationKey, status: 'success' }, + select: (mutation) => mutation.state.data, + }) + + expect(states.value).toEqual([]) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(10) + expect(states.value).toEqual(['data1']) + }) + + it('should work with getter passed to mutationOptions when used with useIsMutating', async () => { + const keyRef = ref('isMutatingGetter') + const mutationOpts = mutationOptions(() => ({ + mutationKey: [keyRef.value], + mutationFn: () => sleep(10).then(() => 'data'), + })) + + const { mutate } = useMutation(mutationOpts) + mutate() + + const isMutating = useIsMutating({ + mutationKey: [keyRef.value], + }) + + await vi.advanceTimersByTimeAsync(0) + expect(isMutating.value).toEqual(1) + + await vi.advanceTimersByTimeAsync(10) + expect(isMutating.value).toEqual(0) + }) + + it('should work with getter passed to mutationOptions when used with useMutationState', async () => { + const keyRef = ref('useMutationStateGetter') + const mutationOpts = mutationOptions(() => ({ + mutationKey: [keyRef.value], + mutationFn: (params: string) => sleep(10).then(() => params), + })) + + const { mutate } = useMutation(mutationOpts) + mutate('foo') + + const states = useMutationState({ + filters: { mutationKey: [keyRef.value], status: 'pending' }, + select: (mutation) => mutation.state.variables, + }) + + await vi.advanceTimersByTimeAsync(0) + expect(states.value).toEqual(['foo']) + }) + + it('should work with getter passed to mutationOptions without mutationKey', async () => { + const mutationOpts = mutationOptions(() => ({ + mutationFn: () => sleep(10).then(() => 'data'), + })) + + const { mutate, data } = useMutation(mutationOpts) + + mutate() + await vi.advanceTimersByTimeAsync(10) + + expect(data.value).toEqual('data') + }) + + it('should return data in a shallow ref when shallow is true', async () => { + const mutationOpts = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(10).then(() => ({ nested: { count: 0 } })), + shallow: true, + }) + + const { mutate, data } = useMutation(mutationOpts) + + mutate() + await vi.advanceTimersByTimeAsync(10) + + expect(data.value).toEqual({ nested: { count: 0 } }) + expect(isReactive(data.value?.nested)).toBe(false) + }) +}) diff --git a/packages/vue-query/src/index.ts b/packages/vue-query/src/index.ts index 5fc85eadd34..36c616b12af 100644 --- a/packages/vue-query/src/index.ts +++ b/packages/vue-query/src/index.ts @@ -13,6 +13,7 @@ export type { UndefinedInitialDataInfiniteOptions, } from './infiniteQueryOptions' export { MutationCache } from './mutationCache' +export { mutationOptions } from './mutationOptions' export { useQuery } from './useQuery' export { useQueries } from './useQueries' export { useInfiniteQuery } from './useInfiniteQuery' @@ -37,6 +38,7 @@ export type { UseInfiniteQueryReturnType, } from './useInfiniteQuery' export type { UseMutationOptions, UseMutationReturnType } from './useMutation' +export type { MutationOptions } from './types' export type { UseQueriesOptions, UseQueriesResults } from './useQueries' export type { MutationFilters, MutationStateOptions } from './useMutationState' export type { QueryFilters } from './useIsFetching' diff --git a/packages/vue-query/src/mutationOptions.ts b/packages/vue-query/src/mutationOptions.ts new file mode 100644 index 00000000000..f4dcadc42ca --- /dev/null +++ b/packages/vue-query/src/mutationOptions.ts @@ -0,0 +1,62 @@ +import type { DefaultError, WithRequired } from '@tanstack/query-core' +import type { MutationOptions } from './types' + +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +>( + options: WithRequired< + MutationOptions, + 'mutationKey' + >, +): WithRequired< + MutationOptions, + 'mutationKey' +> +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +>( + options: () => WithRequired< + MutationOptions, + 'mutationKey' + >, +): () => WithRequired< + MutationOptions, + 'mutationKey' +> +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +>( + options: Omit< + MutationOptions, + 'mutationKey' + >, +): Omit< + MutationOptions, + 'mutationKey' +> +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +>( + options: () => Omit< + MutationOptions, + 'mutationKey' + >, +): () => Omit< + MutationOptions, + 'mutationKey' +> +export function mutationOptions(options: unknown) { + return options +} diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts index 979a966a2be..8ef5664b29f 100644 --- a/packages/vue-query/src/types.ts +++ b/packages/vue-query/src/types.ts @@ -64,6 +64,17 @@ export type ShallowOption = { shallow?: boolean } +export type MutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +> = OmitKeyof< + MutationObserverOptions, + '_defaulted' +> & + ShallowOption + export interface DefaultOptions { queries?: OmitKeyof, 'queryKey'> & ShallowOption diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts index 00c4b8fda27..9c49730a79f 100644 --- a/packages/vue-query/src/useMutation.ts +++ b/packages/vue-query/src/useMutation.ts @@ -18,11 +18,9 @@ import type { DistributiveOmit, MutateFunction, MutateOptions, - MutationObserverOptions, MutationObserverResult, - OmitKeyof, } from '@tanstack/query-core' -import type { MaybeRefDeep, ShallowOption } from './types' +import type { MaybeRefDeep, MutationOptions } from './types' import type { QueryClient } from './queryClient' type MutationResult = @@ -31,24 +29,15 @@ type MutationResult = 'mutate' | 'reset' > -type UseMutationOptionsBase = - OmitKeyof< - MutationObserverOptions, - '_defaulted' - > & - ShallowOption - export type UseMutationOptions< TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown, > = - | MaybeRefDeep< - UseMutationOptionsBase - > + | MaybeRefDeep> | (() => MaybeRefDeep< - UseMutationOptionsBase + MutationOptions >) type MutateSyncFunction< From adc2543ade2f5070ee8d77882cce534795a67672 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 19:54:13 +0200 Subject: [PATCH 097/414] ci: Version Packages (#10454) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/many-symbols-write.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 11 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 244 +++++++++--------- 108 files changed, 437 insertions(+), 273 deletions(-) delete mode 100644 .changeset/many-symbols-write.md diff --git a/.changeset/many-symbols-write.md b/.changeset/many-symbols-write.md deleted file mode 100644 index d54a9e056a9..00000000000 --- a/.changeset/many-symbols-write.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/vue-query': minor ---- - -feat(vue-query): add 'mutationOptions' diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 7c3da580118..b2376ef6b1a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 3062a676510..719f88fe88f 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", - "@tanstack/angular-query-persist-client": "^5.98.0", - "@tanstack/query-async-storage-persister": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-persist-client": "^5.99.0", + "@tanstack/query-async-storage-persister": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 751569172d7..5e44db83ca8 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index b566ee37d46..8e195abee84 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 0627ce1c6e6..2919b2187c3 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 23aadb89550..ceb14cf7679 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index d1f1c7b3d96..8f7ddf30d08 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index b734fb89ebd..bf839870b3e 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 50f0aec2b39..dee0580b0ed 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 79e79bbce49..fb7fcae0b08 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 60dcee33dff..1a2be6d9011 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index a423d68f5e0..ffeffc832f5 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.98.0", + "@tanstack/eslint-plugin-query": "^5.99.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 0669c04e92b..4644fe90792 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 9d8c93feb59..ad681ca6544 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index ce69a15a9ef..f5566cdcf93 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.98.0", - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", - "@tanstack/react-query-persist-client": "^5.98.0", + "@tanstack/query-async-storage-persister": "^5.99.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query-persist-client": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.98.0", + "@tanstack/eslint-plugin-query": "^5.99.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 3c5bdeab972..5167e1089e1 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 49a4f650543..8fc9f442627 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index fe697e40c17..9afae07f033 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 32975bcdffa..8a465278b4b 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.98.0", - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", - "@tanstack/react-query-persist-client": "^5.98.0", + "@tanstack/query-async-storage-persister": "^5.99.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query-persist-client": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.98.0", + "@tanstack/eslint-plugin-query": "^5.99.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 992771617d6..062478f1975 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", + "@tanstack/react-query": "^5.99.0", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.98.0", + "@tanstack/eslint-plugin-query": "^5.99.0", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 6bdfd499814..a665fc70918 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index a25d63039a6..c716f8e62b9 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 8940c85fc44..c6202c60787 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 122405ddec8..dcafab2a31a 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", - "@tanstack/react-query-next-experimental": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query-next-experimental": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index c5e88e9b686..f7accab388d 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index ee20620795b..e06d653f169 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.98.0", + "@tanstack/query-async-storage-persister": "^5.99.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", - "@tanstack/react-query-persist-client": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query-persist-client": "^5.99.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 9dca60d6ecc..ec3563d2088 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 85527b2cfbd..934e439dd6f 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 43fec867dc7..48d45b031dd 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 5e070a974ac..a5be24436ed 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 1f670bcd571..fd4a79ad8bc 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 3a2645df899..96d71c7c73c 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 5610bdf08a3..5f17672cb07 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index cdbc280c7d2..c24d79f437c 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index b02244c0e8f..efd67cc4689 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index cb9b0e94b5a..cd9e0855070 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 997648c9f06..ac7cbe963da 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index d53ca36b3c1..14904eecfa3 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.98.0", - "@tanstack/react-query-devtools": "^5.98.0", + "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query-devtools": "^5.99.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 4e1a50c7e52..232d14b0515 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.98.0", - "@tanstack/solid-query-devtools": "^5.98.0", + "@tanstack/solid-query": "^5.99.0", + "@tanstack/solid-query-devtools": "^5.99.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 9eb1fcf4925..8c68a52c9d7 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.98.0", - "@tanstack/solid-query-devtools": "^5.98.0", + "@tanstack/solid-query": "^5.99.0", + "@tanstack/solid-query-devtools": "^5.99.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 50c9d1a2749..2af3d540090 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.98.0", - "@tanstack/solid-query-devtools": "^5.98.0", + "@tanstack/solid-query": "^5.99.0", + "@tanstack/solid-query-devtools": "^5.99.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 238af1f06be..fd0edc614bf 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.98.0", - "@tanstack/solid-query-devtools": "^5.98.0", + "@tanstack/solid-query": "^5.99.0", + "@tanstack/solid-query-devtools": "^5.99.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index b1b42846dc4..2068b28211c 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.98.0", - "@tanstack/solid-query": "^5.98.0", - "@tanstack/solid-query-devtools": "^5.98.0", - "@tanstack/solid-query-persist-client": "^5.98.0", + "@tanstack/query-async-storage-persister": "^5.99.0", + "@tanstack/solid-query": "^5.99.0", + "@tanstack/solid-query-devtools": "^5.99.0", + "@tanstack/solid-query-persist-client": "^5.99.0", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index bec83face98..18c593068b2 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.98.0", - "@tanstack/solid-query-devtools": "^5.98.0", + "@tanstack/solid-query": "^5.99.0", + "@tanstack/solid-query-devtools": "^5.99.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.98.0", + "@tanstack/eslint-plugin-query": "^5.99.0", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 29747477970..bde54a5af2c 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.98.0", - "@tanstack/solid-query-devtools": "^5.98.0", + "@tanstack/solid-query": "^5.99.0", + "@tanstack/solid-query-devtools": "^5.99.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index a4ebd32692b..0228a543567 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15" + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 09e55d3553f..9b47181f4c3 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.98.0", - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15", - "@tanstack/svelte-query-persist-client": "^6.1.15" + "@tanstack/query-async-storage-persister": "^5.99.0", + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16", + "@tanstack/svelte-query-persist-client": "^6.1.16" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 9415b29d0d6..f31f215b385 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15" + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 8186f96c126..9ee62bbfcf1 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15" + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 33a6bd1bb7a..5d778dc430b 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15" + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index aebbf3ef2ca..e1845753163 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15" + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 10c910b7df9..92ef36a3513 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15" + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 554cfc33339..72138a3b580 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.15", - "@tanstack/svelte-query-devtools": "^6.1.15" + "@tanstack/svelte-query": "^6.1.16", + "@tanstack/svelte-query-devtools": "^6.1.16" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 8bfd2f68e7f..6d415f5d8e2 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.98.0", - "@tanstack/vue-query-devtools": "^6.1.15", + "@tanstack/vue-query": "^5.99.0", + "@tanstack/vue-query-devtools": "^6.1.16", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 44a8a89f71a..186a849e2f4 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.98.0", + "@tanstack/vue-query": "^5.99.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 3d402ba2960..14b3506391a 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.98.0", - "@tanstack/query-persist-client-core": "^5.98.0", - "@tanstack/query-sync-storage-persister": "^5.98.0", - "@tanstack/vue-query": "^5.98.0", + "@tanstack/query-core": "^5.99.0", + "@tanstack/query-persist-client-core": "^5.99.0", + "@tanstack/query-sync-storage-persister": "^5.99.0", + "@tanstack/vue-query": "^5.99.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 3bc2735429b..cb4dd230f19 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.98.0", - "@tanstack/vue-query-devtools": "^6.1.15", + "@tanstack/vue-query": "^5.99.0", + "@tanstack/vue-query-devtools": "^6.1.16", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index b2e8144f678..4528bbba009 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.98.0", + "@tanstack/angular-query-experimental": "^5.99.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index b2d4f4c2bd6..f267f6130ae 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 3597b8e7b92..d7b983d3d0e 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.98.0", + "version": "5.99.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 35491a98b86..cbc58c54789 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.99.0 + - @tanstack/query-persist-client-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 54187951dac..8e11f1ff543 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.98.0", + "version": "5.99.0", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 59114e3524b..a92f36fa1ef 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.99.0 + ## 5.98.0 ## 5.97.0 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 869121cff47..7d7b8f62d2e 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.98.0", + "version": "5.99.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 2b109e702ed..429c63f8c91 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.99.0 + - @tanstack/query-devtools@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 95e3a7fde48..8017cd3c1a0 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.98.0", + "version": "5.99.0", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 63568eec002..5d7eb088594 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.99.0 + - @tanstack/query-persist-client-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 02560fefff6..a14caf7806a 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.98.0", + "version": "5.99.0", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 2b80553df8a..9f3e25f86ba 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 317317b81ce..e05d6c71577 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.98.0", + "version": "5.99.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 73bf6b9097d..38ac85e2a8e 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + - @tanstack/query-persist-client-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 36b3f1e811e..06791dfcbee 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.98.0", + "version": "5.99.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 1f07fae8aa9..0257d1b47d3 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index a139cd68aa2..2089bb39462 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.98.0", + "version": "5.99.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index e8b9bf38b26..afba21e986b 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.99.0 + ## 5.98.0 ## 5.97.0 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a16916513eb..00e0c425351 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.98.0", + "version": "5.99.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 69543920ffe..4a94c2b7176 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.99.0 + ## 5.98.0 ## 5.97.0 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 86fbec3f995..f4325415f53 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.98.0", + "version": "5.99.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 4692fd10109..98af8476ad3 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 8ab97cf5c43..99f7708764c 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.98.0", + "version": "5.99.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 0be0fae91e9..04844214b9c 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + - @tanstack/query-persist-client-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index dd9087f6cbe..f5dda63c8a1 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.98.0", + "version": "5.99.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 34e45fc25a3..dfa17fe0962 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.0 + - @tanstack/react-query@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 7eaee9ded2a..95a67983f30 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.98.0", + "version": "5.99.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index eb2c3030cab..6025cc01075 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index b8b8dde6302..e923c388f28 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.98.0", + "version": "5.99.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index d58c94bb3dd..46f0261f34f 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.0 + - @tanstack/react-query@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 4c65ff04fb6..1dcfbd78348 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.98.0", + "version": "5.99.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index db69281fbd8..d86473dc307 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 492752b3067..754a38681c7 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.98.0", + "version": "5.99.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index a79449c061d..3b02ea5cb7e 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.0 + - @tanstack/solid-query@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 08c665693e3..77e92f3b50a 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.98.0", + "version": "5.99.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 78dbd86a2dc..321f7cc1012 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.0 + - @tanstack/solid-query@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 07312016e01..e0fd23cc3e9 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.98.0", + "version": "5.99.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 8cf688064ee..aced83fde13 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.99.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 5.98.0 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 81bbb73149a..8c22c38ba36 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.98.0", + "version": "5.99.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index eb22288eeac..be3fa390298 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.16 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.0 + - @tanstack/svelte-query@6.1.16 + ## 6.1.15 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index ebc642b4574..defba30ec50 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.15", + "version": "6.1.16", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index f95d5411318..365d0f6d832 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.16 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.0 + - @tanstack/svelte-query@6.1.16 + ## 6.1.15 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 39f5edda780..7f9fefd1396 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.15", + "version": "6.1.16", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 4cdc87aaccd..f71e2e81da9 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.16 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 6.1.15 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 8bb6b53d9b8..c1039347e29 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.15", + "version": "6.1.16", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 084947a1ecb..ce6b250d852 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.16 + +### Patch Changes + +- Updated dependencies [[`f279ad2`](https://github.com/TanStack/query/commit/f279ad24887051e81185aff64864a938ff7c139b)]: + - @tanstack/vue-query@5.99.0 + - @tanstack/query-devtools@5.99.0 + ## 6.1.15 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 7c05143e46b..ffaa7d04352 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.15", + "version": "6.1.16", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 2e84bd0682f..524565616ee 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,16 @@ # @tanstack/vue-query +## 5.99.0 + +### Minor Changes + +- feat(vue-query): add 'mutationOptions' ([#10381](https://github.com/TanStack/query/pull/10381)) + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.0 + ## 5.98.0 ### Minor Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 68d66a25db6..75be110d69c 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.98.0", + "version": "5.99.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed90271482e..ee3606ba446 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.15 + specifier: ^6.1.16 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.98.0 + specifier: ^5.99.0 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 24de260ad26626a6d5420587f97714f6b94ffa2a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 12 Apr 2026 03:15:20 +0900 Subject: [PATCH 098/414] docs(solid-query): add 'mutationOptions' to config.json navigation (#10455) --- docs/config.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/config.json b/docs/config.json index 20c671cbf68..13d211f7520 100644 --- a/docs/config.json +++ b/docs/config.json @@ -1124,6 +1124,10 @@ "label": "infiniteQueryOptions", "to": "framework/solid/reference/infiniteQueryOptions" }, + { + "label": "mutationOptions", + "to": "framework/solid/reference/mutationOptions" + }, { "label": "hydration", "to": "framework/solid/reference/hydration" From 6384368099c5578138026551e633d7c227477a84 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 10:22:46 +0900 Subject: [PATCH 099/414] test(vue-query/mutationOptions): add type tests for getter overloads (#10466) * test(vue-query/mutationOptions): add type tests for getter overloads * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/mutationOptions.test-d.ts | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test-d.ts b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts index 9f0d1fe4a74..14d19a9f43e 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts @@ -243,4 +243,56 @@ describe('mutationOptions', () => { const resolved = options() expectTypeOf(resolved.mutationFn).not.toBeUndefined() }) + + it('should error if mutationFn return type mismatches TData (getter)', () => { + assertType( + mutationOptions(() => ({ + // @ts-expect-error this is a good error, because return type is string, not number + mutationFn: async () => Promise.resolve('wrong return'), + })), + ) + }) + + it('should infer all types when not explicitly provided (getter)', () => { + expectTypeOf( + mutationOptions(() => ({ + mutationFn: (id: string) => Promise.resolve(id.length), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })), + ).toEqualTypeOf< + () => WithRequired< + MutationOptions, + 'mutationKey' + > + >() + expectTypeOf( + mutationOptions(() => ({ + mutationFn: (id: string) => Promise.resolve(id.length), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })), + ).toEqualTypeOf< + () => Omit< + MutationOptions, + 'mutationKey' + > + >() + }) + + it('should work when used with useMutation (getter)', () => { + const mutation = useMutation( + mutationOptions(() => ({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })), + ) + expectTypeOf(mutation.data.value).toEqualTypeOf() + }) }) From 7d3b86c1620855cffd9927e88169b06ff4dead75 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 10:43:26 +0900 Subject: [PATCH 100/414] test(vue-query/mutationOptions): add identity tests for getter overloads (#10468) --- .../src/__tests__/mutationOptions.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts index df7678c6438..3c0a1ba52c3 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -35,6 +35,25 @@ describe('mutationOptions', () => { expect(mutationOptions(object)).toStrictEqual(object) }) + it('should return the getter received as a parameter without any modification (with mutationKey in mutationOptions)', () => { + const getter = () => + ({ + mutationKey: ['key'], + mutationFn: () => sleep(10).then(() => 5), + }) as const + + expect(mutationOptions(getter)).toBe(getter) + }) + + it('should return the getter received as a parameter without any modification (without mutationKey in mutationOptions)', () => { + const getter = () => + ({ + mutationFn: () => sleep(10).then(() => 5), + }) as const + + expect(mutationOptions(getter)).toBe(getter) + }) + it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const mutationOpts = mutationOptions({ From 70a216d8e2d1b399ce13486f7f02a92ae82c47c2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 10:57:51 +0900 Subject: [PATCH 101/414] test(vue-query/mutationOptions): add 'useIsMutating' tests for getter overloads (#10469) --- .../src/__tests__/mutationOptions.test.ts | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts index 3c0a1ba52c3..cf73ac686de 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -149,6 +149,82 @@ describe('mutationOptions', () => { expect(isMutatingArray).toEqual([0, 1, 0]) }) + it('should return the number of fetching mutations when used with useIsMutating (getter without mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const mutationOpts = mutationOptions(() => ({ + mutationFn: () => sleep(50).then(() => 'data'), + })) + + const { mutate } = useMutation(mutationOpts) + const isMutating = useIsMutating() + + isMutatingArray.push(isMutating.value) + + mutate() + await vi.advanceTimersByTimeAsync(0) + isMutatingArray.push(isMutating.value) + await vi.advanceTimersByTimeAsync(50) + isMutatingArray.push(isMutating.value) + + expect(isMutatingArray).toEqual([0, 1, 0]) + }) + + it('should return the number of fetching mutations when used with useIsMutating (getter)', async () => { + const isMutatingArray: Array = [] + const mutationOpts1 = mutationOptions(() => ({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + })) + const mutationOpts2 = mutationOptions(() => ({ + mutationFn: () => sleep(50).then(() => 'data2'), + })) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const isMutating = useIsMutating() + + isMutatingArray.push(isMutating.value) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + isMutatingArray.push(isMutating.value) + await vi.advanceTimersByTimeAsync(50) + isMutatingArray.push(isMutating.value) + + expect(isMutatingArray).toEqual([0, 2, 0]) + }) + + it('should return the number of fetching mutations when used with useIsMutating (getter, filter mutationOpts1.mutationKey)', async () => { + const isMutatingArray: Array = [] + const mutationOpts1 = mutationOptions(() => ({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + })) + const mutationOpts2 = mutationOptions(() => ({ + mutationFn: () => sleep(50).then(() => 'data2'), + })) + + const resolvedOpts1 = mutationOpts1() + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const isMutating = useIsMutating({ + mutationKey: resolvedOpts1.mutationKey, + }) + + isMutatingArray.push(isMutating.value) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + isMutatingArray.push(isMutating.value) + await vi.advanceTimersByTimeAsync(50) + isMutatingArray.push(isMutating.value) + + expect(isMutatingArray).toEqual([0, 1, 0]) + }) + it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const queryClient = useQueryClient() From 8fc02cc3f66c157e3258f33309ec3a100513e32e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 11:49:32 +0900 Subject: [PATCH 102/414] test(vue-query/mutationOptions): add 'queryClient.isMutating' tests for getter overloads (#10471) --- .../src/__tests__/mutationOptions.test.ts | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts index cf73ac686de..0c1bb4608ad 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -350,6 +350,135 @@ describe('mutationOptions', () => { unsubscribe() }) + it('should return the number of fetching mutations when used with queryClient.isMutating (getter with mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts = mutationOptions(() => ({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data'), + })) + + const { mutate } = useMutation(mutationOpts) + + const resolvedOpts = mutationOpts() + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push(queryClient.isMutating(resolvedOpts)) + }) + + isMutatingArray.push(queryClient.isMutating(resolvedOpts)) + + mutate() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(1) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (getter without mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts = mutationOptions(() => ({ + mutationFn: () => sleep(500).then(() => 'data'), + })) + + const { mutate } = useMutation(mutationOpts) + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push(queryClient.isMutating()) + }) + + isMutatingArray.push(queryClient.isMutating()) + + mutate() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(1) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (getter)', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts1 = mutationOptions(() => ({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + })) + const mutationOpts2 = mutationOptions(() => ({ + mutationFn: () => sleep(500).then(() => 'data2'), + })) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push(queryClient.isMutating()) + }) + + isMutatingArray.push(queryClient.isMutating()) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(2) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (getter, filter mutationOpts1.mutationKey)', async () => { + const isMutatingArray: Array = [] + const queryClient = useQueryClient() + const mutationOpts1 = mutationOptions(() => ({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + })) + const mutationOpts2 = mutationOptions(() => ({ + mutationFn: () => sleep(500).then(() => 'data2'), + })) + + const resolvedOpts1 = mutationOpts1() + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + const mutationCache = queryClient.getMutationCache() + const unsubscribe = mutationCache.subscribe(() => { + isMutatingArray.push( + queryClient.isMutating({ + mutationKey: resolvedOpts1.mutationKey, + }), + ) + }) + + isMutatingArray.push( + queryClient.isMutating({ + mutationKey: resolvedOpts1.mutationKey, + }), + ) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(0) + // Use Math.max because subscribe callback count is implementation-dependent + expect(Math.max(...isMutatingArray)).toEqual(1) + await vi.advanceTimersByTimeAsync(500) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + + unsubscribe() + }) + it('should return mutation states when used with useMutationState (with mutationKey in mutationOptions)', async () => { const mutationOpts = mutationOptions({ mutationKey: ['mutation'], From c8de088b6e7b8f695f3ee235a09d462f06b35986 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 12:01:54 +0900 Subject: [PATCH 103/414] test(vue-query/mutationOptions): add 'useMutationState' tests for getter overloads (#10472) --- .../src/__tests__/mutationOptions.test.ts | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts index 0c1bb4608ad..12bae7a375f 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -564,6 +564,74 @@ describe('mutationOptions', () => { expect(states.value).toEqual(['data1']) }) + it('should return mutation states when used with useMutationState (getter without mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions(() => ({ + mutationFn: () => sleep(10).then(() => 'data'), + })) + + const { mutate } = useMutation(mutationOpts) + const states = useMutationState({ + filters: { status: 'success' }, + select: (mutation) => mutation.state.data, + }) + + expect(states.value).toEqual([]) + + mutate() + await vi.advanceTimersByTimeAsync(10) + expect(states.value).toEqual(['data']) + }) + + it('should return mutation states when used with useMutationState (getter)', async () => { + const mutationOpts1 = mutationOptions(() => ({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + })) + const mutationOpts2 = mutationOptions(() => ({ + mutationFn: () => sleep(10).then(() => 'data2'), + })) + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const states = useMutationState({ + filters: { status: 'success' }, + select: (mutation) => mutation.state.data, + }) + + expect(states.value).toEqual([]) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(10) + expect(states.value).toEqual(['data1', 'data2']) + }) + + it('should return mutation states when used with useMutationState (getter, filter mutationOpts1.mutationKey)', async () => { + const mutationOpts1 = mutationOptions(() => ({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + })) + const mutationOpts2 = mutationOptions(() => ({ + mutationFn: () => sleep(10).then(() => 'data2'), + })) + + const resolvedOpts1 = mutationOpts1() + + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const states = useMutationState({ + filters: { mutationKey: resolvedOpts1.mutationKey, status: 'success' }, + select: (mutation) => mutation.state.data, + }) + + expect(states.value).toEqual([]) + + mutate1() + mutate2() + await vi.advanceTimersByTimeAsync(10) + expect(states.value).toEqual(['data1']) + }) + it('should work with getter passed to mutationOptions when used with useIsMutating', async () => { const keyRef = ref('isMutatingGetter') const mutationOpts = mutationOptions(() => ({ From 4c489e4249c9d059a736b3b2fb83ebd4bf93cdb5 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 12:11:33 +0900 Subject: [PATCH 104/414] test(vue-query/mutationOptions): add shallow ref test for getter overload (#10473) --- .../src/__tests__/mutationOptions.test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts index 12bae7a375f..bbcaa6ca0b4 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -700,4 +700,20 @@ describe('mutationOptions', () => { expect(data.value).toEqual({ nested: { count: 0 } }) expect(isReactive(data.value?.nested)).toBe(false) }) + + it('should return data in a shallow ref when shallow is true (getter)', async () => { + const mutationOpts = mutationOptions(() => ({ + mutationKey: ['key'], + mutationFn: () => sleep(10).then(() => ({ nested: { count: 0 } })), + shallow: true, + })) + + const { mutate, data } = useMutation(mutationOpts) + + mutate() + await vi.advanceTimersByTimeAsync(10) + + expect(data.value).toEqual({ nested: { count: 0 } }) + expect(isReactive(data.value?.nested)).toBe(false) + }) }) From c9109b631039a50c72bef60abb087803ed791f6d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 13:22:24 +0900 Subject: [PATCH 105/414] test(vue-query/mutationOptions): add reactive 'mutationKey' test for getter overload (#10474) --- .../src/__tests__/mutationOptions.test.ts | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts index bbcaa6ca0b4..96d54532529 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { isReactive, ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' import { useIsMutating, useMutationState } from '../useMutationState' import { useQueryClient } from '../useQueryClient' @@ -716,4 +716,38 @@ describe('mutationOptions', () => { expect(data.value).toEqual({ nested: { count: 0 } }) expect(isReactive(data.value?.nested)).toBe(false) }) + + it('should reactively update mutationKey when ref changes in getter', async () => { + const key = queryKey() + const keyRef = ref('key01') + const fnMock = vi.fn((params: string) => sleep(10).then(() => params)) + const mutationOpts = mutationOptions(() => ({ + mutationKey: [...key, keyRef.value], + mutationFn: fnMock, + })) + + const mutation = useMutation(mutationOpts) + + mutation.mutate('data') + await vi.advanceTimersByTimeAsync(10) + + expect(fnMock).toHaveBeenCalledTimes(1) + expect(fnMock).toHaveBeenNthCalledWith( + 1, + 'data', + expect.objectContaining({ mutationKey: [...key, 'key01'] }), + ) + + keyRef.value = 'key02' + await vi.advanceTimersByTimeAsync(0) + mutation.mutate('data') + await vi.advanceTimersByTimeAsync(10) + + expect(fnMock).toHaveBeenCalledTimes(2) + expect(fnMock).toHaveBeenNthCalledWith( + 2, + 'data', + expect.objectContaining({ mutationKey: [...key, 'key02'] }), + ) + }) }) From aaeefaea78dc617c6a15c0c21417bcdf10810916 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 13:34:55 +0900 Subject: [PATCH 106/414] test(svelte-query/createMutation): rename 'OnSuccessExample' to 'SuccessExample' (#10477) --- .../{OnSuccessExample.svelte => SuccessExample.svelte} | 0 .../tests/createMutation/createMutation.svelte.test.ts | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename packages/svelte-query/tests/createMutation/{OnSuccessExample.svelte => SuccessExample.svelte} (100%) diff --git a/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte b/packages/svelte-query/tests/createMutation/SuccessExample.svelte similarity index 100% rename from packages/svelte-query/tests/createMutation/OnSuccessExample.svelte rename to packages/svelte-query/tests/createMutation/SuccessExample.svelte diff --git a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts index 5a90d567b8a..140cb91c81d 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts @@ -6,7 +6,7 @@ import { sleep } from '@tanstack/query-test-utils' import { createMutation } from '../../src/index.js' import { withEffectRoot } from '../utils.svelte.js' import ResetExample from './ResetExample.svelte' -import OnSuccessExample from './OnSuccessExample.svelte' +import SuccessExample from './SuccessExample.svelte' import FailureExample from './FailureExample.svelte' describe('createMutation', () => { @@ -42,7 +42,7 @@ describe('createMutation', () => { const onSuccessMock = vi.fn() const onSettledMock = vi.fn() - const rendered = render(OnSuccessExample, { + const rendered = render(SuccessExample, { props: { queryClient, onSuccessMock, From 8826b43bf20b589c9f2463eed7aab5799781416e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 13:57:18 +0900 Subject: [PATCH 107/414] test(vue-query/mutationOptions): reorder getter tests to group by feature and unify test descriptions (#10478) test(vue-query/mutationOptions): reorder getter tests to group by feature --- .../src/__tests__/mutationOptions.test.ts | 106 +++++++++--------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test.ts b/packages/vue-query/src/__tests__/mutationOptions.test.ts index 96d54532529..9bd8b3ef5cb 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test.ts @@ -54,6 +54,19 @@ describe('mutationOptions', () => { expect(mutationOptions(getter)).toBe(getter) }) + it('should work when used with useMutation (getter without mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions(() => ({ + mutationFn: () => sleep(10).then(() => 'data'), + })) + + const { mutate, data } = useMutation(mutationOpts) + + mutate() + await vi.advanceTimersByTimeAsync(10) + + expect(data.value).toEqual('data') + }) + it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const mutationOpts = mutationOptions({ @@ -149,6 +162,27 @@ describe('mutationOptions', () => { expect(isMutatingArray).toEqual([0, 1, 0]) }) + it('should return the number of fetching mutations when used with useIsMutating (getter with mutationKey in mutationOptions)', async () => { + const keyRef = ref('isMutatingGetter') + const mutationOpts = mutationOptions(() => ({ + mutationKey: [keyRef.value], + mutationFn: () => sleep(10).then(() => 'data'), + })) + + const { mutate } = useMutation(mutationOpts) + mutate() + + const isMutating = useIsMutating({ + mutationKey: [keyRef.value], + }) + + await vi.advanceTimersByTimeAsync(0) + expect(isMutating.value).toEqual(1) + + await vi.advanceTimersByTimeAsync(10) + expect(isMutating.value).toEqual(0) + }) + it('should return the number of fetching mutations when used with useIsMutating (getter without mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const mutationOpts = mutationOptions(() => ({ @@ -564,6 +598,25 @@ describe('mutationOptions', () => { expect(states.value).toEqual(['data1']) }) + it('should return mutation states when used with useMutationState (getter with mutationKey in mutationOptions)', async () => { + const keyRef = ref('useMutationStateGetter') + const mutationOpts = mutationOptions(() => ({ + mutationKey: [keyRef.value], + mutationFn: (params: string) => sleep(10).then(() => params), + })) + + const { mutate } = useMutation(mutationOpts) + mutate('foo') + + const states = useMutationState({ + filters: { mutationKey: [keyRef.value], status: 'pending' }, + select: (mutation) => mutation.state.variables, + }) + + await vi.advanceTimersByTimeAsync(0) + expect(states.value).toEqual(['foo']) + }) + it('should return mutation states when used with useMutationState (getter without mutationKey in mutationOptions)', async () => { const mutationOpts = mutationOptions(() => ({ mutationFn: () => sleep(10).then(() => 'data'), @@ -632,59 +685,6 @@ describe('mutationOptions', () => { expect(states.value).toEqual(['data1']) }) - it('should work with getter passed to mutationOptions when used with useIsMutating', async () => { - const keyRef = ref('isMutatingGetter') - const mutationOpts = mutationOptions(() => ({ - mutationKey: [keyRef.value], - mutationFn: () => sleep(10).then(() => 'data'), - })) - - const { mutate } = useMutation(mutationOpts) - mutate() - - const isMutating = useIsMutating({ - mutationKey: [keyRef.value], - }) - - await vi.advanceTimersByTimeAsync(0) - expect(isMutating.value).toEqual(1) - - await vi.advanceTimersByTimeAsync(10) - expect(isMutating.value).toEqual(0) - }) - - it('should work with getter passed to mutationOptions when used with useMutationState', async () => { - const keyRef = ref('useMutationStateGetter') - const mutationOpts = mutationOptions(() => ({ - mutationKey: [keyRef.value], - mutationFn: (params: string) => sleep(10).then(() => params), - })) - - const { mutate } = useMutation(mutationOpts) - mutate('foo') - - const states = useMutationState({ - filters: { mutationKey: [keyRef.value], status: 'pending' }, - select: (mutation) => mutation.state.variables, - }) - - await vi.advanceTimersByTimeAsync(0) - expect(states.value).toEqual(['foo']) - }) - - it('should work with getter passed to mutationOptions without mutationKey', async () => { - const mutationOpts = mutationOptions(() => ({ - mutationFn: () => sleep(10).then(() => 'data'), - })) - - const { mutate, data } = useMutation(mutationOpts) - - mutate() - await vi.advanceTimersByTimeAsync(10) - - expect(data.value).toEqual('data') - }) - it('should return data in a shallow ref when shallow is true', async () => { const mutationOpts = mutationOptions({ mutationKey: ['key'], From 479b9a597b19a0e86aef06915d035c62779a25ec Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 23:43:28 +0900 Subject: [PATCH 108/414] test(svelte-query): remove 'Example' suffix from test component file names and rename 'QueryChild' to 'Child' (#10480) test(svelte-query): remove 'Example' suffix from test component file names --- .../{BaseExample.svelte => Base.svelte} | 0 .../HydrationBoundary.svelte.test.ts | 4 +-- .../{BaseExample.svelte => Base.svelte} | 4 +-- .../{QueryChild.svelte => Child.svelte} | 0 .../QueryClientProvider.svelte.test.ts | 4 +-- .../{BaseExample.svelte => Base.svelte} | 0 .../tests/context/context.svelte.test.ts | 4 +-- .../{BaseExample.svelte => Base.svelte} | 0 ...ientExample.svelte => ChangeClient.svelte} | 0 .../{SelectExample.svelte => Select.svelte} | 0 .../createInfiniteQuery.svelte.test.ts | 12 ++++---- .../{FailureExample.svelte => Failure.svelte} | 0 .../{ResetExample.svelte => Reset.svelte} | 0 .../{SuccessExample.svelte => Success.svelte} | 0 .../createMutation.svelte.test.ts | 12 ++++---- ...oringExample.svelte => IsRestoring.svelte} | 0 .../createQueries.svelte.test.ts | 6 ++-- ...oringExample.svelte => IsRestoring.svelte} | 0 .../createQuery/createQuery.svelte.test.ts | 4 +-- .../{BaseExample.svelte => Base.svelte} | 0 .../{MultiExample.svelte => Multi.svelte} | 0 .../mutationOptions.svelte.test.ts | 28 +++++++++---------- .../{BaseExample.svelte => Base.svelte} | 0 .../useIsFetching.svelte.test.ts | 4 +-- .../{BaseExample.svelte => Base.svelte} | 0 .../useIsMutating.svelte.test.ts | 4 +-- .../{BaseExample.svelte => Base.svelte} | 0 .../{SelectExample.svelte => Select.svelte} | 0 .../useMutationState.svelte.test.ts | 12 ++++---- 29 files changed, 49 insertions(+), 49 deletions(-) rename packages/svelte-query/tests/HydrationBoundary/{BaseExample.svelte => Base.svelte} (100%) rename packages/svelte-query/tests/QueryClientProvider/{BaseExample.svelte => Base.svelte} (82%) rename packages/svelte-query/tests/QueryClientProvider/{QueryChild.svelte => Child.svelte} (100%) rename packages/svelte-query/tests/context/{BaseExample.svelte => Base.svelte} (100%) rename packages/svelte-query/tests/createInfiniteQuery/{BaseExample.svelte => Base.svelte} (100%) rename packages/svelte-query/tests/createInfiniteQuery/{ChangeClientExample.svelte => ChangeClient.svelte} (100%) rename packages/svelte-query/tests/createInfiniteQuery/{SelectExample.svelte => Select.svelte} (100%) rename packages/svelte-query/tests/createMutation/{FailureExample.svelte => Failure.svelte} (100%) rename packages/svelte-query/tests/createMutation/{ResetExample.svelte => Reset.svelte} (100%) rename packages/svelte-query/tests/createMutation/{SuccessExample.svelte => Success.svelte} (100%) rename packages/svelte-query/tests/createQueries/{IsRestoringExample.svelte => IsRestoring.svelte} (100%) rename packages/svelte-query/tests/createQuery/{IsRestoringExample.svelte => IsRestoring.svelte} (100%) rename packages/svelte-query/tests/mutationOptions/{BaseExample.svelte => Base.svelte} (100%) rename packages/svelte-query/tests/mutationOptions/{MultiExample.svelte => Multi.svelte} (100%) rename packages/svelte-query/tests/useIsFetching/{BaseExample.svelte => Base.svelte} (100%) rename packages/svelte-query/tests/useIsMutating/{BaseExample.svelte => Base.svelte} (100%) rename packages/svelte-query/tests/useMutationState/{BaseExample.svelte => Base.svelte} (100%) rename packages/svelte-query/tests/useMutationState/{SelectExample.svelte => Select.svelte} (100%) diff --git a/packages/svelte-query/tests/HydrationBoundary/BaseExample.svelte b/packages/svelte-query/tests/HydrationBoundary/Base.svelte similarity index 100% rename from packages/svelte-query/tests/HydrationBoundary/BaseExample.svelte rename to packages/svelte-query/tests/HydrationBoundary/Base.svelte diff --git a/packages/svelte-query/tests/HydrationBoundary/HydrationBoundary.svelte.test.ts b/packages/svelte-query/tests/HydrationBoundary/HydrationBoundary.svelte.test.ts index 4fa2e6cc044..42e3a371c34 100644 --- a/packages/svelte-query/tests/HydrationBoundary/HydrationBoundary.svelte.test.ts +++ b/packages/svelte-query/tests/HydrationBoundary/HydrationBoundary.svelte.test.ts @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@testing-library/svelte' import { QueryClient, dehydrate } from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' -import BaseExample from './BaseExample.svelte' +import Base from './Base.svelte' describe('HydrationBoundary', () => { let queryClient: QueryClient @@ -30,7 +30,7 @@ describe('HydrationBoundary', () => { it('should hydrate queries to the cache on context', async () => { const dehydratedState = JSON.parse(stringifiedState) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, dehydratedState, diff --git a/packages/svelte-query/tests/QueryClientProvider/BaseExample.svelte b/packages/svelte-query/tests/QueryClientProvider/Base.svelte similarity index 82% rename from packages/svelte-query/tests/QueryClientProvider/BaseExample.svelte rename to packages/svelte-query/tests/QueryClientProvider/Base.svelte index f7f8fe61c46..108cdbc54fa 100644 --- a/packages/svelte-query/tests/QueryClientProvider/BaseExample.svelte +++ b/packages/svelte-query/tests/QueryClientProvider/Base.svelte @@ -1,6 +1,6 @@ - + diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryChild.svelte b/packages/svelte-query/tests/QueryClientProvider/Child.svelte similarity index 100% rename from packages/svelte-query/tests/QueryClientProvider/QueryChild.svelte rename to packages/svelte-query/tests/QueryClientProvider/Child.svelte diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts index 480c63bb32d..58cad3f7cfd 100644 --- a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts +++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' -import BaseExample from './BaseExample.svelte' +import Base from './Base.svelte' describe('QueryClientProvider', () => { let queryClient: QueryClient @@ -19,7 +19,7 @@ describe('QueryClientProvider', () => { test('should set a specific cache for all queries to use', async () => { const queryCache = queryClient.getQueryCache() - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, }, diff --git a/packages/svelte-query/tests/context/BaseExample.svelte b/packages/svelte-query/tests/context/Base.svelte similarity index 100% rename from packages/svelte-query/tests/context/BaseExample.svelte rename to packages/svelte-query/tests/context/Base.svelte diff --git a/packages/svelte-query/tests/context/context.svelte.test.ts b/packages/svelte-query/tests/context/context.svelte.test.ts index 602989d3f33..483ac3d26f5 100644 --- a/packages/svelte-query/tests/context/context.svelte.test.ts +++ b/packages/svelte-query/tests/context/context.svelte.test.ts @@ -1,11 +1,11 @@ import { describe, expect, test } from 'vitest' import { render } from '@testing-library/svelte' import { getIsRestoringContext } from '../../src/index.js' -import BaseExample from './BaseExample.svelte' +import Base from './Base.svelte' describe('getQueryClientContext', () => { test('should throw when called without a client in context', () => { - expect(() => render(BaseExample)).toThrow( + expect(() => render(Base)).toThrow( 'No QueryClient was found in Svelte context. Did you forget to wrap your component with QueryClientProvider?', ) }) diff --git a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/Base.svelte similarity index 100% rename from packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte rename to packages/svelte-query/tests/createInfiniteQuery/Base.svelte diff --git a/packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/ChangeClient.svelte similarity index 100% rename from packages/svelte-query/tests/createInfiniteQuery/ChangeClientExample.svelte rename to packages/svelte-query/tests/createInfiniteQuery/ChangeClient.svelte diff --git a/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/Select.svelte similarity index 100% rename from packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte rename to packages/svelte-query/tests/createInfiniteQuery/Select.svelte diff --git a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.svelte.test.ts b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.svelte.test.ts index 34bc64577de..b51b5a65616 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.svelte.test.ts +++ b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.svelte.test.ts @@ -2,9 +2,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import { ref } from '../utils.svelte.js' -import BaseExample from './BaseExample.svelte' -import SelectExample from './SelectExample.svelte' -import ChangeClientExample from './ChangeClientExample.svelte' +import Base from './Base.svelte' +import Select from './Select.svelte' +import ChangeClient from './ChangeClient.svelte' import type { QueryObserverResult } from '@tanstack/query-core' describe('createInfiniteQuery', () => { @@ -23,7 +23,7 @@ describe('createInfiniteQuery', () => { it('should return the correct states for a successful query', async () => { let states = ref>([]) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, states, @@ -113,7 +113,7 @@ describe('createInfiniteQuery', () => { it('should be able to select a part of the data', async () => { let states = ref>([]) - const rendered = render(SelectExample, { + const rendered = render(Select, { props: { queryClient, states, @@ -137,7 +137,7 @@ describe('createInfiniteQuery', () => { }) it('should be able to set new pages with the query client', async () => { - const rendered = render(ChangeClientExample, { + const rendered = render(ChangeClient, { props: { queryClient, }, diff --git a/packages/svelte-query/tests/createMutation/FailureExample.svelte b/packages/svelte-query/tests/createMutation/Failure.svelte similarity index 100% rename from packages/svelte-query/tests/createMutation/FailureExample.svelte rename to packages/svelte-query/tests/createMutation/Failure.svelte diff --git a/packages/svelte-query/tests/createMutation/ResetExample.svelte b/packages/svelte-query/tests/createMutation/Reset.svelte similarity index 100% rename from packages/svelte-query/tests/createMutation/ResetExample.svelte rename to packages/svelte-query/tests/createMutation/Reset.svelte diff --git a/packages/svelte-query/tests/createMutation/SuccessExample.svelte b/packages/svelte-query/tests/createMutation/Success.svelte similarity index 100% rename from packages/svelte-query/tests/createMutation/SuccessExample.svelte rename to packages/svelte-query/tests/createMutation/Success.svelte diff --git a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts index 140cb91c81d..9367bed000f 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts @@ -5,9 +5,9 @@ import { QueryClient } from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' import { createMutation } from '../../src/index.js' import { withEffectRoot } from '../utils.svelte.js' -import ResetExample from './ResetExample.svelte' -import SuccessExample from './SuccessExample.svelte' -import FailureExample from './FailureExample.svelte' +import Reset from './Reset.svelte' +import Success from './Success.svelte' +import Failure from './Failure.svelte' describe('createMutation', () => { let queryClient: QueryClient @@ -23,7 +23,7 @@ describe('createMutation', () => { }) test('should be able to reset `error`', async () => { - const rendered = render(ResetExample, { + const rendered = render(Reset, { props: { queryClient }, }) @@ -42,7 +42,7 @@ describe('createMutation', () => { const onSuccessMock = vi.fn() const onSettledMock = vi.fn() - const rendered = render(SuccessExample, { + const rendered = render(Success, { props: { queryClient, onSuccessMock, @@ -80,7 +80,7 @@ describe('createMutation', () => { mutationFn.mockImplementation((value) => sleep(10).then(() => value)) - const rendered = render(FailureExample, { + const rendered = render(Failure, { props: { queryClient, mutationFn, diff --git a/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte b/packages/svelte-query/tests/createQueries/IsRestoring.svelte similarity index 100% rename from packages/svelte-query/tests/createQueries/IsRestoringExample.svelte rename to packages/svelte-query/tests/createQueries/IsRestoring.svelte diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index a4fd69d6d10..26af47d1c87 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -3,7 +3,7 @@ import { render } from '@testing-library/svelte' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, createQueries } from '../../src/index.js' import { promiseWithResolvers, withEffectRoot } from '../utils.svelte.js' -import IsRestoringExample from './IsRestoringExample.svelte' +import IsRestoring from './IsRestoring.svelte' import type { CreateQueryResult } from '../../src/index.js' describe('createQueries', () => { @@ -273,7 +273,7 @@ describe('createQueries', () => { const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) const queryFn2 = vi.fn(() => sleep(10).then(() => 'data2')) - const rendered = render(IsRestoringExample, { + const rendered = render(IsRestoring, { props: { queryClient, queryFn1, queryFn2 }, }) @@ -304,7 +304,7 @@ describe('createQueries', () => { const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) const queryFn2 = vi.fn(() => sleep(20).then(() => 'data2')) - const rendered = render(IsRestoringExample, { + const rendered = render(IsRestoring, { props: { queryClient, queryFn1, queryFn2 }, }) diff --git a/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte b/packages/svelte-query/tests/createQuery/IsRestoring.svelte similarity index 100% rename from packages/svelte-query/tests/createQuery/IsRestoringExample.svelte rename to packages/svelte-query/tests/createQuery/IsRestoring.svelte diff --git a/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts index 15b038a8654..1b002dec930 100644 --- a/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts +++ b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts @@ -12,7 +12,7 @@ import { import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, createQuery, keepPreviousData } from '../../src/index.js' import { promiseWithResolvers, withEffectRoot } from '../utils.svelte.js' -import IsRestoringExample from './IsRestoringExample.svelte' +import IsRestoring from './IsRestoring.svelte' import type { CreateQueryResult, QueryCache } from '../../src/index.js' describe('createQuery', () => { @@ -1923,7 +1923,7 @@ describe('createQuery', () => { it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { const queryFn = vi.fn(() => sleep(10).then(() => 'data')) - const rendered = render(IsRestoringExample, { + const rendered = render(IsRestoring, { props: { queryClient, queryFn }, }) diff --git a/packages/svelte-query/tests/mutationOptions/BaseExample.svelte b/packages/svelte-query/tests/mutationOptions/Base.svelte similarity index 100% rename from packages/svelte-query/tests/mutationOptions/BaseExample.svelte rename to packages/svelte-query/tests/mutationOptions/Base.svelte diff --git a/packages/svelte-query/tests/mutationOptions/MultiExample.svelte b/packages/svelte-query/tests/mutationOptions/Multi.svelte similarity index 100% rename from packages/svelte-query/tests/mutationOptions/MultiExample.svelte rename to packages/svelte-query/tests/mutationOptions/Multi.svelte diff --git a/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts b/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts index 36c0da27de4..be577f503ce 100644 --- a/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts +++ b/packages/svelte-query/tests/mutationOptions/mutationOptions.svelte.test.ts @@ -3,8 +3,8 @@ import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import { queryKey, sleep } from '@tanstack/query-test-utils' import { mutationOptions } from '../../src/index.js' -import BaseExample from './BaseExample.svelte' -import MultiExample from './MultiExample.svelte' +import Base from './Base.svelte' +import Multi from './Multi.svelte' describe('mutationOptions', () => { let queryClient: QueryClient @@ -43,7 +43,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(50).then(() => 'data'), }) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, mutationOpts: () => mutationOpts }, }) @@ -61,7 +61,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(50).then(() => 'data'), }) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, mutationOpts: () => mutationOpts }, }) @@ -84,7 +84,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(50).then(() => 'data2'), }) - const rendered = render(MultiExample, { + const rendered = render(Multi, { props: { queryClient, mutationOpts1: () => mutationOpts1, @@ -112,7 +112,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(50).then(() => 'data2'), }) - const rendered = render(MultiExample, { + const rendered = render(Multi, { props: { queryClient, mutationOpts1: () => mutationOpts1, @@ -138,7 +138,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(500).then(() => 'data'), }) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, mutationOpts: () => mutationOpts, @@ -160,7 +160,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(500).then(() => 'data'), }) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, mutationOpts: () => mutationOpts }, }) @@ -183,7 +183,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(500).then(() => 'data2'), }) - const rendered = render(MultiExample, { + const rendered = render(Multi, { props: { queryClient, mutationOpts1: () => mutationOpts1, @@ -211,7 +211,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(500).then(() => 'data2'), }) - const rendered = render(MultiExample, { + const rendered = render(Multi, { props: { queryClient, mutationOpts1: () => mutationOpts1, @@ -237,7 +237,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 'data'), }) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, mutationOpts: () => mutationOpts, @@ -262,7 +262,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 'data'), }) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, mutationOpts: () => mutationOpts, @@ -289,7 +289,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 'data2'), }) - const rendered = render(MultiExample, { + const rendered = render(Multi, { props: { queryClient, mutationOpts1: () => mutationOpts1, @@ -320,7 +320,7 @@ describe('mutationOptions', () => { mutationFn: () => sleep(10).then(() => 'data2'), }) - const rendered = render(MultiExample, { + const rendered = render(Multi, { props: { queryClient, mutationOpts1: () => mutationOpts1, diff --git a/packages/svelte-query/tests/useIsFetching/BaseExample.svelte b/packages/svelte-query/tests/useIsFetching/Base.svelte similarity index 100% rename from packages/svelte-query/tests/useIsFetching/BaseExample.svelte rename to packages/svelte-query/tests/useIsFetching/Base.svelte diff --git a/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts b/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts index 01969664333..5357b004048 100644 --- a/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts +++ b/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' -import BaseExample from './BaseExample.svelte' +import Base from './Base.svelte' describe('useIsFetching', () => { let queryClient: QueryClient @@ -17,7 +17,7 @@ describe('useIsFetching', () => { }) test('should update as queries start and stop fetching', async () => { - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient }, }) diff --git a/packages/svelte-query/tests/useIsMutating/BaseExample.svelte b/packages/svelte-query/tests/useIsMutating/Base.svelte similarity index 100% rename from packages/svelte-query/tests/useIsMutating/BaseExample.svelte rename to packages/svelte-query/tests/useIsMutating/Base.svelte diff --git a/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts b/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts index cec67dc0579..87c7f397ec2 100644 --- a/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts +++ b/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' -import BaseExample from './BaseExample.svelte' +import Base from './Base.svelte' describe('useIsMutating', () => { let queryClient: QueryClient @@ -17,7 +17,7 @@ describe('useIsMutating', () => { }) test('should update as queries start and stop mutating', async () => { - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient }, }) diff --git a/packages/svelte-query/tests/useMutationState/BaseExample.svelte b/packages/svelte-query/tests/useMutationState/Base.svelte similarity index 100% rename from packages/svelte-query/tests/useMutationState/BaseExample.svelte rename to packages/svelte-query/tests/useMutationState/Base.svelte diff --git a/packages/svelte-query/tests/useMutationState/SelectExample.svelte b/packages/svelte-query/tests/useMutationState/Select.svelte similarity index 100% rename from packages/svelte-query/tests/useMutationState/SelectExample.svelte rename to packages/svelte-query/tests/useMutationState/Select.svelte diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts index d32f28eff5d..f5e2c464116 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts @@ -2,8 +2,8 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import { queryKey, sleep } from '@tanstack/query-test-utils' -import BaseExample from './BaseExample.svelte' -import SelectExample from './SelectExample.svelte' +import Base from './Base.svelte' +import Select from './Select.svelte' import type { Mutation } from '@tanstack/query-core' describe('useMutationState', () => { @@ -29,7 +29,7 @@ describe('useMutationState', () => { sleep(20).then(() => Promise.reject(new Error('error'))), ) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, successMutationOpts: () => ({ @@ -64,7 +64,7 @@ describe('useMutationState', () => { sleep(20).then(() => Promise.reject(new Error('error'))), ) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, successMutationOpts: () => ({ @@ -95,7 +95,7 @@ describe('useMutationState', () => { test('should return selected value when using select option', async () => { const mutationKey = queryKey() - const rendered = render(SelectExample, { + const rendered = render(Select, { props: { queryClient, mutationOpts: () => ({ @@ -129,7 +129,7 @@ describe('useMutationState', () => { sleep(20).then(() => Promise.reject(new Error('error'))), ) - const rendered = render(BaseExample, { + const rendered = render(Base, { props: { queryClient, successMutationOpts: () => ({ From ffa4164af0b64ecbb820f09763cc49647691876c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 01:02:25 +0900 Subject: [PATCH 109/414] test({react,preact}-query): add type tests for 'useMutation' (#10482) * test(react-query/useMutation): add type tests for 'useMutation' * test(preact-query/useMutation): add type tests for 'useMutation' --- .../src/__tests__/useMutation.test-d.tsx | 138 ++++++++++++++++++ .../src/__tests__/useMutation.test-d.tsx | 138 ++++++++++++++++++ 2 files changed, 276 insertions(+) create mode 100644 packages/preact-query/src/__tests__/useMutation.test-d.tsx create mode 100644 packages/react-query/src/__tests__/useMutation.test-d.tsx diff --git a/packages/preact-query/src/__tests__/useMutation.test-d.tsx b/packages/preact-query/src/__tests__/useMutation.test-d.tsx new file mode 100644 index 00000000000..7b7a5806058 --- /dev/null +++ b/packages/preact-query/src/__tests__/useMutation.test-d.tsx @@ -0,0 +1,138 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { useMutation } from '../useMutation' +import type { DefaultError } from '@tanstack/query-core' +import type { UseMutationResult } from '../types' + +describe('useMutation', () => { + it('should infer TData from mutationFn return type', () => { + const mutation = useMutation({ + mutationFn: () => Promise.resolve('data'), + }) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should infer TVariables from mutationFn parameter', () => { + const mutation = useMutation({ + mutationFn: (vars: { id: string }) => Promise.resolve(vars.id), + }) + + expectTypeOf(mutation.mutate).toBeCallableWith({ id: '1' }) + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer TOnMutateResult from onMutate return type', () => { + useMutation({ + mutationFn: () => Promise.resolve('data'), + onMutate: () => { + return { token: 'abc' } + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf<{ token: string }>() + }, + onError: (_error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { token: string } | undefined + >() + }, + }) + }) + + it('should allow explicit generic types', () => { + const mutation = useMutation({ + mutationFn: (vars) => { + expectTypeOf(vars).toEqualTypeOf<{ id: number }>() + return Promise.resolve('result') + }, + }) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should return correct UseMutationResult type', () => { + const mutation = useMutation({ + mutationFn: () => Promise.resolve(42), + }) + + expectTypeOf(mutation).toEqualTypeOf< + UseMutationResult + >() + }) + + it('should type mutateAsync with correct return type', () => { + const mutation = useMutation({ + mutationFn: (id: string) => Promise.resolve(id.length), + }) + + expectTypeOf(mutation.mutateAsync).toBeCallableWith('test') + expectTypeOf(mutation.mutateAsync('test')).toEqualTypeOf>() + }) + + it('should default TVariables to void when mutationFn has no parameters', () => { + const mutation = useMutation({ + mutationFn: () => Promise.resolve('data'), + }) + + expectTypeOf(mutation.mutate).toBeCallableWith() + }) + + it('should infer custom TError type', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + const mutation = useMutation({ + mutationFn: () => Promise.resolve('data'), + }) + + expectTypeOf(mutation.error).toEqualTypeOf() + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer types for onSettled callback', () => { + useMutation({ + mutationFn: () => Promise.resolve(42), + onSettled: (data, error, _variables, _onMutateResult) => { + expectTypeOf(data).toEqualTypeOf() + expectTypeOf(error).toEqualTypeOf() + }, + }) + }) + + it('should infer custom TError in onError callback', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + useMutation({ + mutationFn: () => Promise.resolve('data'), + onError: (error) => { + expectTypeOf(error).toEqualTypeOf() + }, + }) + }) + + it('should accept queryClient as second argument', () => { + const queryClient = new QueryClient() + + const mutation = useMutation( + { + mutationFn: () => Promise.resolve('data'), + }, + queryClient, + ) + + expectTypeOf(mutation.data).toEqualTypeOf() + }) +}) diff --git a/packages/react-query/src/__tests__/useMutation.test-d.tsx b/packages/react-query/src/__tests__/useMutation.test-d.tsx new file mode 100644 index 00000000000..7b7a5806058 --- /dev/null +++ b/packages/react-query/src/__tests__/useMutation.test-d.tsx @@ -0,0 +1,138 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { useMutation } from '../useMutation' +import type { DefaultError } from '@tanstack/query-core' +import type { UseMutationResult } from '../types' + +describe('useMutation', () => { + it('should infer TData from mutationFn return type', () => { + const mutation = useMutation({ + mutationFn: () => Promise.resolve('data'), + }) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should infer TVariables from mutationFn parameter', () => { + const mutation = useMutation({ + mutationFn: (vars: { id: string }) => Promise.resolve(vars.id), + }) + + expectTypeOf(mutation.mutate).toBeCallableWith({ id: '1' }) + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer TOnMutateResult from onMutate return type', () => { + useMutation({ + mutationFn: () => Promise.resolve('data'), + onMutate: () => { + return { token: 'abc' } + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf<{ token: string }>() + }, + onError: (_error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { token: string } | undefined + >() + }, + }) + }) + + it('should allow explicit generic types', () => { + const mutation = useMutation({ + mutationFn: (vars) => { + expectTypeOf(vars).toEqualTypeOf<{ id: number }>() + return Promise.resolve('result') + }, + }) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should return correct UseMutationResult type', () => { + const mutation = useMutation({ + mutationFn: () => Promise.resolve(42), + }) + + expectTypeOf(mutation).toEqualTypeOf< + UseMutationResult + >() + }) + + it('should type mutateAsync with correct return type', () => { + const mutation = useMutation({ + mutationFn: (id: string) => Promise.resolve(id.length), + }) + + expectTypeOf(mutation.mutateAsync).toBeCallableWith('test') + expectTypeOf(mutation.mutateAsync('test')).toEqualTypeOf>() + }) + + it('should default TVariables to void when mutationFn has no parameters', () => { + const mutation = useMutation({ + mutationFn: () => Promise.resolve('data'), + }) + + expectTypeOf(mutation.mutate).toBeCallableWith() + }) + + it('should infer custom TError type', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + const mutation = useMutation({ + mutationFn: () => Promise.resolve('data'), + }) + + expectTypeOf(mutation.error).toEqualTypeOf() + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer types for onSettled callback', () => { + useMutation({ + mutationFn: () => Promise.resolve(42), + onSettled: (data, error, _variables, _onMutateResult) => { + expectTypeOf(data).toEqualTypeOf() + expectTypeOf(error).toEqualTypeOf() + }, + }) + }) + + it('should infer custom TError in onError callback', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + useMutation({ + mutationFn: () => Promise.resolve('data'), + onError: (error) => { + expectTypeOf(error).toEqualTypeOf() + }, + }) + }) + + it('should accept queryClient as second argument', () => { + const queryClient = new QueryClient() + + const mutation = useMutation( + { + mutationFn: () => Promise.resolve('data'), + }, + queryClient, + ) + + expectTypeOf(mutation.data).toEqualTypeOf() + }) +}) From 9bd8b25ef24e48a916d7a61be6ca87c1e366602a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 01:45:30 +0900 Subject: [PATCH 110/414] test({react,preact}-query/useMutation): add 'throwOnError' false case tests (#10485) --- .../src/__tests__/useMutation.test.tsx | 77 +++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 77 +++++++++++++++++++ 2 files changed, 154 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index f060c496f08..9ff5a41c318 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -783,6 +783,83 @@ describe('useMutation', () => { consoleMock.mockRestore() }) + it('should not throw an error when throwOnError is set to false', async () => { + function Page() { + const { mutate, error } = useMutation({ + mutationFn: () => + sleep(10).then(() => { + throw new Error('Expected mock error') + }), + throwOnError: false, + }) + + return ( +
+ +
error: {error?.message ?? 'null'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('error: Expected mock error')).toBeInTheDocument() + }) + + it('should not throw an error when throwOnError is a function that returns false', async () => { + function Page() { + const { mutate, error } = useMutation({ + mutationFn: () => + sleep(10).then(() => { + throw new Error('Expected mock error') + }), + throwOnError: () => false, + }) + + return ( +
+ +
error: {error?.message ?? 'null'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('error: Expected mock error')).toBeInTheDocument() + }) + + it('should not throw an error when throwOnError is not set', async () => { + function Page() { + const { mutate, error } = useMutation({ + mutationFn: () => + sleep(10).then(() => { + throw new Error('Expected mock error') + }), + }) + + return ( +
+ +
error: {error?.message ?? 'null'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('error: Expected mock error')).toBeInTheDocument() + }) + it('should pass meta to mutation', async () => { const errorMock = vi.fn() const successMock = vi.fn() diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 821a4571afb..d181df692c8 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -782,6 +782,83 @@ describe('useMutation', () => { consoleMock.mockRestore() }) + it('should not throw an error when throwOnError is set to false', async () => { + function Page() { + const { mutate, error } = useMutation({ + mutationFn: () => + sleep(10).then(() => { + throw new Error('Expected mock error') + }), + throwOnError: false, + }) + + return ( +
+ +
error: {error?.message ?? 'null'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('error: Expected mock error')).toBeInTheDocument() + }) + + it('should not throw an error when throwOnError is a function that returns false', async () => { + function Page() { + const { mutate, error } = useMutation({ + mutationFn: () => + sleep(10).then(() => { + throw new Error('Expected mock error') + }), + throwOnError: () => false, + }) + + return ( +
+ +
error: {error?.message ?? 'null'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('error: Expected mock error')).toBeInTheDocument() + }) + + it('should not throw an error when throwOnError is not set', async () => { + function Page() { + const { mutate, error } = useMutation({ + mutationFn: () => + sleep(10).then(() => { + throw new Error('Expected mock error') + }), + }) + + return ( +
+ +
error: {error?.message ?? 'null'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('error: Expected mock error')).toBeInTheDocument() + }) + it('should pass meta to mutation', async () => { const errorMock = vi.fn() const successMock = vi.fn() From 224c07388b5b857d832cffe31506c64f02a9de31 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 02:03:27 +0900 Subject: [PATCH 111/414] test({react,preact}-query/useMutation): add 'mutate' callback override tests (#10486) --- .../src/__tests__/useMutation.test.tsx | 91 +++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 91 +++++++++++++++++++ 2 files changed, 182 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index 9ff5a41c318..a981e73c665 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -365,6 +365,97 @@ describe('useMutation', () => { ]) }) + it('should be able to override the error callbacks when using mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => Promise.reject(new Error('oops'))), + onError: () => { + callbacks.push('useMutation.onError') + }, + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onError', + 'useMutation.onSettled', + 'mutate.onError', + 'mutate.onSettled', + ]) + }) + + it('should be able to override the settled callbacks when using mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSuccess: () => { + callbacks.push('useMutation.onSuccess') + }, + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onSuccess', + 'useMutation.onSettled', + 'mutate.onSuccess', + 'mutate.onSettled', + ]) + }) + it('should be able to use mutation defaults', async () => { const key = queryKey() diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index d181df692c8..12f001f85bc 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -364,6 +364,97 @@ describe('useMutation', () => { ]) }) + it('should be able to override the error callbacks when using mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => Promise.reject(new Error('oops'))), + onError: () => { + callbacks.push('useMutation.onError') + }, + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onError', + 'useMutation.onSettled', + 'mutate.onError', + 'mutate.onSettled', + ]) + }) + + it('should be able to override the settled callbacks when using mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSuccess: () => { + callbacks.push('useMutation.onSuccess') + }, + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onSuccess', + 'useMutation.onSettled', + 'mutate.onSuccess', + 'mutate.onSettled', + ]) + }) + it('should be able to use mutation defaults', async () => { const key = queryKey() From eccac7cfdfa6798e427c5c842f8d171613827312 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 02:27:49 +0900 Subject: [PATCH 112/414] test({react,preact}-query/useMutation): add single callback tests for 'onSuccess', 'onError', and 'onSettled' (#10487) * test({react,preact}-query/useMutation): add single callback tests for 'onSuccess', 'onError', and 'onSettled' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useMutation.test.tsx | 105 ++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 105 ++++++++++++++++++ 2 files changed, 210 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index a981e73c665..39e56cc3c5a 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -264,6 +264,111 @@ describe('useMutation', () => { ) }) + it('should be able to call `onSuccess` callback after successful mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSuccess: () => { + callbacks.push('useMutation.onSuccess') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onSuccess', 'mutate.onSuccess']) + }) + + it('should be able to call `onError` callback after failed mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + onError: () => { + callbacks.push('useMutation.onError') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onError', 'mutate.onError']) + }) + + it('should be able to call `onSettled` callback after mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onSettled', 'mutate.onSettled']) + }) + it('should be able to override the useMutation success callbacks', async () => { const callbacks: Array = [] diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 12f001f85bc..b8deb78eed9 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -263,6 +263,111 @@ describe('useMutation', () => { ) }) + it('should be able to call `onSuccess` callback after successful mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSuccess: () => { + callbacks.push('useMutation.onSuccess') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onSuccess', 'mutate.onSuccess']) + }) + + it('should be able to call `onError` callback after failed mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + onError: () => { + callbacks.push('useMutation.onError') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onError', 'mutate.onError']) + }) + + it('should be able to call `onSettled` callback after mutate', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onSettled', 'mutate.onSettled']) + }) + it('should be able to override the useMutation success callbacks', async () => { const callbacks: Array = [] From 1b661b34ec5d1df00b4b0a2c084efbd486e73899 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 02:54:52 +0900 Subject: [PATCH 113/414] test({react,preact}-query/useMutation): add single callback tests for 'mutateAsync' (#10488) * test({react,preact}-query/useMutation): add single callback tests for 'mutateAsync' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useMutation.test.tsx | 104 ++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 104 ++++++++++++++++++ 2 files changed, 208 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index 39e56cc3c5a..ff95c827e34 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -369,6 +369,110 @@ describe('useMutation', () => { expect(callbacks).toEqual(['useMutation.onSettled', 'mutate.onSettled']) }) + it('should be able to call `onSuccess` callback after successful mutateAsync', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSuccess: () => { + callbacks.push('useMutation.onSuccess') + }, + }) + + useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSuccess: () => { + callbacks.push('mutateAsync.onSuccess') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onSuccess', + 'mutateAsync.onSuccess', + ]) + }) + + it('should be able to call `onError` callback after failed mutateAsync', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + onError: () => { + callbacks.push('useMutation.onError') + }, + }) + + useEffect(() => { + setActTimeout(async () => { + try { + await mutateAsync('todo', { + onError: () => { + callbacks.push('mutateAsync.onError') + }, + }) + } catch {} + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onError', 'mutateAsync.onError']) + }) + + it('should be able to call `onSettled` callback after mutateAsync', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onSettled', + 'mutateAsync.onSettled', + ]) + }) + it('should be able to override the useMutation success callbacks', async () => { const callbacks: Array = [] diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index b8deb78eed9..4e077e89576 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -368,6 +368,110 @@ describe('useMutation', () => { expect(callbacks).toEqual(['useMutation.onSettled', 'mutate.onSettled']) }) + it('should be able to call `onSuccess` callback after successful mutateAsync', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSuccess: () => { + callbacks.push('useMutation.onSuccess') + }, + }) + + React.useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSuccess: () => { + callbacks.push('mutateAsync.onSuccess') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onSuccess', + 'mutateAsync.onSuccess', + ]) + }) + + it('should be able to call `onError` callback after failed mutateAsync', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + onError: () => { + callbacks.push('useMutation.onError') + }, + }) + + React.useEffect(() => { + setActTimeout(async () => { + try { + await mutateAsync('todo', { + onError: () => { + callbacks.push('mutateAsync.onError') + }, + }) + } catch {} + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['useMutation.onError', 'mutateAsync.onError']) + }) + + it('should be able to call `onSettled` callback after mutateAsync', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + onSettled: () => { + callbacks.push('useMutation.onSettled') + }, + }) + + React.useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'useMutation.onSettled', + 'mutateAsync.onSettled', + ]) + }) + it('should be able to override the useMutation success callbacks', async () => { const callbacks: Array = [] From 792d3a5b32ee90b13f44456bb50518d24e9550d5 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 03:26:49 +0900 Subject: [PATCH 114/414] test({react,preact}-query/useMutation): add callback tests when 'useMutation' has no callbacks (#10489) * test({react,preact}-query/useMutation): add callback tests when 'useMutation' has no callbacks * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useMutation.test.tsx | 326 ++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 326 ++++++++++++++++++ 2 files changed, 652 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index ff95c827e34..ede7c346225 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -100,6 +100,332 @@ describe('useMutation', () => { expect(queryByRole('heading')).toBeNull() }) + it('should call mutate callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onSuccess', 'mutate.onSettled']) + }) + + it('should call mutateAsync callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSuccess: () => { + callbacks.push('mutateAsync.onSuccess') + }, + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'mutateAsync.onSuccess', + 'mutateAsync.onSettled', + ]) + }) + + it('should call mutate error callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onError', 'mutate.onSettled']) + }) + + it('should call mutateAsync error callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + useEffect(() => { + setActTimeout(async () => { + try { + await mutateAsync('todo', { + onError: () => { + callbacks.push('mutateAsync.onError') + }, + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + } catch {} + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onError', 'mutateAsync.onSettled']) + }) + + it('should call only mutate onSuccess when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onSuccess']) + }) + + it('should call only mutate onError when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onError']) + }) + + it('should call only mutate onSettled when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onSettled']) + }) + + it('should call only mutateAsync onSuccess when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSuccess: () => { + callbacks.push('mutateAsync.onSuccess') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onSuccess']) + }) + + it('should call only mutateAsync onError when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + useEffect(() => { + setActTimeout(async () => { + try { + await mutateAsync('todo', { + onError: () => { + callbacks.push('mutateAsync.onError') + }, + }) + } catch {} + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onError']) + }) + + it('should call only mutateAsync onSettled when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onSettled']) + }) + it('should be able to call `onSuccess` and `onSettled` after each successful mutate', async () => { let count = 0 const onSuccessMock = vi.fn() diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 4e077e89576..211bcf06af7 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -99,6 +99,332 @@ describe('useMutation', () => { expect(queryByRole('heading')).toBeNull() }) + it('should call mutate callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onSuccess', 'mutate.onSettled']) + }) + + it('should call mutateAsync callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + React.useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSuccess: () => { + callbacks.push('mutateAsync.onSuccess') + }, + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual([ + 'mutateAsync.onSuccess', + 'mutateAsync.onSettled', + ]) + }) + + it('should call mutate error callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onError', 'mutate.onSettled']) + }) + + it('should call mutateAsync error callbacks when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + React.useEffect(() => { + setActTimeout(async () => { + try { + await mutateAsync('todo', { + onError: () => { + callbacks.push('mutateAsync.onError') + }, + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + } catch {} + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onError', 'mutateAsync.onSettled']) + }) + + it('should call only mutate onSuccess when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onSuccess']) + }) + + it('should call only mutate onError when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onError']) + }) + + it('should call only mutate onSettled when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutate } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + return ( + + ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutate.onSettled']) + }) + + it('should call only mutateAsync onSuccess when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + React.useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSuccess: () => { + callbacks.push('mutateAsync.onSuccess') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onSuccess']) + }) + + it('should call only mutateAsync onError when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: async (_text: string) => + sleep(10).then(() => { + throw new Error('oops') + }), + }) + + React.useEffect(() => { + setActTimeout(async () => { + try { + await mutateAsync('todo', { + onError: () => { + callbacks.push('mutateAsync.onError') + }, + }) + } catch {} + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onError']) + }) + + it('should call only mutateAsync onSettled when useMutation has no callbacks', async () => { + const callbacks: Array = [] + + function Page() { + const { mutateAsync } = useMutation({ + mutationFn: (text: string) => sleep(10).then(() => text), + }) + + React.useEffect(() => { + setActTimeout(async () => { + await mutateAsync('todo', { + onSettled: () => { + callbacks.push('mutateAsync.onSettled') + }, + }) + }, 0) + }, [mutateAsync]) + + return null + } + + renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(10) + + expect(callbacks).toEqual(['mutateAsync.onSettled']) + }) + it('should be able to call `onSuccess` and `onSettled` after each successful mutate', async () => { let count = 0 const onSuccessMock = vi.fn() From 6e15fe62d2551b5269b21a1522f3c7bd653808ba Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 04:01:03 +0900 Subject: [PATCH 115/414] test({react,preact}-query/useMutation): add chained 'mutateAsync' tests for sequential mutation calls (#10490) * test({react,preact}-query/useMutation): add chained 'mutateAsync' tests for sequential mutation calls * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useMutation.test.tsx | 86 +++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 86 +++++++++++++++++++ 2 files changed, 172 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index ede7c346225..21384391cb7 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -1893,4 +1893,90 @@ describe('useMutation', () => { rendered.getByText('data: custom client, status: success'), ).toBeInTheDocument() }) + + it('should be able to chain mutateAsync calls sequentially', async () => { + function Page() { + const [result, setResult] = useState('idle') + + const createUserMutation = useMutation({ + mutationFn: (name: string) => sleep(10).then(() => ({ id: '1', name })), + }) + + const updateProfileMutation = useMutation({ + mutationFn: (userId: string) => + sleep(10).then(() => `profile updated for ${userId}`), + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /chain/i })) + await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('result: profile updated for 1'), + ).toBeInTheDocument() + }) + + it('should handle error in chained mutateAsync calls', async () => { + function Page() { + const [result, setResult] = useState('idle') + + const createUserMutation = useMutation({ + mutationFn: (_name: string) => + sleep(10).then<{ id: string }>(() => { + throw new Error('create failed') + }), + }) + + const updateProfileMutation = useMutation({ + mutationFn: (userId: string) => + sleep(10).then(() => `profile updated for ${userId}`), + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /chain/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('result: error: create failed'), + ).toBeInTheDocument() + }) }) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 211bcf06af7..fa21f16e588 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -1892,4 +1892,90 @@ describe('useMutation', () => { rendered.getByText('data: custom client, status: success'), ).toBeInTheDocument() }) + + it('should be able to chain mutateAsync calls sequentially', async () => { + function Page() { + const [result, setResult] = React.useState('idle') + + const createUserMutation = useMutation({ + mutationFn: (name: string) => sleep(10).then(() => ({ id: '1', name })), + }) + + const updateProfileMutation = useMutation({ + mutationFn: (userId: string) => + sleep(10).then(() => `profile updated for ${userId}`), + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /chain/i })) + await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('result: profile updated for 1'), + ).toBeInTheDocument() + }) + + it('should handle error in chained mutateAsync calls', async () => { + function Page() { + const [result, setResult] = React.useState('idle') + + const createUserMutation = useMutation({ + mutationFn: (_name: string) => + sleep(10).then<{ id: string }>(() => { + throw new Error('create failed') + }), + }) + + const updateProfileMutation = useMutation({ + mutationFn: (userId: string) => + sleep(10).then(() => `profile updated for ${userId}`), + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /chain/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('result: error: create failed'), + ).toBeInTheDocument() + }) }) From cd89d6f706bd143382db5ae3807ed8644ec52afe Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 04:22:42 +0900 Subject: [PATCH 116/414] test({react,preact}-query/useMutation): add conditional handling and retry tests using 'mutate' callbacks (#10491) * test({react,preact}-query/useMutation): add conditional handling and retry tests using 'mutate' callbacks * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useMutation.test.tsx | 109 ++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 109 ++++++++++++++++++ 2 files changed, 218 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index 21384391cb7..285c47cff45 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -1979,4 +1979,113 @@ describe('useMutation', () => { rendered.getByText('result: error: create failed'), ).toBeInTheDocument() }) + + it('should handle conditional logic based on mutate success or failure', async () => { + function Page() { + const [message, setMessage] = useState('idle') + + const submitMutation = useMutation({ + mutationFn: async (shouldFail: boolean) => { + await sleep(10) + if (shouldFail) { + throw new Error('submission failed') + } + return 'submitted successfully' + }, + retry: false, + }) + + return ( +
+ + +
message: {message}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /^submit$/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('message: success: submitted successfully'), + ).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /submit fail/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('message: error: submission failed'), + ).toBeInTheDocument() + }) + + it('should handle conditional error with retry using mutate', async () => { + let attempt = 0 + + function Page() { + const [message, setMessage] = useState('idle') + + const submitMutation = useMutation({ + mutationFn: async () => { + await sleep(10) + attempt++ + if (attempt < 2) { + throw new Error('temporary failure') + } + return 'success' + }, + retry: false, + }) + + return ( +
+ +
message: {message}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /submit/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('message: failed, retrying...'), + ).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /submit/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('message: result: success')).toBeInTheDocument() + }) }) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index fa21f16e588..cf24c29ebd9 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -1978,4 +1978,113 @@ describe('useMutation', () => { rendered.getByText('result: error: create failed'), ).toBeInTheDocument() }) + + it('should handle conditional logic based on mutate success or failure', async () => { + function Page() { + const [message, setMessage] = React.useState('idle') + + const submitMutation = useMutation({ + mutationFn: async (shouldFail: boolean) => { + await sleep(10) + if (shouldFail) { + throw new Error('submission failed') + } + return 'submitted successfully' + }, + retry: false, + }) + + return ( +
+ + +
message: {message}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /^submit$/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('message: success: submitted successfully'), + ).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /submit fail/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('message: error: submission failed'), + ).toBeInTheDocument() + }) + + it('should handle conditional error with retry using mutate', async () => { + let attempt = 0 + + function Page() { + const [message, setMessage] = React.useState('idle') + + const submitMutation = useMutation({ + mutationFn: async () => { + await sleep(10) + attempt++ + if (attempt < 2) { + throw new Error('temporary failure') + } + return 'success' + }, + retry: false, + }) + + return ( +
+ +
message: {message}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /submit/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('message: failed, retrying...'), + ).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /submit/i })) + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByText('message: result: success')).toBeInTheDocument() + }) }) From d7643b54fda462492d474695cd35e2549cefa5d7 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 04:41:28 +0900 Subject: [PATCH 117/414] test({react,preact}-query/useMutation): add optimistic update tests with success and rollback on error (#10492) --- .../src/__tests__/useMutation.test.tsx | 119 ++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 119 ++++++++++++++++++ 2 files changed, 238 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index 285c47cff45..48ed686fb6a 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -2088,4 +2088,123 @@ describe('useMutation', () => { expect(rendered.getByText('message: result: success')).toBeInTheDocument() }) + + it('should support optimistic update on success', async () => { + function Page() { + const [items, setItems] = useState>([ + 'item1', + 'item2', + 'item3', + ]) + + const [successMessage, setSuccessMessage] = useState('') + + const deleteMutation = useMutation({ + mutationFn: (item: string) => sleep(10).then(() => item), + onMutate: (item) => { + const previousItems = [...items] + setItems((prev) => prev.filter((i) => i !== item)) + return { previousItems } + }, + onSuccess: (deletedItem) => { + setSuccessMessage(`deleted: ${deletedItem}`) + }, + onError: (_error, _item, context) => { + if (context?.previousItems) { + setItems(context.previousItems) + } + }, + }) + + return ( +
+ {items.map((item) => ( + + ))} +
items: {items.join(', ')}
+
success: {successMessage || 'none'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() + expect(rendered.getByText('success: none')).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /delete item2/i })) + + // optimistic update: item2 removed immediately + expect(rendered.getByText('items: item1, item3')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + + // success: item2 stays removed and onSuccess called + expect(rendered.getByText('items: item1, item3')).toBeInTheDocument() + expect(rendered.getByText('success: deleted: item2')).toBeInTheDocument() + }) + + it('should support optimistic update and rollback on error', async () => { + function Page() { + const [items, setItems] = useState>([ + 'item1', + 'item2', + 'item3', + ]) + + const [message, setMessage] = useState('') + + const deleteMutation = useMutation({ + mutationFn: (item: string) => + sleep(10).then(() => { + throw new Error(`Failed to delete ${item}`) + }), + onMutate: (item) => { + const previousItems = [...items] + setItems((prev) => prev.filter((i) => i !== item)) + return { previousItems } + }, + onSuccess: (deletedItem) => { + setMessage(`deleted: ${deletedItem}`) + }, + onError: (_error, _item, context) => { + setMessage('rollback') + if (context?.previousItems) { + setItems(context.previousItems) + } + }, + retry: false, + }) + + return ( +
+ {items.map((item) => ( + + ))} +
items: {items.join(', ')}
+
message: {message || 'none'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() + expect(rendered.getByText('message: none')).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /delete item2/i })) + + // optimistic update: item2 removed immediately + expect(rendered.getByText('items: item1, item3')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + + // rollback: item2 restored after error, onSuccess not called + expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() + expect(rendered.getByText('message: rollback')).toBeInTheDocument() + }) }) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index cf24c29ebd9..8fbf481e980 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -2087,4 +2087,123 @@ describe('useMutation', () => { expect(rendered.getByText('message: result: success')).toBeInTheDocument() }) + + it('should support optimistic update on success', async () => { + function Page() { + const [items, setItems] = React.useState>([ + 'item1', + 'item2', + 'item3', + ]) + + const [successMessage, setSuccessMessage] = React.useState('') + + const deleteMutation = useMutation({ + mutationFn: (item: string) => sleep(10).then(() => item), + onMutate: (item) => { + const previousItems = [...items] + setItems((prev) => prev.filter((i) => i !== item)) + return { previousItems } + }, + onSuccess: (deletedItem) => { + setSuccessMessage(`deleted: ${deletedItem}`) + }, + onError: (_error, _item, context) => { + if (context?.previousItems) { + setItems(context.previousItems) + } + }, + }) + + return ( +
+ {items.map((item) => ( + + ))} +
items: {items.join(', ')}
+
success: {successMessage || 'none'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() + expect(rendered.getByText('success: none')).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /delete item2/i })) + + // optimistic update: item2 removed immediately + expect(rendered.getByText('items: item1, item3')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + + // success: item2 stays removed and onSuccess called + expect(rendered.getByText('items: item1, item3')).toBeInTheDocument() + expect(rendered.getByText('success: deleted: item2')).toBeInTheDocument() + }) + + it('should support optimistic update and rollback on error', async () => { + function Page() { + const [items, setItems] = React.useState>([ + 'item1', + 'item2', + 'item3', + ]) + + const [message, setMessage] = React.useState('') + + const deleteMutation = useMutation({ + mutationFn: (item: string) => + sleep(10).then(() => { + throw new Error(`Failed to delete ${item}`) + }), + onMutate: (item) => { + const previousItems = [...items] + setItems((prev) => prev.filter((i) => i !== item)) + return { previousItems } + }, + onSuccess: (deletedItem) => { + setMessage(`deleted: ${deletedItem}`) + }, + onError: (_error, _item, context) => { + setMessage('rollback') + if (context?.previousItems) { + setItems(context.previousItems) + } + }, + retry: false, + }) + + return ( +
+ {items.map((item) => ( + + ))} +
items: {items.join(', ')}
+
message: {message || 'none'}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() + expect(rendered.getByText('message: none')).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /delete item2/i })) + + // optimistic update: item2 removed immediately + expect(rendered.getByText('items: item1, item3')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + + // rollback: item2 restored after error, onSuccess not called + expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() + expect(rendered.getByText('message: rollback')).toBeInTheDocument() + }) }) From aad1bd59d8e1ecebf14f556e0d9ca2605b4e4b80 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 10:04:07 +0900 Subject: [PATCH 118/414] test({react,preact}-query/useMutation): add parallel 'mutateAsync' tests with 'Promise.all' and 'Promise.allSettled' (#10493) * test({react,preact}-query/useMutation): add parallel 'mutateAsync' tests with 'Promise.all' and 'Promise.allSettled' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useMutation.test.tsx | 140 ++++++++++++++++++ .../src/__tests__/useMutation.test.tsx | 140 ++++++++++++++++++ 2 files changed, 280 insertions(+) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index 48ed686fb6a..0fdfd6adb86 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -2207,4 +2207,144 @@ describe('useMutation', () => { expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() expect(rendered.getByText('message: rollback')).toBeInTheDocument() }) + + it('should be able to run multiple mutateAsync calls in parallel with Promise.all', async () => { + function Page() { + const [result, setResult] = useState('idle') + + const { mutateAsync } = useMutation({ + mutationFn: (file: string) => sleep(10).then(() => `uploaded: ${file}`), + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /upload all/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText( + 'result: uploaded: file1, uploaded: file2, uploaded: file3', + ), + ).toBeInTheDocument() + }) + + it('should handle Promise.all rejection when one parallel mutateAsync call fails', async () => { + function Page() { + const [result, setResult] = useState('idle') + + const { mutateAsync } = useMutation({ + mutationFn: async (file: string) => { + await sleep(10) + if (file === 'file2') { + throw new Error('upload failed') + } + return `uploaded: ${file}` + }, + retry: false, + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /upload all/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('result: error: upload failed'), + ).toBeInTheDocument() + }) + + it('should handle partial failure in parallel mutateAsync calls with Promise.allSettled', async () => { + function Page() { + const [result, setResult] = useState('idle') + + const { mutateAsync } = useMutation({ + mutationFn: async (file: string) => { + await sleep(10) + if (file === 'file2') { + throw new Error('upload failed') + } + return `uploaded: ${file}` + }, + retry: false, + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /upload all/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText( + 'result: uploaded: file1, error: upload failed, uploaded: file3', + ), + ).toBeInTheDocument() + }) }) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 8fbf481e980..447b729c536 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -2206,4 +2206,144 @@ describe('useMutation', () => { expect(rendered.getByText('items: item1, item2, item3')).toBeInTheDocument() expect(rendered.getByText('message: rollback')).toBeInTheDocument() }) + + it('should be able to run multiple mutateAsync calls in parallel with Promise.all', async () => { + function Page() { + const [result, setResult] = React.useState('idle') + + const { mutateAsync } = useMutation({ + mutationFn: (file: string) => sleep(10).then(() => `uploaded: ${file}`), + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /upload all/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText( + 'result: uploaded: file1, uploaded: file2, uploaded: file3', + ), + ).toBeInTheDocument() + }) + + it('should handle Promise.all rejection when one parallel mutateAsync call fails', async () => { + function Page() { + const [result, setResult] = React.useState('idle') + + const { mutateAsync } = useMutation({ + mutationFn: async (file: string) => { + await sleep(10) + if (file === 'file2') { + throw new Error('upload failed') + } + return `uploaded: ${file}` + }, + retry: false, + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /upload all/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText('result: error: upload failed'), + ).toBeInTheDocument() + }) + + it('should handle partial failure in parallel mutateAsync calls with Promise.allSettled', async () => { + function Page() { + const [result, setResult] = React.useState('idle') + + const { mutateAsync } = useMutation({ + mutationFn: async (file: string) => { + await sleep(10) + if (file === 'file2') { + throw new Error('upload failed') + } + return `uploaded: ${file}` + }, + retry: false, + }) + + return ( +
+ +
result: {result}
+
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /upload all/i })) + await vi.advanceTimersByTimeAsync(11) + + expect( + rendered.getByText( + 'result: uploaded: file1, error: upload failed, uploaded: file3', + ), + ).toBeInTheDocument() + }) }) From bc83d370e8922f1c3126aea4e7757ce8761a06f2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 10:35:08 +0900 Subject: [PATCH 119/414] test({react,preact}-query/useMutation): unify destructuring pattern in complex scenario tests (#10494) test({react,preact}-query/useMutation): apply destructuring pattern to complex scenario tests --- .../src/__tests__/useMutation.test.tsx | 34 +++++++++---------- .../src/__tests__/useMutation.test.tsx | 34 +++++++++---------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/preact-query/src/__tests__/useMutation.test.tsx b/packages/preact-query/src/__tests__/useMutation.test.tsx index 0fdfd6adb86..fb64bb2adae 100644 --- a/packages/preact-query/src/__tests__/useMutation.test.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test.tsx @@ -1898,11 +1898,11 @@ describe('useMutation', () => { function Page() { const [result, setResult] = useState('idle') - const createUserMutation = useMutation({ + const { mutateAsync: createUserAsync } = useMutation({ mutationFn: (name: string) => sleep(10).then(() => ({ id: '1', name })), }) - const updateProfileMutation = useMutation({ + const { mutateAsync: updateProfileAsync } = useMutation({ mutationFn: (userId: string) => sleep(10).then(() => `profile updated for ${userId}`), }) @@ -1911,8 +1911,8 @@ describe('useMutation', () => {
))} @@ -2156,7 +2156,7 @@ describe('useMutation', () => { const [message, setMessage] = useState('') - const deleteMutation = useMutation({ + const { mutate } = useMutation({ mutationFn: (item: string) => sleep(10).then(() => { throw new Error(`Failed to delete ${item}`) @@ -2181,7 +2181,7 @@ describe('useMutation', () => { return (
{items.map((item) => ( - ))} diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 447b729c536..41a17429640 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -1897,11 +1897,11 @@ describe('useMutation', () => { function Page() { const [result, setResult] = React.useState('idle') - const createUserMutation = useMutation({ + const { mutateAsync: createUserAsync } = useMutation({ mutationFn: (name: string) => sleep(10).then(() => ({ id: '1', name })), }) - const updateProfileMutation = useMutation({ + const { mutateAsync: updateProfileAsync } = useMutation({ mutationFn: (userId: string) => sleep(10).then(() => `profile updated for ${userId}`), }) @@ -1910,8 +1910,8 @@ describe('useMutation', () => {
))} @@ -2155,7 +2155,7 @@ describe('useMutation', () => { const [message, setMessage] = React.useState('') - const deleteMutation = useMutation({ + const { mutate } = useMutation({ mutationFn: (item: string) => sleep(10).then(() => { throw new Error(`Failed to delete ${item}`) @@ -2180,7 +2180,7 @@ describe('useMutation', () => { return (
{items.map((item) => ( - ))} From 2e144da49f23760e3669a5b33066b4757f7c4f53 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 14:22:32 +0900 Subject: [PATCH 120/414] test(solid-query/useMutation): add type tests for generic type inference and callbacks (#10495) --- .../src/__tests__/useMutation.test-d.tsx | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 packages/solid-query/src/__tests__/useMutation.test-d.tsx diff --git a/packages/solid-query/src/__tests__/useMutation.test-d.tsx b/packages/solid-query/src/__tests__/useMutation.test-d.tsx new file mode 100644 index 00000000000..9bc689ea9b0 --- /dev/null +++ b/packages/solid-query/src/__tests__/useMutation.test-d.tsx @@ -0,0 +1,138 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { useMutation } from '../useMutation' +import { QueryClient } from '../QueryClient' +import type { DefaultError } from '@tanstack/query-core' +import type { UseMutationResult } from '../types' + +describe('useMutation', () => { + it('should infer TData from mutationFn return type', () => { + const mutation = useMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + })) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should infer TVariables from mutationFn parameter', () => { + const mutation = useMutation(() => ({ + mutationFn: (vars: { id: string }) => Promise.resolve(vars.id), + })) + + expectTypeOf(mutation.mutate).toBeCallableWith({ id: '1' }) + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer TOnMutateResult from onMutate return type', () => { + useMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + onMutate: () => { + return { token: 'abc' } + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf<{ token: string }>() + }, + onError: (_error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { token: string } | undefined + >() + }, + })) + }) + + it('should allow explicit generic types', () => { + const mutation = useMutation(() => ({ + mutationFn: (vars) => { + expectTypeOf(vars).toEqualTypeOf<{ id: number }>() + return Promise.resolve('result') + }, + })) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should return correct UseMutationResult type', () => { + const mutation = useMutation(() => ({ + mutationFn: () => Promise.resolve(42), + })) + + expectTypeOf(mutation).toEqualTypeOf< + UseMutationResult + >() + }) + + it('should type mutateAsync with correct return type', () => { + const mutation = useMutation(() => ({ + mutationFn: (id: string) => Promise.resolve(id.length), + })) + + expectTypeOf(mutation.mutateAsync).toBeCallableWith('test') + expectTypeOf(mutation.mutateAsync('test')).toEqualTypeOf>() + }) + + it('should default TVariables to void when mutationFn has no parameters', () => { + const mutation = useMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + })) + + expectTypeOf(mutation.mutate).toBeCallableWith() + }) + + it('should infer custom TError type', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + const mutation = useMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + })) + + expectTypeOf(mutation.error).toEqualTypeOf() + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer types for onSettled callback', () => { + useMutation(() => ({ + mutationFn: () => Promise.resolve(42), + onSettled: (data, error, _variables, _onMutateResult) => { + expectTypeOf(data).toEqualTypeOf() + expectTypeOf(error).toEqualTypeOf() + }, + })) + }) + + it('should infer custom TError in onError callback', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + useMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + onError: (error) => { + expectTypeOf(error).toEqualTypeOf() + }, + })) + }) + + it('should accept queryClient as second argument', () => { + const queryClient = new QueryClient() + + const mutation = useMutation( + () => ({ + mutationFn: () => Promise.resolve('data'), + }), + () => queryClient, + ) + + expectTypeOf(mutation.data).toEqualTypeOf() + }) +}) From 7a3bf3177aee88b551f2a63655854286260d7dab Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 14 Apr 2026 21:20:54 +0900 Subject: [PATCH 121/414] test(solid-query/useInfiniteQuery): add type tests for page params, 'initialData', 'select', and 'Accessor' (#10496) --- .../src/__tests__/useInfiniteQuery.test-d.tsx | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 packages/solid-query/src/__tests__/useInfiniteQuery.test-d.tsx diff --git a/packages/solid-query/src/__tests__/useInfiniteQuery.test-d.tsx b/packages/solid-query/src/__tests__/useInfiniteQuery.test-d.tsx new file mode 100644 index 00000000000..e1cc1dbdfd9 --- /dev/null +++ b/packages/solid-query/src/__tests__/useInfiniteQuery.test-d.tsx @@ -0,0 +1,206 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' +import { useInfiniteQuery } from '../useInfiniteQuery' +import { QueryClient } from '../QueryClient' +import type { InfiniteData } from '@tanstack/query-core' + +describe('useInfiniteQuery', () => { + describe('pageParam', () => { + it('initialPageParam should define type of param passed to queryFunctionContext', () => { + useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + expectTypeOf(pageParam).toEqualTypeOf() + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + }) + + it('direction should be passed to queryFn of useInfiniteQuery', () => { + useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ direction }) => { + expectTypeOf(direction).toEqualTypeOf<'forward' | 'backward'>() + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + }) + + it('initialPageParam should define type of param passed to queryFunctionContext for fetchInfiniteQuery', () => { + const queryClient = new QueryClient() + queryClient.fetchInfiniteQuery({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + expectTypeOf(pageParam).toEqualTypeOf() + }, + initialPageParam: 1, + }) + }) + + it('initialPageParam should define type of param passed to queryFunctionContext for prefetchInfiniteQuery', () => { + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + expectTypeOf(pageParam).toEqualTypeOf() + }, + initialPageParam: 1, + }) + }) + }) + + describe('initialData', () => { + it('TData should always be defined when initialData is provided', () => { + const { data } = useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + initialData: { pages: [5], pageParams: [1] }, + })) + + expectTypeOf(data).toEqualTypeOf>() + }) + + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + + expectTypeOf(data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + }) + + describe('select', () => { + it('should still return paginated data if no select result', () => { + const infiniteQuery = useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + + // TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now + expectTypeOf(infiniteQuery.data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + + it('should be able to transform data to arbitrary result', () => { + const infiniteQuery = useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + select: (data) => { + expectTypeOf(data).toEqualTypeOf>() + return 'selected' as const + }, + })) + + expectTypeOf(infiniteQuery.data).toEqualTypeOf<'selected' | undefined>() + }) + }) + + describe('getNextPageParam / getPreviousPageParam', () => { + it('should get typed params', () => { + const infiniteQuery = useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return String(pageParam) + }, + initialPageParam: 1, + getNextPageParam: ( + lastPage, + allPages, + lastPageParam, + allPageParams, + ) => { + expectTypeOf(lastPage).toEqualTypeOf() + expectTypeOf(allPages).toEqualTypeOf>() + expectTypeOf(lastPageParam).toEqualTypeOf() + expectTypeOf(allPageParams).toEqualTypeOf>() + return undefined + }, + getPreviousPageParam: ( + firstPage, + allPages, + firstPageParam, + allPageParams, + ) => { + expectTypeOf(firstPage).toEqualTypeOf() + expectTypeOf(allPages).toEqualTypeOf>() + expectTypeOf(firstPageParam).toEqualTypeOf() + expectTypeOf(allPageParams).toEqualTypeOf>() + return undefined + }, + })) + + // TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now + expectTypeOf(infiniteQuery.data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + }) + + describe('error booleans', () => { + it('should not be permanently `false`', () => { + const { + isFetchNextPageError, + isFetchPreviousPageError, + isLoadingError, + isRefetchError, + } = useInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + + expectTypeOf(isFetchNextPageError).toEqualTypeOf() + expectTypeOf(isFetchPreviousPageError).toEqualTypeOf() + expectTypeOf(isLoadingError).toEqualTypeOf() + expectTypeOf(isRefetchError).toEqualTypeOf() + }) + }) + + describe('queryClient', () => { + it('should accept queryClient as second argument', () => { + const queryClient = new QueryClient() + + const infiniteQuery = useInfiniteQuery( + () => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + }), + () => queryClient, + ) + + // TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now + expectTypeOf(infiniteQuery.data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + }) +}) From cea9347717ba5d9291787e2e17c0c7e62c41d6e1 Mon Sep 17 00:00:00 2001 From: Nirbhay Singh Date: Tue, 14 Apr 2026 18:42:08 +0530 Subject: [PATCH 122/414] docs: Update preact-query version in examples (#10483) * docs(examples): update preact-query version in simple example * docs(examples): update preact-query version in simple example --- examples/preact/simple/package.json | 4 ++-- pnpm-lock.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 7ca211acff9..2f07e9c8d99 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "workspace:^", + "@tanstack/preact-query": "^5.99.0", "preact": "^10.28.0" }, "devDependencies": { @@ -21,4 +21,4 @@ "eslintConfig": { "extends": "preact" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee3606ba446..ab5be43d95e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: workspace:^ + specifier: ^5.99.0 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 From 396869171f9e6ab7d2c4f2fc7bc74107d26f64ab Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 13:13:23 +0000 Subject: [PATCH 123/414] ci: apply automated fixes --- examples/preact/simple/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 2f07e9c8d99..3ac9bc2b44b 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -21,4 +21,4 @@ "eslintConfig": { "extends": "preact" } -} \ No newline at end of file +} From 663931dd581913103481f0e1fc7c0a745f5088de Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 15 Apr 2026 01:32:30 +0900 Subject: [PATCH 124/414] test(solid-query/useQueries): rename 'createQueries.test-d.tsx' to 'useQueries.test-d.tsx' (#10497) --- .../__tests__/{createQueries.test-d.tsx => useQueries.test-d.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/solid-query/src/__tests__/{createQueries.test-d.tsx => useQueries.test-d.tsx} (100%) diff --git a/packages/solid-query/src/__tests__/createQueries.test-d.tsx b/packages/solid-query/src/__tests__/useQueries.test-d.tsx similarity index 100% rename from packages/solid-query/src/__tests__/createQueries.test-d.tsx rename to packages/solid-query/src/__tests__/useQueries.test-d.tsx From 75551135deed4e3643529c7edde877fd0ac598e2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 15 Apr 2026 02:00:35 +0900 Subject: [PATCH 125/414] test(solid-query/useQueries): add type tests for 'initialData', explicit generics, 'throwOnError', 'skipToken', 'combine', and 'Accessor' (#10498) * test(solid-query/useQueries): add type tests for 'initialData', explicit generics, 'throwOnError', 'skipToken', 'combine', and 'Accessor' * test(solid-query/useQueries): add type tests for 'initialData', explicit generics, 'throwOnError', 'skipToken', 'combine', and 'Accessor' --- .../src/__tests__/useQueries.test-d.tsx | 260 ++++++++++++++++++ 1 file changed, 260 insertions(+) diff --git a/packages/solid-query/src/__tests__/useQueries.test-d.tsx b/packages/solid-query/src/__tests__/useQueries.test-d.tsx index 2ac4e56e0c1..2cf0f174494 100644 --- a/packages/solid-query/src/__tests__/useQueries.test-d.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test-d.tsx @@ -1,9 +1,231 @@ import { describe, expectTypeOf, it } from 'vitest' +import { skipToken } from '@tanstack/query-core' import { queryKey } from '@tanstack/query-test-utils' import { queryOptions, useQueries } from '..' +import { QueryClient } from '../QueryClient' +import type { OmitKeyof } from '@tanstack/query-core' import type { UseQueryResult } from '..' +import type { SolidQueryOptions } from '../types' describe('useQueries', () => { + it('TData should have undefined in the union even when initialData is provided as an object', () => { + const query1 = { + queryKey: queryKey(), + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: false, + }, + } + + const query2 = { + queryKey: queryKey(), + queryFn: () => 'Query Data', + initialData: 'initial data', + } + + const query3 = { + queryKey: queryKey(), + queryFn: () => 'Query Data', + } + + const queryResults = useQueries(() => ({ + queries: [query1, query2, query3], + })) + + const query1Data = queryResults[0].data + const query2Data = queryResults[1].data + const query3Data = queryResults[2].data + + expectTypeOf(query1Data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(query2Data).toEqualTypeOf() + expectTypeOf(query3Data).toEqualTypeOf() + }) + + it('TData should have undefined in the union when passed through queryOptions', () => { + const options = queryOptions({ + queryKey: queryKey(), + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: true, + }, + }) + const queryResults = useQueries(() => ({ queries: [options] })) + + const data = queryResults[0].data + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) + + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const queryResults = useQueries(() => ({ + queries: [ + { + queryKey: queryKey(), + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + }, + ], + })) + + const data = queryResults[0].data + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) + + it('should infer types from explicit object type parameter', () => { + const queryResults = useQueries< + [ + { queryFnData: number }, + { queryFnData: string; error: Error }, + { queryFnData: boolean; data: string }, + ] + >(() => ({ + queries: [ + { + queryKey: queryKey(), + queryFn: () => Promise.resolve(1), + }, + { + queryKey: queryKey(), + queryFn: () => Promise.resolve('data'), + }, + { + queryKey: queryKey(), + queryFn: () => Promise.resolve(true), + select: () => 'selected', + }, + ], + })) + + expectTypeOf(queryResults[0].data).toEqualTypeOf() + expectTypeOf(queryResults[1].data).toEqualTypeOf() + expectTypeOf(queryResults[1].error).toEqualTypeOf() + expectTypeOf(queryResults[2].data).toEqualTypeOf() + }) + + it('should infer types from explicit tuple type parameter', () => { + const queryResults = useQueries< + [[number], [string, Error], [boolean, Error, string]] + >(() => ({ + queries: [ + { + queryKey: queryKey(), + queryFn: () => Promise.resolve(1), + }, + { + queryKey: queryKey(), + queryFn: () => Promise.resolve('data'), + }, + { + queryKey: queryKey(), + queryFn: () => Promise.resolve(true), + select: () => 'selected', + }, + ], + })) + + expectTypeOf(queryResults[0].data).toEqualTypeOf() + expectTypeOf(queryResults[1].data).toEqualTypeOf() + expectTypeOf(queryResults[1].error).toEqualTypeOf() + expectTypeOf(queryResults[2].data).toEqualTypeOf() + }) + + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + const query1 = queryOptions({ + queryKey: queryKey(), + queryFn: () => Promise.resolve(1), + select: (data) => data > 1, + }) + + const query2 = { + queryKey: queryKey(), + queryFn: () => Promise.resolve(1), + select: (data: number) => data > 1, + } + + const queryResults = useQueries(() => ({ queries: [query1, query2] })) + const query1Data = queryResults[0].data + const query2Data = queryResults[1].data + + expectTypeOf(query1Data).toEqualTypeOf() + expectTypeOf(query2Data).toEqualTypeOf() + }) + + describe('custom hook', () => { + it('should allow custom hooks using SolidQueryOptions', () => { + type Data = string + + const useCustomQueries = ( + options?: OmitKeyof, 'queryKey' | 'queryFn'>, + ) => { + return useQueries(() => ({ + queries: [ + { + ...options, + queryKey: queryKey(), + queryFn: () => Promise.resolve('data'), + }, + ], + })) + } + + const queryResults = useCustomQueries() + const data = queryResults[0].data + + expectTypeOf(data).toEqualTypeOf() + }) + }) + + it('should infer custom TError from throwOnError', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + const queryResults = useQueries(() => ({ + queries: [ + { + queryKey: queryKey(), + queryFn: () => Promise.resolve('data'), + throwOnError: (_error: CustomError) => false, + }, + ], + })) + + expectTypeOf(queryResults[0].error).toEqualTypeOf() + }) + + it('TData should have correct type when conditional skipToken is passed', () => { + const queryResults = useQueries(() => ({ + queries: [ + { + queryKey: queryKey(), + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }, + ], + })) + + const firstResult = queryResults[0] + + expectTypeOf(firstResult).toEqualTypeOf>() + expectTypeOf(firstResult.data).toEqualTypeOf() + }) + it('should return correct data for dynamic queries with mixed result types', () => { const Queries1 = { get: () => @@ -29,4 +251,42 @@ describe('useQueries', () => { [...Array>, UseQueryResult] >() }) + + it('should accept queryClient as second argument', () => { + const queryClient = new QueryClient() + + const queryResults = useQueries( + () => ({ + queries: [ + { + queryKey: queryKey(), + queryFn: () => Promise.resolve('data'), + }, + ], + }), + () => queryClient, + ) + + expectTypeOf(queryResults[0].data).toEqualTypeOf() + }) + + it('should infer correct types for combine callback parameter', () => { + useQueries(() => ({ + queries: [ + { + queryKey: queryKey(), + queryFn: () => Promise.resolve(1), + }, + { + queryKey: queryKey(), + queryFn: () => Promise.resolve('hello'), + }, + ], + combine: (results) => { + expectTypeOf(results[0]).toEqualTypeOf>() + expectTypeOf(results[1]).toEqualTypeOf>() + return results + }, + })) + }) }) From 7ffa1ed0b01d8c397c379dbb3d85da80b278b21c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 15 Apr 2026 02:09:42 +0900 Subject: [PATCH 126/414] test({react,preact,solid}-query/useQueries): fix test description from 'useQuery' to 'useQueries' (#10499) --- packages/preact-query/src/__tests__/useQueries.test-d.tsx | 2 +- packages/react-query/src/__tests__/useQueries.test-d.tsx | 2 +- packages/solid-query/src/__tests__/useQueries.test-d.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/preact-query/src/__tests__/useQueries.test-d.tsx b/packages/preact-query/src/__tests__/useQueries.test-d.tsx index b9a12ab0094..85816953ae6 100644 --- a/packages/preact-query/src/__tests__/useQueries.test-d.tsx +++ b/packages/preact-query/src/__tests__/useQueries.test-d.tsx @@ -62,7 +62,7 @@ describe('UseQueries config object overload', () => { expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) - it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQueries', () => { const query1 = queryOptions({ queryKey: queryKey(), queryFn: () => Promise.resolve(1), diff --git a/packages/react-query/src/__tests__/useQueries.test-d.tsx b/packages/react-query/src/__tests__/useQueries.test-d.tsx index 7c064d55341..4346bb76a18 100644 --- a/packages/react-query/src/__tests__/useQueries.test-d.tsx +++ b/packages/react-query/src/__tests__/useQueries.test-d.tsx @@ -61,7 +61,7 @@ describe('UseQueries config object overload', () => { expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) - it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQueries', () => { const query1 = queryOptions({ queryKey: queryKey(), queryFn: () => Promise.resolve(1), diff --git a/packages/solid-query/src/__tests__/useQueries.test-d.tsx b/packages/solid-query/src/__tests__/useQueries.test-d.tsx index 2cf0f174494..3567f77bfc6 100644 --- a/packages/solid-query/src/__tests__/useQueries.test-d.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test-d.tsx @@ -142,7 +142,7 @@ describe('useQueries', () => { expectTypeOf(queryResults[2].data).toEqualTypeOf() }) - it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQueries', () => { const query1 = queryOptions({ queryKey: queryKey(), queryFn: () => Promise.resolve(1), From df77d8cd8bbee4d933797e00eb0cee452c25d1f9 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 15 Apr 2026 16:47:54 +0900 Subject: [PATCH 127/414] test(svelte-query/createMutation): add type tests for generic type inference and callbacks (#10502) --- .../createMutation/createMutation.test-d.ts | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 packages/svelte-query/tests/createMutation/createMutation.test-d.ts diff --git a/packages/svelte-query/tests/createMutation/createMutation.test-d.ts b/packages/svelte-query/tests/createMutation/createMutation.test-d.ts new file mode 100644 index 00000000000..4ea6027949e --- /dev/null +++ b/packages/svelte-query/tests/createMutation/createMutation.test-d.ts @@ -0,0 +1,138 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { createMutation } from '../../src/index.js' +import type { DefaultError } from '@tanstack/query-core' +import type { CreateMutationResult } from '../../src/types.js' + +describe('createMutation', () => { + it('should infer TData from mutationFn return type', () => { + const mutation = createMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + })) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should infer TVariables from mutationFn parameter', () => { + const mutation = createMutation(() => ({ + mutationFn: (vars: { id: string }) => Promise.resolve(vars.id), + })) + + expectTypeOf(mutation.mutate).toBeCallableWith({ id: '1' }) + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer TOnMutateResult from onMutate return type', () => { + createMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + onMutate: () => { + return { token: 'abc' } + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf<{ token: string }>() + }, + onError: (_error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { token: string } | undefined + >() + }, + })) + }) + + it('should allow explicit generic types', () => { + const mutation = createMutation(() => ({ + mutationFn: (vars) => { + expectTypeOf(vars).toEqualTypeOf<{ id: number }>() + return Promise.resolve('result') + }, + })) + + expectTypeOf(mutation.data).toEqualTypeOf() + expectTypeOf(mutation.error).toEqualTypeOf() + }) + + it('should return correct CreateMutationResult type', () => { + const mutation = createMutation(() => ({ + mutationFn: () => Promise.resolve(42), + })) + + expectTypeOf(mutation).toEqualTypeOf< + CreateMutationResult + >() + }) + + it('should type mutateAsync with correct return type', () => { + const mutation = createMutation(() => ({ + mutationFn: (id: string) => Promise.resolve(id.length), + })) + + expectTypeOf(mutation.mutateAsync).toBeCallableWith('test') + expectTypeOf(mutation.mutateAsync('test')).toEqualTypeOf>() + }) + + it('should default TVariables to void when mutationFn has no parameters', () => { + const mutation = createMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + })) + + expectTypeOf(mutation.mutate).toBeCallableWith() + }) + + it('should infer custom TError type', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + const mutation = createMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + })) + + expectTypeOf(mutation.error).toEqualTypeOf() + expectTypeOf(mutation.data).toEqualTypeOf() + }) + + it('should infer types for onSettled callback', () => { + createMutation(() => ({ + mutationFn: () => Promise.resolve(42), + onSettled: (data, error, _variables, _onMutateResult) => { + expectTypeOf(data).toEqualTypeOf() + expectTypeOf(error).toEqualTypeOf() + }, + })) + }) + + it('should infer custom TError in onError callback', () => { + class CustomError extends Error { + code: number + constructor(code: number) { + super() + this.code = code + } + } + + createMutation(() => ({ + mutationFn: () => Promise.resolve('data'), + onError: (error) => { + expectTypeOf(error).toEqualTypeOf() + }, + })) + }) + + it('should accept queryClient as second argument', () => { + const queryClient = new QueryClient() + + const mutation = createMutation( + () => ({ + mutationFn: () => Promise.resolve('data'), + }), + () => queryClient, + ) + + expectTypeOf(mutation.data).toEqualTypeOf() + }) +}) From da62c8a4040c31a720b5e774615ec7a5b186dcff Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 15 Apr 2026 17:03:11 +0900 Subject: [PATCH 128/414] test(svelte-query/createInfiniteQuery): add type tests for page params, 'initialData', 'select', and 'Accessor' (#10503) --- .../createInfiniteQuery.test-d.ts | 209 ++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test-d.ts diff --git a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test-d.ts b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test-d.ts new file mode 100644 index 00000000000..1214e8f52ce --- /dev/null +++ b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test-d.ts @@ -0,0 +1,209 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' +import { createInfiniteQuery } from '../../src/index.js' +import type { InfiniteData } from '@tanstack/query-core' + +describe('createInfiniteQuery', () => { + describe('pageParam', () => { + it('initialPageParam should define type of param passed to queryFunctionContext', () => { + createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + expectTypeOf(pageParam).toEqualTypeOf() + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + }) + + it('direction should be passed to queryFn of createInfiniteQuery', () => { + createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ direction }) => { + expectTypeOf(direction).toEqualTypeOf<'forward' | 'backward'>() + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + }) + + it('initialPageParam should define type of param passed to queryFunctionContext for fetchInfiniteQuery', () => { + const queryClient = new QueryClient() + queryClient.fetchInfiniteQuery({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + expectTypeOf(pageParam).toEqualTypeOf() + }, + initialPageParam: 1, + }) + }) + + it('initialPageParam should define type of param passed to queryFunctionContext for prefetchInfiniteQuery', () => { + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + expectTypeOf(pageParam).toEqualTypeOf() + }, + initialPageParam: 1, + }) + }) + }) + + describe('initialData', () => { + it('TData should have undefined in the union even when initialData is provided', () => { + const { data } = createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + initialData: { pages: [5], pageParams: [1] }, + })) + + // TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now + expectTypeOf(data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + + expectTypeOf(data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + }) + + describe('select', () => { + it('should still return paginated data if no select result', () => { + const infiniteQuery = createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + + // TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now + expectTypeOf(infiniteQuery.data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + + it('should be able to transform data to arbitrary result', () => { + const infiniteQuery = createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + select: (data) => { + expectTypeOf(data).toEqualTypeOf>() + return 'selected' as const + }, + })) + + expectTypeOf(infiniteQuery.data).toEqualTypeOf<'selected' | undefined>() + }) + }) + + describe('getNextPageParam / getPreviousPageParam', () => { + it('should get typed params', () => { + const infiniteQuery = createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return String(pageParam) + }, + initialPageParam: 1, + getNextPageParam: ( + lastPage, + allPages, + lastPageParam, + allPageParams, + ) => { + expectTypeOf(lastPage).toEqualTypeOf() + expectTypeOf(allPages).toEqualTypeOf>() + expectTypeOf(lastPageParam).toEqualTypeOf() + expectTypeOf(allPageParams).toEqualTypeOf>() + return undefined + }, + getPreviousPageParam: ( + firstPage, + allPages, + firstPageParam, + allPageParams, + ) => { + expectTypeOf(firstPage).toEqualTypeOf() + expectTypeOf(allPages).toEqualTypeOf>() + expectTypeOf(firstPageParam).toEqualTypeOf() + expectTypeOf(allPageParams).toEqualTypeOf>() + return undefined + }, + })) + + // TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now + expectTypeOf(infiniteQuery.data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + }) + + describe('error booleans', () => { + it('should not be permanently `false`', () => { + const { + isFetchNextPageError, + isFetchPreviousPageError, + isLoadingError, + isRefetchError, + } = createInfiniteQuery(() => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + })) + + expectTypeOf(isFetchNextPageError).toEqualTypeOf() + expectTypeOf(isFetchPreviousPageError).toEqualTypeOf() + expectTypeOf(isLoadingError).toEqualTypeOf() + expectTypeOf(isRefetchError).toEqualTypeOf() + }) + }) + + describe('queryClient', () => { + it('should accept queryClient as second argument', () => { + const queryClient = new QueryClient() + + const infiniteQuery = createInfiniteQuery( + () => ({ + queryKey: queryKey(), + queryFn: ({ pageParam }) => { + return pageParam * 5 + }, + initialPageParam: 1, + getNextPageParam: () => undefined, + }), + () => queryClient, + ) + + // TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now + expectTypeOf(infiniteQuery.data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + }) +}) From c47c67132df06dbc13244936862339aa845caebb Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 15 Apr 2026 17:39:31 +0900 Subject: [PATCH 129/414] test(svelte-query/useMutationState): add type tests for default 'MutationState' and 'select' inference (#10504) --- .../useMutationState.test-d.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 packages/svelte-query/tests/useMutationState/useMutationState.test-d.ts diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.test-d.ts b/packages/svelte-query/tests/useMutationState/useMutationState.test-d.ts new file mode 100644 index 00000000000..1863f0a4233 --- /dev/null +++ b/packages/svelte-query/tests/useMutationState/useMutationState.test-d.ts @@ -0,0 +1,24 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { useMutationState } from '../../src/index.js' +import type { MutationState, MutationStatus } from '@tanstack/query-core' + +describe('useMutationState', () => { + it('should default to MutationState', () => { + const result = useMutationState({ + filters: { status: 'pending' }, + }) + + expectTypeOf(result).toEqualTypeOf< + Array> + >() + }) + + it('should infer with select', () => { + const result = useMutationState({ + filters: { status: 'pending' }, + select: (mutation) => mutation.state.status, + }) + + expectTypeOf(result).toEqualTypeOf>() + }) +}) From 63909c76e3d720baaed500e468df263f2984be7f Mon Sep 17 00:00:00 2001 From: sourena kazemi <78549216+sourena-kazemi@users.noreply.github.com> Date: Thu, 16 Apr 2026 15:23:27 +0330 Subject: [PATCH 130/414] docs(react): small grammar fix in advanced-ssr docs (#10507) --- docs/framework/react/guides/advanced-ssr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/guides/advanced-ssr.md b/docs/framework/react/guides/advanced-ssr.md index 3e1fdedff21..dbc70d8995e 100644 --- a/docs/framework/react/guides/advanced-ssr.md +++ b/docs/framework/react/guides/advanced-ssr.md @@ -555,7 +555,7 @@ This ensures that only successfully resolved queries are persisted to storage, p While we recommend the prefetching solution detailed above because it flattens request waterfalls both on the initial page load **and** any subsequent page navigation, there is an experimental way to skip prefetching altogether and still have streaming SSR work: `@tanstack/react-query-next-experimental` -This package will allow you to fetch data on the server (in a Client Component) by just calling `useSuspenseQuery` in your component. Results will then be streamed from the server to the client as SuspenseBoundaries resolve. If you call `useSuspenseQuery` without wrapping it in a `` boundary, the HTML response won't start until the fetch resolves. This can be when you want depending on the situation, but keep in mind that this will hurt your TTFB. +This package will allow you to fetch data on the server (in a Client Component) by just calling `useSuspenseQuery` in your component. Results will then be streamed from the server to the client as SuspenseBoundaries resolve. If you call `useSuspenseQuery` without wrapping it in a `` boundary, the HTML response won't start until the fetch resolves. This can be what you want depending on the situation, but keep in mind that this will hurt your TTFB. To achieve this, wrap your app in the `ReactQueryStreamedHydration` component: From dbee9ebdc1a242a64cd99156ab9298dae041f6d0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 17 Apr 2026 00:34:51 +0900 Subject: [PATCH 131/414] test(query-core/queriesObserver): add test for recalculating combined result when 'combine' function changes (#10508) --- .../src/__tests__/queriesObserver.test.tsx | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index b2fab48b664..004cddfcb19 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -552,6 +552,40 @@ describe('queriesObserver', () => { expect(newCombined.keys).toEqual(['pending']) }) + test('should recalculate combined result when combine function changes', () => { + const combine1 = vi.fn((results: Array) => ({ + total: results.length, + })) + const combine2 = vi.fn((results: Array) => ({ + total: results.length * 4, + })) + + const key1 = queryKey() + const key2 = queryKey() + const queryFn1 = vi.fn().mockReturnValue(1) + const queryFn2 = vi.fn().mockReturnValue(2) + + const queries = [ + { queryKey: key1, queryFn: queryFn1 }, + { queryKey: key2, queryFn: queryFn2 }, + ] + + const observer = new QueriesObserver<{ total: number }>( + queryClient, + queries, + { combine: combine1 }, + ) + + const [raw1, getCombined1] = observer.getOptimisticResult(queries, combine1) + const combined1 = getCombined1(raw1) + + const [raw2, getCombined2] = observer.getOptimisticResult(queries, combine2) + const combined2 = getCombined2(raw2) + + expect(combined1.total).toBe(2) + expect(combined2.total).toBe(8) + }) + test('should track properties on all observers when trackResult is called', () => { const key1 = queryKey() const key2 = queryKey() From 658d32b9823098543b743b3a0de9390e6627fc7c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 18 Apr 2026 08:47:09 +0900 Subject: [PATCH 132/414] test(query-core/queriesObserver): add test for 'combineResult' fallback when called without raw argument (#10511) --- .../src/__tests__/queriesObserver.test.tsx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index 004cddfcb19..901bdde4c57 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -586,6 +586,29 @@ describe('queriesObserver', () => { expect(combined2.total).toBe(8) }) + test('should use fallback result when combineResult is called without raw argument', () => { + const combine = vi.fn((results: Array) => ({ + count: results.length, + })) + + const key = queryKey() + const queryFn = vi.fn().mockReturnValue(1) + + const observer = new QueriesObserver<{ count: number }>( + queryClient, + [{ queryKey: key, queryFn }], + { combine }, + ) + + const [, getCombined] = observer.getOptimisticResult( + [{ queryKey: key, queryFn }], + combine, + ) + const combined = getCombined() + + expect(combined.count).toBe(1) + }) + test('should track properties on all observers when trackResult is called', () => { const key1 = queryKey() const key2 = queryKey() From cc97e9a8b794d797bdaf7f9385024498e1648580 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 18 Apr 2026 09:07:19 +0900 Subject: [PATCH 133/414] test(query-core/queriesObserver): add test for skipping 'trackResult' when 'notifyOnChangeProps' is set (#10512) --- .../src/__tests__/queriesObserver.test.tsx | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index 901bdde4c57..aa71f92e6ba 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -609,6 +609,30 @@ describe('queriesObserver', () => { expect(combined.count).toBe(1) }) + test('should return observer result directly when notifyOnChangeProps is set', () => { + const key = queryKey() + const queryFn = vi.fn().mockReturnValue(1) + + const observer = new QueriesObserver(queryClient, [ + { queryKey: key, queryFn, notifyOnChangeProps: ['data'] }, + ]) + + const trackResultSpy = vi.spyOn(QueryObserver.prototype, 'trackResult') + + const [, , trackResult] = observer.getOptimisticResult( + [{ queryKey: key, queryFn, notifyOnChangeProps: ['data'] }], + undefined, + ) + + const trackedResults = trackResult() + + expect(trackedResults).toHaveLength(1) + // trackResult should NOT be called when notifyOnChangeProps is set + expect(trackResultSpy).not.toHaveBeenCalled() + + trackResultSpy.mockRestore() + }) + test('should track properties on all observers when trackResult is called', () => { const key1 = queryKey() const key2 = queryKey() From 608706ee36731a29ceb82c2ab181ac3bb9d61726 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 18 Apr 2026 09:18:30 +0900 Subject: [PATCH 134/414] test(query-core/queriesObserver): add test for returning cached combined result when nothing has changed (#10513) --- .../src/__tests__/queriesObserver.test.tsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index aa71f92e6ba..686c7868c4e 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -633,6 +633,32 @@ describe('queriesObserver', () => { trackResultSpy.mockRestore() }) + test('should return cached combined result when nothing has changed', () => { + const combine = vi.fn((results: Array) => ({ + count: results.length, + })) + + const key = queryKey() + const queryFn = vi.fn().mockReturnValue(1) + + const queries = [{ queryKey: key, queryFn }] + + const observer = new QueriesObserver<{ count: number }>( + queryClient, + queries, + { combine }, + ) + + const [raw1, getCombined1] = observer.getOptimisticResult(queries, combine) + const combined1 = getCombined1(raw1) + + const [raw2, getCombined2] = observer.getOptimisticResult(queries, combine) + const combined2 = getCombined2(raw2) + + // Same combine, same queries → cached result returned + expect(combined1).toBe(combined2) + }) + test('should track properties on all observers when trackResult is called', () => { const key1 = queryKey() const key2 = queryKey() From 709971dd2c54e2cbc57f3b6a16be5d23af020eb7 Mon Sep 17 00:00:00 2001 From: jemin Date: Sat, 18 Apr 2026 05:23:36 -0700 Subject: [PATCH 135/414] fix(eslint-plugin-query): fix no-void-query-fn false positive on enums for TS 6 (#10460) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/no-void-query-fn-ts6-enum.md | 5 ++ .../src/__tests__/no-void-query-fn.test.ts | 78 +++++++++++++++++++ .../no-void-query-fn/no-void-query-fn.rule.ts | 8 +- 3 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 .changeset/no-void-query-fn-ts6-enum.md diff --git a/.changeset/no-void-query-fn-ts6-enum.md b/.changeset/no-void-query-fn-ts6-enum.md new file mode 100644 index 00000000000..9c1155cf1fe --- /dev/null +++ b/.changeset/no-void-query-fn-ts6-enum.md @@ -0,0 +1,5 @@ +--- +'@tanstack/eslint-plugin-query': patch +--- + +fix(eslint-plugin-query): fix `no-void-query-fn` false positive on enum returns for typescript 6. diff --git a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts index c47856fbc67..700a4f95e68 100644 --- a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts @@ -267,6 +267,84 @@ ruleTester.run('no-void-query-fn', rule, { }) `, }, + { + name: 'queryFn returns a numeric enum member', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + enum ExampleEnum { + A, + B, + } + + function Component() { + const query = useQuery({ + queryKey: ['test'], + queryFn: () => ExampleEnum.A, + }) + return null + } + `, + }, + { + name: 'queryFn returns a string enum member', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + enum StringEnum { + Foo = 'foo', + Bar = 'bar', + } + + function Component() { + const query = useQuery({ + queryKey: ['test'], + queryFn: () => StringEnum.Foo, + }) + return null + } + `, + }, + { + name: 'async queryFn returns a numeric enum member', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + enum Status { + Active, + Inactive, + } + + function Component() { + const query = useQuery({ + queryKey: ['test'], + queryFn: async () => { + return Status.Active + }, + }) + return null + } + `, + }, + { + name: 'queryFn returns a const enum member', + code: normalizeIndent` + import { useQuery } from '@tanstack/react-query' + + const enum Direction { + Up = 'UP', + Down = 'DOWN', + } + + function Component() { + const query = useQuery({ + queryKey: ['test'], + queryFn: () => Direction.Up, + }) + return null + } + `, + }, ], invalid: [ { diff --git a/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts b/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts index 5a8708efc0c..cda036aaed5 100644 --- a/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts +++ b/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts @@ -5,11 +5,6 @@ import { getDocsUrl } from '../../utils/get-docs-url' import type { ParserServicesWithTypeInformation } from '@typescript-eslint/utils' import type { ExtraRuleDocs } from '../../types' -const TypeFlags = { - Void: 16384, - Undefined: 32768, -} as const - export const name = 'no-void-query-fn' const createRule = ESLintUtils.RuleCreator(getDocsUrl) @@ -87,5 +82,6 @@ function isIllegalReturn(checker: TypeChecker, type: Type): boolean { return awaited.types.some((t) => isIllegalReturn(checker, t)) } - return awaited.flags & (TypeFlags.Void | TypeFlags.Undefined) ? true : false + const typeString = checker.typeToString(awaited) + return typeString === 'void' || typeString === 'undefined' } From 69d2757c982f7bd5a483398492fe753f6f574ab8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 20:07:19 +0200 Subject: [PATCH 136/414] ci: Version Packages (#10514) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/no-void-query-fn-ts6-enum.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 6 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 439 insertions(+), 275 deletions(-) delete mode 100644 .changeset/no-void-query-fn-ts6-enum.md diff --git a/.changeset/no-void-query-fn-ts6-enum.md b/.changeset/no-void-query-fn-ts6-enum.md deleted file mode 100644 index 9c1155cf1fe..00000000000 --- a/.changeset/no-void-query-fn-ts6-enum.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/eslint-plugin-query': patch ---- - -fix(eslint-plugin-query): fix `no-void-query-fn` false positive on enum returns for typescript 6. diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index b2376ef6b1a..3c3b46ca572 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 719f88fe88f..c72f0f1cfba 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", - "@tanstack/angular-query-persist-client": "^5.99.0", - "@tanstack/query-async-storage-persister": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-persist-client": "^5.99.1", + "@tanstack/query-async-storage-persister": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 5e44db83ca8..585b1d1ff89 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 8e195abee84..421b57acabc 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 2919b2187c3..c086c9c5216 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index ceb14cf7679..aa34c0bd4c3 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 8f7ddf30d08..8849c678934 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index bf839870b3e..04cd24ad78b 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index dee0580b0ed..2554587b6b8 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index fb7fcae0b08..34c118bfbfa 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 1a2be6d9011..0adc2b1c6b2 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 3ac9bc2b44b..e7696050270 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.99.0", + "@tanstack/preact-query": "^5.99.1", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index ffeffc832f5..7882ce05849 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.0", + "@tanstack/eslint-plugin-query": "^5.99.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 4644fe90792..a72fb731eb7 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index ad681ca6544..bca51496040 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index f5566cdcf93..6e906eb4519 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.0", - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", - "@tanstack/react-query-persist-client": "^5.99.0", + "@tanstack/query-async-storage-persister": "^5.99.1", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query-persist-client": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.0", + "@tanstack/eslint-plugin-query": "^5.99.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 5167e1089e1..9cad523e0c5 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 8fc9f442627..988204c895c 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 9afae07f033..17ea87cbdac 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 8a465278b4b..0232326c09c 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.0", - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", - "@tanstack/react-query-persist-client": "^5.99.0", + "@tanstack/query-async-storage-persister": "^5.99.1", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query-persist-client": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.0", + "@tanstack/eslint-plugin-query": "^5.99.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 062478f1975..3dbf252cc59 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", + "@tanstack/react-query": "^5.99.1", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.0", + "@tanstack/eslint-plugin-query": "^5.99.1", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index a665fc70918..e41238f40b3 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index c716f8e62b9..37f01af8589 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index c6202c60787..79f610ee534 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index dcafab2a31a..4c53dc9f6af 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", - "@tanstack/react-query-next-experimental": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query-next-experimental": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index f7accab388d..b5c2c604939 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index e06d653f169..812e5ae9d53 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.0", + "@tanstack/query-async-storage-persister": "^5.99.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", - "@tanstack/react-query-persist-client": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query-persist-client": "^5.99.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index ec3563d2088..0c80fa8e111 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 934e439dd6f..3b0ef2ec424 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 48d45b031dd..17ff19d44b0 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index a5be24436ed..5c7696b6467 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index fd4a79ad8bc..9b8e1226369 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 96d71c7c73c..5e37171fba7 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 5f17672cb07..ffb9b5d4be5 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index c24d79f437c..7f100083c7d 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index efd67cc4689..2296bc2294a 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index cd9e0855070..3806f66dbf6 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index ac7cbe963da..bd2cf33bd02 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 14904eecfa3..5fd06f7253f 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.0", - "@tanstack/react-query-devtools": "^5.99.0", + "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query-devtools": "^5.99.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 232d14b0515..ace0b4a2ea4 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.99.0", - "@tanstack/solid-query-devtools": "^5.99.0", + "@tanstack/solid-query": "^5.99.1", + "@tanstack/solid-query-devtools": "^5.99.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 8c68a52c9d7..38c08522c5b 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.0", - "@tanstack/solid-query-devtools": "^5.99.0", + "@tanstack/solid-query": "^5.99.1", + "@tanstack/solid-query-devtools": "^5.99.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 2af3d540090..30e1259874b 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.0", - "@tanstack/solid-query-devtools": "^5.99.0", + "@tanstack/solid-query": "^5.99.1", + "@tanstack/solid-query-devtools": "^5.99.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index fd0edc614bf..701ddebc66f 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.0", - "@tanstack/solid-query-devtools": "^5.99.0", + "@tanstack/solid-query": "^5.99.1", + "@tanstack/solid-query-devtools": "^5.99.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 2068b28211c..248c5d24030 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.0", - "@tanstack/solid-query": "^5.99.0", - "@tanstack/solid-query-devtools": "^5.99.0", - "@tanstack/solid-query-persist-client": "^5.99.0", + "@tanstack/query-async-storage-persister": "^5.99.1", + "@tanstack/solid-query": "^5.99.1", + "@tanstack/solid-query-devtools": "^5.99.1", + "@tanstack/solid-query-persist-client": "^5.99.1", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 18c593068b2..b674f5ff884 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.0", - "@tanstack/solid-query-devtools": "^5.99.0", + "@tanstack/solid-query": "^5.99.1", + "@tanstack/solid-query-devtools": "^5.99.1", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.0", + "@tanstack/eslint-plugin-query": "^5.99.1", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index bde54a5af2c..e2cb4983f40 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.99.0", - "@tanstack/solid-query-devtools": "^5.99.0", + "@tanstack/solid-query": "^5.99.1", + "@tanstack/solid-query-devtools": "^5.99.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 0228a543567..fb7b10e6a59 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16" + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 9b47181f4c3..6cb8c6f4378 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.0", - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16", - "@tanstack/svelte-query-persist-client": "^6.1.16" + "@tanstack/query-async-storage-persister": "^5.99.1", + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17", + "@tanstack/svelte-query-persist-client": "^6.1.17" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index f31f215b385..54c9a12ffe3 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16" + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 9ee62bbfcf1..f74df660970 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16" + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 5d778dc430b..507ebbda5ee 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16" + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index e1845753163..26cd7f47e68 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16" + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 92ef36a3513..55998352c0f 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16" + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 72138a3b580..08b0cd52fe2 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.16", - "@tanstack/svelte-query-devtools": "^6.1.16" + "@tanstack/svelte-query": "^6.1.17", + "@tanstack/svelte-query-devtools": "^6.1.17" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 6d415f5d8e2..feecd10ece0 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.0", - "@tanstack/vue-query-devtools": "^6.1.16", + "@tanstack/vue-query": "^5.99.1", + "@tanstack/vue-query-devtools": "^6.1.17", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 186a849e2f4..872c7d5e6e3 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.0", + "@tanstack/vue-query": "^5.99.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 14b3506391a..67208c46732 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.99.0", - "@tanstack/query-persist-client-core": "^5.99.0", - "@tanstack/query-sync-storage-persister": "^5.99.0", - "@tanstack/vue-query": "^5.99.0", + "@tanstack/query-core": "^5.99.1", + "@tanstack/query-persist-client-core": "^5.99.1", + "@tanstack/query-sync-storage-persister": "^5.99.1", + "@tanstack/vue-query": "^5.99.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index cb4dd230f19..3b9bf2b3010 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.0", - "@tanstack/vue-query-devtools": "^6.1.16", + "@tanstack/vue-query": "^5.99.1", + "@tanstack/vue-query-devtools": "^6.1.17", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 4528bbba009..e48efc9a649 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.0", + "@tanstack/angular-query-experimental": "^5.99.1", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index f267f6130ae..a9b1613c7a2 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index d7b983d3d0e..54a56e588b7 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.99.0", + "version": "5.99.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index cbc58c54789..0d5233f6c48 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.99.1 + - @tanstack/query-persist-client-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 8e11f1ff543..49321131b97 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.99.0", + "version": "5.99.1", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index a92f36fa1ef..fac356ea32e 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/eslint-plugin-query +## 5.99.1 + +### Patch Changes + +- fix(eslint-plugin-query): fix `no-void-query-fn` false positive on enum returns for typescript 6. ([#10460](https://github.com/TanStack/query/pull/10460)) + ## 5.99.0 ## 5.98.0 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 7d7b8f62d2e..bdd2922292e 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.99.0", + "version": "5.99.1", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 429c63f8c91..8c869e71d13 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.99.1 + - @tanstack/query-devtools@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 8017cd3c1a0..a13774b116e 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.99.0", + "version": "5.99.1", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 5d7eb088594..6cdfa77b5aa 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.99.1 + - @tanstack/query-persist-client-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index a14caf7806a..ceaf94f0867 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.99.0", + "version": "5.99.1", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 9f3e25f86ba..4d751b0ea74 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index e05d6c71577..e463ad1f706 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.99.0", + "version": "5.99.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 38ac85e2a8e..c539b0e6810 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + - @tanstack/query-persist-client-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 06791dfcbee..f06e97c4966 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.99.0", + "version": "5.99.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 0257d1b47d3..07b63eafb44 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 2089bb39462..0e712d673df 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.99.0", + "version": "5.99.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index afba21e986b..9b6a1801de2 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.99.1 + ## 5.99.0 ## 5.98.0 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 00e0c425351..8966cbc8acf 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.99.0", + "version": "5.99.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 4a94c2b7176..bc04b28f626 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.99.1 + ## 5.99.0 ## 5.98.0 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index f4325415f53..19dbf1fe62b 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.99.0", + "version": "5.99.1", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 98af8476ad3..273a71858e5 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 99f7708764c..a1944d5bd2a 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.99.0", + "version": "5.99.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 04844214b9c..66e019bbcba 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + - @tanstack/query-persist-client-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index f5dda63c8a1..449548df11f 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.99.0", + "version": "5.99.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index dfa17fe0962..b465d450a24 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.1 + - @tanstack/react-query@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 95a67983f30..7cd9fd1b0b8 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.99.0", + "version": "5.99.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 6025cc01075..a6a0afecb50 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index e923c388f28..f5876da19c5 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.99.0", + "version": "5.99.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 46f0261f34f..1078a61d44c 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.1 + - @tanstack/react-query@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 1dcfbd78348..38e45a9e9fd 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.99.0", + "version": "5.99.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index d86473dc307..ec7c250082c 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 754a38681c7..9e667bd1d2c 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.99.0", + "version": "5.99.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 3b02ea5cb7e..d1fb54e2edb 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.1 + - @tanstack/solid-query@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 77e92f3b50a..4fa9b5e7f1c 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.99.0", + "version": "5.99.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 321f7cc1012..86d00b794df 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.1 + - @tanstack/solid-query@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index e0fd23cc3e9..ab95f1ff77a 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.99.0", + "version": "5.99.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index aced83fde13..53ef73b57b4 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 5.99.0 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 8c22c38ba36..cf561b4be59 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.99.0", + "version": "5.99.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index be3fa390298..58cd49398c7 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.17 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.1 + - @tanstack/svelte-query@6.1.17 + ## 6.1.16 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index defba30ec50..ed35b961845 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.16", + "version": "6.1.17", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 365d0f6d832..c1c4b585b8e 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.17 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.1 + - @tanstack/svelte-query@6.1.17 + ## 6.1.16 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 7f9fefd1396..fd7b571b26d 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.16", + "version": "6.1.17", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index f71e2e81da9..e0f7f2c1f3e 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.17 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 6.1.16 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index c1039347e29..94da129ea48 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.16", + "version": "6.1.17", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index ce6b250d852..346febae1e1 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.17 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.1 + - @tanstack/vue-query@5.99.1 + ## 6.1.16 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index ffaa7d04352..64c274df44e 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.16", + "version": "6.1.17", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 524565616ee..25ad5930f1f 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.99.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.1 + ## 5.99.0 ### Minor Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 75be110d69c..def33e7fa07 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.99.0", + "version": "5.99.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab5be43d95e..e2e46ccf441 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.16 + specifier: ^6.1.17 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.0 + specifier: ^5.99.1 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 430e988db97c802c26d0c3eb4bf8726d40c5314d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 19 Apr 2026 16:51:58 +0900 Subject: [PATCH 137/414] test(query-core/queryObserver): add test for not tracking error prop when 'throwOnError' is not set (#10517) --- .../src/__tests__/queryObserver.test.tsx | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 58306f072c0..a89c3dfc90a 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -1368,6 +1368,40 @@ describe('queryObserver', () => { unsubscribe() }) + test('should not track error prop when throwOnError is not set', async () => { + const key = queryKey() + const results: Array = [] + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: () => Promise.reject('error'), + retry: false, + }) + + const trackedResult = observer.trackResult( + observer.getCurrentResult(), + (prop) => { + if (prop === 'data') { + observer.trackProp(prop) + } + }, + ) + + trackedResult.data + + const unsubscribe = observer.subscribe((result) => { + results.push(result) + }) + + await vi.advanceTimersByTimeAsync(0) + + // Without throwOnError, `error` is not auto-added to trackedProps. + // Since only `data` is tracked and it did not change (stayed undefined), + // the listener is not invoked even though `error` prop changed. + expect(results.length).toBe(0) + + unsubscribe() + }) + test('should reject promise when experimental_prefetchInRender is disabled and thenable is pending', async () => { const key = queryKey() const queryClient2 = new QueryClient({ From 08a4d2b2836200ea8c720925db987f857206a7e1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 19 Apr 2026 18:43:26 +0900 Subject: [PATCH 138/414] test(query-core/queryObserver): add test for skipping refetch when 'retryOnMount' is false and query is in error state (#10518) --- .../src/__tests__/queryObserver.test.tsx | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index a89c3dfc90a..ffaaf0dbfdd 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -1402,6 +1402,42 @@ describe('queryObserver', () => { unsubscribe() }) + test('should not refetch on mount when retryOnMount is false and query is in error state', async () => { + const key = queryKey() + const queryFn = vi.fn(() => Promise.reject('error')) + + // First observer causes query to fail + const firstObserver = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + retry: false, + }) + const unsubscribeFirst = firstObserver.subscribe(vi.fn()) + + await vi.advanceTimersByTimeAsync(0) + + expect(queryFn).toHaveBeenCalledTimes(1) + expect(queryClient.getQueryState(key)?.status).toBe('error') + + unsubscribeFirst() + + // New observer with retryOnMount: false should not refetch + const secondObserver = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + retry: false, + retryOnMount: false, + }) + const unsubscribeSecond = secondObserver.subscribe(vi.fn()) + + await vi.advanceTimersByTimeAsync(0) + + // queryFn should still have been called only once (no refetch) + expect(queryFn).toHaveBeenCalledTimes(1) + + unsubscribeSecond() + }) + test('should reject promise when experimental_prefetchInRender is disabled and thenable is pending', async () => { const key = queryKey() const queryClient2 = new QueryClient({ From c2d0dfff5704406a8920348c602f8b97cfda34e7 Mon Sep 17 00:00:00 2001 From: Byungsker <72309817+byungsker@users.noreply.github.com> Date: Sun, 19 Apr 2026 19:38:13 +0900 Subject: [PATCH 139/414] fix(vue-query): allow computed ref as enabled property in queryOptions (#10465) Fixes #10458 The enabled property in QueryOptions type was incorrectly restricted to only accept getter functions (() => Enabled). This prevented using computed refs and other Vue reactive values. This change aligns QueryOptions.enabled type with UseQueryOptions.enabled, allowing: - boolean values - Ref - ComputedRef - () => boolean getter functions - (query) => boolean query predicates Co-authored-by: Damian Osipiuk --- .changeset/fix-vue-query-options-enabled.md | 14 ++++++ .../src/__tests__/queryOptions.test-d.ts | 47 ++++++++++++++++++- packages/vue-query/src/queryOptions.ts | 11 ++++- 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 .changeset/fix-vue-query-options-enabled.md diff --git a/.changeset/fix-vue-query-options-enabled.md b/.changeset/fix-vue-query-options-enabled.md new file mode 100644 index 00000000000..09ac988b038 --- /dev/null +++ b/.changeset/fix-vue-query-options-enabled.md @@ -0,0 +1,14 @@ +--- +'@tanstack/vue-query': patch +--- + +fix(vue-query): allow computed ref and other reactive values as `enabled` property in queryOptions + +This fixes a regression introduced in #10452 where `queryOptions` only accepted getter functions for the `enabled` property, but not `computed` refs or other reactive values. + +Now the `enabled` property in `queryOptions` correctly accepts: +- `boolean` values +- `Ref` +- `ComputedRef` +- `() => boolean` getter functions +- `(query) => boolean` query predicate functions diff --git a/packages/vue-query/src/__tests__/queryOptions.test-d.ts b/packages/vue-query/src/__tests__/queryOptions.test-d.ts index d7509080eba..0b87e1dd204 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test-d.ts @@ -1,5 +1,5 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' -import { reactive, ref } from 'vue-demi' +import { computed, reactive, ref } from 'vue-demi' import { dataTagSymbol } from '@tanstack/query-core' import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' @@ -253,4 +253,49 @@ describe('queryOptions', () => { expectTypeOf(resolvedGetter.queryFn).not.toBeUndefined() expectTypeOf(resolvedGetter.queryKey).not.toBeUndefined() }) + + it('should allow computed ref as enabled property', () => { + const enabled = computed(() => true) + + // This was broken in #10452, fixed in #10458 + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + enabled, + }) + + expectTypeOf(options.queryKey).not.toBeUndefined() + }) + + it('should allow ref as enabled property', () => { + const enabled = ref(true) + + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + enabled, + }) + + expectTypeOf(options.queryKey).not.toBeUndefined() + }) + + it('should allow boolean as enabled property', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + enabled: true, + }) + + expectTypeOf(options.queryKey).not.toBeUndefined() + }) + + it('should allow getter function as enabled property', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + enabled: () => true, + }) + + expectTypeOf(options.queryKey).not.toBeUndefined() + }) }) diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index 38132b85bab..ee8bc8c2e5b 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -1,4 +1,4 @@ -import type { DeepUnwrapRef, ShallowOption } from './types' +import type { DeepUnwrapRef, MaybeRefOrGetter, ShallowOption } from './types' import type { DataTag, DefaultError, @@ -23,7 +23,14 @@ export type QueryOptions< TQueryData, TQueryKey >]: Property extends 'enabled' - ? () => Enabled> + ? + | MaybeRefOrGetter + | (() => Enabled< + TQueryFnData, + TError, + TQueryData, + DeepUnwrapRef + >) : QueryObserverOptions< TQueryFnData, TError, From a3ec7b30cc4c18b2c5aefe608638ecadce732b81 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 12:55:14 +0200 Subject: [PATCH 140/414] ci: Version Packages (#10520) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/fix-vue-query-options-enabled.md | 14 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 18 ++ packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 446 insertions(+), 284 deletions(-) delete mode 100644 .changeset/fix-vue-query-options-enabled.md diff --git a/.changeset/fix-vue-query-options-enabled.md b/.changeset/fix-vue-query-options-enabled.md deleted file mode 100644 index 09ac988b038..00000000000 --- a/.changeset/fix-vue-query-options-enabled.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@tanstack/vue-query': patch ---- - -fix(vue-query): allow computed ref and other reactive values as `enabled` property in queryOptions - -This fixes a regression introduced in #10452 where `queryOptions` only accepted getter functions for the `enabled` property, but not `computed` refs or other reactive values. - -Now the `enabled` property in `queryOptions` correctly accepts: -- `boolean` values -- `Ref` -- `ComputedRef` -- `() => boolean` getter functions -- `(query) => boolean` query predicate functions diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 3c3b46ca572..d979cc0914e 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index c72f0f1cfba..5fe9eb11073 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", - "@tanstack/angular-query-persist-client": "^5.99.1", - "@tanstack/query-async-storage-persister": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-persist-client": "^5.99.2", + "@tanstack/query-async-storage-persister": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 585b1d1ff89..689629dedea 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 421b57acabc..ebd3f539252 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index c086c9c5216..185f4699db9 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index aa34c0bd4c3..54ae397c878 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 8849c678934..cffeab04ac0 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 04cd24ad78b..f33d877dc2e 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 2554587b6b8..dd224e80df3 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 34c118bfbfa..2dd24f9c0be 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 0adc2b1c6b2..71a88482471 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index e7696050270..66ffa9a29d0 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.99.1", + "@tanstack/preact-query": "^5.99.2", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 7882ce05849..671c736b50e 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.1", + "@tanstack/eslint-plugin-query": "^5.99.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index a72fb731eb7..7ab5a241e19 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index bca51496040..7afae88dff6 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 6e906eb4519..cac587d40a6 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.1", - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", - "@tanstack/react-query-persist-client": "^5.99.1", + "@tanstack/query-async-storage-persister": "^5.99.2", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query-persist-client": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.1", + "@tanstack/eslint-plugin-query": "^5.99.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 9cad523e0c5..332f4f545f4 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 988204c895c..3c2dd5572c7 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 17ea87cbdac..5d0e8e3f794 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 0232326c09c..cf05a1c395e 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.1", - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", - "@tanstack/react-query-persist-client": "^5.99.1", + "@tanstack/query-async-storage-persister": "^5.99.2", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query-persist-client": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.1", + "@tanstack/eslint-plugin-query": "^5.99.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 3dbf252cc59..b13de5b7f54 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", + "@tanstack/react-query": "^5.99.2", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.1", + "@tanstack/eslint-plugin-query": "^5.99.2", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index e41238f40b3..88858e7e5cb 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 37f01af8589..242fab9b063 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 79f610ee534..4de42b8709f 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 4c53dc9f6af..4ded0473c38 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", - "@tanstack/react-query-next-experimental": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query-next-experimental": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index b5c2c604939..ec1cce036ac 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 812e5ae9d53..3907a2c0ea4 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.1", + "@tanstack/query-async-storage-persister": "^5.99.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", - "@tanstack/react-query-persist-client": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query-persist-client": "^5.99.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 0c80fa8e111..bda889c091f 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 3b0ef2ec424..1b45c5aea16 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 17ff19d44b0..5847159f17f 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 5c7696b6467..5b363cc524c 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 9b8e1226369..f1e8e149d92 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 5e37171fba7..6eed8920cd4 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index ffb9b5d4be5..7a746dbc0c0 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 7f100083c7d..b2eb96cf05e 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 2296bc2294a..3adaa520674 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 3806f66dbf6..1c78cfbdb6c 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index bd2cf33bd02..5a9dc31e182 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 5fd06f7253f..3f00ec47d5e 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.1", - "@tanstack/react-query-devtools": "^5.99.1", + "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query-devtools": "^5.99.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index ace0b4a2ea4..6704a82ccc6 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.99.1", - "@tanstack/solid-query-devtools": "^5.99.1", + "@tanstack/solid-query": "^5.99.2", + "@tanstack/solid-query-devtools": "^5.99.2", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 38c08522c5b..ea95b976cc1 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.1", - "@tanstack/solid-query-devtools": "^5.99.1", + "@tanstack/solid-query": "^5.99.2", + "@tanstack/solid-query-devtools": "^5.99.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 30e1259874b..3cc588bead4 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.1", - "@tanstack/solid-query-devtools": "^5.99.1", + "@tanstack/solid-query": "^5.99.2", + "@tanstack/solid-query-devtools": "^5.99.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 701ddebc66f..1b710968bb2 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.1", - "@tanstack/solid-query-devtools": "^5.99.1", + "@tanstack/solid-query": "^5.99.2", + "@tanstack/solid-query-devtools": "^5.99.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 248c5d24030..0e2c31eaf53 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.1", - "@tanstack/solid-query": "^5.99.1", - "@tanstack/solid-query-devtools": "^5.99.1", - "@tanstack/solid-query-persist-client": "^5.99.1", + "@tanstack/query-async-storage-persister": "^5.99.2", + "@tanstack/solid-query": "^5.99.2", + "@tanstack/solid-query-devtools": "^5.99.2", + "@tanstack/solid-query-persist-client": "^5.99.2", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index b674f5ff884..f82fd825ff2 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.1", - "@tanstack/solid-query-devtools": "^5.99.1", + "@tanstack/solid-query": "^5.99.2", + "@tanstack/solid-query-devtools": "^5.99.2", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.1", + "@tanstack/eslint-plugin-query": "^5.99.2", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index e2cb4983f40..cb29acd1a78 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.99.1", - "@tanstack/solid-query-devtools": "^5.99.1", + "@tanstack/solid-query": "^5.99.2", + "@tanstack/solid-query-devtools": "^5.99.2", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index fb7b10e6a59..63a447a7dea 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17" + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 6cb8c6f4378..3ad1dea2cc1 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.1", - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17", - "@tanstack/svelte-query-persist-client": "^6.1.17" + "@tanstack/query-async-storage-persister": "^5.99.2", + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18", + "@tanstack/svelte-query-persist-client": "^6.1.18" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 54c9a12ffe3..4d214dd6271 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17" + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index f74df660970..02ce8bfd95c 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17" + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 507ebbda5ee..7a9b5378623 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17" + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 26cd7f47e68..6eab9564b72 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17" + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 55998352c0f..7f717c9ef26 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17" + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 08b0cd52fe2..652378e7c1e 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.17", - "@tanstack/svelte-query-devtools": "^6.1.17" + "@tanstack/svelte-query": "^6.1.18", + "@tanstack/svelte-query-devtools": "^6.1.18" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index feecd10ece0..fd24a730dec 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.1", - "@tanstack/vue-query-devtools": "^6.1.17", + "@tanstack/vue-query": "^5.99.2", + "@tanstack/vue-query-devtools": "^6.1.18", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 872c7d5e6e3..a62b95df841 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.1", + "@tanstack/vue-query": "^5.99.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 67208c46732..0c3f1405647 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.99.1", - "@tanstack/query-persist-client-core": "^5.99.1", - "@tanstack/query-sync-storage-persister": "^5.99.1", - "@tanstack/vue-query": "^5.99.1", + "@tanstack/query-core": "^5.99.2", + "@tanstack/query-persist-client-core": "^5.99.2", + "@tanstack/query-sync-storage-persister": "^5.99.2", + "@tanstack/vue-query": "^5.99.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 3b9bf2b3010..6546ece226f 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.1", - "@tanstack/vue-query-devtools": "^6.1.17", + "@tanstack/vue-query": "^5.99.2", + "@tanstack/vue-query-devtools": "^6.1.18", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index e48efc9a649..51b47e863ef 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.1", + "@tanstack/angular-query-experimental": "^5.99.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index a9b1613c7a2..ed5d84f234b 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 54a56e588b7..3c62b5e386c 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.99.1", + "version": "5.99.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 0d5233f6c48..7d364b834ea 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.99.2 + - @tanstack/query-persist-client-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 49321131b97..4756b7cf509 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.99.1", + "version": "5.99.2", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index fac356ea32e..62f70edcc48 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index bdd2922292e..13cb83c1bf6 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.99.1", + "version": "5.99.2", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 8c869e71d13..869163f22be 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.99.2 + - @tanstack/query-devtools@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index a13774b116e..86e7d53f5cf 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.99.1", + "version": "5.99.2", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 6cdfa77b5aa..55c5b263fb4 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.99.2 + - @tanstack/query-persist-client-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index ceaf94f0867..af8e4442c51 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.99.1", + "version": "5.99.2", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 4d751b0ea74..6731a969054 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index e463ad1f706..38132c82885 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.99.1", + "version": "5.99.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index c539b0e6810..013c7a933ac 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + - @tanstack/query-persist-client-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index f06e97c4966..b7a3b35fb96 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.99.1", + "version": "5.99.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 07b63eafb44..d1cfb3c909c 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 0e712d673df..c295b1dae2b 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.99.1", + "version": "5.99.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 9b6a1801de2..8045a35bec6 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.99.2 + ## 5.99.1 ## 5.99.0 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 8966cbc8acf..b1c55ac0370 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.99.1", + "version": "5.99.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index bc04b28f626..b691076bc22 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.99.2 + ## 5.99.1 ## 5.99.0 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 19dbf1fe62b..3c508c0ff29 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.99.1", + "version": "5.99.2", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 273a71858e5..801b0f1919b 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index a1944d5bd2a..fbfedc6b4ea 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.99.1", + "version": "5.99.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 66e019bbcba..f1d74c31b98 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + - @tanstack/query-persist-client-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 449548df11f..4b482b6b6b0 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.99.1", + "version": "5.99.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index b465d450a24..3340c45ac53 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.2 + - @tanstack/react-query@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 7cd9fd1b0b8..ef74ccca27c 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.99.1", + "version": "5.99.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index a6a0afecb50..e2720d693f1 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index f5876da19c5..10721005580 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.99.1", + "version": "5.99.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 1078a61d44c..3a1fe5045fb 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.2 + - @tanstack/react-query@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 38e45a9e9fd..ac0d01b2aec 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.99.1", + "version": "5.99.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index ec7c250082c..da3037f8379 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 9e667bd1d2c..a3530e0bc9c 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.99.1", + "version": "5.99.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index d1fb54e2edb..a949186a9f3 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.2 + - @tanstack/solid-query@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 4fa9b5e7f1c..c931eba3b96 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.99.1", + "version": "5.99.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 86d00b794df..661c51bbdca 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.2 + - @tanstack/solid-query@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index ab95f1ff77a..465628e2651 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.99.1", + "version": "5.99.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 53ef73b57b4..5a332a6893a 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.99.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index cf561b4be59..31d235e92bd 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.99.1", + "version": "5.99.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 58cd49398c7..5d0179480a7 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.18 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.99.2 + - @tanstack/svelte-query@6.1.18 + ## 6.1.17 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index ed35b961845..7e8091b56bd 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.17", + "version": "6.1.18", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index c1c4b585b8e..0e99bda9119 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.18 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.99.2 + - @tanstack/svelte-query@6.1.18 + ## 6.1.17 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index fd7b571b26d..d88ad4ad187 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.17", + "version": "6.1.18", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index e0f7f2c1f3e..ccf5d846df9 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.18 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 6.1.17 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 94da129ea48..b5a98525711 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.17", + "version": "6.1.18", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 346febae1e1..08afe5f188e 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.18 + +### Patch Changes + +- Updated dependencies [[`c2d0dff`](https://github.com/TanStack/query/commit/c2d0dfff5704406a8920348c602f8b97cfda34e7)]: + - @tanstack/vue-query@5.99.2 + - @tanstack/query-devtools@5.99.2 + ## 6.1.17 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 64c274df44e..bf5476f731d 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.17", + "version": "6.1.18", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 25ad5930f1f..dd03c4314a1 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,23 @@ # @tanstack/vue-query +## 5.99.2 + +### Patch Changes + +- fix(vue-query): allow computed ref and other reactive values as `enabled` property in queryOptions ([#10465](https://github.com/TanStack/query/pull/10465)) + + This fixes a regression introduced in #10452 where `queryOptions` only accepted getter functions for the `enabled` property, but not `computed` refs or other reactive values. + + Now the `enabled` property in `queryOptions` correctly accepts: + - `boolean` values + - `Ref` + - `ComputedRef` + - `() => boolean` getter functions + - `(query) => boolean` query predicate functions + +- Updated dependencies []: + - @tanstack/query-core@5.99.2 + ## 5.99.1 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index def33e7fa07..90aa817d606 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.99.1", + "version": "5.99.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2e46ccf441..36ee677fbd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.17 + specifier: ^6.1.18 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.1 + specifier: ^5.99.2 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 5b5d1db9c331d2d428bd5ae4814de7f6e315e991 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 20 Apr 2026 00:13:03 +0900 Subject: [PATCH 141/414] ci(nx.json): add '^compile' dependsOn to 'test:types' target (#10519) --- nx.json | 1 + 1 file changed, 1 insertion(+) diff --git a/nx.json b/nx.json index 7fabda994ec..143d6f40de3 100644 --- a/nx.json +++ b/nx.json @@ -62,6 +62,7 @@ }, "test:types": { "cache": true, + "dependsOn": ["^compile"], "inputs": ["default", "^production"] }, "build": { From 599e51d922db4c50eb4b05fcc9fed05cc59f59ef Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 20 Apr 2026 14:08:40 +0900 Subject: [PATCH 142/414] test(vue-query): replace hardcoded query keys with 'queryKey()' utility (#10524) --- .../__tests__/infiniteQueryOptions.test.ts | 3 ++- .../src/__tests__/queryOptions.test-d.ts | 14 +++++----- .../src/__tests__/queryOptions.test.ts | 3 ++- .../usePrefetchInfiniteQuery.test-d.ts | 17 ++++++------ .../usePrefetchInfiniteQuery.test.ts | 26 ++++++++++++------- .../src/__tests__/usePrefetchQuery.test-d.ts | 15 ++++++----- .../src/__tests__/usePrefetchQuery.test.ts | 25 +++++++++++------- .../src/__tests__/useQueries.test-d.ts | 4 +-- .../src/__tests__/useQuery.test-d.ts | 6 ++--- 9 files changed, 64 insertions(+), 49 deletions(-) diff --git a/packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts b/packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts index b00138d204b..334fa5ca4f6 100644 --- a/packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts +++ b/packages/vue-query/src/__tests__/infiniteQueryOptions.test.ts @@ -1,10 +1,11 @@ import { describe, expect, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { infiniteQueryOptions } from '../infiniteQueryOptions' describe('infiniteQueryOptions', () => { it('should return the object received as a parameter without any modification.', () => { const object = { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), getNextPageParam: () => null, initialPageParam: null, diff --git a/packages/vue-query/src/__tests__/queryOptions.test-d.ts b/packages/vue-query/src/__tests__/queryOptions.test-d.ts index 0b87e1dd204..481dd808fc5 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test-d.ts @@ -123,7 +123,7 @@ describe('queryOptions', () => { const ref1 = ref(1) const ref2 = ref(2) const options = queryOptions(() => ({ - queryKey: ['key', ref1.value, { nested: ref2.value }], + queryKey: [...queryKey(), ref1.value, { nested: ref2.value }], queryFn: () => Promise.resolve(5), })) @@ -233,7 +233,7 @@ describe('queryOptions', () => { it('should allow accessing queryFn and other properties on the returned options object', () => { const options = queryOptions({ - queryKey: ['groups'], + queryKey: queryKey(), queryFn: () => Promise.resolve([]), }) @@ -244,7 +244,7 @@ describe('queryOptions', () => { it('should allow accessing queryFn and other properties on the returned options when used with getter', () => { const options = queryOptions(() => ({ - queryKey: ['groups'], + queryKey: queryKey(), queryFn: () => Promise.resolve([]), })) @@ -259,7 +259,7 @@ describe('queryOptions', () => { // This was broken in #10452, fixed in #10458 const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), enabled, }) @@ -271,7 +271,7 @@ describe('queryOptions', () => { const enabled = ref(true) const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), enabled, }) @@ -281,7 +281,7 @@ describe('queryOptions', () => { it('should allow boolean as enabled property', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), enabled: true, }) @@ -291,7 +291,7 @@ describe('queryOptions', () => { it('should allow getter function as enabled property', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(1), enabled: () => true, }) diff --git a/packages/vue-query/src/__tests__/queryOptions.test.ts b/packages/vue-query/src/__tests__/queryOptions.test.ts index 4f5eb2963c1..a514de4a536 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test.ts @@ -1,11 +1,12 @@ import { describe, expect, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { queryOptions } from '../queryOptions' import type { QueryOptions } from '../queryOptions' describe('queryOptions', () => { it('should return the object received as a parameter without any modification.', () => { const object: QueryOptions = { - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), } as const diff --git a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts index 99dbb8db4ae..45fe98e1511 100644 --- a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test-d.ts @@ -1,12 +1,13 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { ref } from 'vue-demi' import { skipToken } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { usePrefetchInfiniteQuery } from '..' describe('usePrefetchInfiniteQuery', () => { it('should return nothing', () => { const result = usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -19,7 +20,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( // @ts-expect-error TS2345 usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }), ) @@ -28,7 +29,7 @@ describe('usePrefetchInfiniteQuery', () => { it('should not allow refetchInterval, enabled or throwOnError options', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -39,7 +40,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -50,7 +51,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), initialPageParam: 1, getNextPageParam: () => 1, @@ -63,7 +64,7 @@ describe('usePrefetchInfiniteQuery', () => { it('should accept refs in infinite query options', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key', ref('id')], + queryKey: [...queryKey(), ref('id')], queryFn: () => Promise.resolve(5), initialPageParam: ref(1), getNextPageParam: () => 1, @@ -75,7 +76,7 @@ describe('usePrefetchInfiniteQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), initialPageParam: 1, getNextPageParam: () => 1, // @ts-expect-error @@ -85,7 +86,7 @@ describe('usePrefetchInfiniteQuery', () => { assertType( usePrefetchInfiniteQuery({ - queryKey: ['key'], + queryKey: queryKey(), initialPageParam: 1, getNextPageParam: () => 1, // @ts-expect-error diff --git a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts index 63a4486f39a..353030f9ae0 100644 --- a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts +++ b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { nextTick, ref } from 'vue-demi' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { usePrefetchInfiniteQuery } from '../usePrefetchInfiniteQuery' @@ -22,9 +23,11 @@ describe('usePrefetchInfiniteQuery', () => { Promise.resolve({ data: 'prefetched', currentPage: 1 }), ) + const key = queryKey() + usePrefetchInfiniteQuery( { - queryKey: ['prefetch-infinite-query'], + queryKey: key, queryFn, initialPageParam: 1, getNextPageParam: () => undefined, @@ -34,7 +37,7 @@ describe('usePrefetchInfiniteQuery', () => { expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(1) expect(prefetchInfiniteQuerySpy).toHaveBeenCalledWith({ - queryKey: ['prefetch-infinite-query'], + queryKey: key, queryFn, initialPageParam: 1, getNextPageParam: expect.any(Function), @@ -51,14 +54,15 @@ describe('usePrefetchInfiniteQuery', () => { Promise.resolve({ data: 'prefetched', currentPage: 1 }), ) - queryClient.setQueryData(['prefetch-infinite-query-existing'], { + const key = queryKey() + queryClient.setQueryData(key, { pages: [{ data: 'existing', currentPage: 1 }], pageParams: [1], }) usePrefetchInfiniteQuery( { - queryKey: ['prefetch-infinite-query-existing'], + queryKey: key, queryFn, initialPageParam: 1, getNextPageParam: () => undefined, @@ -76,10 +80,11 @@ describe('usePrefetchInfiniteQuery', () => { 'prefetchInfiniteQuery', ) const nestedRef = ref('value') + const key = queryKey() usePrefetchInfiniteQuery( { - queryKey: ['prefetch-infinite-query-ref', nestedRef], + queryKey: [...key, nestedRef], queryFn: () => Promise.resolve({ data: 'prefetched', currentPage: 1 }), initialPageParam: 1, getNextPageParam: () => undefined, @@ -89,7 +94,7 @@ describe('usePrefetchInfiniteQuery', () => { expect(prefetchInfiniteQuerySpy).toHaveBeenCalledWith( expect.objectContaining({ - queryKey: ['prefetch-infinite-query-ref', 'value'], + queryKey: [...key, 'value'], }), ) }) @@ -101,10 +106,11 @@ describe('usePrefetchInfiniteQuery', () => { 'prefetchInfiniteQuery', ) const keyRef = ref('first') + const key = queryKey() usePrefetchInfiniteQuery( () => ({ - queryKey: ['prefetch-infinite-query-reactive', keyRef.value], + queryKey: [...key, keyRef.value], queryFn: () => Promise.resolve({ data: keyRef.value, currentPage: 1 }), initialPageParam: 1, getNextPageParam: () => undefined, @@ -115,7 +121,7 @@ describe('usePrefetchInfiniteQuery', () => { expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(1) expect(prefetchInfiniteQuerySpy).toHaveBeenLastCalledWith( expect.objectContaining({ - queryKey: ['prefetch-infinite-query-reactive', 'first'], + queryKey: [...key, 'first'], }), ) @@ -125,7 +131,7 @@ describe('usePrefetchInfiniteQuery', () => { expect(prefetchInfiniteQuerySpy).toHaveBeenCalledTimes(2) expect(prefetchInfiniteQuerySpy).toHaveBeenLastCalledWith( expect.objectContaining({ - queryKey: ['prefetch-infinite-query-reactive', 'second'], + queryKey: [...key, 'second'], }), ) }) @@ -137,7 +143,7 @@ describe('usePrefetchInfiniteQuery', () => { try { usePrefetchInfiniteQuery( { - queryKey: ['outside-scope-prefetch-infinite-query'], + queryKey: queryKey(), queryFn: () => Promise.resolve({ data: 'prefetched', currentPage: 1 }), initialPageParam: 1, diff --git a/packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts b/packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts index fd2f4cda1eb..85067bc94bb 100644 --- a/packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/usePrefetchQuery.test-d.ts @@ -1,12 +1,13 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' import { ref } from 'vue-demi' import { skipToken } from '@tanstack/query-core' +import { queryKey } from '@tanstack/query-test-utils' import { usePrefetchQuery } from '..' describe('usePrefetchQuery', () => { it('should return nothing', () => { const result = usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -16,7 +17,7 @@ describe('usePrefetchQuery', () => { it('should not allow refetchInterval, enabled or throwOnError options', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2353 refetchInterval: 1000, @@ -25,7 +26,7 @@ describe('usePrefetchQuery', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2353 enabled: true, @@ -34,7 +35,7 @@ describe('usePrefetchQuery', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), // @ts-expect-error TS2353 throwOnError: true, @@ -45,7 +46,7 @@ describe('usePrefetchQuery', () => { it('should accept refs in query options', () => { assertType( usePrefetchQuery({ - queryKey: ['key', ref('id')], + queryKey: [...queryKey(), ref('id')], queryFn: () => Promise.resolve(5), staleTime: ref(1000), }), @@ -55,7 +56,7 @@ describe('usePrefetchQuery', () => { it('should not allow skipToken in queryFn', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: skipToken, }), @@ -63,7 +64,7 @@ describe('usePrefetchQuery', () => { assertType( usePrefetchQuery({ - queryKey: ['key'], + queryKey: queryKey(), // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), diff --git a/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts index 996d853ef64..88274da0411 100644 --- a/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts +++ b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { nextTick, ref } from 'vue-demi' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { usePrefetchQuery } from '../usePrefetchQuery' @@ -16,10 +17,11 @@ describe('usePrefetchQuery', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const queryFn = vi.fn(() => Promise.resolve('prefetched')) + const key = queryKey() usePrefetchQuery( { - queryKey: ['prefetch-query'], + queryKey: key, queryFn, }, queryClient, @@ -27,7 +29,7 @@ describe('usePrefetchQuery', () => { expect(prefetchQuerySpy).toHaveBeenCalledTimes(1) expect(prefetchQuerySpy).toHaveBeenCalledWith({ - queryKey: ['prefetch-query'], + queryKey: key, queryFn, }) }) @@ -36,11 +38,12 @@ describe('usePrefetchQuery', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const queryFn = vi.fn(() => Promise.resolve('prefetched')) - queryClient.setQueryData(['prefetch-query-existing'], 'existing') + const key = queryKey() + queryClient.setQueryData(key, 'existing') usePrefetchQuery( { - queryKey: ['prefetch-query-existing'], + queryKey: key, queryFn, }, queryClient, @@ -53,10 +56,11 @@ describe('usePrefetchQuery', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const nestedRef = ref('value') + const key = queryKey() usePrefetchQuery( { - queryKey: ['prefetch-query-ref', nestedRef], + queryKey: [...key, nestedRef], queryFn: () => Promise.resolve('prefetched'), }, queryClient, @@ -64,7 +68,7 @@ describe('usePrefetchQuery', () => { expect(prefetchQuerySpy).toHaveBeenCalledWith( expect.objectContaining({ - queryKey: ['prefetch-query-ref', 'value'], + queryKey: [...key, 'value'], }), ) }) @@ -73,10 +77,11 @@ describe('usePrefetchQuery', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const keyRef = ref('first') + const key = queryKey() usePrefetchQuery( () => ({ - queryKey: ['prefetch-query-reactive', keyRef.value], + queryKey: [...key, keyRef.value], queryFn: () => Promise.resolve(keyRef.value), }), queryClient, @@ -84,7 +89,7 @@ describe('usePrefetchQuery', () => { expect(prefetchQuerySpy).toHaveBeenCalledTimes(1) expect(prefetchQuerySpy).toHaveBeenLastCalledWith({ - queryKey: ['prefetch-query-reactive', 'first'], + queryKey: [...key, 'first'], queryFn: expect.any(Function), }) @@ -93,7 +98,7 @@ describe('usePrefetchQuery', () => { expect(prefetchQuerySpy).toHaveBeenCalledTimes(2) expect(prefetchQuerySpy).toHaveBeenLastCalledWith({ - queryKey: ['prefetch-query-reactive', 'second'], + queryKey: [...key, 'second'], queryFn: expect.any(Function), }) }) @@ -105,7 +110,7 @@ describe('usePrefetchQuery', () => { try { usePrefetchQuery( { - queryKey: ['outside-scope-prefetch-query'], + queryKey: queryKey(), queryFn: () => Promise.resolve('prefetched'), }, new QueryClient(), diff --git a/packages/vue-query/src/__tests__/useQueries.test-d.ts b/packages/vue-query/src/__tests__/useQueries.test-d.ts index 09feb97e371..93566cb36ea 100644 --- a/packages/vue-query/src/__tests__/useQueries.test-d.ts +++ b/packages/vue-query/src/__tests__/useQueries.test-d.ts @@ -266,7 +266,7 @@ describe('UseQueries config object overload', () => { it('should infer correct data type from queryOptions without initialData in useQueries', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), }) @@ -277,7 +277,7 @@ describe('UseQueries config object overload', () => { it('should infer correct data type from queryOptions with select in useQueries', () => { const options = queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => Promise.resolve(5), select: (data) => data.toString(), }) diff --git a/packages/vue-query/src/__tests__/useQuery.test-d.ts b/packages/vue-query/src/__tests__/useQuery.test-d.ts index 12dbb4a41cc..be9013e222b 100644 --- a/packages/vue-query/src/__tests__/useQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/useQuery.test-d.ts @@ -271,7 +271,7 @@ describe('useQuery', () => { describe('accept ref options', () => { it('should accept ref options', () => { const options = ref({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => sleep(0).then(() => 'Some data'), }) @@ -284,7 +284,7 @@ describe('useQuery', () => { it('should accept computed options', () => { const options = computed(() => ({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => sleep(0).then(() => 'Some data'), })) @@ -298,7 +298,7 @@ describe('useQuery', () => { it('should accept computed query options', () => { const options = computed(() => queryOptions({ - queryKey: ['key'], + queryKey: queryKey(), queryFn: () => sleep(0).then(() => 'Some data'), }), ) From 799952fa94420c820064cea377cd9a6579ab968e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 20 Apr 2026 20:48:37 +0900 Subject: [PATCH 143/414] test(angular-query-experimental/injectQueries): add test for not fetching when 'isRestoring' is true (#10526) * test(angular-query-experimental/injectQueries): add test for not fetching when 'isRestoring' is true * test(angular-query-experimental/inject-queries): wrap 'isRestoring' test in 'describe' block for consistency with 'inject-query.test.ts' --- .../src/__tests__/inject-queries.test.ts | 50 ++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index d85e1985b3e..1cead27d3c1 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -3,11 +3,12 @@ import { Component, effect, provideZonelessChangeDetection, + signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' import { render } from '@testing-library/angular' import { queryKey, sleep } from '@tanstack/query-test-utils' -import { QueryClient, provideTanStackQuery } from '..' +import { QueryClient, provideIsRestoring, provideTanStackQuery } from '..' import { injectQueries } from '../inject-queries' let queryClient: QueryClient @@ -80,4 +81,51 @@ describe('injectQueries', () => { expect(results[1]).toMatchObject([{ data: 1 }, { data: undefined }]) expect(results[2]).toMatchObject([{ data: 1 }, { data: 2 }]) }) + + describe('isRestoring', () => { + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { + const key1 = queryKey() + const key2 = queryKey() + const queryFn1 = vi.fn().mockImplementation(() => sleep(10).then(() => 1)) + const queryFn2 = vi.fn().mockImplementation(() => sleep(10).then(() => 2)) + + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + provideIsRestoring(signal(true).asReadonly()), + ], + }) + + const queries = TestBed.runInInjectionContext(() => + injectQueries(() => ({ + queries: [ + { queryKey: key1, queryFn: queryFn1 }, + { queryKey: key2, queryFn: queryFn2 }, + ], + })), + ) + + await vi.advanceTimersByTimeAsync(0) + expect(queries()[0].status()).toBe('pending') + expect(queries()[0].fetchStatus()).toBe('idle') + expect(queries()[0].data()).toBeUndefined() + expect(queries()[1].status()).toBe('pending') + expect(queries()[1].fetchStatus()).toBe('idle') + expect(queries()[1].data()).toBeUndefined() + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + + await vi.advanceTimersByTimeAsync(11) + expect(queries()[0].status()).toBe('pending') + expect(queries()[0].fetchStatus()).toBe('idle') + expect(queries()[0].data()).toBeUndefined() + expect(queries()[1].status()).toBe('pending') + expect(queries()[1].fetchStatus()).toBe('idle') + expect(queries()[1].data()).toBeUndefined() + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + }) + }) }) From 6b6667e5fb2f09af2398d033db8997a682d37138 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 20 Apr 2026 23:09:37 +0900 Subject: [PATCH 144/414] test(*): migrate 'test' to 'it' and enforce 'vitest/consistent-test-it' rule (#10528) * test(*): migrate 'test' to 'it' and enforce 'vitest/consistent-test-it' rule * ci: apply automated fixes * chore(preact-query): revert unintended removal of 'eslint-disable' comments from 'src' files --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- eslint.config.js | 4 + .../infinite-query-options.test-d.ts | 8 +- .../__tests__/inject-infinite-query.test-d.ts | 4 +- .../__tests__/inject-infinite-query.test.ts | 8 +- .../src/__tests__/inject-is-fetching.test.ts | 8 +- .../src/__tests__/inject-is-mutating.test.ts | 8 +- .../src/__tests__/inject-is-restoring.test.ts | 10 +- .../__tests__/inject-mutation-state.test.ts | 14 +- .../src/__tests__/inject-mutation.test-d.ts | 14 +- .../src/__tests__/inject-mutation.test.ts | 56 ++--- .../src/__tests__/inject-query.test-d.ts | 12 +- .../src/__tests__/inject-query.test.ts | 44 ++-- .../src/__tests__/pending-tasks.test.ts | 36 +-- .../__tests__/provide-query-client.test.ts | 6 +- .../__tests__/provide-tanstack-query.test.ts | 6 +- .../src/__tests__/query-options.test-d.ts | 26 +-- .../src/__tests__/signal-proxy.test.ts | 10 +- .../src/__tests__/with-devtools.test.ts | 4 +- .../with-persist-query-client.test.ts | 14 +- .../sort-data-by-order.utils.test.ts | 4 +- .../src/__tests__/test-utils.test.ts | 17 +- .../PersistQueryClientProvider.test.tsx | 4 +- .../src/__tests__/HydrationBoundary.test.tsx | 22 +- .../__tests__/QueryClientProvider.test.tsx | 10 +- .../__tests__/infiniteQueryOptions.test-d.tsx | 8 +- .../src/__tests__/useQuery.test.tsx | 8 +- .../src/__tests__/asyncThrottle.test.ts | 14 +- .../src/__tests__/environmentManager.test.tsx | 8 +- .../src/__tests__/focusManager.test.tsx | 12 +- .../src/__tests__/hydration.test.tsx | 68 +++--- .../__tests__/infiniteQueryBehavior.test.tsx | 18 +- .../__tests__/infiniteQueryObserver.test.tsx | 16 +- .../src/__tests__/mutationCache.test.tsx | 34 +-- .../src/__tests__/mutationObserver.test.tsx | 30 +-- .../src/__tests__/mutations.test.tsx | 50 ++-- .../src/__tests__/onlineManager.test.tsx | 22 +- .../src/__tests__/queriesObserver.test.tsx | 42 ++-- .../query-core/src/__tests__/query.test.tsx | 84 +++---- .../src/__tests__/queryCache.test.tsx | 32 +-- .../src/__tests__/queryClient.test.tsx | 216 +++++++++--------- .../src/__tests__/queryObserver.test.tsx | 119 +++++----- .../src/__tests__/streamedQuery.test.tsx | 32 +-- .../src/__tests__/createPersister.test.ts | 70 +++--- .../src/__tests__/persist.test.ts | 12 +- .../src/__tests__/storageIsFull.test.ts | 8 +- .../PersistQueryClientProvider.test.tsx | 22 +- .../src/__tests__/HydrationBoundary.test.tsx | 26 +-- .../__tests__/QueryClientProvider.test.tsx | 10 +- .../__tests__/infiniteQueryOptions.test-d.tsx | 8 +- .../src/__tests__/useQuery.test.tsx | 8 +- .../PersistQueryClientProvider.test.tsx | 16 +- .../PersistQueryClientProvider.svelte.test.ts | 16 +- .../QueryClientProvider.svelte.test.ts | 4 +- .../tests/context/context.svelte.test.ts | 6 +- .../createMutation.svelte.test.ts | 10 +- .../tests/infiniteQueryOptions.test-d.ts | 10 +- .../mutationOptions/mutationOptions.test-d.ts | 28 +-- .../svelte-query/tests/queryOptions.test-d.ts | 34 +-- .../useIsFetching.svelte.test.ts | 4 +- .../useIsMutating.svelte.test.ts | 4 +- .../useMutationState.svelte.test.ts | 10 +- .../src/__tests__/mutationCache.test.ts | 6 +- .../src/__tests__/queryCache.test.ts | 8 +- .../src/__tests__/queryClient.test.ts | 56 ++--- .../src/__tests__/useInfiniteQuery.test.ts | 6 +- .../src/__tests__/useIsFetching.test.ts | 12 +- .../src/__tests__/useIsMutating.test.ts | 10 +- .../src/__tests__/useMutation.test.ts | 46 ++-- .../usePrefetchInfiniteQuery.test.ts | 12 +- .../src/__tests__/usePrefetchQuery.test.ts | 12 +- .../src/__tests__/useQueries.test.ts | 28 +-- .../vue-query/src/__tests__/useQuery.test.ts | 48 ++-- .../src/__tests__/useQueryClient.test.ts | 10 +- .../vue-query/src/__tests__/utils.test.ts | 26 +-- .../src/__tests__/vueQueryPlugin.test.ts | 16 +- 75 files changed, 882 insertions(+), 882 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index d9a08b85eee..e6fa91ce0a0 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -52,6 +52,10 @@ export default [ plugins: { vitest }, rules: { ...vitest.configs.recommended.rules, + 'vitest/consistent-test-it': [ + 'error', + { fn: 'it', withinDescribe: 'it' }, + ], 'vitest/no-standalone-expect': [ 'error', { diff --git a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts index 17ce85b9d46..e53af1ae785 100644 --- a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts @@ -1,4 +1,4 @@ -import { assertType, describe, expectTypeOf, it, test } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { queryKey } from '@tanstack/query-test-utils' import { QueryClient, dataTagSymbol } from '@tanstack/query-core' import { infiniteQueryOptions } from '../infinite-query-options' @@ -139,7 +139,7 @@ describe('infiniteQueryOptions', () => { >() }) - test('should not be allowed to be passed to non-infinite query functions', () => { + it('should not be allowed to be passed to non-infinite query functions', () => { const key = queryKey() const queryClient = new QueryClient() const options = infiniteQueryOptions({ @@ -166,7 +166,7 @@ describe('infiniteQueryOptions', () => { ) }) - test('allow optional initialData function', () => { + it('allow optional initialData function', () => { const key = queryKey() const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ @@ -185,7 +185,7 @@ describe('infiniteQueryOptions', () => { >() }) - test('allow optional initialData object', () => { + it('allow optional initialData object', () => { const key = queryKey() const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts index e9db0edafb9..59bc53d496b 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { afterEach, beforeEach, describe, expectTypeOf, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expectTypeOf, it, vi } from 'vitest' import { provideZonelessChangeDetection } from '@angular/core' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' @@ -23,7 +23,7 @@ describe('injectInfiniteQuery', () => { vi.useRealTimers() }) - test('should narrow type after isSuccess', () => { + it('should narrow type after isSuccess', () => { const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectInfiniteQuery(() => ({ diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index 55890b38d2a..fbaea8ca007 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { Injector, provideZonelessChangeDetection } from '@angular/core' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' @@ -23,7 +23,7 @@ describe('injectInfiniteQuery', () => { vi.useRealTimers() }) - test('should properly execute infinite query', async () => { + it('should properly execute infinite query', async () => { const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectInfiniteQuery(() => ({ @@ -64,7 +64,7 @@ describe('injectInfiniteQuery', () => { }) describe('injection context', () => { - test('throws NG0203 with descriptive error outside injection context', () => { + it('throws NG0203 with descriptive error outside injection context', () => { const key = queryKey() expect(() => { injectInfiniteQuery(() => ({ @@ -77,7 +77,7 @@ describe('injectInfiniteQuery', () => { }).toThrow(/NG0203(.*?)injectInfiniteQuery/) }) - test('can be used outside injection context when passing an injector', () => { + it('can be used outside injection context when passing an injector', () => { const key = queryKey() const query = injectInfiniteQuery( () => ({ diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index 983f5d16ca2..97d8651b19e 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { Injector, provideZonelessChangeDetection } from '@angular/core' import { queryKey, sleep } from '@tanstack/query-test-utils' import { @@ -28,7 +28,7 @@ describe('injectIsFetching', () => { vi.useRealTimers() }) - test('Returns number of fetching queries', async () => { + it('Returns number of fetching queries', async () => { const key = queryKey() const isFetching = TestBed.runInInjectionContext(() => { injectQuery(() => ({ @@ -46,13 +46,13 @@ describe('injectIsFetching', () => { }) describe('injection context', () => { - test('throws NG0203 with descriptive error outside injection context', () => { + it('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsFetching() }).toThrow(/NG0203(.*?)injectIsFetching/) }) - test('can be used outside injection context when passing an injector', () => { + it('can be used outside injection context when passing an injector', () => { expect( injectIsFetching(undefined, { injector: TestBed.inject(Injector), diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index b24dfd88f1c..652ad4031c0 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TestBed } from '@angular/core/testing' import { Injector, provideZonelessChangeDetection } from '@angular/core' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -28,7 +28,7 @@ describe('injectIsMutating', () => { vi.useRealTimers() }) - test('should properly return isMutating state', async () => { + it('should properly return isMutating state', async () => { const key = queryKey() const [mutation, isMutating] = TestBed.runInInjectionContext(() => [ injectMutation(() => ({ @@ -52,13 +52,13 @@ describe('injectIsMutating', () => { }) describe('injection context', () => { - test('throws NG0203 with descriptive error outside injection context', () => { + it('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsMutating() }).toThrow(/NG0203(.*?)injectIsMutating/) }) - test('can be used outside injection context when passing an injector', () => { + it('can be used outside injection context when passing an injector', () => { expect( injectIsMutating(undefined, { injector: TestBed.inject(Injector), diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts index c097d1b97d9..44b5df69909 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { Injector, provideZonelessChangeDetection, signal } from '@angular/core' import { QueryClient, @@ -11,7 +11,7 @@ import { describe('injectIsRestoring', () => { let queryClient: QueryClient - test('returns false by default when provideIsRestoring is not used', () => { + it('returns false by default when provideIsRestoring is not used', () => { queryClient = new QueryClient() TestBed.configureTestingModule({ @@ -28,7 +28,7 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(false) }) - test('returns provided signal value when provideIsRestoring is used', () => { + it('returns provided signal value when provideIsRestoring is used', () => { queryClient = new QueryClient() const restoringSignal = signal(true) @@ -47,7 +47,7 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(true) }) - test('can be used outside injection context when passing an injector', () => { + it('can be used outside injection context when passing an injector', () => { queryClient = new QueryClient() TestBed.configureTestingModule({ @@ -64,7 +64,7 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(false) }) - test('throws NG0203 with descriptive error outside injection context', () => { + it('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsRestoring() }).toThrow(/NG0203(.*?)injectIsRestoring/) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index e06d0322358..2808f92c22c 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -6,7 +6,7 @@ import { signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { By } from '@angular/platform-browser' import { queryKey, sleep } from '@tanstack/query-test-utils' import { @@ -36,7 +36,7 @@ describe('injectMutationState', () => { }) describe('injectMutationState', () => { - test('should return variables after calling mutate 1', () => { + it('should return variables after calling mutate 1', () => { const mutationKey = queryKey() const variables = 'foo123' @@ -59,7 +59,7 @@ describe('injectMutationState', () => { expect(mutationState()).toEqual([variables]) }) - test('reactive options should update injectMutationState', () => { + it('reactive options should update injectMutationState', () => { const mutationKey1 = queryKey() const mutationKey2 = queryKey() const variables1 = 'foo123' @@ -96,7 +96,7 @@ describe('injectMutationState', () => { expect(mutationState()).toEqual([variables2]) }) - test('should return variables after calling mutate 2', () => { + it('should return variables after calling mutate 2', () => { queryClient.clear() const mutationKey = queryKey() const variables = 'bar234' @@ -117,7 +117,7 @@ describe('injectMutationState', () => { expect(mutationState()[0]?.variables).toEqual(variables) }) - test('should support required signal inputs', async () => { + it('should support required signal inputs', async () => { queryClient.clear() const fakeName = 'name1' const mutationKey1 = ['fake', fakeName] @@ -179,13 +179,13 @@ describe('injectMutationState', () => { }) describe('injection context', () => { - test('throws NG0203 with descriptive error outside injection context', () => { + it('throws NG0203 with descriptive error outside injection context', () => { expect(() => { injectMutationState() }).toThrow(/NG0203(.*?)injectMutationState/) }) - test('can be used outside injection context when passing an injector', () => { + it('can be used outside injection context when passing an injector', () => { const injector = TestBed.inject(Injector) expect( injectMutationState(undefined, { diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts index b3a45d1c374..e241ce58c94 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts @@ -1,11 +1,11 @@ -import { describe, expectTypeOf, test } from 'vitest' +import { describe, expectTypeOf, it } from 'vitest' import { sleep } from '@tanstack/query-test-utils' import { injectMutation } from '..' import type { Signal } from '@angular/core' describe('injectMutation', () => { describe('Discriminated union return type', () => { - test('data should be possibly undefined by default', () => { + it('data should be possibly undefined by default', () => { const mutation = injectMutation(() => ({ mutationFn: () => sleep(0).then(() => 'string'), })) @@ -13,7 +13,7 @@ describe('injectMutation', () => { expectTypeOf(mutation.data).toEqualTypeOf>() }) - test('data should be defined when mutation is success', () => { + it('data should be defined when mutation is success', () => { const mutation = injectMutation(() => ({ mutationFn: () => sleep(0).then(() => 'string'), })) @@ -23,7 +23,7 @@ describe('injectMutation', () => { } }) - test('error should be null when mutation is success', () => { + it('error should be null when mutation is success', () => { const mutation = injectMutation(() => ({ mutationFn: () => sleep(0).then(() => 'string'), })) @@ -33,7 +33,7 @@ describe('injectMutation', () => { } }) - test('data should be undefined when mutation is pending', () => { + it('data should be undefined when mutation is pending', () => { const mutation = injectMutation(() => ({ mutationFn: () => sleep(0).then(() => 'string'), })) @@ -43,7 +43,7 @@ describe('injectMutation', () => { } }) - test('error should be defined when mutation is error', () => { + it('error should be defined when mutation is error', () => { const mutation = injectMutation(() => ({ mutationFn: () => sleep(0).then(() => 'string'), })) @@ -53,7 +53,7 @@ describe('injectMutation', () => { } }) - test('should narrow variables', () => { + it('should narrow variables', () => { const mutation = injectMutation(() => ({ mutationFn: (_variables: string) => sleep(0).then(() => 'string'), })) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 7a7120ce02b..5a0bfb88c2c 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -7,7 +7,7 @@ import { signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { By } from '@angular/platform-browser' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectMutation, provideTanStackQuery } from '..' @@ -31,7 +31,7 @@ describe('injectMutation', () => { vi.useRealTimers() }) - test('should be in idle state initially', () => { + it('should be in idle state initially', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationFn: (params) => sleep(0).then(() => params), @@ -46,7 +46,7 @@ describe('injectMutation', () => { }) }) - test('should change state after invoking mutate', async () => { + it('should change state after invoking mutate', async () => { const result = 'Mock data' const mutation = TestBed.runInInjectionContext(() => { @@ -70,7 +70,7 @@ describe('injectMutation', () => { }) }) - test('should return error when request fails', async () => { + it('should return error when request fails', async () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationFn: () => @@ -92,7 +92,7 @@ describe('injectMutation', () => { }) }) - test('should return data when request succeeds', async () => { + it('should return data when request succeeds', async () => { const result = 'Mock data' const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -114,7 +114,7 @@ describe('injectMutation', () => { }) }) - test('reactive options should update mutation', () => { + it('reactive options should update mutation', () => { const mutationCache = queryClient.getMutationCache() // Signal will be updated before the mutation is called // this test confirms that the mutation uses the updated value @@ -137,7 +137,7 @@ describe('injectMutation', () => { expect(mutations?.options.mutationKey).toEqual(key2) }) - test('should reset state after invoking mutation.reset', async () => { + it('should reset state after invoking mutation.reset', async () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationFn: () => @@ -170,7 +170,7 @@ describe('injectMutation', () => { vi.clearAllMocks() }) - test('should call onMutate when passed as an option', async () => { + it('should call onMutate when passed as an option', async () => { const onMutate = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -186,7 +186,7 @@ describe('injectMutation', () => { expect(onMutate).toHaveBeenCalledTimes(1) }) - test('should call onError when passed as an option', async () => { + it('should call onError when passed as an option', async () => { const onError = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -203,7 +203,7 @@ describe('injectMutation', () => { expect(onError).toHaveBeenCalledTimes(1) }) - test('should call onSuccess when passed as an option', async () => { + it('should call onSuccess when passed as an option', async () => { const onSuccess = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -219,7 +219,7 @@ describe('injectMutation', () => { expect(onSuccess).toHaveBeenCalledTimes(1) }) - test('should call onSettled when passed as an option', async () => { + it('should call onSettled when passed as an option', async () => { const onSettled = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -235,7 +235,7 @@ describe('injectMutation', () => { expect(onSettled).toHaveBeenCalledTimes(1) }) - test('should call onError when passed as an argument of mutate function', async () => { + it('should call onError when passed as an argument of mutate function', async () => { const onError = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -251,7 +251,7 @@ describe('injectMutation', () => { expect(onError).toHaveBeenCalledTimes(1) }) - test('should call onSuccess when passed as an argument of mutate function', async () => { + it('should call onSuccess when passed as an argument of mutate function', async () => { const onSuccess = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -266,7 +266,7 @@ describe('injectMutation', () => { expect(onSuccess).toHaveBeenCalledTimes(1) }) - test('should call onSettled when passed as an argument of mutate function', async () => { + it('should call onSettled when passed as an argument of mutate function', async () => { const onSettled = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -281,7 +281,7 @@ describe('injectMutation', () => { expect(onSettled).toHaveBeenCalledTimes(1) }) - test('should fire both onSettled functions', async () => { + it('should fire both onSettled functions', async () => { const onSettled = vi.fn() const onSettledOnFunction = vi.fn() const mutation = TestBed.runInInjectionContext(() => { @@ -300,7 +300,7 @@ describe('injectMutation', () => { }) }) - test('should support required signal inputs', async () => { + it('should support required signal inputs', async () => { const mutationCache = queryClient.getMutationCache() @Component({ @@ -340,7 +340,7 @@ describe('injectMutation', () => { expect(mutation!.options.mutationKey).toStrictEqual(['fake', 'value']) }) - test('should update options on required signal input change', async () => { + it('should update options on required signal input change', async () => { const mutationCache = queryClient.getMutationCache() @Component({ @@ -392,7 +392,7 @@ describe('injectMutation', () => { }) describe('throwOnError', () => { - test('should evaluate throwOnError when mutation is expected to throw', async () => { + it('should evaluate throwOnError when mutation is expected to throw', async () => { const key = queryKey() const err = new Error('Expected mock error. All is well!') const boundaryFn = vi.fn() @@ -416,7 +416,7 @@ describe('injectMutation', () => { expect(boundaryFn).toHaveBeenCalledWith(err) }) - test('should throw when throwOnError is true and mutate is used', async () => { + it('should throw when throwOnError is true and mutate is used', async () => { const key = queryKey() const { mutate } = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ @@ -440,7 +440,7 @@ describe('injectMutation', () => { }) }) - test('should throw when throwOnError is true', async () => { + it('should throw when throwOnError is true', async () => { const key = queryKey() const err = new Error('Expected mock error. All is well!') const { mutateAsync } = TestBed.runInInjectionContext(() => { @@ -456,7 +456,7 @@ describe('injectMutation', () => { await expect(() => mutateAsync()).rejects.toThrow(err) }) - test('should throw when throwOnError function returns true', async () => { + it('should throw when throwOnError function returns true', async () => { const key = queryKey() const err = new Error('Expected mock error. All is well!') const { mutateAsync } = TestBed.runInInjectionContext(() => { @@ -473,7 +473,7 @@ describe('injectMutation', () => { }) describe('injection context', () => { - test('throws NG0203 with descriptive error outside injection context', () => { + it('throws NG0203 with descriptive error outside injection context', () => { const key = queryKey() expect(() => { injectMutation(() => ({ @@ -483,7 +483,7 @@ describe('injectMutation', () => { }).toThrow(/NG0203(.*?)injectMutation/) }) - test('can be used outside injection context when passing an injector', () => { + it('can be used outside injection context when passing an injector', () => { const key = queryKey() expect(() => { injectMutation( @@ -498,7 +498,7 @@ describe('injectMutation', () => { }).not.toThrow() }) - test('should complete mutation before whenStable() resolves', async () => { + it('should complete mutation before whenStable() resolves', async () => { const app = TestBed.inject(ApplicationRef) let mutationStarted = false let mutationCompleted = false @@ -535,7 +535,7 @@ describe('injectMutation', () => { expect(mutation.data()).toBe('processed: test') }) - test('should handle synchronous mutation with retry', async () => { + it('should handle synchronous mutation with retry', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ @@ -585,7 +585,7 @@ describe('injectMutation', () => { expect(attemptCount).toBe(3) // Initial + 2 retries }) - test('should handle multiple synchronous mutations on same key', async () => { + it('should handle multiple synchronous mutations on same key', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ @@ -639,7 +639,7 @@ describe('injectMutation', () => { expect(callCount).toBe(2) }) - test('should handle synchronous mutation with optimistic updates', async () => { + it('should handle synchronous mutation with optimistic updates', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ @@ -691,7 +691,7 @@ describe('injectMutation', () => { expect(queryClient.getQueryData(testQueryKey)).toBe('final: test') }) - test('should handle synchronous mutation cancellation', async () => { + it('should handle synchronous mutation cancellation', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts index d48146aa677..c0864c0c99e 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it, test } from 'vitest' +import { describe, expectTypeOf, it } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { injectQuery, queryOptions } from '..' import type { Signal } from '@angular/core' @@ -133,7 +133,7 @@ describe('injectQuery', () => { }) describe('Discriminated union return type', () => { - test('data should be possibly undefined by default', () => { + it('data should be possibly undefined by default', () => { const key = queryKey() const query = injectQuery(() => ({ queryKey: key, @@ -143,7 +143,7 @@ describe('injectQuery', () => { expectTypeOf(query.data).toEqualTypeOf>() }) - test('data should be defined when query is success', () => { + it('data should be defined when query is success', () => { const key = queryKey() const query = injectQuery(() => ({ queryKey: key, @@ -155,7 +155,7 @@ describe('injectQuery', () => { } }) - test('error should be null when query is success', () => { + it('error should be null when query is success', () => { const key = queryKey() const query = injectQuery(() => ({ queryKey: key, @@ -167,7 +167,7 @@ describe('injectQuery', () => { } }) - test('data should be undefined when query is pending', () => { + it('data should be undefined when query is pending', () => { const key = queryKey() const query = injectQuery(() => ({ queryKey: key, @@ -179,7 +179,7 @@ describe('injectQuery', () => { } }) - test('error should be defined when query is error', () => { + it('error should be defined when query is error', () => { const key = queryKey() const query = injectQuery(() => ({ queryKey: key, diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 9b1a92f5338..652081c3c24 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -20,7 +20,7 @@ import { describe, expect, expectTypeOf, - test, + it, vi, } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -54,7 +54,7 @@ describe('injectQuery', () => { vi.useRealTimers() }) - test('should return the correct types', () => { + it('should return the correct types', () => { const key = queryKey() // unspecified query function should default to unknown const noQueryFn = TestBed.runInInjectionContext(() => @@ -266,7 +266,7 @@ describe('injectQuery', () => { >() }) - test('should return pending status initially', () => { + it('should return pending status initially', () => { const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -282,7 +282,7 @@ describe('injectQuery', () => { expect(query.isFetched()).toBe(false) }) - test('should resolve to success and update signal: injectQuery()', async () => { + it('should resolve to success and update signal: injectQuery()', async () => { const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -300,7 +300,7 @@ describe('injectQuery', () => { expect(query.isSuccess()).toBe(true) }) - test('should reject and update signal', async () => { + it('should reject and update signal', async () => { const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -322,7 +322,7 @@ describe('injectQuery', () => { expect(query.failureReason()).toMatchObject({ message: 'Some error' }) }) - test('should update query on options contained signal change', async () => { + it('should update query on options contained signal change', async () => { const key1 = queryKey() const key2 = queryKey() const key = signal(key1) @@ -354,7 +354,7 @@ describe('injectQuery', () => { }) }) - test('should only run query once enabled signal is set to true', async () => { + it('should only run query once enabled signal is set to true', async () => { const key = queryKey() const spy = vi.fn(() => sleep(10).then(() => 'Some data')) const enabled = signal(false) @@ -377,7 +377,7 @@ describe('injectQuery', () => { expect(query.status()).toBe('success') }) - test('should properly execute dependent queries', async () => { + it('should properly execute dependent queries', async () => { const key1 = queryKey() const key2 = queryKey() @@ -421,7 +421,7 @@ describe('injectQuery', () => { ) }) - test('should use the current value for the queryKey when refetch is called', async () => { + it('should use the current value for the queryKey when refetch is called', async () => { const key = queryKey() const fetchFn = vi.fn(() => sleep(10).then(() => 'Some data')) const keySignal = signal('key11') @@ -462,7 +462,7 @@ describe('injectQuery', () => { }) describe('throwOnError', () => { - test('should evaluate throwOnError when query is expected to throw', async () => { + it('should evaluate throwOnError when query is expected to throw', async () => { const key = queryKey() const boundaryFn = vi.fn() TestBed.runInInjectionContext(() => { @@ -485,7 +485,7 @@ describe('injectQuery', () => { ) }) - test('should throw when throwOnError is true', async () => { + it('should throw when throwOnError is true', async () => { const key = queryKey() TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -499,7 +499,7 @@ describe('injectQuery', () => { await expect(vi.runAllTimersAsync()).rejects.toThrow('Some error') }) - test('should throw when throwOnError function returns true', async () => { + it('should throw when throwOnError function returns true', async () => { const key = queryKey() TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -514,7 +514,7 @@ describe('injectQuery', () => { }) }) - test('should set state to error when queryFn returns reject promise', async () => { + it('should set state to error when queryFn returns reject promise', async () => { const key = queryKey() const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -532,7 +532,7 @@ describe('injectQuery', () => { expect(query.status()).toBe('error') }) - test('should render with required signal inputs', async () => { + it('should render with required signal inputs', async () => { @Component({ selector: 'app-fake', template: `{{ query.data() }}`, @@ -560,7 +560,7 @@ describe('injectQuery', () => { }) describe('isRestoring', () => { - test('should not fetch for the duration of the restoring period when isRestoring is true', async () => { + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { const key = queryKey() const queryFn = vi .fn() @@ -597,7 +597,7 @@ describe('injectQuery', () => { }) describe('injection context', () => { - test('throws NG0203 with descriptive error outside injection context', () => { + it('throws NG0203 with descriptive error outside injection context', () => { const key = queryKey() expect(() => { injectQuery(() => ({ @@ -607,7 +607,7 @@ describe('injectQuery', () => { }).toThrow(/NG0203(.*?)injectQuery/) }) - test('can be used outside injection context when passing an injector', () => { + it('can be used outside injection context when passing an injector', () => { const key = queryKey() const query = injectQuery( () => ({ @@ -622,7 +622,7 @@ describe('injectQuery', () => { expect(query.status()).toBe('pending') }) - test('should complete queries before whenStable() resolves', async () => { + it('should complete queries before whenStable() resolves', async () => { const key = queryKey() const app = TestBed.inject(ApplicationRef) @@ -644,7 +644,7 @@ describe('injectQuery', () => { expect(query.data()).toBe('test data') }) - test('should complete HttpClient-based queries before whenStable() resolves', async () => { + it('should complete HttpClient-based queries before whenStable() resolves', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ @@ -690,7 +690,7 @@ describe('injectQuery', () => { httpTestingController.verify() }) - test('should handle synchronous queryFn with staleTime', async () => { + it('should handle synchronous queryFn with staleTime', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ @@ -734,7 +734,7 @@ describe('injectQuery', () => { expect(callCount).toBe(2) }) - test('should handle enabled/disabled transitions with synchronous queryFn', async () => { + it('should handle enabled/disabled transitions with synchronous queryFn', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ @@ -776,7 +776,7 @@ describe('injectQuery', () => { expect(callCount).toBe(1) }) - test('should handle query invalidation with synchronous data', async () => { + it('should handle query invalidation with synchronous data', async () => { TestBed.resetTestingModule() TestBed.configureTestingModule({ providers: [ diff --git a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts index 65f1395f933..abb0752b9bc 100644 --- a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts +++ b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts @@ -9,7 +9,7 @@ import { HttpTestingController, provideHttpClientTesting, } from '@angular/common/http/testing' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { lastValueFrom } from 'rxjs' import { @@ -52,7 +52,7 @@ describe('PendingTasks Integration', () => { }) describe('Synchronous Resolution', () => { - test('should handle synchronous queryFn with whenStable()', async () => { + it('should handle synchronous queryFn with whenStable()', async () => { const app = TestBed.inject(ApplicationRef) const key = queryKey() @@ -78,7 +78,7 @@ describe('PendingTasks Integration', () => { expect(query.data()).toBe('instant-data') }) - test('should handle synchronous error with whenStable()', async () => { + it('should handle synchronous error with whenStable()', async () => { const app = TestBed.inject(ApplicationRef) const key = queryKey() @@ -101,7 +101,7 @@ describe('PendingTasks Integration', () => { expect(query.error()).toEqual(new Error('instant-error')) }) - test('should handle synchronous mutationFn with whenStable()', async () => { + it('should handle synchronous mutationFn with whenStable()', async () => { const app = TestBed.inject(ApplicationRef) let mutationFnCalled = false @@ -129,7 +129,7 @@ describe('PendingTasks Integration', () => { expect(mutation.data()).toBe('processed: test') }) - test('should handle synchronous mutation error with whenStable()', async () => { + it('should handle synchronous mutation error with whenStable()', async () => { const app = TestBed.inject(ApplicationRef) const mutation = TestBed.runInInjectionContext(() => @@ -156,7 +156,7 @@ describe('PendingTasks Integration', () => { }) describe('Race Conditions', () => { - test('should handle query that completes during initial subscription', async () => { + it('should handle query that completes during initial subscription', async () => { const key = queryKey() const app = TestBed.inject(ApplicationRef) let resolveQuery: (value: string) => void @@ -184,7 +184,7 @@ describe('PendingTasks Integration', () => { expect(query.data()).toBe('race-data') }) - test('should handle rapid refetches without task leaks', async () => { + it('should handle rapid refetches without task leaks', async () => { const app = TestBed.inject(ApplicationRef) let callCount = 0 @@ -213,7 +213,7 @@ describe('PendingTasks Integration', () => { expect(query.data()).toMatch(/^data-\d+$/) }) - test('should keep PendingTasks active while query retry is paused offline', async () => { + it('should keep PendingTasks active while query retry is paused offline', async () => { const app = TestBed.inject(ApplicationRef) let attempt = 0 @@ -297,7 +297,7 @@ describe('PendingTasks Integration', () => { })) } - test('should cleanup pending tasks when component with active query is destroyed', async () => { + it('should cleanup pending tasks when component with active query is destroyed', async () => { const app = TestBed.inject(ApplicationRef) const fixture = TestBed.createComponent(TestComponent) @@ -314,7 +314,7 @@ describe('PendingTasks Integration', () => { await expect(stablePromise).resolves.toEqual(undefined) }) - test('should cleanup pending tasks when component with active mutation is destroyed', async () => { + it('should cleanup pending tasks when component with active mutation is destroyed', async () => { const app = TestBed.inject(ApplicationRef) const fixture = TestBed.createComponent(TestComponent) @@ -332,7 +332,7 @@ describe('PendingTasks Integration', () => { }) describe('Concurrent Operations', () => { - test('should handle multiple queries running simultaneously', async () => { + it('should handle multiple queries running simultaneously', async () => { const key1 = queryKey() const key2 = queryKey() const key3 = queryKey() @@ -377,7 +377,7 @@ describe('PendingTasks Integration', () => { expect(query3.data()).toBe('instant-data') }) - test('should handle multiple mutations running simultaneously', async () => { + it('should handle multiple mutations running simultaneously', async () => { const app = TestBed.inject(ApplicationRef) const mutation1 = TestBed.runInInjectionContext(() => @@ -423,7 +423,7 @@ describe('PendingTasks Integration', () => { expect(mutation3.data()).toBe('processed-3: test3') }) - test('should handle mixed queries and mutations', async () => { + it('should handle mixed queries and mutations', async () => { const app = TestBed.inject(ApplicationRef) const key = queryKey() @@ -469,7 +469,7 @@ describe('PendingTasks Integration', () => { }) }) - test('should handle multiple HttpClient requests with lastValueFrom', async () => { + it('should handle multiple HttpClient requests with lastValueFrom', async () => { const app = TestBed.inject(ApplicationRef) const httpClient = TestBed.inject(HttpClient) const httpTestingController = TestBed.inject(HttpTestingController) @@ -514,7 +514,7 @@ describe('PendingTasks Integration', () => { httpTestingController.verify() }) - test('should handle HttpClient request cancellation', async () => { + it('should handle HttpClient request cancellation', async () => { const app = TestBed.inject(ApplicationRef) const httpClient = TestBed.inject(HttpClient) const httpTestingController = TestBed.inject(HttpTestingController) @@ -548,7 +548,7 @@ describe('PendingTasks Integration', () => { }) describe('Edge Cases', () => { - test('should handle query cancellation mid-flight', async () => { + it('should handle query cancellation mid-flight', async () => { const key = queryKey() const app = TestBed.inject(ApplicationRef) @@ -578,7 +578,7 @@ describe('PendingTasks Integration', () => { expect(query.fetchStatus()).toBe('idle') }) - test('should handle query retry and pending task tracking', async () => { + it('should handle query retry and pending task tracking', async () => { const app = TestBed.inject(ApplicationRef) let attemptCount = 0 @@ -607,7 +607,7 @@ describe('PendingTasks Integration', () => { expect(attemptCount).toBe(3) // Initial + 2 retries }) - test('should handle mutation with optimistic updates', async () => { + it('should handle mutation with optimistic updates', async () => { const app = TestBed.inject(ApplicationRef) const testQueryKey = queryKey() diff --git a/packages/angular-query-experimental/src/__tests__/provide-query-client.test.ts b/packages/angular-query-experimental/src/__tests__/provide-query-client.test.ts index 2ea84e4b3f9..5253274de34 100644 --- a/packages/angular-query-experimental/src/__tests__/provide-query-client.test.ts +++ b/packages/angular-query-experimental/src/__tests__/provide-query-client.test.ts @@ -1,11 +1,11 @@ import { TestBed } from '@angular/core/testing' -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { InjectionToken, provideZonelessChangeDetection } from '@angular/core' import { QueryClient } from '@tanstack/query-core' import { provideQueryClient } from '../providers' describe('provideQueryClient', () => { - test('should provide a QueryClient instance directly', () => { + it('should provide a QueryClient instance directly', () => { const queryClient = new QueryClient() TestBed.configureTestingModule({ @@ -19,7 +19,7 @@ describe('provideQueryClient', () => { expect(providedQueryClient).toBe(queryClient) }) - test('should provide a QueryClient instance using an InjectionToken', () => { + it('should provide a QueryClient instance using an InjectionToken', () => { const queryClient = new QueryClient() const CUSTOM_QUERY_CLIENT = new InjectionToken('', { factory: () => queryClient, diff --git a/packages/angular-query-experimental/src/__tests__/provide-tanstack-query.test.ts b/packages/angular-query-experimental/src/__tests__/provide-tanstack-query.test.ts index 1f6cf582ba5..ff1cf4324fc 100644 --- a/packages/angular-query-experimental/src/__tests__/provide-tanstack-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/provide-tanstack-query.test.ts @@ -1,11 +1,11 @@ import { TestBed } from '@angular/core/testing' -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { InjectionToken, provideZonelessChangeDetection } from '@angular/core' import { QueryClient } from '@tanstack/query-core' import { provideTanStackQuery } from '../providers' describe('provideTanStackQuery', () => { - test('should provide a QueryClient instance directly', () => { + it('should provide a QueryClient instance directly', () => { const queryClient = new QueryClient() TestBed.configureTestingModule({ @@ -19,7 +19,7 @@ describe('provideTanStackQuery', () => { expect(providedQueryClient).toBe(queryClient) }) - test('should provide a QueryClient instance using an InjectionToken', () => { + it('should provide a QueryClient instance using an InjectionToken', () => { const queryClient = new QueryClient() const CUSTOM_QUERY_CLIENT = new InjectionToken('', { factory: () => queryClient, diff --git a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts index cfd1890d1c4..8642cf07d72 100644 --- a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts @@ -1,14 +1,14 @@ -import { assertType, describe, expectTypeOf, test } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { queryKey } from '@tanstack/query-test-utils' import { QueryClient, dataTagSymbol, injectQuery, queryOptions } from '..' import type { Signal } from '@angular/core' describe('queryOptions', () => { - test('should not allow excess properties', () => { + it('should not allow excess properties', () => { expectTypeOf(queryOptions).parameter(0).not.toHaveProperty('stallTime') }) - test('should infer types for callbacks', () => { + it('should infer types for callbacks', () => { const key = queryKey() queryOptions({ queryKey: key, @@ -20,7 +20,7 @@ describe('queryOptions', () => { }) }) - test('should allow undefined response in initialData', () => { + it('should allow undefined response in initialData', () => { const key = queryKey() const options = (id: string | null) => queryOptions({ @@ -45,7 +45,7 @@ describe('queryOptions', () => { }) }) -test('should work when passed to injectQuery', () => { +it('should work when passed to injectQuery', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -56,7 +56,7 @@ test('should work when passed to injectQuery', () => { expectTypeOf(data).toEqualTypeOf>() }) -test('should work when passed to fetchQuery', () => { +it('should work when passed to fetchQuery', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -67,7 +67,7 @@ test('should work when passed to fetchQuery', () => { assertType>(data) }) -test('should tag the queryKey with the result type of the QueryFn', () => { +it('should tag the queryKey with the result type of the QueryFn', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -76,7 +76,7 @@ test('should tag the queryKey with the result type of the QueryFn', () => { assertType(tagged[dataTagSymbol]) }) -test('should tag the queryKey even if no promise is returned', () => { +it('should tag the queryKey even if no promise is returned', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -85,7 +85,7 @@ test('should tag the queryKey even if no promise is returned', () => { assertType(tagged[dataTagSymbol]) }) -test('should tag the queryKey with unknown if there is no queryFn', () => { +it('should tag the queryKey with unknown if there is no queryFn', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -94,7 +94,7 @@ test('should tag the queryKey with unknown if there is no queryFn', () => { assertType(tagged[dataTagSymbol]) }) -test('should tag the queryKey with the result type of the QueryFn if select is used', () => { +it('should tag the queryKey with the result type of the QueryFn if select is used', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -105,7 +105,7 @@ test('should tag the queryKey with the result type of the QueryFn if select is u assertType(tagged[dataTagSymbol]) }) -test('should return the proper type when passed to getQueryData', () => { +it('should return the proper type when passed to getQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -118,7 +118,7 @@ test('should return the proper type when passed to getQueryData', () => { expectTypeOf(data).toEqualTypeOf() }) -test('should properly type updaterFn when passed to setQueryData', () => { +it('should properly type updaterFn when passed to setQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -134,7 +134,7 @@ test('should properly type updaterFn when passed to setQueryData', () => { expectTypeOf(data).toEqualTypeOf() }) -test('should properly type value when passed to setQueryData', () => { +it('should properly type value when passed to setQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, diff --git a/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts b/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts index d06aef67230..b7ad207fb68 100644 --- a/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts +++ b/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts @@ -1,27 +1,27 @@ import { isSignal, signal } from '@angular/core' -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { signalProxy } from '../signal-proxy' describe('signalProxy', () => { const inputSignal = signal({ fn: () => 'bar', baz: 'qux' }) const proxy = signalProxy(inputSignal) - test('should have computed fields', () => { + it('should have computed fields', () => { expect(proxy.baz()).toEqual('qux') expect(isSignal(proxy.baz)).toBe(true) }) - test('should pass through functions as-is', () => { + it('should pass through functions as-is', () => { expect(proxy.fn()).toEqual('bar') expect(isSignal(proxy.fn)).toBe(false) }) - test('supports "in" operator', () => { + it('supports "in" operator', () => { expect('baz' in proxy).toBe(true) expect('foo' in proxy).toBe(false) }) - test('supports "Object.keys"', () => { + it('supports "Object.keys"', () => { expect(Object.keys(proxy)).toEqual(['fn', 'baz']) }) }) diff --git a/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts b/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts index 6c6e1281154..81bc73c4beb 100644 --- a/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts +++ b/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryClient } from '@tanstack/query-core' import { TestBed } from '@angular/core/testing' import { @@ -62,7 +62,7 @@ describe('withDevtools feature', () => { TestBed.resetTestingModule() }) - test.each([ + it.each([ { description: 'should load devtools in development mode', isDevMode: true, diff --git a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts index 0ff84e82258..31908671406 100644 --- a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts +++ b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryClient, injectQuery, @@ -62,7 +62,7 @@ const createMockErrorPersister = ( } describe('withPersistQueryClient', () => { - test('restores cache from persister', async () => { + it('restores cache from persister', async () => { const key = queryKey() const states: Array<{ status: string @@ -146,11 +146,11 @@ describe('withPersistQueryClient', () => { }) }) - test.todo( + it.todo( '(Once injectQueries is functional) verify that injectQueries transitions to an idle state', ) - test('should show initialData while restoring', async () => { + it('should show initialData while restoring', async () => { const key = queryKey() const states: Array<{ status: string @@ -238,7 +238,7 @@ describe('withPersistQueryClient', () => { }) }) - test('should not refetch after restoring when data is fresh', async () => { + it('should not refetch after restoring when data is fresh', async () => { const key = queryKey() const states: Array<{ status: string @@ -321,7 +321,7 @@ describe('withPersistQueryClient', () => { }) }) - test('should call onSuccess after successful restoring', async () => { + it('should call onSuccess after successful restoring', async () => { const key = queryKey() const queryClient = new QueryClient() queryClient.prefetchQuery({ @@ -377,7 +377,7 @@ describe('withPersistQueryClient', () => { expect(rendered.getByText('fetched')).toBeInTheDocument() }) - test('should remove cache after non-successful restoring', async () => { + it('should remove cache after non-successful restoring', async () => { const key = queryKey() const onErrorMock = vi .spyOn(console, 'error') diff --git a/packages/eslint-plugin-query/src/__tests__/sort-data-by-order.utils.test.ts b/packages/eslint-plugin-query/src/__tests__/sort-data-by-order.utils.test.ts index 577252b7c64..896d4524ce3 100644 --- a/packages/eslint-plugin-query/src/__tests__/sort-data-by-order.utils.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/sort-data-by-order.utils.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { sortDataByOrder } from '../utils/sort-data-by-order' describe('create-route-property-order utils', () => { @@ -68,7 +68,7 @@ describe('create-route-property-order utils', () => { expected: [{ key: 'd' }, { key: 'a' }, { key: 'b' }, { key: 'c' }], }, ] as const - test.each(testCases)( + it.each(testCases)( '$data $orderArray $key $expected', ({ data, orderArray, key, expected }) => { const sortedData = sortDataByOrder(data, orderArray, key) diff --git a/packages/eslint-plugin-query/src/__tests__/test-utils.test.ts b/packages/eslint-plugin-query/src/__tests__/test-utils.test.ts index 5997c342a7b..ea0e65b1aee 100644 --- a/packages/eslint-plugin-query/src/__tests__/test-utils.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/test-utils.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { expectArrayEqualIgnoreOrder, generateInterleavedCombinations, @@ -32,7 +32,7 @@ describe('test-utils', () => { expected: [['a']], }, ] - test.each(testCases)('$input $expected', ({ input, expected }) => { + it.each(testCases)('$input $expected', ({ input, expected }) => { const permutations = generatePermutations(input) expect(permutations).toEqual(expected) }) @@ -71,7 +71,7 @@ describe('test-utils', () => { minLength: 0, }, ] - test.each(testCases)( + it.each(testCases)( '$input $minLength $expected', ({ input, minLength, expected }) => { const combinations = generatePartialCombinations(input, minLength) @@ -93,12 +93,9 @@ describe('test-utils', () => { ], }, ] - test.each(testCases)( - '$input $expected', - ({ data, additional, expected }) => { - const combinations = generateInterleavedCombinations(data, additional) - expectArrayEqualIgnoreOrder(combinations, expected) - }, - ) + it.each(testCases)('$input $expected', ({ data, additional, expected }) => { + const combinations = generateInterleavedCombinations(data, additional) + expectArrayEqualIgnoreOrder(combinations, expected) + }) }) }) diff --git a/packages/preact-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/preact-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index 25a68912b79..15c88be7275 100644 --- a/packages/preact-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/preact-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -11,7 +11,7 @@ import { notifyManager } from '../../../query-core/src' import { act, cleanup, render } from '@testing-library/preact' import type { UseQueryResult } from '../../../preact-query/src' import { QueryClient, useQuery } from '../../../preact-query/src' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, vi, it } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { PersistQueryClientProvider } from './testPersistProvider' @@ -48,7 +48,7 @@ describe('PersistQueryClientProvider (preact)', () => { vi.useRealTimers() }) - test('restores cache from persister and refetches', async () => { + it('restores cache from persister and refetches', async () => { const key = queryKey() const states: Array> = [] diff --git a/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx b/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx index 56d21306c7e..f0794fc7e88 100644 --- a/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/preact-query/src/__tests__/HydrationBoundary.test.tsx @@ -3,7 +3,7 @@ import type { hydrate } from '@tanstack/query-core' import { queryKey, sleep } from '@tanstack/query-test-utils' import { render } from '@testing-library/preact' import { Suspense, startTransition } from 'preact/compat' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, vi, it } from 'vitest' import { HydrationBoundary, @@ -35,7 +35,7 @@ describe('Preact hydration', () => { vi.useRealTimers() }) - test('should hydrate queries to the cache on context', async () => { + it('should hydrate queries to the cache on context', async () => { const dehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -65,7 +65,7 @@ describe('Preact hydration', () => { queryClient.clear() }) - test('should hydrate queries to the cache on custom context', async () => { + it('should hydrate queries to the cache on custom context', async () => { const queryClientInner = new QueryClient() const queryClientOuter = new QueryClient() @@ -102,7 +102,7 @@ describe('Preact hydration', () => { }) describe('PreactQueryCacheProvider with hydration support', () => { - test('should hydrate new queries if queries change', async () => { + it('should hydrate new queries if queries change', async () => { const dehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -173,7 +173,7 @@ describe('Preact hydration', () => { // remounted, I didn't change tabs etc?). // Any queries that does not exist in the cache yet can still be hydrated // since they don't have any observers on the current page that would update. - test('should hydrate new but not existing queries if transition is aborted', async () => { + it('should hydrate new but not existing queries if transition is aborted', async () => { const initialDehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -266,7 +266,7 @@ describe('Preact hydration', () => { queryClient.clear() }) - test('should hydrate queries to new cache if cache changes', async () => { + it('should hydrate queries to new cache if cache changes', async () => { const dehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -311,7 +311,7 @@ describe('Preact hydration', () => { }) }) - test('should not hydrate queries if state is null', async () => { + it('should not hydrate queries if state is null', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -339,7 +339,7 @@ describe('Preact hydration', () => { queryClient.clear() }) - test('should not hydrate queries if state is undefined', async () => { + it('should not hydrate queries if state is undefined', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -363,7 +363,7 @@ describe('Preact hydration', () => { queryClient.clear() }) - test('should not hydrate queries if state is not an object', async () => { + it('should not hydrate queries if state is not an object', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -387,7 +387,7 @@ describe('Preact hydration', () => { queryClient.clear() }) - test('should handle state without queries property gracefully', async () => { + it('should handle state without queries property gracefully', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -412,7 +412,7 @@ describe('Preact hydration', () => { }) // https://github.com/TanStack/query/issues/8677 - test('should not infinite loop when hydrating promises that resolve to errors', async () => { + it('should not infinite loop when hydrating promises that resolve to errors', async () => { const originalHydrate = coreModule.hydrate const hydrateSpy = vi.spyOn(coreModule, 'hydrate') let hydrationCount = 0 diff --git a/packages/preact-query/src/__tests__/QueryClientProvider.test.tsx b/packages/preact-query/src/__tests__/QueryClientProvider.test.tsx index a29a0a409e1..c6ba18d989a 100644 --- a/packages/preact-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/preact-query/src/__tests__/QueryClientProvider.test.tsx @@ -1,6 +1,6 @@ import { queryKey, sleep } from '@tanstack/query-test-utils' import { render } from '@testing-library/preact' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, vi, it } from 'vitest' import { QueryCache, @@ -19,7 +19,7 @@ describe('QueryClientProvider', () => { vi.useRealTimers() }) - test('sets a specific cache for all queries to use', async () => { + it('sets a specific cache for all queries to use', async () => { const key = queryKey() const queryCache = new QueryCache() @@ -50,7 +50,7 @@ describe('QueryClientProvider', () => { expect(queryCache.find({ queryKey: key })).toBeDefined() }) - test('allows multiple caches to be partitioned', async () => { + it('allows multiple caches to be partitioned', async () => { const key1 = queryKey() const key2 = queryKey() @@ -106,7 +106,7 @@ describe('QueryClientProvider', () => { expect(queryCache2.find({ queryKey: key2 })).toBeDefined() }) - test("uses defaultOptions for queries when they don't provide their own config", async () => { + it("uses defaultOptions for queries when they don't provide their own config", async () => { const key = queryKey() const queryCache = new QueryCache() @@ -146,7 +146,7 @@ describe('QueryClientProvider', () => { }) describe('useQueryClient', () => { - test('should throw an error if no query client has been set', () => { + it('should throw an error if no query client has been set', () => { const consoleMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) diff --git a/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx index bf3daec3355..6c1cd389249 100644 --- a/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/preact-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -5,7 +5,7 @@ import type { InitialDataFunction, } from '@tanstack/query-core' import { queryKey } from '@tanstack/query-test-utils' -import { assertType, describe, expectTypeOf, it, test } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { infiniteQueryOptions } from '../infiniteQueryOptions' import { useInfiniteQuery } from '../useInfiniteQuery' @@ -155,7 +155,7 @@ describe('infiniteQueryOptions', () => { expectTypeOf(data).toEqualTypeOf>() }) - test('should not be allowed to be passed to non-infinite query functions', () => { + it('should not be allowed to be passed to non-infinite query functions', () => { const queryClient = new QueryClient() const options = infiniteQueryOptions({ queryKey: queryKey(), @@ -181,7 +181,7 @@ describe('infiniteQueryOptions', () => { ) }) - test('allow optional initialData function', () => { + it('allow optional initialData function', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ queryKey: queryKey(), @@ -199,7 +199,7 @@ describe('infiniteQueryOptions', () => { >() }) - test('allow optional initialData object', () => { + it('allow optional initialData object', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ queryKey: queryKey(), diff --git a/packages/preact-query/src/__tests__/useQuery.test.tsx b/packages/preact-query/src/__tests__/useQuery.test.tsx index 1f26a863951..4ef21e05e55 100644 --- a/packages/preact-query/src/__tests__/useQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test.tsx @@ -12,7 +12,7 @@ import { useRef, useState, } from 'preact/hooks' -import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { Mock } from 'vitest' import { @@ -3911,7 +3911,7 @@ describe('useQuery', () => { }) // See https://github.com/tannerlinsley/react-query/issues/360 - test('should init to status:pending, fetchStatus:idle when enabled is false', async () => { + it('should init to status:pending, fetchStatus:idle when enabled is false', async () => { const key = queryKey() function Page() { @@ -3936,7 +3936,7 @@ describe('useQuery', () => { expect(rendered.getByText('status: pending, idle')).toBeInTheDocument() }) - test('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { + it('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { const key = queryKey() function Page() { @@ -3959,7 +3959,7 @@ describe('useQuery', () => { expect(setTimeoutSpy).not.toHaveBeenCalled() }) - test('should schedule garbage collection, if gcTimeout is not set to infinity', async () => { + it('should schedule garbage collection, if gcTimeout is not set to infinity', async () => { const key = queryKey() function Page() { diff --git a/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts b/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts index 95bbcac79b2..fe62502ab8d 100644 --- a/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts +++ b/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { sleep } from '@tanstack/query-test-utils' import { asyncThrottle } from '../asyncThrottle' @@ -11,7 +11,7 @@ describe('asyncThrottle', () => { vi.useRealTimers() }) - test('basic', async () => { + it('basic', async () => { const interval = 10 const execTimeStamps: Array = [] const mockFunc = vi.fn( @@ -44,7 +44,7 @@ describe('asyncThrottle', () => { ) }) - test('Bug #3331 case 1: Special timing', async () => { + it('Bug #3331 case 1: Special timing', async () => { const interval = 1000 const execTimeStamps: Array = [] const mockFunc = vi.fn( @@ -76,7 +76,7 @@ describe('asyncThrottle', () => { ) }) - test('Bug #3331 case 2: "func" execution time is greater than the interval.', async () => { + it('Bug #3331 case 2: "func" execution time is greater than the interval.', async () => { const interval = 1000 const execTimeStamps: Array = [] const mockFunc = vi.fn( @@ -106,7 +106,7 @@ describe('asyncThrottle', () => { ) }) - test('"func" throw error not break next invoke', async () => { + it('"func" throw error not break next invoke', async () => { const interval = 10 const mockFunc = vi.fn( @@ -130,7 +130,7 @@ describe('asyncThrottle', () => { expect(mockFunc.mock.calls[1]?.[0]).toBe(2) }) - test('"onError" should be called when "func" throw error', () => { + it('"onError" should be called when "func" throw error', () => { const err = new Error('error') const handleError = (e: unknown) => { expect(e).toBe(err) @@ -145,7 +145,7 @@ describe('asyncThrottle', () => { testFunc() }) - test('should throw error when "func" is not a function', () => { + it('should throw error when "func" is not a function', () => { expect(() => asyncThrottle(1 as any)).toThrow() }) }) diff --git a/packages/query-core/src/__tests__/environmentManager.test.tsx b/packages/query-core/src/__tests__/environmentManager.test.tsx index 8d428d7be0c..3828917a4ea 100644 --- a/packages/query-core/src/__tests__/environmentManager.test.tsx +++ b/packages/query-core/src/__tests__/environmentManager.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test } from 'vitest' +import { afterEach, describe, expect, it } from 'vitest' import { environmentManager, isServer } from '..' describe('environmentManager', () => { @@ -6,11 +6,11 @@ describe('environmentManager', () => { environmentManager.setIsServer(() => isServer) }) - test('should use the default isServer detection', () => { + it('should use the default isServer detection', () => { expect(environmentManager.isServer()).toBe(isServer) }) - test('should allow overriding isServer globally', () => { + it('should allow overriding isServer globally', () => { environmentManager.setIsServer(() => true) expect(environmentManager.isServer()).toBe(true) @@ -18,7 +18,7 @@ describe('environmentManager', () => { expect(environmentManager.isServer()).toBe(false) }) - test('should allow overriding isServer with a function', () => { + it('should allow overriding isServer with a function', () => { let server = true environmentManager.setIsServer(() => server) expect(environmentManager.isServer()).toBe(true) diff --git a/packages/query-core/src/__tests__/focusManager.test.tsx b/packages/query-core/src/__tests__/focusManager.test.tsx index 5900b9b2025..03e60d5d7f5 100644 --- a/packages/query-core/src/__tests__/focusManager.test.tsx +++ b/packages/query-core/src/__tests__/focusManager.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { FocusManager } from '../focusManager' describe('focusManager', () => { @@ -53,7 +53,7 @@ describe('focusManager', () => { globalThis.document = document }) - test('cleanup (removeEventListener) should not be called if window is not defined', () => { + it('cleanup (removeEventListener) should not be called if window is not defined', () => { const windowSpy = vi.spyOn(globalThis, 'window', 'get') windowSpy.mockImplementation( () => undefined as unknown as Window & typeof globalThis, @@ -76,7 +76,7 @@ describe('focusManager', () => { windowSpy.mockRestore() }) - test('cleanup (removeEventListener) should not be called if window.addEventListener is not defined', () => { + it('cleanup (removeEventListener) should not be called if window.addEventListener is not defined', () => { const { addEventListener } = globalThis.window // @ts-expect-error @@ -113,7 +113,7 @@ describe('focusManager', () => { unsubscribeSpy.mockRestore() }) - test('should call removeEventListener when last listener unsubscribes', () => { + it('should call removeEventListener when last listener unsubscribes', () => { const addEventListenerSpy = vi.spyOn(globalThis.window, 'addEventListener') const removeEventListenerSpy = vi.spyOn( @@ -131,7 +131,7 @@ describe('focusManager', () => { expect(removeEventListenerSpy).toHaveBeenCalledTimes(1) // visibilitychange event }) - test('should keep setup function even if last listener unsubscribes', () => { + it('should keep setup function even if last listener unsubscribes', () => { const setupSpy = vi.fn().mockImplementation(() => () => undefined) focusManager.setEventListener(setupSpy) @@ -149,7 +149,7 @@ describe('focusManager', () => { unsubscribe2() }) - test('should call listeners when setFocused is called', () => { + it('should call listeners when setFocused is called', () => { const listener = vi.fn() focusManager.subscribe(listener) diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index 8bb79ec6e9b..505c6c26da7 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { QueryCache } from '../queryCache' @@ -15,7 +15,7 @@ describe('dehydration and rehydration', () => { vi.useRealTimers() }) - test('should work with serializable values', async () => { + it('should work with serializable values', async () => { const stringKey = queryKey() const numberKey = queryKey() const booleanKey = queryKey() @@ -113,7 +113,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should not dehydrate queries if dehydrateQueries is set to false', async () => { + it('should not dehydrate queries if dehydrateQueries is set to false', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -132,7 +132,7 @@ describe('dehydration and rehydration', () => { queryClient.clear() }) - test('should use the garbage collection time from the client', async () => { + it('should use the garbage collection time from the client', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -161,7 +161,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should be able to provide default options for the hydrated queries', async () => { + it('should be able to provide default options for the hydrated queries', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -183,7 +183,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should respect query defaultOptions specified on the QueryClient', async () => { + it('should respect query defaultOptions specified on the QueryClient', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ @@ -217,7 +217,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should respect mutation defaultOptions specified on the QueryClient', async () => { + it('should respect mutation defaultOptions specified on the QueryClient', async () => { const key = queryKey() const mutationCache = new MutationCache() const queryClient = new QueryClient({ @@ -256,7 +256,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should work with complex keys', async () => { + it('should work with complex keys', async () => { const key = queryKey() const complexKey = [...key, { key: ['string'], key2: 0 }] const queryCache = new QueryCache() @@ -294,7 +294,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should only hydrate successful queries by default', async () => { + it('should only hydrate successful queries by default', async () => { const successKey = queryKey() const loadingKey = queryKey() const errorKey = queryKey() @@ -339,7 +339,7 @@ describe('dehydration and rehydration', () => { consoleMock.mockRestore() }) - test('should filter queries via dehydrateQuery', async () => { + it('should filter queries via dehydrateQuery', async () => { const stringKey = queryKey() const numberKey = queryKey() const queryCache = new QueryCache() @@ -379,7 +379,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should not overwrite query in cache if hydrated query is older', async () => { + it('should not overwrite query in cache if hydrated query is older', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -413,7 +413,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should overwrite query in cache if hydrated query is newer', async () => { + it('should overwrite query in cache if hydrated query is newer', async () => { const key = queryKey() const hydrationCache = new QueryCache() const hydrationClient = new QueryClient({ queryCache: hydrationCache }) @@ -449,7 +449,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should be able to dehydrate mutations and continue on hydration', async () => { + it('should be able to dehydrate mutations and continue on hydration', async () => { const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -538,7 +538,7 @@ describe('dehydration and rehydration', () => { onlineMock.mockRestore() }) - test('should not dehydrate mutations if dehydrateMutations is set to false', async () => { + it('should not dehydrate mutations if dehydrateMutations is set to false', async () => { const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -573,7 +573,7 @@ describe('dehydration and rehydration', () => { consoleMock.mockRestore() }) - test('should not dehydrate mutation if mutation state is set to pause', async () => { + it('should not dehydrate mutation if mutation state is set to pause', async () => { const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -609,7 +609,7 @@ describe('dehydration and rehydration', () => { consoleMock.mockRestore() }) - test('should not hydrate if the hydratedState is null or is not an object', () => { + it('should not hydrate if the hydratedState is null or is not an object', () => { const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -619,7 +619,7 @@ describe('dehydration and rehydration', () => { queryClient.clear() }) - test('should support hydratedState with undefined queries and mutations', () => { + it('should support hydratedState with undefined queries and mutations', () => { const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -629,7 +629,7 @@ describe('dehydration and rehydration', () => { queryClient.clear() }) - test('should set the fetchStatus to idle when creating a query with dehydrate', async () => { + it('should set the fetchStatus to idle when creating a query with dehydrate', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -675,7 +675,7 @@ describe('dehydration and rehydration', () => { ) }) - test('should dehydrate and hydrate meta for queries', async () => { + it('should dehydrate and hydrate meta for queries', async () => { const metaKey = queryKey() const noMetaKey = queryKey() const queryCache = new QueryCache() @@ -733,7 +733,7 @@ describe('dehydration and rehydration', () => { ) }) - test('should dehydrate and hydrate meta for mutations', async () => { + it('should dehydrate and hydrate meta for mutations', async () => { const metaKey = queryKey() const noMetaKey = queryKey() const mutationCache = new MutationCache() @@ -794,7 +794,7 @@ describe('dehydration and rehydration', () => { ) }) - test('should not change fetchStatus when updating a query with dehydrate', async () => { + it('should not change fetchStatus when updating a query with dehydrate', async () => { const key = queryKey() const queryClient = new QueryClient() @@ -831,7 +831,7 @@ describe('dehydration and rehydration', () => { ) }) - test('should dehydrate and hydrate mutation scopes', () => { + it('should dehydrate and hydrate mutation scopes', () => { const key = queryKey() const queryClient = new QueryClient() const onlineMock = mockOnlineManagerIsOnline(false) @@ -866,7 +866,7 @@ describe('dehydration and rehydration', () => { onlineMock.mockRestore() }) - test('should dehydrate promises for pending queries', async () => { + it('should dehydrate promises for pending queries', async () => { const successKey = queryKey() const pendingKey = queryKey() const queryCache = new QueryCache() @@ -894,7 +894,7 @@ describe('dehydration and rehydration', () => { queryClient.clear() }) - test('should hydrate promises even without observers', async () => { + it('should hydrate promises even without observers', async () => { const successKey = queryKey() const pendingKey = queryKey() const queryCache = new QueryCache() @@ -960,7 +960,7 @@ describe('dehydration and rehydration', () => { }) }) - test('should transform promise result', async () => { + it('should transform promise result', async () => { const key = queryKey() const queryClient = new QueryClient({ defaultOptions: { @@ -995,7 +995,7 @@ describe('dehydration and rehydration', () => { queryClient.clear() }) - test('should transform query data if promise is already resolved', async () => { + it('should transform query data if promise is already resolved', async () => { const key = queryKey() const queryClient = new QueryClient({ defaultOptions: { @@ -1029,7 +1029,7 @@ describe('dehydration and rehydration', () => { queryClient.clear() }) - test('should overwrite query in cache if hydrated query is newer (with transformation)', async () => { + it('should overwrite query in cache if hydrated query is newer (with transformation)', async () => { const key = queryKey() const hydrationClient = new QueryClient({ defaultOptions: { @@ -1075,7 +1075,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should overwrite query in cache if hydrated query is newer (with promise)', async () => { + it('should overwrite query in cache if hydrated query is newer (with promise)', async () => { const key = queryKey() // --- server --- @@ -1111,7 +1111,7 @@ describe('dehydration and rehydration', () => { serverQueryClient.clear() }) - test('should not overwrite query in cache if existing query is newer (with promise)', async () => { + it('should not overwrite query in cache if existing query is newer (with promise)', async () => { const key = queryKey() // --- server --- @@ -1159,7 +1159,7 @@ describe('dehydration and rehydration', () => { serverQueryClient.clear() }) - test('should overwrite data when a new promise is streamed in', async () => { + it('should overwrite data when a new promise is streamed in', async () => { const key = queryKey() const serializeDataMock = vi.fn((data: any) => data) const deserializeDataMock = vi.fn((data: any) => data) @@ -1234,7 +1234,7 @@ describe('dehydration and rehydration', () => { serverQueryClient.clear() }) - test('should not redact errors when shouldRedactErrors returns false', async () => { + it('should not redact errors when shouldRedactErrors returns false', async () => { const key = queryKey() const queryCache = new QueryCache() const queryClient = new QueryClient({ @@ -1264,7 +1264,7 @@ describe('dehydration and rehydration', () => { await promise }) - test('should handle errors in promises for pending queries', async () => { + it('should handle errors in promises for pending queries', async () => { const key = queryKey() const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -1296,7 +1296,7 @@ describe('dehydration and rehydration', () => { consoleMock.mockRestore() }) - test('should log error in development environment when redacting errors', async () => { + it('should log error in development environment when redacting errors', async () => { const key = queryKey() const originalNodeEnv = process.env.NODE_ENV process.env.NODE_ENV = 'development' @@ -1347,7 +1347,7 @@ describe('dehydration and rehydration', () => { // What can end up happening otherwise is that the content is visible from the // server, but the client renders a Suspense fallback, only to immediately show // the data again. - test('should rehydrate synchronous thenable immediately', async () => { + it('should rehydrate synchronous thenable immediately', async () => { const key = queryKey() // --- server --- diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index db96ea17da6..28d45735ce4 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { CancelledError, InfiniteQueryObserver, QueryClient } from '..' import type { InfiniteData, InfiniteQueryObserverResult, QueryCache } from '..' @@ -19,7 +19,7 @@ describe('InfiniteQueryBehavior', () => { vi.useRealTimers() }) - test('should throw an error if the queryFn is not defined', async () => { + it('should throw an error if the queryFn is not defined', async () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { @@ -47,7 +47,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('should apply the maxPages option to limit the number of pages', async () => { + it('should apply the maxPages option to limit the number of pages', async () => { const key = queryKey() let abortSignal: AbortSignal | null = null @@ -195,7 +195,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('should support query cancellation', async () => { + it('should support query cancellation', async () => { const key = queryKey() let abortSignal: AbortSignal | null = null @@ -247,7 +247,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('should not refetch pages if the query is cancelled', async () => { + it('should not refetch pages if the query is cancelled', async () => { const key = queryKey() let abortSignal: AbortSignal | null = null @@ -332,7 +332,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('should not enter an infinite loop when a page errors while retry is on #8046', async () => { + it('should not enter an infinite loop when a page errors while retry is on #8046', async () => { let errorCount = 0 const key = queryKey() @@ -406,7 +406,7 @@ describe('InfiniteQueryBehavior', () => { expect(reFetchedData.data?.pageParams).toEqual([1, 2, 3]) }) - test('should fetch even if initialPageParam is null', async () => { + it('should fetch even if initialPageParam is null', async () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { @@ -433,7 +433,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('should not fetch next page when getNextPageParam returns null', async () => { + it('should not fetch next page when getNextPageParam returns null', async () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { @@ -467,7 +467,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('should use persister when provided', async () => { + it('should use persister when provided', async () => { const key = queryKey() const persisterSpy = vi.fn().mockImplementation(async (fn) => { diff --git a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx index 1a72d81c987..0de82331fbc 100644 --- a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { InfiniteQueryObserver, QueryClient } from '..' import type { @@ -20,7 +20,7 @@ describe('InfiniteQueryObserver', () => { vi.useRealTimers() }) - test('should be able to fetch an infinite query with selector', async () => { + it('should be able to fetch an infinite query with selector', async () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { queryKey: key, @@ -43,7 +43,7 @@ describe('InfiniteQueryObserver', () => { }) }) - test('should pass the meta option to the queryFn', async () => { + it('should pass the meta option to the queryFn', async () => { const meta = { it: 'works', } @@ -73,7 +73,7 @@ describe('InfiniteQueryObserver', () => { expect(queryFn).toBeCalledWith(expect.objectContaining({ meta })) }) - test('should make getNextPageParam and getPreviousPageParam receive current pageParams', async () => { + it('should make getNextPageParam and getPreviousPageParam receive current pageParams', async () => { const key = queryKey() let single: Array = [] let all: Array = [] @@ -112,7 +112,7 @@ describe('InfiniteQueryObserver', () => { expect(all).toEqual(['next0', 'next0,1', 'prev0,1']) }) - test('should not invoke getNextPageParam and getPreviousPageParam on empty pages', () => { + it('should not invoke getNextPageParam and getPreviousPageParam on empty pages', () => { const key = queryKey() const getNextPageParam = vi.fn() @@ -143,7 +143,7 @@ describe('InfiniteQueryObserver', () => { unsubscribe() }) - test('should stop refetching if undefined is returned from getNextPageParam', async () => { + it('should stop refetching if undefined is returned from getNextPageParam', async () => { const key = queryKey() let next: number | undefined = 2 const queryFn = vi.fn<(...args: Array) => any>(({ pageParam }) => @@ -175,7 +175,7 @@ describe('InfiniteQueryObserver', () => { expect(observer.getCurrentResult().hasNextPage).toBe(false) }) - test('should stop refetching if null is returned from getNextPageParam', async () => { + it('should stop refetching if null is returned from getNextPageParam', async () => { const key = queryKey() let next: number | null = 2 const queryFn = vi.fn<(...args: Array) => any>(({ pageParam }) => @@ -207,7 +207,7 @@ describe('InfiniteQueryObserver', () => { expect(observer.getCurrentResult().hasNextPage).toBe(false) }) - test('should set infinite query behavior via getOptimisticResult and return the initial state', () => { + it('should set infinite query behavior via getOptimisticResult and return the initial state', () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { queryKey: key, diff --git a/packages/query-core/src/__tests__/mutationCache.test.tsx b/packages/query-core/src/__tests__/mutationCache.test.tsx index a3f41d99b74..05d4e581dfa 100644 --- a/packages/query-core/src/__tests__/mutationCache.test.tsx +++ b/packages/query-core/src/__tests__/mutationCache.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { MutationCache, MutationObserver, QueryClient } from '..' import { executeMutation } from './utils' @@ -13,7 +13,7 @@ describe('mutationCache', () => { }) describe('MutationCacheConfig error callbacks', () => { - test('should call onError and onSettled when a mutation errors', async () => { + it('should call onError and onSettled when a mutation errors', async () => { const key = queryKey() const onError = vi.fn() const onSuccess = vi.fn() @@ -63,7 +63,7 @@ describe('mutationCache', () => { ) }) - test('should be awaited', async () => { + it('should be awaited', async () => { const key = queryKey() const states: Array = [] const onError = () => @@ -106,7 +106,7 @@ describe('mutationCache', () => { }) describe('MutationCacheConfig success callbacks', () => { - test('should call onSuccess and onSettled when a mutation is successful', async () => { + it('should call onSuccess and onSettled when a mutation is successful', async () => { const key = queryKey() const onError = vi.fn() const onSuccess = vi.fn() @@ -155,7 +155,7 @@ describe('mutationCache', () => { ) }) - test('should be awaited', async () => { + it('should be awaited', async () => { const key = queryKey() const states: Array = [] const onSuccess = () => @@ -196,7 +196,7 @@ describe('mutationCache', () => { }) describe('MutationCacheConfig.onMutate', () => { - test('should be called before a mutation executes', () => { + it('should be called before a mutation executes', () => { const key = queryKey() const onMutate = vi.fn() const testCache = new MutationCache({ onMutate }) @@ -221,7 +221,7 @@ describe('mutationCache', () => { }) }) - test('should be awaited', async () => { + it('should be awaited', async () => { const key = queryKey() const states: Array = [] const onMutate = () => @@ -250,7 +250,7 @@ describe('mutationCache', () => { expect(states).toEqual([1, 2, 3, 4]) }) - test('options.onMutate should run synchronously when mutationCache.config.onMutate is not defined', () => { + it('options.onMutate should run synchronously when mutationCache.config.onMutate is not defined', () => { const key = queryKey() const states: Array = [] @@ -276,7 +276,7 @@ describe('mutationCache', () => { }) describe('find', () => { - test('should filter correctly', () => { + it('should filter correctly', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) const key = ['mutation', 'vars'] @@ -306,7 +306,7 @@ describe('mutationCache', () => { }) describe('findAll', () => { - test('should filter correctly', () => { + it('should filter correctly', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) @@ -351,7 +351,7 @@ describe('mutationCache', () => { }) describe('garbage collection', () => { - test('should remove unused mutations after gcTime has elapsed', async () => { + it('should remove unused mutations after gcTime has elapsed', async () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) const onSuccess = vi.fn() @@ -375,7 +375,7 @@ describe('mutationCache', () => { expect(onSuccess).toHaveBeenCalledTimes(1) }) - test('should not remove mutations if there are active observers', async () => { + it('should not remove mutations if there are active observers', async () => { const queryClient = new QueryClient() const observer = new MutationObserver(queryClient, { gcTime: 10, @@ -400,7 +400,7 @@ describe('mutationCache', () => { expect(queryClient.getMutationCache().getAll()).toHaveLength(0) }) - test('should be garbage collected later when unsubscribed and mutation is pending', async () => { + it('should be garbage collected later when unsubscribed and mutation is pending', async () => { const queryClient = new QueryClient() const onSuccess = vi.fn() const observer = new MutationObserver(queryClient, { @@ -426,7 +426,7 @@ describe('mutationCache', () => { expect(onSuccess).toHaveBeenCalledTimes(1) }) - test('should call callbacks even with gcTime 0 and mutation still pending', async () => { + it('should call callbacks even with gcTime 0 and mutation still pending', async () => { const queryClient = new QueryClient() const onSuccess = vi.fn() const observer = new MutationObserver(queryClient, { @@ -447,7 +447,7 @@ describe('mutationCache', () => { }) describe('remove', () => { - test('should remove only the target mutation from scope when multiple scoped mutations exist', () => { + it('should remove only the target mutation from scope when multiple scoped mutations exist', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) @@ -468,7 +468,7 @@ describe('mutationCache', () => { expect(testCache.getAll()).toEqual([mutation2]) }) - test('should delete scope when removing the only mutation in that scope', () => { + it('should delete scope when removing the only mutation in that scope', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) @@ -484,7 +484,7 @@ describe('mutationCache', () => { expect(testCache.getAll()).toHaveLength(0) }) - test('should still notify removal when removing a mutation that does not exist in the cache', () => { + it('should still notify removal when removing a mutation that does not exist in the cache', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) diff --git a/packages/query-core/src/__tests__/mutationObserver.test.tsx b/packages/query-core/src/__tests__/mutationObserver.test.tsx index cc196f024ab..59cb4ebce81 100644 --- a/packages/query-core/src/__tests__/mutationObserver.test.tsx +++ b/packages/query-core/src/__tests__/mutationObserver.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { MutationObserver, QueryClient } from '..' @@ -16,7 +16,7 @@ describe('mutationObserver', () => { vi.useRealTimers() }) - test('onUnsubscribe should not remove the current mutation observer if there is still a subscription', async () => { + it('onUnsubscribe should not remove the current mutation observer if there is still a subscription', async () => { const mutation = new MutationObserver(queryClient, { mutationFn: (text: string) => sleep(20).then(() => text), }) @@ -41,7 +41,7 @@ describe('mutationObserver', () => { unsubscribe2() }) - test('unsubscribe should remove observer to trigger GC', async () => { + it('unsubscribe should remove observer to trigger GC', async () => { const mutation = new MutationObserver(queryClient, { mutationFn: (text: string) => sleep(5).then(() => text), gcTime: 10, @@ -62,7 +62,7 @@ describe('mutationObserver', () => { expect(queryClient.getMutationCache().findAll()).toHaveLength(0) }) - test('reset should remove observer to trigger GC', async () => { + it('reset should remove observer to trigger GC', async () => { const mutation = new MutationObserver(queryClient, { mutationFn: (text: string) => sleep(5).then(() => text), gcTime: 10, @@ -85,7 +85,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('changing mutation keys should reset the observer', async () => { + it('changing mutation keys should reset the observer', async () => { const key = queryKey() const mutation = new MutationObserver(queryClient, { mutationKey: [...key, '1'], @@ -115,7 +115,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('changing mutation keys should not affect already existing mutations', async () => { + it('changing mutation keys should not affect already existing mutations', async () => { const key = queryKey() const mutationObserver = new MutationObserver(queryClient, { mutationKey: [...key, '1'], @@ -156,7 +156,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('changing mutation meta should not affect successful mutations', async () => { + it('changing mutation meta should not affect successful mutations', async () => { const mutationObserver = new MutationObserver(queryClient, { meta: { a: 1 }, mutationFn: (text: string) => sleep(5).then(() => text), @@ -192,7 +192,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('mutation cache should have different meta when updated between mutations', async () => { + it('mutation cache should have different meta when updated between mutations', async () => { const mutationFn = (text: string) => sleep(5).then(() => text) const mutationObserver = new MutationObserver(queryClient, { meta: { a: 1 }, @@ -233,7 +233,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('changing mutation meta should not affect rejected mutations', async () => { + it('changing mutation meta should not affect rejected mutations', async () => { const mutationObserver = new MutationObserver(queryClient, { meta: { a: 1 }, mutationFn: (_: string) => @@ -268,7 +268,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('changing mutation meta should affect pending mutations', async () => { + it('changing mutation meta should affect pending mutations', async () => { const mutationObserver = new MutationObserver(queryClient, { meta: { a: 1 }, mutationFn: (text: string) => sleep(20).then(() => text), @@ -301,7 +301,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('mutation callbacks should be called in correct order with correct arguments for success case', async () => { + it('mutation callbacks should be called in correct order with correct arguments for success case', async () => { const onSuccess = vi.fn() const onSettled = vi.fn() @@ -341,7 +341,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('mutation callbacks should be called in correct order with correct arguments for error case', async () => { + it('mutation callbacks should be called in correct order with correct arguments for error case', async () => { const onError = vi.fn() const onSettled = vi.fn() @@ -385,7 +385,7 @@ describe('mutationObserver', () => { }) describe('erroneous mutation callback', () => { - test('onSuccess and onSettled is transferred to different execution context where it is reported', async ({ + it('onSuccess and onSettled is transferred to different execution context where it is reported', async ({ onTestFinished, }) => { const unhandledRejectionFn = vi.fn() @@ -429,7 +429,7 @@ describe('mutationObserver', () => { unsubscribe() }) - test('onError and onSettled is transferred to different execution context where it is reported', async ({ + it('onError and onSettled is transferred to different execution context where it is reported', async ({ onTestFinished, }) => { const unhandledRejectionFn = vi.fn() @@ -477,7 +477,7 @@ describe('mutationObserver', () => { }) }) - test('should not notify cache when setOptions is called with same options', () => { + it('should not notify cache when setOptions is called with same options', () => { const mutationObserver = new MutationObserver(queryClient, { mutationFn: (text: string) => Promise.resolve(text), }) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index e04ca39c96d..506f404fbf2 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -1,5 +1,5 @@ import { queryKey, sleep } from '@tanstack/query-test-utils' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { MutationCache, QueryClient } from '..' import { MutationObserver } from '../mutationObserver' import { executeMutation } from './utils' @@ -19,7 +19,7 @@ describe('mutations', () => { vi.useRealTimers() }) - test('mutate should accept null values', async () => { + it('mutate should accept null values', async () => { let variables const mutation = new MutationObserver(queryClient, { @@ -35,7 +35,7 @@ describe('mutations', () => { expect(variables).toBe(null) }) - test('setMutationDefaults should be able to set defaults', async () => { + it('setMutationDefaults should be able to set defaults', async () => { const key = queryKey() const fn = vi.fn() @@ -60,7 +60,7 @@ describe('mutations', () => { }) }) - test('mutation should set correct success states', async () => { + it('mutation should set correct success states', async () => { const mutation = new MutationObserver(queryClient, { mutationFn: (text: string) => sleep(10).then(() => text), onMutate: (text) => text, @@ -153,7 +153,7 @@ describe('mutations', () => { }) }) - test('mutation should set correct error states', async () => { + it('mutation should set correct error states', async () => { const mutation = new MutationObserver(queryClient, { mutationFn: (_: string) => sleep(20).then(() => Promise.reject(new Error('err'))), @@ -251,7 +251,7 @@ describe('mutations', () => { }) }) - test('should be able to restore a mutation', async () => { + it('should be able to restore a mutation', async () => { const key = queryKey() const onMutate = vi.fn() @@ -331,7 +331,7 @@ describe('mutations', () => { expect(onSettled).toHaveBeenCalled() }) - test('addObserver should not add an existing observer', () => { + it('addObserver should not add an existing observer', () => { const mutationCache = queryClient.getMutationCache() const observer = new MutationObserver(queryClient, {}) const currentMutation = mutationCache.build(queryClient, {}) @@ -351,7 +351,7 @@ describe('mutations', () => { unsubscribe() }) - test('mutate should throw an error if no mutationFn found', async () => { + it('mutate should throw an error if no mutationFn found', async () => { const mutation = new MutationObserver(queryClient, { mutationFn: undefined, retry: false, @@ -366,7 +366,7 @@ describe('mutations', () => { expect(error).toEqual(new Error('No mutationFn found')) }) - test('mutate update the mutation state even without an active subscription 1', async () => { + it('mutate update the mutation state even without an active subscription 1', async () => { const onSuccess = vi.fn() const onSettled = vi.fn() @@ -384,7 +384,7 @@ describe('mutations', () => { expect(onSettled).not.toHaveBeenCalled() }) - test('mutate update the mutation state even without an active subscription 2', async () => { + it('mutate update the mutation state even without an active subscription 2', async () => { const onSuccess = vi.fn() const onSettled = vi.fn() @@ -402,7 +402,7 @@ describe('mutations', () => { expect(onSettled).not.toHaveBeenCalled() }) - test('mutation callbacks should see updated options', async () => { + it('mutation callbacks should see updated options', async () => { const onSuccess = vi.fn() const mutation = new MutationObserver(queryClient, { @@ -428,7 +428,7 @@ describe('mutations', () => { }) describe('scoped mutations', () => { - test('mutations in the same scope should run in serial', async () => { + it('mutations in the same scope should run in serial', async () => { const key1 = queryKey() const key2 = queryKey() @@ -493,7 +493,7 @@ describe('mutations', () => { }) }) - test('mutations without scope should run in parallel', async () => { + it('mutations without scope should run in parallel', async () => { const key1 = queryKey() const key2 = queryKey() @@ -537,7 +537,7 @@ describe('mutations', () => { ]) }) - test('each scope should run in parallel, serial within scope', async () => { + it('each scope should run in parallel, serial within scope', async () => { const results: Array = [] executeMutation( @@ -619,7 +619,7 @@ describe('mutations', () => { }) describe('callback return types', () => { - test('should handle all sync callback patterns', async () => { + it('should handle all sync callback patterns', async () => { const key = queryKey() const results: Array = [] @@ -657,7 +657,7 @@ describe('mutations', () => { ]) }) - test('should handle all async callback patterns', async () => { + it('should handle all async callback patterns', async () => { const key = queryKey() const results: Array = [] @@ -695,7 +695,7 @@ describe('mutations', () => { ]) }) - test('should handle Promise.all() and Promise.allSettled() patterns', async () => { + it('should handle Promise.all() and Promise.allSettled() patterns', async () => { const key = queryKey() const results: Array = [] @@ -736,7 +736,7 @@ describe('mutations', () => { ]) }) - test('should handle mixed sync/async patterns and return value isolation', async () => { + it('should handle mixed sync/async patterns and return value isolation', async () => { const key = queryKey() const results: Array = [] @@ -783,7 +783,7 @@ describe('mutations', () => { ]) }) - test('should handle error cases with all callback patterns', async () => { + it('should handle error cases with all callback patterns', async () => { const key = queryKey() const results: Array = [] @@ -838,7 +838,7 @@ describe('mutations', () => { }) describe('erroneous mutation callback', () => { - test('error by global onSuccess triggers onError callback', async () => { + it('error by global onSuccess triggers onError callback', async () => { const newMutationError = new Error('mutation-error') queryClient = new QueryClient({ @@ -896,7 +896,7 @@ describe('mutations', () => { expect(mutationError).toEqual(newMutationError) }) - test('error by mutations onSuccess triggers onError callback', async () => { + it('error by mutations onSuccess triggers onError callback', async () => { const key = queryKey() const results: Array = [] @@ -946,7 +946,7 @@ describe('mutations', () => { expect(mutationError).toEqual(newMutationError) }) - test('error by global onSettled triggers onError callback, calling global onSettled callback twice', async ({ + it('error by global onSettled triggers onError callback, calling global onSettled callback twice', async ({ onTestFinished, }) => { const newMutationError = new Error('mutation-error') @@ -1020,7 +1020,7 @@ describe('mutations', () => { expect(mutationError).toEqual(newMutationError) }) - test('error by mutations onSettled triggers onError callback, calling both onSettled callbacks twice', async ({ + it('error by mutations onSettled triggers onError callback, calling both onSettled callbacks twice', async ({ onTestFinished, }) => { const unhandledRejectionFn = vi.fn() @@ -1084,7 +1084,7 @@ describe('mutations', () => { expect(mutationError).toEqual(newMutationError) }) - test('errors by onError and consecutive onSettled callbacks are transferred to different execution context where it are reported', async ({ + it('errors by onError and consecutive onSettled callbacks are transferred to different execution context where it are reported', async ({ onTestFinished, }) => { const unhandledRejectionFn = vi.fn() @@ -1166,7 +1166,7 @@ describe('mutations', () => { }) }) - test('should not remove mutation when one observer is removed but another still exists', async () => { + it('should not remove mutation when one observer is removed but another still exists', async () => { const observer1 = new MutationObserver(queryClient, { gcTime: 10, mutationFn: () => sleep(10).then(() => 'data'), diff --git a/packages/query-core/src/__tests__/onlineManager.test.tsx b/packages/query-core/src/__tests__/onlineManager.test.tsx index 79fbb697ee6..9d4ab713b02 100644 --- a/packages/query-core/src/__tests__/onlineManager.test.tsx +++ b/packages/query-core/src/__tests__/onlineManager.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { OnlineManager } from '../onlineManager' describe('onlineManager', () => { @@ -13,7 +13,7 @@ describe('onlineManager', () => { vi.useRealTimers() }) - test('isOnline should return true if navigator is undefined', () => { + it('isOnline should return true if navigator is undefined', () => { const navigatorSpy = vi.spyOn(globalThis, 'navigator', 'get') // Force navigator to be undefined @@ -24,7 +24,7 @@ describe('onlineManager', () => { navigatorSpy.mockRestore() }) - test('isOnline should return true if navigator.onLine is true', () => { + it('isOnline should return true if navigator.onLine is true', () => { const navigatorSpy = vi.spyOn(navigator, 'onLine', 'get') navigatorSpy.mockImplementation(() => true) @@ -33,7 +33,7 @@ describe('onlineManager', () => { navigatorSpy.mockRestore() }) - test('setEventListener should use online boolean arg', () => { + it('setEventListener should use online boolean arg', () => { let count = 0 const setup = (setOnline: (online: boolean) => void) => { @@ -51,7 +51,7 @@ describe('onlineManager', () => { expect(onlineManager.isOnline()).toBeFalsy() }) - test('setEventListener should call previous remove handler when replacing an event listener', () => { + it('setEventListener should call previous remove handler when replacing an event listener', () => { const remove1Spy = vi.fn() const remove2Spy = vi.fn() @@ -62,7 +62,7 @@ describe('onlineManager', () => { expect(remove2Spy).not.toHaveBeenCalled() }) - test('cleanup (removeEventListener) should not be called if window is not defined', () => { + it('cleanup (removeEventListener) should not be called if window is not defined', () => { const windowSpy = vi.spyOn(globalThis, 'window', 'get') windowSpy.mockImplementation( () => undefined as unknown as Window & typeof globalThis, @@ -79,7 +79,7 @@ describe('onlineManager', () => { windowSpy.mockRestore() }) - test('cleanup (removeEventListener) should not be called if window.addEventListener is not defined', () => { + it('cleanup (removeEventListener) should not be called if window.addEventListener is not defined', () => { const { addEventListener } = globalThis.window // @ts-expect-error @@ -96,7 +96,7 @@ describe('onlineManager', () => { globalThis.window.addEventListener = addEventListener }) - test('it should replace default window listener when a new event listener is set', () => { + it('should replace default window listener when a new event listener is set', () => { const addEventListenerSpy = vi.spyOn(globalThis.window, 'addEventListener') const removeEventListenerSpy = vi.spyOn( @@ -121,7 +121,7 @@ describe('onlineManager', () => { removeEventListenerSpy.mockRestore() }) - test('should call removeEventListener when last listener unsubscribes', () => { + it('should call removeEventListener when last listener unsubscribes', () => { const addEventListenerSpy = vi.spyOn(globalThis.window, 'addEventListener') const removeEventListenerSpy = vi.spyOn( @@ -139,7 +139,7 @@ describe('onlineManager', () => { expect(removeEventListenerSpy).toHaveBeenCalledTimes(2) // online + offline }) - test('should keep setup function even if last listener unsubscribes', () => { + it('should keep setup function even if last listener unsubscribes', () => { const setupSpy = vi.fn().mockImplementation(() => () => undefined) onlineManager.setEventListener(setupSpy) @@ -157,7 +157,7 @@ describe('onlineManager', () => { unsubscribe2() }) - test('should call listeners when setOnline is called', () => { + it('should call listeners when setOnline is called', () => { const listener = vi.fn() onlineManager.subscribe(listener) diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index 686c7868c4e..504f5b8379a 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueriesObserver, QueryClient, QueryObserver } from '..' import type { QueryObserverResult } from '..' @@ -17,7 +17,7 @@ describe('queriesObserver', () => { vi.useRealTimers() }) - test('should return an array with all query results', async () => { + it('should return an array with all query results', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -38,7 +38,7 @@ describe('queriesObserver', () => { expect(observerResult).toMatchObject([{ data: 1 }, { data: 2 }]) }) - test('should return current queries via getQueries', async () => { + it('should return current queries via getQueries', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -60,7 +60,7 @@ describe('queriesObserver', () => { unsubscribe() }) - test('should update when a query updates', async () => { + it('should update when a query updates', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -106,7 +106,7 @@ describe('queriesObserver', () => { ]) }) - test('should return current observers via getObservers', async () => { + it('should return current observers via getObservers', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -128,7 +128,7 @@ describe('queriesObserver', () => { unsubscribe() }) - test('should update when a query is removed', async () => { + it('should update when a query is removed', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -177,7 +177,7 @@ describe('queriesObserver', () => { expect(results[5]).toMatchObject([{ status: 'success', data: 2 }]) }) - test('should update when a query changed position', async () => { + it('should update when a query changed position', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -227,7 +227,7 @@ describe('queriesObserver', () => { ]) }) - test('should not update when nothing has changed', async () => { + it('should not update when nothing has changed', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -273,7 +273,7 @@ describe('queriesObserver', () => { ]) }) - test('should trigger all fetches when subscribed', () => { + it('should trigger all fetches when subscribed', () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -291,7 +291,7 @@ describe('queriesObserver', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should not destroy the observer if there is still a subscription', async () => { + it('should not destroy the observer if there is still a subscription', async () => { const key1 = queryKey() const observer = new QueriesObserver(queryClient, [ { @@ -319,7 +319,7 @@ describe('queriesObserver', () => { unsubscribe2() }) - test('should handle duplicate query keys in different positions', async () => { + it('should handle duplicate query keys in different positions', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -389,7 +389,7 @@ describe('queriesObserver', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should notify when results change during early return', async () => { + it('should notify when results change during early return', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -436,7 +436,7 @@ describe('queriesObserver', () => { ]) }) - test('should update combined result when queries are added with stable combine reference', () => { + it('should update combined result when queries are added with stable combine reference', () => { const combine = vi.fn((results: Array) => ({ count: results.length, results, @@ -473,7 +473,7 @@ describe('queriesObserver', () => { expect(newCombined.count).toBe(2) }) - test('should handle queries being removed with stable combine reference', () => { + it('should handle queries being removed with stable combine reference', () => { const combine = vi.fn((results: Array) => ({ count: results.length, results, @@ -517,7 +517,7 @@ describe('queriesObserver', () => { expect(newCombined.count).toBe(1) }) - test('should update combined result when queries are replaced with different ones (same length)', () => { + it('should update combined result when queries are replaced with different ones (same length)', () => { const combine = vi.fn((results: Array) => ({ keys: results.map((r) => r.status), results, @@ -552,7 +552,7 @@ describe('queriesObserver', () => { expect(newCombined.keys).toEqual(['pending']) }) - test('should recalculate combined result when combine function changes', () => { + it('should recalculate combined result when combine function changes', () => { const combine1 = vi.fn((results: Array) => ({ total: results.length, })) @@ -586,7 +586,7 @@ describe('queriesObserver', () => { expect(combined2.total).toBe(8) }) - test('should use fallback result when combineResult is called without raw argument', () => { + it('should use fallback result when combineResult is called without raw argument', () => { const combine = vi.fn((results: Array) => ({ count: results.length, })) @@ -609,7 +609,7 @@ describe('queriesObserver', () => { expect(combined.count).toBe(1) }) - test('should return observer result directly when notifyOnChangeProps is set', () => { + it('should return observer result directly when notifyOnChangeProps is set', () => { const key = queryKey() const queryFn = vi.fn().mockReturnValue(1) @@ -633,7 +633,7 @@ describe('queriesObserver', () => { trackResultSpy.mockRestore() }) - test('should return cached combined result when nothing has changed', () => { + it('should return cached combined result when nothing has changed', () => { const combine = vi.fn((results: Array) => ({ count: results.length, })) @@ -659,7 +659,7 @@ describe('queriesObserver', () => { expect(combined1).toBe(combined2) }) - test('should track properties on all observers when trackResult is called', () => { + it('should track properties on all observers when trackResult is called', () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = () => 'data1' @@ -695,7 +695,7 @@ describe('queriesObserver', () => { trackPropSpy.mockRestore() }) - test('should subscribe to new observers when a query is added while subscribed', async () => { + it('should subscribe to new observers when a query is added while subscribed', async () => { const key1 = queryKey() const key2 = queryKey() const key3 = queryKey() diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index e84943558ff..192abac6b8a 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { mockVisibilityState, queryKey, @@ -37,7 +37,7 @@ describe('query', () => { vi.useRealTimers() }) - test('should use the longest garbage collection time it has seen', async () => { + it('should use the longest garbage collection time it has seen', async () => { const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, @@ -231,7 +231,7 @@ describe('query', () => { onlineMock.mockRestore() }) - test('should not throw a CancelledError when fetchQuery is in progress and the last observer unsubscribes when AbortSignal is consumed', async () => { + it('should not throw a CancelledError when fetchQuery is in progress and the last observer unsubscribes when AbortSignal is consumed', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -264,7 +264,7 @@ describe('query', () => { expect(queryCache.find({ queryKey: key })?.state.data).toBe('data') }) - test('should provide context to queryFn', () => { + it('should provide context to queryFn', () => { const key = queryKey() const queryFn = vi @@ -286,7 +286,7 @@ describe('query', () => { expect(args.client).toEqual(queryClient) }) - test('should continue if cancellation is not supported and signal is not consumed', async () => { + it('should continue if cancellation is not supported and signal is not consumed', async () => { const key = queryKey() queryClient.prefetchQuery({ @@ -315,7 +315,7 @@ describe('query', () => { }) }) - test('should not continue when last observer unsubscribed if the signal was consumed', async () => { + it('should not continue when last observer unsubscribed if the signal was consumed', async () => { const key = queryKey() queryClient.prefetchQuery({ @@ -345,7 +345,7 @@ describe('query', () => { }) }) - test('should provide an AbortSignal to the queryFn that provides info about the cancellation state', async () => { + it('should provide an AbortSignal to the queryFn that provides info about the cancellation state', async () => { const key = queryKey() const queryFn = @@ -397,7 +397,7 @@ describe('query', () => { expect(error).toBeInstanceOf(CancelledError) }) - test('should not continue if explicitly cancelled', async () => { + it('should not continue if explicitly cancelled', async () => { const key = queryKey() const queryFn = vi.fn<(...args: Array) => unknown>() @@ -429,7 +429,7 @@ describe('query', () => { expect(error).toBeInstanceOf(CancelledError) }) - test('should not error if reset while pending', async () => { + it('should not error if reset while pending', async () => { const key = queryKey() const queryFn = vi.fn<(...args: Array) => unknown>() @@ -473,7 +473,7 @@ describe('query', () => { expect(error).toBeInstanceOf(CancelledError) }) - test('should reset to default state when created from hydration', async () => { + it('should reset to default state when created from hydration', async () => { const key = queryKey() const client = new QueryClient() await client.prefetchQuery({ @@ -494,7 +494,7 @@ describe('query', () => { expect(hydrationClient.getQueryData(key)).toBe(undefined) }) - test('should be able to refetch a cancelled query', async () => { + it('should be able to refetch a cancelled query', async () => { const key = queryKey() const queryFn = vi.fn<(...args: Array) => unknown>() @@ -516,7 +516,7 @@ describe('query', () => { expect(queryFn).toHaveBeenCalledTimes(2) }) - test('cancelling a resolved query should not have any effect', async () => { + it('cancelling a resolved query should not have any effect', async () => { const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, @@ -528,7 +528,7 @@ describe('query', () => { expect(query.state.data).toBe('data') }) - test('cancelling a rejected query should not have any effect', async () => { + it('cancelling a rejected query should not have any effect', async () => { const key = queryKey() const error = new Error('error') @@ -544,7 +544,7 @@ describe('query', () => { expect(query.state.error).not.toBeInstanceOf(CancelledError) }) - test('the previous query status should be kept when refetching', async () => { + it('the previous query status should be kept when refetching', async () => { const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => 'data' }) @@ -569,7 +569,7 @@ describe('query', () => { expect(query.state.status).toBe('error') }) - test('queries with gcTime 0 should be removed immediately after unsubscribing', async () => { + it('queries with gcTime 0 should be removed immediately after unsubscribing', async () => { const key = queryKey() let count = 0 const observer = new QueryObserver(queryClient, { @@ -594,7 +594,7 @@ describe('query', () => { expect(count).toBe(1) }) - test('should be garbage collected when unsubscribed to', async () => { + it('should be garbage collected when unsubscribed to', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -610,7 +610,7 @@ describe('query', () => { expect(queryCache.find({ queryKey: key })).toBeUndefined() }) - test('should be garbage collected later when unsubscribed and query is fetching', async () => { + it('should be garbage collected later when unsubscribed and query is fetching', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -629,7 +629,7 @@ describe('query', () => { expect(queryCache.find({ queryKey: key })).toBeUndefined() }) - test('should not be garbage collected unless there are no subscribers', async () => { + it('should not be garbage collected unless there are no subscribers', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -648,7 +648,7 @@ describe('query', () => { expect(queryCache.find({ queryKey: key })).toBeDefined() }) - test('should return proper count of observers', () => { + it('should return proper count of observers', () => { const key = queryKey() const options = { queryKey: key, queryFn: () => 'data' } const observer = new QueryObserver(queryClient, options) @@ -673,7 +673,7 @@ describe('query', () => { expect(query?.getObserversCount()).toEqual(0) }) - test('stores meta object in query', async () => { + it('stores meta object in query', async () => { const meta = { it: 'works', } @@ -692,7 +692,7 @@ describe('query', () => { expect(query.options.meta).toBe(meta) }) - test('updates meta object on change', async () => { + it('updates meta object on change', async () => { const meta = { it: 'works', } @@ -710,7 +710,7 @@ describe('query', () => { expect(query.options.meta).toBeUndefined() }) - test('can use default meta', async () => { + it('can use default meta', async () => { const meta = { it: 'works', } @@ -727,7 +727,7 @@ describe('query', () => { expect(query.meta).toBe(meta) }) - test('provides meta object inside query function', async () => { + it('provides meta object inside query function', async () => { const meta = { it: 'works', } @@ -745,7 +745,7 @@ describe('query', () => { ) }) - test('should refetch the observer when online method is called', () => { + it('should refetch the observer when online method is called', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -764,7 +764,7 @@ describe('query', () => { refetchSpy.mockRestore() }) - test('should not add an existing observer', async () => { + it('should not add an existing observer', async () => { const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => 'data' }) @@ -783,7 +783,7 @@ describe('query', () => { expect(query.getObserversCount()).toEqual(1) }) - test('should not try to remove an observer that does not exist', async () => { + it('should not try to remove an observer that does not exist', async () => { const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => 'data' }) @@ -800,7 +800,7 @@ describe('query', () => { notifySpy.mockRestore() }) - test('should not change state on invalidate() if already invalidated', async () => { + it('should not change state on invalidate() if already invalidated', async () => { const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => 'data' }) @@ -816,7 +816,7 @@ describe('query', () => { expect(query.state).toBe(previousState) }) - test('fetch should not dispatch "fetch" query is already fetching', async () => { + it('fetch should not dispatch "fetch" query is already fetching', async () => { const key = queryKey() const queryFn = () => sleep(10).then(() => 'data') @@ -849,7 +849,7 @@ describe('query', () => { unsubscribe() }) - test('fetch should throw an error if the queryFn is not defined', async () => { + it('fetch should throw an error if the queryFn is not defined', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -869,7 +869,7 @@ describe('query', () => { unsubscribe() }) - test('fetch should dispatch an error if the queryFn returns undefined', async () => { + it('fetch should dispatch an error if the queryFn returns undefined', async () => { const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) const key = queryKey() @@ -923,7 +923,7 @@ describe('query', () => { resetIsServer() }) - test('constructor should call initialDataUpdatedAt if defined as a function', async () => { + it('constructor should call initialDataUpdatedAt if defined as a function', async () => { const key = queryKey() const initialDataUpdatedAtSpy = vi.fn() @@ -938,7 +938,7 @@ describe('query', () => { expect(initialDataUpdatedAtSpy).toHaveBeenCalled() }) - test('should work with initialDataUpdatedAt set to zero', async () => { + it('should work with initialDataUpdatedAt set to zero', async () => { const key = queryKey() await queryClient.prefetchQuery({ @@ -956,7 +956,7 @@ describe('query', () => { }) }) - test('queries should be garbage collected even if they never fetched', async () => { + it('queries should be garbage collected even if they never fetched', async () => { const key = queryKey() queryClient.setQueryDefaults(key, { gcTime: 10 }) @@ -979,7 +979,7 @@ describe('query', () => { unsubscribe() }) - test('should always revert to idle state (#5968)', async () => { + it('should always revert to idle state (#5968)', async () => { let mockedData = [1] const key = queryKey() @@ -1043,7 +1043,7 @@ describe('query', () => { expect(spy).toHaveBeenCalledWith('1 - 2') }) - test('should not reject a promise when silently cancelled in the background', async () => { + it('should not reject a promise when silently cancelled in the background', async () => { const key = queryKey() let x = 0 @@ -1141,7 +1141,7 @@ describe('query', () => { expect(query.state.status).toBe('error') }) - test('should use persister if provided', async () => { + it('should use persister if provided', async () => { const key = queryKey() await queryClient.prefetchQuery({ @@ -1154,7 +1154,7 @@ describe('query', () => { expect(query.state.data).toBe('persisted data') }) - test('should use queryFn from observer if not provided in options', async () => { + it('should use queryFn from observer if not provided in options', async () => { const key = queryKey() const queryFn = () => Promise.resolve('data') const observer = new QueryObserver(queryClient, { @@ -1176,7 +1176,7 @@ describe('query', () => { expect(query.options.queryFn).toBe(queryFn) }) - test('should log error when queryKey is not an array', async () => { + it('should log error when queryKey is not an array', async () => { const consoleMock = vi.spyOn(console, 'error') const key: unknown = 'string-key' @@ -1192,7 +1192,7 @@ describe('query', () => { consoleMock.mockRestore() }) - test('should call initialData function when it is a function', () => { + it('should call initialData function when it is a function', () => { const key = queryKey() const initialDataFn = vi.fn(() => 'initial data') @@ -1210,7 +1210,7 @@ describe('query', () => { expect(query.state.data).toBe('initial data') }) - test('should update initialData when Query exists without data', async () => { + it('should update initialData when Query exists without data', async () => { const key = queryKey() const queryFn = vi.fn(() => sleep(100).then(() => 'data')) @@ -1269,7 +1269,7 @@ describe('query', () => { }) }) - test('should not override fetching state when revert happens after new observer subscribes', async () => { + it('should not override fetching state when revert happens after new observer subscribes', async () => { const key = queryKey() let count = 0 @@ -1320,7 +1320,7 @@ describe('query', () => { }) }) - test('should not increment dataUpdateCount when setting initialData on prefetched query', async () => { + it('should not increment dataUpdateCount when setting initialData on prefetched query', async () => { const key = queryKey() const queryFn = vi.fn().mockImplementation(() => 'fetched-data') diff --git a/packages/query-core/src/__tests__/queryCache.test.tsx b/packages/query-core/src/__tests__/queryCache.test.tsx index 67c807a8380..1238bcf44a9 100644 --- a/packages/query-core/src/__tests__/queryCache.test.tsx +++ b/packages/query-core/src/__tests__/queryCache.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, QueryObserver, hashKey } from '..' @@ -18,7 +18,7 @@ describe('queryCache', () => { }) describe('subscribe', () => { - test('should pass the correct query', () => { + it('should pass the correct query', () => { const key = queryKey() const subscriber = vi.fn() const unsubscribe = queryCache.subscribe(subscriber) @@ -28,7 +28,7 @@ describe('queryCache', () => { unsubscribe() }) - test('should notify listeners when new query is added', async () => { + it('should notify listeners when new query is added', async () => { const key = queryKey() const callback = vi.fn() queryCache.subscribe(callback) @@ -40,7 +40,7 @@ describe('queryCache', () => { expect(callback).toHaveBeenCalled() }) - test('should notify query cache when a query becomes stale', async () => { + it('should notify query cache when a query becomes stale', async () => { const key = queryKey() const events: Array = [] const queries: Array = [] @@ -79,7 +79,7 @@ describe('queryCache', () => { unsubScribeObserver() }) - test('should include the queryCache and query when notifying listeners', async () => { + it('should include the queryCache and query when notifying listeners', async () => { const key = queryKey() const callback = vi.fn() queryCache.subscribe(callback) @@ -92,7 +92,7 @@ describe('queryCache', () => { expect(callback).toHaveBeenCalledWith({ query, type: 'added' }) }) - test('should notify subscribers when new query with initialData is added', async () => { + it('should notify subscribers when new query with initialData is added', async () => { const key = queryKey() const callback = vi.fn() queryCache.subscribe(callback) @@ -105,7 +105,7 @@ describe('queryCache', () => { expect(callback).toHaveBeenCalled() }) - test('should be able to limit cache size', async () => { + it('should be able to limit cache size', async () => { const testCache = new QueryCache() const unsubscribe = testCache.subscribe((event) => { @@ -151,7 +151,7 @@ describe('queryCache', () => { }) describe('find', () => { - test('find should filter correctly', async () => { + it('find should filter correctly', async () => { const key = queryKey() queryClient.prefetchQuery({ queryKey: key, @@ -162,7 +162,7 @@ describe('queryCache', () => { expect(query).toBeDefined() }) - test('find should filter correctly with exact set to false', async () => { + it('find should filter correctly with exact set to false', async () => { const key = queryKey() queryClient.prefetchQuery({ queryKey: key, @@ -175,7 +175,7 @@ describe('queryCache', () => { }) describe('findAll', () => { - test('should filter correctly', async () => { + it('should filter correctly', async () => { const key1 = queryKey() const key2 = queryKey() const keyFetching = queryKey() @@ -296,7 +296,7 @@ describe('queryCache', () => { expect(queryCache.findAll({ fetchStatus: 'fetching' })).toEqual([]) }) - test('should return all the queries when no filters are defined', async () => { + it('should return all the queries when no filters are defined', async () => { const key1 = queryKey() const key2 = queryKey() await queryClient.prefetchQuery({ @@ -312,7 +312,7 @@ describe('queryCache', () => { }) describe('QueryCacheConfig error callbacks', () => { - test('should call onError and onSettled when a query errors', async () => { + it('should call onError and onSettled when a query errors', async () => { const key = queryKey() const onSuccess = vi.fn() const onSettled = vi.fn() @@ -334,7 +334,7 @@ describe('queryCache', () => { }) describe('QueryCacheConfig success callbacks', () => { - test('should call onSuccess and onSettled when a query is successful', async () => { + it('should call onSuccess and onSettled when a query is successful', async () => { const key = queryKey() const onSuccess = vi.fn() const onSettled = vi.fn() @@ -356,7 +356,7 @@ describe('queryCache', () => { }) describe('build', () => { - test('should compute queryHash from queryKey when queryHash is not provided', () => { + it('should compute queryHash from queryKey when queryHash is not provided', () => { const key = queryKey() const query = queryCache.build(queryClient, { @@ -366,7 +366,7 @@ describe('queryCache', () => { expect(query.queryHash).toBe(hashKey(key)) }) - test('should use provided queryHash instead of computing it', () => { + it('should use provided queryHash instead of computing it', () => { const key = queryKey() const customHash = 'custom-hash' @@ -381,7 +381,7 @@ describe('queryCache', () => { }) describe('QueryCache.add', () => { - test('should not try to add a query already added to the cache', async () => { + it('should not try to add a query already added to the cache', async () => { const key = queryKey() queryClient.prefetchQuery({ diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index 4871d823c1f..c09db304467 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { CancelledError, @@ -32,7 +32,7 @@ describe('queryClient', () => { }) describe('defaultOptions', () => { - test('should merge defaultOptions', () => { + it('should merge defaultOptions', () => { const key = queryKey() const queryFn = () => 'data' @@ -43,7 +43,7 @@ describe('queryClient', () => { expect(() => testClient.prefetchQuery({ queryKey: key })).not.toThrow() }) - test('should merge defaultOptions when query is added to cache', async () => { + it('should merge defaultOptions when query is added to cache', async () => { const key = queryKey() const testClient = new QueryClient({ @@ -58,7 +58,7 @@ describe('queryClient', () => { expect(newQuery?.options.gcTime).toBe(Infinity) }) - test('should get defaultOptions', () => { + it('should get defaultOptions', () => { const queryFn = () => 'data' const defaultOptions = { queries: { queryFn } } const testClient = new QueryClient({ @@ -69,14 +69,14 @@ describe('queryClient', () => { }) describe('setQueryDefaults', () => { - test('should not trigger a fetch', () => { + it('should not trigger a fetch', () => { const key = queryKey() queryClient.setQueryDefaults(key, { queryFn: () => 'data' }) const data = queryClient.getQueryData(key) expect(data).toBeUndefined() }) - test('should be able to override defaults', async () => { + it('should be able to override defaults', async () => { const key = queryKey() queryClient.setQueryDefaults(key, { queryFn: () => 'data' }) const observer = new QueryObserver(queryClient, { queryKey: key }) @@ -84,7 +84,7 @@ describe('queryClient', () => { expect(data).toBe('data') }) - test('should match the query key partially', async () => { + it('should match the query key partially', async () => { const key = queryKey() queryClient.setQueryDefaults([key], { queryFn: () => 'data' }) const observer = new QueryObserver(queryClient, { @@ -94,7 +94,7 @@ describe('queryClient', () => { expect(data).toBe('data') }) - test('should not match if the query key is a subset', async () => { + it('should not match if the query key is a subset', async () => { const key = queryKey() queryClient.setQueryDefaults([key, 'a'], { queryFn: () => 'data', @@ -108,7 +108,7 @@ describe('queryClient', () => { expect(status).toBe('error') }) - test('should also set defaults for observers', () => { + it('should also set defaults for observers', () => { const key = queryKey() queryClient.setQueryDefaults(key, { queryFn: () => 'data', @@ -121,7 +121,7 @@ describe('queryClient', () => { expect(observer.getCurrentResult().fetchStatus).toBe('idle') }) - test('should update existing query defaults', () => { + it('should update existing query defaults', () => { const key = queryKey() const queryOptions1 = { queryFn: () => 'data' } const queryOptions2 = { retry: false } @@ -130,7 +130,7 @@ describe('queryClient', () => { expect(queryClient.getQueryDefaults(key)).toMatchObject(queryOptions2) }) - test('should merge defaultOptions', () => { + it('should merge defaultOptions', () => { const key = queryKey() queryClient.setQueryDefaults([...key, 'todo'], { suspense: true }) @@ -145,7 +145,7 @@ describe('queryClient', () => { }) describe('defaultQueryOptions', () => { - test('should default networkMode when persister is present', () => { + it('should default networkMode when persister is present', () => { expect( new QueryClient({ defaultOptions: { @@ -157,7 +157,7 @@ describe('queryClient', () => { ).toBe('offlineFirst') }) - test('should not default networkMode without persister', () => { + it('should not default networkMode without persister', () => { expect( new QueryClient({ defaultOptions: { @@ -169,7 +169,7 @@ describe('queryClient', () => { ).toBe(undefined) }) - test('should not default networkMode when already present', () => { + it('should not default networkMode when already present', () => { expect( new QueryClient({ defaultOptions: { @@ -184,7 +184,7 @@ describe('queryClient', () => { }) describe('setQueryData', () => { - test('should not crash if query could not be found', () => { + it('should not crash if query could not be found', () => { const key = queryKey() const user = { userId: 1 } expect(() => { @@ -195,7 +195,7 @@ describe('queryClient', () => { }).not.toThrow() }) - test('should not crash when variable is null', () => { + it('should not crash when variable is null', () => { const key = queryKey() queryClient.setQueryData([key, { userId: null }], 'Old Data') expect(() => { @@ -203,7 +203,7 @@ describe('queryClient', () => { }).not.toThrow() }) - test('should use default options', () => { + it('should use default options', () => { const key = queryKey() const testClient = new QueryClient({ defaultOptions: { queries: { queryKeyHashFn: () => 'someKey' } }, @@ -214,19 +214,19 @@ describe('queryClient', () => { expect(testCache.find({ queryKey: key })).toBe(testCache.get('someKey')) }) - test('should create a new query if query was not found 1', () => { + it('should create a new query if query was not found 1', () => { const key = queryKey() queryClient.setQueryData(key, 'bar') expect(queryClient.getQueryData(key)).toBe('bar') }) - test('should create a new query if query was not found 2', () => { + it('should create a new query if query was not found 2', () => { const key = queryKey() queryClient.setQueryData(key, 'qux') expect(queryClient.getQueryData(key)).toBe('qux') }) - test('should not create a new query if query was not found and data is undefined', () => { + it('should not create a new query if query was not found and data is undefined', () => { const key = queryKey() expect(queryClient.getQueryCache().find({ queryKey: key })).toBe( undefined, @@ -237,7 +237,7 @@ describe('queryClient', () => { ) }) - test('should not create a new query if query was not found and updater returns undefined', () => { + it('should not create a new query if query was not found and updater returns undefined', () => { const key = queryKey() expect(queryClient.getQueryCache().find({ queryKey: key })).toBe( undefined, @@ -248,21 +248,21 @@ describe('queryClient', () => { ) }) - test('should not update query data if data is undefined', () => { + it('should not update query data if data is undefined', () => { const key = queryKey() queryClient.setQueryData(key, 'qux') queryClient.setQueryData(key, undefined) expect(queryClient.getQueryData(key)).toBe('qux') }) - test('should not update query data if updater returns undefined', () => { + it('should not update query data if updater returns undefined', () => { const key = queryKey() queryClient.setQueryData(key, 'qux') queryClient.setQueryData(key, () => undefined) expect(queryClient.getQueryData(key)).toBe('qux') }) - test('should accept an update function', () => { + it('should accept an update function', () => { const key = queryKey() const updater = vi.fn((oldData) => `new data + ${oldData}`) @@ -276,7 +276,7 @@ describe('queryClient', () => { ) }) - test('should set the new data without comparison if structuralSharing is set to false', () => { + it('should set the new data without comparison if structuralSharing is set to false', () => { const key = queryKey() queryClient.setDefaultOptions({ @@ -293,7 +293,7 @@ describe('queryClient', () => { expect(queryCache.find({ queryKey: key })!.state.data).toBe(newData) }) - test('should apply a custom structuralSharing function when provided', () => { + it('should apply a custom structuralSharing function when provided', () => { const key = queryKey() const queryObserverOptions = { @@ -325,7 +325,7 @@ describe('queryClient', () => { expect(queryCache.find({ queryKey: key })!.state.data).toBe(distinctData) }) - test('should not set isFetching to false', async () => { + it('should not set isFetching to false', async () => { const key = queryKey() queryClient.prefetchQuery({ queryKey: key, @@ -349,7 +349,7 @@ describe('queryClient', () => { }) describe('setQueriesData', () => { - test('should update all existing, matching queries', () => { + it('should update all existing, matching queries', () => { queryClient.setQueryData(['key', 1], 1) queryClient.setQueryData(['key', 2], 2) @@ -366,7 +366,7 @@ describe('queryClient', () => { expect(queryClient.getQueryData(['key', 2])).toBe(7) }) - test('should accept queryFilters', () => { + it('should accept queryFilters', () => { queryClient.setQueryData(['key', 1], 1) queryClient.setQueryData(['key', 2], 2) const query1 = queryCache.find({ queryKey: ['key', 1] })! @@ -381,7 +381,7 @@ describe('queryClient', () => { expect(queryClient.getQueryData(['key', 2])).toBe(2) }) - test('should not update non existing queries', () => { + it('should not update non existing queries', () => { const result = queryClient.setQueriesData( { queryKey: ['key'] }, 'data', @@ -393,7 +393,7 @@ describe('queryClient', () => { }) describe('isFetching', () => { - test('should return length of fetching queries', async () => { + it('should return length of fetching queries', async () => { expect(queryClient.isFetching()).toBe(0) queryClient.prefetchQuery({ queryKey: queryKey(), @@ -413,7 +413,7 @@ describe('queryClient', () => { }) describe('isMutating', () => { - test('should return length of mutating', async () => { + it('should return length of mutating', async () => { expect(queryClient.isMutating()).toBe(0) new MutationObserver(queryClient, { mutationFn: () => sleep(10).then(() => 'data'), @@ -431,18 +431,18 @@ describe('queryClient', () => { }) describe('getQueryData', () => { - test('should return the query data if the query is found', () => { + it('should return the query data if the query is found', () => { const key = queryKey() queryClient.setQueryData([key, 'id'], 'bar') expect(queryClient.getQueryData([key, 'id'])).toBe('bar') }) - test('should return undefined if the query is not found', () => { + it('should return undefined if the query is not found', () => { const key = queryKey() expect(queryClient.getQueryData(key)).toBeUndefined() }) - test('should match exact by default', () => { + it('should match exact by default', () => { const key = queryKey() queryClient.setQueryData([key, 'id'], 'bar') expect(queryClient.getQueryData([key])).toBeUndefined() @@ -450,7 +450,7 @@ describe('queryClient', () => { }) describe('ensureQueryData', () => { - test('should return the cached query data if the query is found', async () => { + it('should return the cached query data if the query is found', async () => { const key = queryKey() const queryFn = () => Promise.resolve('data') @@ -461,7 +461,7 @@ describe('queryClient', () => { ).resolves.toEqual('bar') }) - test('should return the cached query data if the query is found and cached query data is falsy', async () => { + it('should return the cached query data if the query is found and cached query data is falsy', async () => { const key = queryKey() const queryFn = () => Promise.resolve(0) @@ -472,7 +472,7 @@ describe('queryClient', () => { ).resolves.toEqual(null) }) - test('should call fetchQuery and return its results if the query is not found', async () => { + it('should call fetchQuery and return its results if the query is not found', async () => { const key = queryKey() const queryFn = () => Promise.resolve('data') @@ -481,7 +481,7 @@ describe('queryClient', () => { ).resolves.toEqual('data') }) - test('should return the cached query data if the query is found and preFetchQuery in the background when revalidateIfStale is set', async () => { + it('should return the cached query data if the query is found and preFetchQuery in the background when revalidateIfStale is set', async () => { const TIMEOUT = 10 const key = queryKey() queryClient.setQueryData([key, 'id'], 'old') @@ -508,7 +508,7 @@ describe('queryClient', () => { ).resolves.toEqual('new') }) - test('should not fetch with initialDat', async () => { + it('should not fetch with initialDat', async () => { const key = queryKey() const queryFn = vi.fn().mockImplementation(() => Promise.resolve('data')) @@ -525,7 +525,7 @@ describe('queryClient', () => { }) describe('ensureInfiniteQueryData', () => { - test('should return the cached query data if the query is found', async () => { + it('should return the cached query data if the query is found', async () => { const key = queryKey() const queryFn = () => Promise.resolve('data') @@ -541,7 +541,7 @@ describe('queryClient', () => { ).resolves.toEqual({ pages: ['bar'], pageParams: [0] }) }) - test('should fetch the query and return its results if the query is not found', async () => { + it('should fetch the query and return its results if the query is not found', async () => { const key = queryKey() const queryFn = () => Promise.resolve('data') @@ -555,7 +555,7 @@ describe('queryClient', () => { ).resolves.toEqual({ pages: ['data'], pageParams: [1] }) }) - test('should return the cached query data if the query is found and preFetchQuery in the background when revalidateIfStale is set', async () => { + it('should return the cached query data if the query is found and preFetchQuery in the background when revalidateIfStale is set', async () => { const TIMEOUT = 10 const key = queryKey() queryClient.setQueryData([key, 'id'], { pages: ['old'], pageParams: [0] }) @@ -585,7 +585,7 @@ describe('queryClient', () => { }) describe('getQueriesData', () => { - test('should return the query data for all matched queries', () => { + it('should return the query data for all matched queries', () => { const key1 = queryKey() const key2 = queryKey() queryClient.setQueryData([key1, 1], 1) @@ -597,12 +597,12 @@ describe('queryClient', () => { ]) }) - test('should return empty array if queries are not found', () => { + it('should return empty array if queries are not found', () => { const key = queryKey() expect(queryClient.getQueriesData({ queryKey: key })).toEqual([]) }) - test('should accept query filters', () => { + it('should accept query filters', () => { queryClient.setQueryData(['key', 1], 1) queryClient.setQueryData(['key', 2], 2) const query1 = queryCache.find({ queryKey: ['key', 1] })! @@ -616,7 +616,7 @@ describe('queryClient', () => { }) describe('fetchQuery', () => { - test('should not type-error with strict query key', async () => { + it('should not type-error with strict query key', async () => { type StrictData = 'data' type StrictQueryKey = ['strict', ...ReturnType] const key: StrictQueryKey = ['strict', ...queryKey()] @@ -633,7 +633,7 @@ describe('queryClient', () => { }) // https://github.com/tannerlinsley/react-query/issues/652 - test('should not retry by default', async () => { + it('should not retry by default', async () => { const key = queryKey() await expect( @@ -646,7 +646,7 @@ describe('queryClient', () => { ).rejects.toEqual(new Error('error')) }) - test('should return the cached data on cache hit', async () => { + it('should return the cached data on cache hit', async () => { const key = queryKey() const fetchFn = () => Promise.resolve('data') @@ -662,7 +662,7 @@ describe('queryClient', () => { expect(second).toBe(first) }) - test('should read from cache with static staleTime even if invalidated', async () => { + it('should read from cache with static staleTime even if invalidated', async () => { const key = queryKey() const fetchFn = vi.fn(() => Promise.resolve({ data: 'data' })) @@ -691,7 +691,7 @@ describe('queryClient', () => { expect(second).toBe(first) }) - test('should be able to fetch when garbage collection time is set to 0 and then be removed', async () => { + it('should be able to fetch when garbage collection time is set to 0 and then be removed', async () => { const key1 = queryKey() const promise = queryClient.fetchQuery({ queryKey: key1, @@ -704,7 +704,7 @@ describe('queryClient', () => { expect(queryClient.getQueryData(key1)).toEqual(undefined) }) - test('should keep a query in cache if garbage collection time is Infinity', async () => { + it('should keep a query in cache if garbage collection time is Infinity', async () => { const key1 = queryKey() const promise = queryClient.fetchQuery({ queryKey: key1, @@ -717,7 +717,7 @@ describe('queryClient', () => { expect(result2).toEqual(1) }) - test('should not force fetch', async () => { + it('should not force fetch', async () => { const key = queryKey() queryClient.setQueryData(key, 'og') @@ -731,7 +731,7 @@ describe('queryClient', () => { expect(first).toBe('og') }) - test('should only fetch if the data is older then the given stale time', async () => { + it('should only fetch if the data is older then the given stale time', async () => { const key = queryKey() let count = 0 @@ -766,7 +766,7 @@ describe('queryClient', () => { await expect(fourthPromise).resolves.toBe(2) }) - test('should allow new meta', async () => { + it('should allow new meta', async () => { const key = queryKey() const first = await queryClient.fetchQuery({ @@ -790,7 +790,7 @@ describe('queryClient', () => { }) describe('fetchInfiniteQuery', () => { - test('should not type-error with strict query key', async () => { + it('should not type-error with strict query key', async () => { type StrictData = string type StrictQueryKey = ['strict', ...ReturnType] const key: StrictQueryKey = ['strict', ...queryKey()] @@ -814,7 +814,7 @@ describe('queryClient', () => { ).resolves.toEqual(data) }) - test('should return infinite query data', async () => { + it('should return infinite query data', async () => { const key = queryKey() const result = await queryClient.fetchInfiniteQuery({ queryKey: key, @@ -834,7 +834,7 @@ describe('queryClient', () => { }) describe('prefetchInfiniteQuery', () => { - test('should not type-error with strict query key', async () => { + it('should not type-error with strict query key', async () => { type StrictData = 'data' type StrictQueryKey = ['strict', ...ReturnType] const key: StrictQueryKey = ['strict', ...queryKey()] @@ -858,7 +858,7 @@ describe('queryClient', () => { }) }) - test('should return infinite query data', async () => { + it('should return infinite query data', async () => { const key = queryKey() await queryClient.prefetchInfiniteQuery({ @@ -875,7 +875,7 @@ describe('queryClient', () => { }) }) - test('should prefetch multiple pages', async () => { + it('should prefetch multiple pages', async () => { const key = queryKey() await queryClient.prefetchInfiniteQuery({ @@ -895,7 +895,7 @@ describe('queryClient', () => { }) }) - test('should stop prefetching if getNextPageParam returns undefined', async () => { + it('should stop prefetching if getNextPageParam returns undefined', async () => { const key = queryKey() let count = 0 @@ -923,7 +923,7 @@ describe('queryClient', () => { }) describe('prefetchQuery', () => { - test('should not type-error with strict query key', async () => { + it('should not type-error with strict query key', async () => { type StrictData = 'data' type StrictQueryKey = ['strict', ...ReturnType] const key: StrictQueryKey = ['strict', ...queryKey()] @@ -943,7 +943,7 @@ describe('queryClient', () => { expect(result).toEqual('data') }) - test('should return undefined when an error is thrown', async () => { + it('should return undefined when an error is thrown', async () => { const key = queryKey() const result = await queryClient.prefetchQuery({ @@ -957,7 +957,7 @@ describe('queryClient', () => { expect(result).toBeUndefined() }) - test('should be garbage collected after gcTime if unused', async () => { + it('should be garbage collected after gcTime if unused', async () => { const key = queryKey() await queryClient.prefetchQuery({ @@ -972,7 +972,7 @@ describe('queryClient', () => { }) describe('removeQueries', () => { - test('should not crash when exact is provided', async () => { + it('should not crash when exact is provided', async () => { const key = queryKey() const fetchFn = () => Promise.resolve('data') @@ -992,7 +992,7 @@ describe('queryClient', () => { }) describe('cancelQueries', () => { - test('should revert queries to their previous state', async () => { + it('should revert queries to their previous state', async () => { const key1 = queryKey() queryClient.setQueryData(key1, 'data') @@ -1015,7 +1015,7 @@ describe('queryClient', () => { }) }) - test('should not revert if revert option is set to false', async () => { + it('should not revert if revert option is set to false', async () => { const key1 = queryKey() await queryClient.fetchQuery({ queryKey: key1, @@ -1033,7 +1033,7 @@ describe('queryClient', () => { }) }) - test('should throw CancelledError for imperative methods when initial fetch is cancelled', async () => { + it('should throw CancelledError for imperative methods when initial fetch is cancelled', async () => { const key = queryKey() const promise = queryClient.fetchQuery({ @@ -1060,7 +1060,7 @@ describe('queryClient', () => { }) describe('refetchQueries', () => { - test('should not refetch if all observers are disabled', async () => { + it('should not refetch if all observers are disabled', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -1076,7 +1076,7 @@ describe('queryClient', () => { observer1.destroy() expect(queryFn).toHaveBeenCalledTimes(1) }) - test('should refetch if at least one observer is enabled', async () => { + it('should refetch if at least one observer is enabled', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -1099,7 +1099,7 @@ describe('queryClient', () => { observer2.destroy() expect(queryFn).toHaveBeenCalledTimes(2) }) - test('should refetch all queries when no arguments are given', async () => { + it('should refetch all queries when no arguments are given', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1131,7 +1131,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(2) }) - test('should be able to refetch all fresh queries', async () => { + it('should be able to refetch all fresh queries', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1154,7 +1154,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should be able to refetch all stale queries', async () => { + it('should be able to refetch all stale queries', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1178,7 +1178,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should be able to refetch all stale and active queries', async () => { + it('should be able to refetch all stale and active queries', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1204,7 +1204,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should be able to refetch all active and inactive queries (queryClient.refetchQueries()', async () => { + it('should be able to refetch all active and inactive queries (queryClient.refetchQueries()', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1227,7 +1227,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(2) }) - test('should be able to refetch all active and inactive queries (queryClient.refetchQueries({ type: "all" }))', async () => { + it('should be able to refetch all active and inactive queries (queryClient.refetchQueries({ type: "all" }))', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1250,7 +1250,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(2) }) - test('should be able to refetch only active queries', async () => { + it('should be able to refetch only active queries', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1273,7 +1273,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should be able to refetch only inactive queries', async () => { + it('should be able to refetch only inactive queries', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1296,7 +1296,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(2) }) - test('should throw an error if throwOnError option is set to true', async () => { + it('should throw an error if throwOnError option is set to true', async () => { const key1 = queryKey() const queryFnError = () => Promise.reject('error') try { @@ -1318,7 +1318,7 @@ describe('queryClient', () => { expect(error).toEqual('error') }) - test('should resolve Promise immediately if query is paused', async () => { + it('should resolve Promise immediately if query is paused', async () => { const key1 = queryKey() const queryFn1 = vi .fn<(...args: Array) => string>() @@ -1333,7 +1333,7 @@ describe('queryClient', () => { onlineMock.mockRestore() }) - test('should refetch if query we are offline but query networkMode is always', async () => { + it('should refetch if query we are offline but query networkMode is always', async () => { const key1 = queryKey() queryClient.setQueryDefaults(key1, { networkMode: 'always' }) const queryFn1 = vi @@ -1349,7 +1349,7 @@ describe('queryClient', () => { onlineMock.mockRestore() }) - test('should not refetch static queries', async () => { + it('should not refetch static queries', async () => { const key = queryKey() const queryFn = vi.fn(() => 'data1') await queryClient.fetchQuery({ queryKey: key, queryFn: queryFn }) @@ -1370,7 +1370,7 @@ describe('queryClient', () => { }) describe('invalidateQueries', () => { - test('should refetch active queries by default', async () => { + it('should refetch active queries by default', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1393,7 +1393,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should not refetch inactive queries by default', async () => { + it('should not refetch inactive queries by default', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1416,7 +1416,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should not refetch active queries when "refetch" is "none"', async () => { + it('should not refetch active queries when "refetch" is "none"', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1442,7 +1442,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should refetch inactive queries when "refetch" is "inactive"', async () => { + it('should refetch inactive queries when "refetch" is "inactive"', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1470,7 +1470,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(1) }) - test('should refetch active and inactive queries when "refetch" is "all"', async () => { + it('should refetch active and inactive queries when "refetch" is "all"', async () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi @@ -1495,7 +1495,7 @@ describe('queryClient', () => { expect(queryFn2).toHaveBeenCalledTimes(2) }) - test('should not refetch disabled inactive queries even if "refetchType" is "all', async () => { + it('should not refetch disabled inactive queries even if "refetchType" is "all', async () => { const queryFn = vi .fn<(...args: Array) => string>() .mockReturnValue('data1') @@ -1513,7 +1513,7 @@ describe('queryClient', () => { expect(queryFn).toHaveBeenCalledTimes(0) }) - test('should not refetch inactive queries that have a skipToken queryFn even if "refetchType" is "all', async () => { + it('should not refetch inactive queries that have a skipToken queryFn even if "refetchType" is "all', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -1535,7 +1535,7 @@ describe('queryClient', () => { expect(queryClient.getQueryState(key)?.dataUpdateCount).toBe(1) }) - test('should cancel ongoing fetches if cancelRefetch option is set (default value)', async () => { + it('should cancel ongoing fetches if cancelRefetch option is set (default value)', async () => { const key = queryKey() const abortFn = vi.fn() let fetchCount = 0 @@ -1558,7 +1558,7 @@ describe('queryClient', () => { expect(fetchCount).toBe(2) }) - test('should not cancel ongoing fetches if cancelRefetch option is set to false', async () => { + it('should not cancel ongoing fetches if cancelRefetch option is set to false', async () => { const key = queryKey() const abortFn = vi.fn() let fetchCount = 0 @@ -1582,7 +1582,7 @@ describe('queryClient', () => { expect(fetchCount).toBe(1) }) - test('should not refetch static queries after invalidation', async () => { + it('should not refetch static queries after invalidation', async () => { const key = queryKey() const queryFn = vi.fn(() => 'data1') await queryClient.fetchQuery({ queryKey: key, queryFn: queryFn }) @@ -1603,7 +1603,7 @@ describe('queryClient', () => { }) describe('resetQueries', () => { - test('should notify listeners when a query is reset', async () => { + it('should notify listeners when a query is reset', async () => { const key = queryKey() const callback = vi.fn() @@ -1617,7 +1617,7 @@ describe('queryClient', () => { expect(callback).toHaveBeenCalled() }) - test('should reset query', async () => { + it('should reset query', async () => { const key = queryKey() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => 'data' }) @@ -1636,7 +1636,7 @@ describe('queryClient', () => { expect(state?.fetchStatus).toEqual('idle') }) - test('should reset query data to initial data if set', async () => { + it('should reset query data to initial data if set', async () => { const key = queryKey() await queryClient.prefetchQuery({ @@ -1656,7 +1656,7 @@ describe('queryClient', () => { expect(state?.data).toEqual('initial') }) - test('should refetch all active queries', async () => { + it('should refetch all active queries', async () => { const key1 = queryKey() const key2 = queryKey() const key3 = queryKey() @@ -1699,7 +1699,7 @@ describe('queryClient', () => { onlineManager.setOnline(true) focusManager.setFocused(undefined) }) - test('should notify queryCache and mutationCache if focused', async () => { + it('should notify queryCache and mutationCache if focused', async () => { const testClient = new QueryClient() testClient.mount() @@ -1732,7 +1732,7 @@ describe('queryClient', () => { queryCacheOnOnlineSpy.mockRestore() }) - test('should notify queryCache and mutationCache if online', async () => { + it('should notify queryCache and mutationCache if online', async () => { const testClient = new QueryClient() testClient.mount() @@ -1766,7 +1766,7 @@ describe('queryClient', () => { mutationCacheResumePausedMutationsSpy.mockRestore() }) - test('should resume paused mutations when coming online', async () => { + it('should resume paused mutations when coming online', async () => { const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) onlineManager.setOnline(false) @@ -1791,7 +1791,7 @@ describe('queryClient', () => { expect(observer2.getCurrentResult().status).toBe('success') }) - test('should resume paused mutations in parallel', async () => { + it('should resume paused mutations in parallel', async () => { onlineManager.setOnline(false) const orders: Array = [] @@ -1828,7 +1828,7 @@ describe('queryClient', () => { expect(orders).toEqual(['1start', '2start', '2end', '1end']) }) - test('should resume paused mutations one after the other when in the same scope when invoked manually at the same time', async () => { + it('should resume paused mutations one after the other when in the same scope when invoked manually at the same time', async () => { const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) onlineManager.setOnline(false) @@ -1874,7 +1874,7 @@ describe('queryClient', () => { expect(orders).toEqual(['1start', '1end', '2start', '2end']) }) - test('should resumePausedMutations when coming online after having called resumePausedMutations while offline', async () => { + it('should resumePausedMutations when coming online after having called resumePausedMutations while offline', async () => { const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) onlineManager.setOnline(false) @@ -1898,7 +1898,7 @@ describe('queryClient', () => { expect(observer.getCurrentResult().status).toBe('success') }) - test('should resumePausedMutations when coming online after having restored cache (and resumed) while offline', async () => { + it('should resumePausedMutations when coming online after having restored cache (and resumed) while offline', async () => { const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) onlineManager.setOnline(false) @@ -1942,7 +1942,7 @@ describe('queryClient', () => { newQueryClient.unmount() }) - test('should notify queryCache after resumePausedMutations has finished when coming online', async () => { + it('should notify queryCache after resumePausedMutations has finished when coming online', async () => { const key = queryKey() let count = 0 @@ -2027,7 +2027,7 @@ describe('queryClient', () => { unsubscribe() }) - test('should notify queryCache and mutationCache after multiple mounts and single unmount', async () => { + it('should notify queryCache and mutationCache after multiple mounts and single unmount', async () => { const testClient = new QueryClient() testClient.mount() testClient.mount() @@ -2064,7 +2064,7 @@ describe('queryClient', () => { onlineManager.setOnline(true) }) - test('should not notify queryCache and mutationCache after multiple mounts/unmounts', () => { + it('should not notify queryCache and mutationCache after multiple mounts/unmounts', () => { const testClient = new QueryClient() testClient.mount() testClient.mount() @@ -2101,7 +2101,7 @@ describe('queryClient', () => { }) describe('setMutationDefaults', () => { - test('should update existing mutation defaults', () => { + it('should update existing mutation defaults', () => { const key = queryKey() const mutationOptions1 = { mutationFn: () => Promise.resolve('data') } const mutationOptions2 = { retry: false } @@ -2112,7 +2112,7 @@ describe('queryClient', () => { ) }) - test('should return only matching defaults when multiple mutation defaults are set', () => { + it('should return only matching defaults when multiple mutation defaults are set', () => { const key1 = queryKey() const key2 = queryKey() const mutationOptions1 = { retry: 1 } diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index ffaaf0dbfdd..de838e27221 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -5,7 +5,6 @@ import { expect, expectTypeOf, it, - test, vi, } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -32,7 +31,7 @@ describe('queryObserver', () => { vi.useRealTimers() }) - test('should trigger a fetch when subscribed', () => { + it('should trigger a fetch when subscribed', () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -43,7 +42,7 @@ describe('queryObserver', () => { expect(queryFn).toHaveBeenCalledTimes(1) }) - test('should be able to read latest data after subscribing', () => { + it('should be able to read latest data after subscribing', () => { const key = queryKey() queryClient.setQueryData(key, 'data') const observer = new QueryObserver(queryClient, { @@ -84,7 +83,7 @@ describe('queryObserver', () => { }) }) - test('should not fetch on mount', () => { + it('should not fetch on mount', () => { const unsubscribe = observer.subscribe(vi.fn()) // Has not fetched and is not fetching since its disabled @@ -98,7 +97,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should not be re-fetched when invalidated with refetchType: all', async () => { + it('should not be re-fetched when invalidated with refetchType: all', async () => { const unsubscribe = observer.subscribe(vi.fn()) queryClient.invalidateQueries({ queryKey: key, refetchType: 'all' }) @@ -116,7 +115,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should still trigger a fetch when refetch is called', async () => { + it('should still trigger a fetch when refetch is called', async () => { const unsubscribe = observer.subscribe(vi.fn()) expect(enabled).toBe(false) @@ -141,7 +140,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should fetch if unsubscribed, then enabled returns true, and then re-subscribed', async () => { + it('should fetch if unsubscribed, then enabled returns true, and then re-subscribed', async () => { let unsubscribe = observer.subscribe(vi.fn()) expect(observer.getCurrentResult()).toMatchObject({ status: 'pending', @@ -166,7 +165,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should not be re-fetched if not subscribed to after enabled was toggled to true (fetchStatus: "idle")', () => { + it('should not be re-fetched if not subscribed to after enabled was toggled to true (fetchStatus: "idle")', () => { const unsubscribe = observer.subscribe(vi.fn()) // Toggle enabled @@ -184,7 +183,7 @@ describe('queryObserver', () => { expect(count).toBe(0) }) - test('should not be re-fetched if not subscribed to after enabled was toggled to true (fetchStatus: "fetching")', async () => { + it('should not be re-fetched if not subscribed to after enabled was toggled to true (fetchStatus: "fetching")', async () => { const unsubscribe = observer.subscribe(vi.fn()) // Toggle enabled @@ -203,7 +202,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should handle that the enabled callback updates the return value', async () => { + it('should handle that the enabled callback updates the return value', async () => { const unsubscribe = observer.subscribe(vi.fn()) // Toggle enabled @@ -234,7 +233,7 @@ describe('queryObserver', () => { }) }) - test('should be able to read latest data when re-subscribing (but not re-fetching)', async () => { + it('should be able to read latest data when re-subscribing (but not re-fetching)', async () => { const key = queryKey() let count = 0 const observer = new QueryObserver(queryClient, { @@ -272,7 +271,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should notify when switching query', async () => { + it('should notify when switching query', async () => { const key1 = queryKey() const key2 = queryKey() const results: Array = [] @@ -294,7 +293,7 @@ describe('queryObserver', () => { expect(results[3]).toMatchObject({ data: 2, status: 'success' }) }) - test('should be able to fetch with a selector', async () => { + it('should be able to fetch with a selector', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -313,7 +312,7 @@ describe('queryObserver', () => { expect(observerResult).toMatchObject({ data: { myCount: 1 } }) }) - test('should be able to fetch with a selector using the fetch method', async () => { + it('should be able to fetch with a selector using the fetch method', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -327,7 +326,7 @@ describe('queryObserver', () => { expect(observerResult.data).toMatchObject({ myCount: 1 }) }) - test('should be able to fetch with a selector and object syntax', async () => { + it('should be able to fetch with a selector and object syntax', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -343,7 +342,7 @@ describe('queryObserver', () => { expect(observerResult).toMatchObject({ data: { myCount: 1 } }) }) - test('should run the selector again if the data changed', async () => { + it('should run the selector again if the data changed', async () => { const key = queryKey() let count = 0 const observer = new QueryObserver(queryClient, { @@ -361,7 +360,7 @@ describe('queryObserver', () => { expect(observerResult2.data).toMatchObject({ myCount: 1 }) }) - test('should run the selector again if the selector changed', async () => { + it('should run the selector again if the selector changed', async () => { const key = queryKey() let count = 0 const results: Array = [] @@ -419,7 +418,7 @@ describe('queryObserver', () => { }) }) - test('should not run the selector again if the data and selector did not change', async () => { + it('should not run the selector again if the data and selector did not change', async () => { const key = queryKey() let count = 0 const results: Array = [] @@ -468,7 +467,7 @@ describe('queryObserver', () => { }) }) - test('should not run the selector again if the data did not change', async () => { + it('should not run the selector again if the data did not change', async () => { const key = queryKey() let count = 0 const observer = new QueryObserver(queryClient, { @@ -486,7 +485,7 @@ describe('queryObserver', () => { expect(observerResult2.data).toMatchObject({ myCount: 1 }) }) - test('should always run the selector again if selector throws an error and selector is not referentially stable', async () => { + it('should always run the selector again if selector throws an error and selector is not referentially stable', async () => { const key = queryKey() const results: Array = [] const queryFn = () => sleep(10).then(() => ({ count: 1 })) @@ -526,7 +525,7 @@ describe('queryObserver', () => { }) }) - test('should return stale data if selector throws an error', async () => { + it('should return stale data if selector throws an error', async () => { const key = queryKey() const results: Array = [] let shouldError = false @@ -578,7 +577,7 @@ describe('queryObserver', () => { }) }) - test('should structurally share the selector', async () => { + it('should structurally share the selector', async () => { const key = queryKey() let count = 0 const observer = new QueryObserver(queryClient, { @@ -592,7 +591,7 @@ describe('queryObserver', () => { expect(observerResult1.data).toBe(observerResult2.data) }) - test('should not trigger a fetch when subscribed and disabled', async () => { + it('should not trigger a fetch when subscribed and disabled', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -608,7 +607,7 @@ describe('queryObserver', () => { expect(queryFn).toHaveBeenCalledTimes(0) }) - test('should not trigger a fetch when subscribed and disabled by callback', async () => { + it('should not trigger a fetch when subscribed and disabled by callback', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -624,7 +623,7 @@ describe('queryObserver', () => { expect(queryFn).toHaveBeenCalledTimes(0) }) - test('should not trigger a fetch when not subscribed', async () => { + it('should not trigger a fetch when not subscribed', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -634,7 +633,7 @@ describe('queryObserver', () => { expect(queryFn).toHaveBeenCalledTimes(0) }) - test('should be able to watch a query without defining a query function', async () => { + it('should be able to watch a query without defining a query function', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -652,7 +651,7 @@ describe('queryObserver', () => { expect(callback).toHaveBeenCalledTimes(2) }) - test('should accept unresolved query config in update function', async () => { + it('should accept unresolved query config in update function', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -675,7 +674,7 @@ describe('queryObserver', () => { expect(results[1]).toMatchObject({ isStale: false, data: 'data' }) }) - test('should be able to handle multiple subscribers', async () => { + it('should be able to handle multiple subscribers', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -705,7 +704,7 @@ describe('queryObserver', () => { expect(results2[1]).toMatchObject({ data: 'data' }) }) - test('should stop retry when unsubscribing', async () => { + it('should stop retry when unsubscribing', async () => { const key = queryKey() let count = 0 const observer = new QueryObserver(queryClient, { @@ -724,7 +723,7 @@ describe('queryObserver', () => { expect(count).toBe(2) }) - test('should clear interval when unsubscribing to a refetchInterval query', async () => { + it('should clear interval when unsubscribing to a refetchInterval query', async () => { const key = queryKey() let count = 0 @@ -748,7 +747,7 @@ describe('queryObserver', () => { expect(count).toBe(2) }) - test('uses placeholderData as non-cache data when pending a query with no data', async () => { + it('uses placeholderData as non-cache data when pending a query with no data', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -775,7 +774,7 @@ describe('queryObserver', () => { expect(results[1]).toMatchObject({ status: 'success', data: 'data' }) }) - test('should structurally share placeholder data', () => { + it('should structurally share placeholder data', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -793,7 +792,7 @@ describe('queryObserver', () => { expect(firstData).toBe(secondData) }) - test('should throw an error if enabled option type is not valid', () => { + it('should throw an error if enabled option type is not valid', () => { const key = queryKey() expect( @@ -807,7 +806,7 @@ describe('queryObserver', () => { ).toThrow('Expected enabled to be a boolean') }) - test('getCurrentQuery should return the current query', () => { + it('getCurrentQuery should return the current query', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -818,7 +817,7 @@ describe('queryObserver', () => { expect(observer.getCurrentQuery().queryKey).toEqual(key) }) - test('should throw an error if throwOnError option is true', async () => { + it('should throw an error if throwOnError option is true', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -837,7 +836,7 @@ describe('queryObserver', () => { expect(error).toEqual('error') }) - test('should not refetch in background if refetchIntervalInBackground is false', async () => { + it('should not refetch in background if refetchIntervalInBackground is false', async () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() @@ -861,7 +860,7 @@ describe('queryObserver', () => { focusManager.setFocused(true) }) - test('should not use replaceEqualDeep for select value when structuralSharing option is true', async () => { + it('should not use replaceEqualDeep for select value when structuralSharing option is true', async () => { const key = queryKey() const data = { value: 'data' } @@ -891,7 +890,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should not use replaceEqualDeep for select value when structuralSharing option is true and placeholderData is defined', () => { + it('should not use replaceEqualDeep for select value when structuralSharing option is true and placeholderData is defined', () => { const key = queryKey() const data = { value: 'data' } @@ -928,7 +927,7 @@ describe('queryObserver', () => { expect(observer.getCurrentResult().data).toBe(selectedData2) }) - test('should pass the correct previous queryKey (from prevQuery) to placeholderData function params with select', async () => { + it('should pass the correct previous queryKey (from prevQuery) to placeholderData function params with select', async () => { const results: Array = [] const keys: Array | null> = [] @@ -994,7 +993,7 @@ describe('queryObserver', () => { }) // Successful fetch for new key }) - test('should pass the correct previous data to placeholderData function params when select function is used in conjunction', async () => { + it('should pass the correct previous data to placeholderData function params when select function is used in conjunction', async () => { const results: Array = [] const key1 = queryKey() @@ -1060,7 +1059,7 @@ describe('queryObserver', () => { expect(selectCount).toBe(3) }) - test('should use cached selectResult when switching between queries and placeholderData returns previousData', async () => { + it('should use cached selectResult when switching between queries and placeholderData returns previousData', async () => { const results: Array = [] const key1 = queryKey() @@ -1121,7 +1120,7 @@ describe('queryObserver', () => { expect(stableSelect.mock.calls[1]![0]).toEqual(data2) }) - test('setOptions should notify cache listeners', () => { + it('setOptions should notify cache listeners', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -1141,7 +1140,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('disabled observers should not be stale', () => { + it('disabled observers should not be stale', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -1153,7 +1152,7 @@ describe('queryObserver', () => { expect(result.isStale).toBe(false) }) - test('should allow staleTime as a function', async () => { + it('should allow staleTime as a function', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -1179,7 +1178,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should not see queries as stale is staleTime is Static', async () => { + it('should not see queries as stale is staleTime is Static', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -1205,7 +1204,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should return a promise that resolves when data is present', async () => { + it('should return a promise that resolves when data is present', async () => { const results: Array = [] const key = queryKey() let count = 0 @@ -1235,7 +1234,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should return a new promise after recovering from an error', async () => { + it('should return a new promise after recovering from an error', async () => { const results: Array = [] const key = queryKey() @@ -1295,7 +1294,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('shouldFetchOnWindowFocus should respect refetchOnWindowFocus option', () => { + it('shouldFetchOnWindowFocus should respect refetchOnWindowFocus option', () => { const key = queryKey() const observer1 = new QueryObserver(queryClient, { @@ -1313,7 +1312,7 @@ describe('queryObserver', () => { expect(observer2.shouldFetchOnWindowFocus()).toBe(false) }) - test('fetchOptimistic should fetch and return optimistic result', async () => { + it('fetchOptimistic should fetch and return optimistic result', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -1329,7 +1328,7 @@ describe('queryObserver', () => { expect(result.data).toBe('data') }) - test('should track error prop when throwOnError is true', async () => { + it('should track error prop when throwOnError is true', async () => { const key = queryKey() const results: Array = [] const observer = new QueryObserver(queryClient, { @@ -1368,7 +1367,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should not track error prop when throwOnError is not set', async () => { + it('should not track error prop when throwOnError is not set', async () => { const key = queryKey() const results: Array = [] const observer = new QueryObserver(queryClient, { @@ -1402,7 +1401,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should not refetch on mount when retryOnMount is false and query is in error state', async () => { + it('should not refetch on mount when retryOnMount is false and query is in error state', async () => { const key = queryKey() const queryFn = vi.fn(() => Promise.reject('error')) @@ -1438,7 +1437,7 @@ describe('queryObserver', () => { unsubscribeSecond() }) - test('should reject promise when experimental_prefetchInRender is disabled and thenable is pending', async () => { + it('should reject promise when experimental_prefetchInRender is disabled and thenable is pending', async () => { const key = queryKey() const queryClient2 = new QueryClient({ defaultOptions: { @@ -1463,7 +1462,7 @@ describe('queryObserver', () => { queryClient2.clear() }) - test('should not refetchOnMount when set to "always" when staleTime is Static', async () => { + it('should not refetchOnMount when set to "always" when staleTime is Static', async () => { const key = queryKey() const queryFn = vi.fn(() => 'data') queryClient.setQueryData(key, 'initial') @@ -1479,7 +1478,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should not refetchOnWindowFocus when staleTime is static and query has background error', async () => { + it('should not refetchOnWindowFocus when staleTime is static and query has background error', async () => { const key = queryKey() let callCount = 0 const queryFn = vi.fn(async () => { @@ -1518,7 +1517,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should refetchOnWindowFocus when query has background error and staleTime is not static', async () => { + it('should refetchOnWindowFocus when query has background error and staleTime is not static', async () => { const key = queryKey() let callCount = 0 const queryFn = vi.fn(async () => { @@ -1560,7 +1559,7 @@ describe('queryObserver', () => { unsubscribe() }) - test('should set fetchStatus to idle when _optimisticResults is isRestoring', () => { + it('should set fetchStatus to idle when _optimisticResults is isRestoring', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -1572,7 +1571,7 @@ describe('queryObserver', () => { expect(result.fetchStatus).toBe('idle') }) - test('should return isEnabled depending on enabled being resolved', () => { + it('should return isEnabled depending on enabled being resolved', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -1584,7 +1583,7 @@ describe('queryObserver', () => { expect(result.isEnabled).toBe(false) }) - test('should return isEnabled as true per default', () => { + it('should return isEnabled as true per default', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -1595,7 +1594,7 @@ describe('queryObserver', () => { expect(result.isEnabled).toBe(true) }) - test('should update currentResult when getOptimisticResult is called with changed data', () => { + it('should update currentResult when getOptimisticResult is called with changed data', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index 903f2c85344..1402320f831 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { streamedQuery } from '../streamedQuery' import { QueryClient, QueryObserver } from '..' @@ -29,7 +29,7 @@ describe('streamedQuery', () => { } } - test('should stream data from an AsyncIterable', async () => { + it('should stream data from an AsyncIterable', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -73,7 +73,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should allow Arrays to be returned from the stream', async () => { + it('should allow Arrays to be returned from the stream', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -128,7 +128,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should handle empty streams', async () => { + it('should handle empty streams', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -157,7 +157,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should replace on refetch', async () => { + it('should replace on refetch', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -211,7 +211,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should support refetchMode append', async () => { + it('should support refetchMode append', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -266,7 +266,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should support refetchMode replace', async () => { + it('should support refetchMode replace', async () => { const key = queryKey() let offset = 0 const observer = new QueryObserver(queryClient, { @@ -324,7 +324,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should abort ongoing stream when refetch happens', async () => { + it('should abort ongoing stream when refetch happens', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -384,7 +384,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should abort when unsubscribed', async () => { + it('should abort when unsubscribed', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -425,7 +425,7 @@ describe('streamedQuery', () => { }) }) - test('should not abort when signal not consumed', async () => { + it('should not abort when signal not consumed', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -461,7 +461,7 @@ describe('streamedQuery', () => { }) }) - test('should support custom reducer', async () => { + it('should support custom reducer', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -498,7 +498,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should support custom reducer with initialValue', async () => { + it('should support custom reducer with initialValue', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, @@ -539,7 +539,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should keep error state on reset refetch when initialData is defined', async () => { + it('should keep error state on reset refetch when initialData is defined', async () => { const key = queryKey() let shouldError = false const error = new Error('stream failed') @@ -591,7 +591,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should treat a fetch after an initial error as a refetch for reset mode', async () => { + it('should treat a fetch after an initial error as a refetch for reset mode', async () => { const key = queryKey() let shouldError = true const error = new Error('stream failed') @@ -647,7 +647,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should reset to initialData on refetch after an initial error', async () => { + it('should reset to initialData on refetch after an initial error', async () => { const key = queryKey() let shouldError = true const error = new Error('stream failed') @@ -704,7 +704,7 @@ describe('streamedQuery', () => { unsubscribe() }) - test('should not call reducer twice when refetchMode is replace', async () => { + it('should not call reducer twice when refetchMode is replace', async () => { const key = queryKey() const arr: Array = [] diff --git a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts index e9ff7eb8bf3..bc630b8c730 100644 --- a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts +++ b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, test, vi } from 'vitest' +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' import { Query, QueryClient, hashKey } from '@tanstack/query-core' import { PERSISTER_KEY_PREFIX, @@ -71,7 +71,7 @@ describe('createPersister', () => { vi.useRealTimers() }) - test('should fetch if storage is not provided', async () => { + it('should fetch if storage is not provided', async () => { const { context, persister, query, queryFn } = setupPersister(['foo'], { storage: undefined, }) @@ -81,7 +81,7 @@ describe('createPersister', () => { expect(queryFn).toHaveBeenCalledExactlyOnceWith(context) }) - test('should fetch if there is no stored data', async () => { + it('should fetch if there is no stored data', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn } = setupPersister(['foo'], { storage, @@ -92,7 +92,7 @@ describe('createPersister', () => { expect(queryFn).toHaveBeenCalledExactlyOnceWith(context) }) - test('should fetch if query already has data', async () => { + it('should fetch if query already has data', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn } = setupPersister(['foo'], { storage, @@ -104,7 +104,7 @@ describe('createPersister', () => { expect(queryFn).toHaveBeenCalledExactlyOnceWith(context) }) - test('should fetch if deserialization fails', async () => { + it('should fetch if deserialization fails', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -122,7 +122,7 @@ describe('createPersister', () => { expect(queryFn).toHaveBeenCalledExactlyOnceWith(context) }) - test('should remove stored item if `dataUpdatedAt` is empty', async () => { + it('should remove stored item if `dataUpdatedAt` is empty', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -146,7 +146,7 @@ describe('createPersister', () => { expect(queryFn).toHaveBeenCalledExactlyOnceWith(context) }) - test('should remove stored item if its expired', async () => { + it('should remove stored item if its expired', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -171,7 +171,7 @@ describe('createPersister', () => { expect(queryFn).toHaveBeenCalledExactlyOnceWith(context) }) - test('should remove stored item if its busted', async () => { + it('should remove stored item if its busted', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -195,7 +195,7 @@ describe('createPersister', () => { expect(queryFn).toHaveBeenCalledExactlyOnceWith(context) }) - test('should restore item from the storage and set proper `updatedAt` values', async () => { + it('should restore item from the storage and set proper `updatedAt` values', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -226,7 +226,7 @@ describe('createPersister', () => { expect(query.state.dataUpdatedAt).toEqual(dataUpdatedAt) }) - test('should restore item from the storage and refetch when `stale`', async () => { + it('should restore item from the storage and refetch when `stale`', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -253,7 +253,7 @@ describe('createPersister', () => { expect(query.fetch).toHaveBeenCalledTimes(1) }) - test('should restore item from the storage and refetch when `refetchOnRestore` is set to `always`', async () => { + it('should restore item from the storage and refetch when `refetchOnRestore` is set to `always`', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -281,7 +281,7 @@ describe('createPersister', () => { expect(query.fetch).toHaveBeenCalledTimes(1) }) - test('should restore item from the storage and NOT refetch when `refetchOnRestore` is set to false', async () => { + it('should restore item from the storage and NOT refetch when `refetchOnRestore` is set to false', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -309,7 +309,7 @@ describe('createPersister', () => { expect(query.fetch).toHaveBeenCalledTimes(0) }) - test('should store item after successful fetch', async () => { + it('should store item after successful fetch', async () => { const storage = getFreshStorage() const { context, @@ -340,7 +340,7 @@ describe('createPersister', () => { }) }) - test('should skip stored item if not matched by filters', async () => { + it('should skip stored item if not matched by filters', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -373,7 +373,7 @@ describe('createPersister', () => { expect(query.fetch).toHaveBeenCalledTimes(0) }) - test('should restore item from the storage with async deserializer', async () => { + it('should restore item from the storage with async deserializer', async () => { const storage = getFreshStorage() const { context, persister, query, queryFn, storageKey } = setupPersister( ['foo'], @@ -402,7 +402,7 @@ describe('createPersister', () => { expect(query.fetch).toHaveBeenCalledTimes(1) }) - test('should store item after successful fetch with async serializer', async () => { + it('should store item after successful fetch with async serializer', async () => { const storage = getFreshStorage() const { context, @@ -436,7 +436,7 @@ describe('createPersister', () => { }) describe('persistQuery', () => { - test('Should properly persiste basic query', async () => { + it('Should properly persiste basic query', async () => { const storage = getFreshStorage() const { persister, query, queryHash, queryKey, storageKey } = setupPersister(['foo'], { @@ -458,7 +458,7 @@ describe('createPersister', () => { }) }) - test('Should skip persistance if storage is not provided', async () => { + it('Should skip persistance if storage is not provided', async () => { const serializeMock = vi.fn() const { persister, query } = setupPersister(['foo'], { storage: null, @@ -473,7 +473,7 @@ describe('createPersister', () => { }) describe('persistQueryByKey', () => { - test('Should skip persistance if storage is not provided', async () => { + it('Should skip persistance if storage is not provided', async () => { const serializeMock = vi.fn() const { persister, client, queryKey } = setupPersister(['foo'], { storage: null, @@ -486,7 +486,7 @@ describe('createPersister', () => { expect(serializeMock).toHaveBeenCalledTimes(0) }) - test('should skip persistance if query was not found', async () => { + it('should skip persistance if query was not found', async () => { const serializeMock = vi.fn() const storage = getFreshStorage() const { client, persister, queryKey } = setupPersister(['foo'], { @@ -500,7 +500,7 @@ describe('createPersister', () => { expect(serializeMock).toHaveBeenCalledTimes(0) }) - test('Should properly persiste basic query', async () => { + it('Should properly persiste basic query', async () => { const storage = getFreshStorage() const { persister, client, queryHash, queryKey, storageKey } = setupPersister(['foo'], { @@ -524,7 +524,7 @@ describe('createPersister', () => { }) describe('persisterGc', () => { - test('should properly clean storage from busted entries', async () => { + it('should properly clean storage from busted entries', async () => { const storage = getFreshStorage() const { persister, client, query, queryKey } = setupPersister(['foo'], { storage, @@ -545,7 +545,7 @@ describe('createPersister', () => { }) describe('restoreQueries', () => { - test('should properly clean storage from busted entries', async () => { + it('should properly clean storage from busted entries', async () => { const storage = getFreshStorage() const { persister, client, query, queryKey } = setupPersister(['foo'], { storage, @@ -564,7 +564,7 @@ describe('createPersister', () => { expect(await storage.entries()).toHaveLength(0) }) - test('should properly restore queries from cache without filters', async () => { + it('should properly restore queries from cache without filters', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo'], { storage, @@ -583,7 +583,7 @@ describe('createPersister', () => { expect(client.getQueryData(queryKey)).toEqual('foo') }) - test('should properly restore queries from cache', async () => { + it('should properly restore queries from cache', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -602,7 +602,7 @@ describe('createPersister', () => { expect(client.getQueryData(queryKey)).toEqual('foo') }) - test('should not restore queries from cache if there is no match', async () => { + it('should not restore queries from cache if there is no match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -619,7 +619,7 @@ describe('createPersister', () => { expect(client.getQueryCache().getAll()).toHaveLength(0) }) - test('should properly restore queries from cache with partial match', async () => { + it('should properly restore queries from cache with partial match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -638,7 +638,7 @@ describe('createPersister', () => { expect(client.getQueryData(queryKey)).toEqual('foo') }) - test('should not restore queries from cache with exact match if there is no match', async () => { + it('should not restore queries from cache with exact match if there is no match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -655,7 +655,7 @@ describe('createPersister', () => { expect(client.getQueryCache().getAll()).toHaveLength(0) }) - test('should restore queries from cache with exact match', async () => { + it('should restore queries from cache with exact match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -677,7 +677,7 @@ describe('createPersister', () => { }) describe('removeQueries', () => { - test('should remove restore queries from storage without filters', async () => { + it('should remove restore queries from storage without filters', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo'], { storage, @@ -691,7 +691,7 @@ describe('createPersister', () => { expect(await storage.entries()).toHaveLength(0) }) - test('should remove queries from storage', async () => { + it('should remove queries from storage', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -705,7 +705,7 @@ describe('createPersister', () => { expect(await storage.entries()).toHaveLength(0) }) - test('should not remove queries from storage if there is no match', async () => { + it('should not remove queries from storage if there is no match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -719,7 +719,7 @@ describe('createPersister', () => { expect(await storage.entries()).toHaveLength(1) }) - test('should properly remove queries from storage with partial match', async () => { + it('should properly remove queries from storage with partial match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -733,7 +733,7 @@ describe('createPersister', () => { expect(await storage.entries()).toHaveLength(0) }) - test('should not remove queries from storage with exact match if there is no match', async () => { + it('should not remove queries from storage with exact match if there is no match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, @@ -747,7 +747,7 @@ describe('createPersister', () => { expect(await storage.entries()).toHaveLength(1) }) - test('should remove queries from storage with exact match', async () => { + it('should remove queries from storage with exact match', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { storage, diff --git a/packages/query-persist-client-core/src/__tests__/persist.test.ts b/packages/query-persist-client-core/src/__tests__/persist.test.ts index 14f7d0720bf..c831c8b8b02 100644 --- a/packages/query-persist-client-core/src/__tests__/persist.test.ts +++ b/packages/query-persist-client-core/src/__tests__/persist.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test, vi } from 'vitest' +import { describe, expect, it, vi } from 'vitest' import { QueriesObserver, QueryClient } from '@tanstack/query-core' import { persistQueryClientRestore, @@ -7,7 +7,7 @@ import { import { createMockPersister, createSpyPersister } from './utils' describe('persistQueryClientSubscribe', () => { - test('should persist mutations', async () => { + it('should persist mutations', async () => { const queryClient = new QueryClient() const persister = createMockPersister() @@ -31,7 +31,7 @@ describe('persistQueryClientSubscribe', () => { }) describe('persistQueryClientSave', () => { - test('should not be triggered on observer type events', () => { + it('should not be triggered on observer type events', () => { const queryClient = new QueryClient() const persister = createSpyPersister() @@ -64,7 +64,7 @@ describe('persistQueryClientSave', () => { }) describe('persistQueryClientRestore', () => { - test('should rethrow exceptions in `restoreClient`', async () => { + it('should rethrow exceptions in `restoreClient`', async () => { const consoleMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) @@ -96,7 +96,7 @@ describe('persistQueryClientRestore', () => { consoleWarn.mockRestore() }) - test('should rethrow exceptions in `removeClient` before `restoreClient`', async () => { + it('should rethrow exceptions in `removeClient` before `restoreClient`', async () => { const consoleMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) @@ -130,7 +130,7 @@ describe('persistQueryClientRestore', () => { consoleWarn.mockRestore() }) - test('should rethrow error in `removeClient`', async () => { + it('should rethrow error in `removeClient`', async () => { const queryClient = new QueryClient() const persister = createSpyPersister() diff --git a/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts b/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts index 5f75d66c212..8a48f3ced2b 100644 --- a/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts +++ b/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { MutationCache, QueryCache, @@ -41,7 +41,7 @@ function getMockStorage(limitSize?: number) { } describe('create persister', () => { - test('basic store and recover', async () => { + it('basic store and recover', async () => { const queryCache = new QueryCache() const mutationCache = new MutationCache() const queryClient = new QueryClient({ queryCache, mutationCache }) @@ -84,7 +84,7 @@ describe('create persister', () => { expect(restoredClient).toEqual(persistClient) }) - test('should clean the old queries when storage full', async () => { + it('should clean the old queries when storage full', async () => { const queryCache = new QueryCache() const mutationCache = new MutationCache() const queryClient = new QueryClient({ queryCache, mutationCache }) @@ -160,7 +160,7 @@ describe('create persister', () => { restoredClient2?.clientState.queries.find((q) => q.queryKey[0] === 'B'), ).toBeUndefined() }) - test('should clear storage as default error handling', async () => { + it('should clear storage as default error handling', async () => { const queryCache = new QueryCache() const mutationCache = new MutationCache() const queryClient = new QueryClient({ queryCache, mutationCache }) 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 6976d851a2d..79a95692f8d 100644 --- a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import * as React from 'react' import { act, fireEvent, render } from '@testing-library/react' import { QueryClient, useQueries, useQuery } from '@tanstack/react-query' @@ -58,7 +58,7 @@ describe('PersistQueryClientProvider', () => { vi.useRealTimers() }) - test('restores cache from persister', async () => { + it('restores cache from persister', async () => { const key = queryKey() const states: Array> = [] @@ -134,7 +134,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should subscribe correctly in StrictMode', async () => { + it('should subscribe correctly in StrictMode', async () => { const key = queryKey() const queryClient = new QueryClient() @@ -201,7 +201,7 @@ describe('PersistQueryClientProvider', () => { expect(state?.clientState.queries[0]?.state.data).toBe('updated') }) - test('should also put useQueries into idle state', async () => { + it('should also put useQueries into idle state', async () => { const key = queryKey() const states: Array = [] @@ -281,7 +281,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should show initialData while restoring', async () => { + it('should show initialData while restoring', async () => { const key = queryKey() const states: Array> = [] @@ -361,7 +361,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should not refetch after restoring when data is fresh', async () => { + it('should not refetch after restoring when data is fresh', async () => { const key = queryKey() const states: Array> = [] @@ -434,7 +434,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should call onSuccess after successful restoring', async () => { + it('should call onSuccess after successful restoring', async () => { const key = queryKey() const queryClient = new QueryClient() @@ -486,7 +486,7 @@ describe('PersistQueryClientProvider', () => { expect(rendered.getByText('fetched')).toBeInTheDocument() }) - test('should await onSuccess after successful restoring', async () => { + it('should await onSuccess after successful restoring', async () => { const key = queryKey() const queryClient = new QueryClient() @@ -551,7 +551,7 @@ describe('PersistQueryClientProvider', () => { ]) }) - test('should remove cache after non-successful restoring', async () => { + it('should remove cache after non-successful restoring', async () => { const key = queryKey() const consoleMock = vi.spyOn(console, 'error') const consoleWarn = vi @@ -604,7 +604,7 @@ describe('PersistQueryClientProvider', () => { consoleWarn.mockRestore() }) - test('should be able to persist into multiple clients', async () => { + it('should be able to persist into multiple clients', async () => { const key = queryKey() const states: Array = [] @@ -723,7 +723,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should only restore once in StrictMode', async () => { + it('should only restore once in StrictMode', async () => { let restoreCount = 0 const createPersister = (): Persister => { let storedState: PersistedClient | undefined diff --git a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx index 67b409c6ad1..25f481a22d0 100644 --- a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import * as React from 'react' import { render } from '@testing-library/react' import * as coreModule from '@tanstack/query-core' @@ -31,7 +31,7 @@ describe('React hydration', () => { vi.useRealTimers() }) - test('should hydrate queries to the cache on context', async () => { + it('should hydrate queries to the cache on context', async () => { const dehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -61,7 +61,7 @@ describe('React hydration', () => { queryClient.clear() }) - test('should hydrate queries to the cache on custom context', async () => { + it('should hydrate queries to the cache on custom context', async () => { const queryClientInner = new QueryClient() const queryClientOuter = new QueryClient() @@ -98,7 +98,7 @@ describe('React hydration', () => { }) describe('ReactQueryCacheProvider with hydration support', () => { - test('should hydrate new queries if queries change', async () => { + it('should hydrate new queries if queries change', async () => { const dehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -169,7 +169,7 @@ describe('React hydration', () => { // remounted, I didn't change tabs etc?). // Any queries that does not exist in the cache yet can still be hydrated // since they don't have any observers on the current page that would update. - test('should hydrate new but not existing queries if transition is aborted', async () => { + it('should hydrate new but not existing queries if transition is aborted', async () => { const initialDehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -262,7 +262,7 @@ describe('React hydration', () => { queryClient.clear() }) - test('should hydrate queries to new cache if cache changes', async () => { + it('should hydrate queries to new cache if cache changes', async () => { const dehydratedState = JSON.parse(stringifiedState) const queryClient = new QueryClient() @@ -307,7 +307,7 @@ describe('React hydration', () => { }) }) - test('should not hydrate queries if state is null', async () => { + it('should not hydrate queries if state is null', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -335,7 +335,7 @@ describe('React hydration', () => { queryClient.clear() }) - test('should not hydrate queries if state is undefined', async () => { + it('should not hydrate queries if state is undefined', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -359,7 +359,7 @@ describe('React hydration', () => { queryClient.clear() }) - test('should not hydrate queries if state is not an object', async () => { + it('should not hydrate queries if state is not an object', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -383,7 +383,7 @@ describe('React hydration', () => { queryClient.clear() }) - test('should handle state without queries property gracefully', async () => { + it('should handle state without queries property gracefully', async () => { const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -408,7 +408,7 @@ describe('React hydration', () => { }) // https://github.com/TanStack/query/issues/8677 - test('should not infinite loop when hydrating promises that resolve to errors', async () => { + it('should not infinite loop when hydrating promises that resolve to errors', async () => { const originalHydrate = coreModule.hydrate const hydrateSpy = vi.spyOn(coreModule, 'hydrate') let hydrationCount = 0 @@ -481,7 +481,7 @@ describe('React hydration', () => { clientQueryClient.clear() }) - test('should not refetch when query has enabled set to false', async () => { + it('should not refetch when query has enabled set to false', async () => { const queryFn = vi.fn() const queryClient = new QueryClient() @@ -511,7 +511,7 @@ describe('React hydration', () => { queryClient.clear() }) - test('should not refetch when query has staleTime set to Infinity', async () => { + it('should not refetch when query has staleTime set to Infinity', async () => { const queryFn = vi.fn() const queryClient = new QueryClient() diff --git a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx index be942a320c0..71f80595680 100644 --- a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@testing-library/react' import { queryKey, sleep } from '@tanstack/query-test-utils' import { @@ -18,7 +18,7 @@ describe('QueryClientProvider', () => { vi.useRealTimers() }) - test('sets a specific cache for all queries to use', async () => { + it('sets a specific cache for all queries to use', async () => { const key = queryKey() const queryCache = new QueryCache() @@ -49,7 +49,7 @@ describe('QueryClientProvider', () => { expect(queryCache.find({ queryKey: key })).toBeDefined() }) - test('allows multiple caches to be partitioned', async () => { + it('allows multiple caches to be partitioned', async () => { const key1 = queryKey() const key2 = queryKey() @@ -105,7 +105,7 @@ describe('QueryClientProvider', () => { expect(queryCache2.find({ queryKey: key2 })).toBeDefined() }) - test("uses defaultOptions for queries when they don't provide their own config", async () => { + it("uses defaultOptions for queries when they don't provide their own config", async () => { const key = queryKey() const queryCache = new QueryCache() @@ -145,7 +145,7 @@ describe('QueryClientProvider', () => { }) describe('useQueryClient', () => { - test('should throw an error if no query client has been set', () => { + it('should throw an error if no query client has been set', () => { const consoleMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) diff --git a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx index aaa38f4aa37..2a224818d64 100644 --- a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -1,4 +1,4 @@ -import { assertType, describe, expectTypeOf, it, test } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' import { queryKey } from '@tanstack/query-test-utils' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -154,7 +154,7 @@ describe('infiniteQueryOptions', () => { expectTypeOf(data).toEqualTypeOf>() }) - test('should not be allowed to be passed to non-infinite query functions', () => { + it('should not be allowed to be passed to non-infinite query functions', () => { const queryClient = new QueryClient() const options = infiniteQueryOptions({ queryKey: queryKey(), @@ -180,7 +180,7 @@ describe('infiniteQueryOptions', () => { ) }) - test('allow optional initialData function', () => { + it('allow optional initialData function', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ queryKey: queryKey(), @@ -198,7 +198,7 @@ describe('infiniteQueryOptions', () => { >() }) - test('allow optional initialData object', () => { + it('allow optional initialData object', () => { const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ queryKey: queryKey(), diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 66e8ed27288..71cda44e37e 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { act, fireEvent, render } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' @@ -3889,7 +3889,7 @@ describe('useQuery', () => { }) // See https://github.com/tannerlinsley/react-query/issues/360 - test('should init to status:pending, fetchStatus:idle when enabled is false', async () => { + it('should init to status:pending, fetchStatus:idle when enabled is false', async () => { const key = queryKey() function Page() { @@ -3914,7 +3914,7 @@ describe('useQuery', () => { expect(rendered.getByText('status: pending, idle')).toBeInTheDocument() }) - test('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { + it('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { const key = queryKey() function Page() { @@ -3937,7 +3937,7 @@ describe('useQuery', () => { expect(setTimeoutSpy).not.toHaveBeenCalled() }) - test('should schedule garbage collection, if gcTimeout is not set to infinity', async () => { + it('should schedule garbage collection, if gcTimeout is not set to infinity', async () => { const key = queryKey() function Page() { diff --git a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index 130309c1e75..a60e113463e 100644 --- a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render, screen } from '@solidjs/testing-library' import { QueryClient, useQueries, useQuery } from '@tanstack/solid-query' import { persistQueryClientSave } from '@tanstack/query-persist-client-core' @@ -54,7 +54,7 @@ describe('PersistQueryClientProvider', () => { vi.useRealTimers() }) - test('restores cache from persister', async () => { + it('restores cache from persister', async () => { const key = queryKey() const states: Array<{ status: string @@ -133,7 +133,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should also put useQueries into idle state', async () => { + it('should also put useQueries into idle state', async () => { const key = queryKey() const states: Array<{ status: string @@ -217,7 +217,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should show initialData while restoring', async () => { + it('should show initialData while restoring', async () => { const key = queryKey() const states: Array<{ status: string @@ -301,7 +301,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should not refetch after restoring when data is fresh', async () => { + it('should not refetch after restoring when data is fresh', async () => { const key = queryKey() const states: Array<{ status: string @@ -384,7 +384,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should call onSuccess after successful restoring', async () => { + it('should call onSuccess after successful restoring', async () => { const key = queryKey() const queryClient = new QueryClient() @@ -435,7 +435,7 @@ describe('PersistQueryClientProvider', () => { expect(screen.getByText('fetched')).toBeInTheDocument() }) - test('should remove cache after non-successful restoring', async () => { + it('should remove cache after non-successful restoring', async () => { const key = queryKey() const onErrorMock = vi @@ -485,7 +485,7 @@ describe('PersistQueryClientProvider', () => { onErrorMock.mockRestore() }) - test('should be able to persist into multiple clients', async () => { + it('should be able to persist into multiple clients', async () => { const key = queryKey() const states: Array<{ status: string diff --git a/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.svelte.test.ts b/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.svelte.test.ts index 479205f265a..9a23166ff9b 100644 --- a/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.svelte.test.ts +++ b/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.svelte.test.ts @@ -1,5 +1,5 @@ import { render } from '@testing-library/svelte' -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryClient } from '@tanstack/svelte-query' import { persistQueryClientSave } from '@tanstack/query-persist-client-core' import { sleep } from '@tanstack/query-test-utils' @@ -60,7 +60,7 @@ const createMockErrorPersister = ( } describe('PersistQueryClientProvider', () => { - test('restores cache from persister', async () => { + it('restores cache from persister', async () => { const states = new StatelessRef>>([]) const queryClient = new QueryClient() @@ -112,7 +112,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should also put useQueries into idle state', async () => { + it('should also put useQueries into idle state', async () => { const states = new StatelessRef>>([]) const queryClient = new QueryClient() @@ -164,7 +164,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should show initialData while restoring', async () => { + it('should show initialData while restoring', async () => { const states = new StatelessRef>>([]) const queryClient = new QueryClient() @@ -216,7 +216,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should not refetch after restoring when data is fresh', async () => { + it('should not refetch after restoring when data is fresh', async () => { const states = new StatelessRef>>([]) const queryClient = new QueryClient() @@ -269,7 +269,7 @@ describe('PersistQueryClientProvider', () => { }) }) - test('should call onSuccess after successful restoring', async () => { + it('should call onSuccess after successful restoring', async () => { const queryClient = new QueryClient() queryClient.prefetchQuery({ queryKey: ['test'], @@ -302,7 +302,7 @@ describe('PersistQueryClientProvider', () => { expect(rendered.getByText('fetched')).toBeInTheDocument() }) - test('should await onSuccess after successful restoring', async () => { + it('should await onSuccess after successful restoring', async () => { const queryClient = new QueryClient() queryClient.prefetchQuery({ queryKey: ['test'], @@ -345,7 +345,7 @@ describe('PersistQueryClientProvider', () => { ]) }) - test('should remove cache after non-successful restoring', async () => { + it('should remove cache after non-successful restoring', async () => { const consoleMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts index 58cad3f7cfd..7cdb40ca391 100644 --- a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts +++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.svelte.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import Base from './Base.svelte' @@ -16,7 +16,7 @@ describe('QueryClientProvider', () => { vi.useRealTimers() }) - test('should set a specific cache for all queries to use', async () => { + it('should set a specific cache for all queries to use', async () => { const queryCache = queryClient.getQueryCache() const rendered = render(Base, { diff --git a/packages/svelte-query/tests/context/context.svelte.test.ts b/packages/svelte-query/tests/context/context.svelte.test.ts index 483ac3d26f5..ac07452ed1f 100644 --- a/packages/svelte-query/tests/context/context.svelte.test.ts +++ b/packages/svelte-query/tests/context/context.svelte.test.ts @@ -1,10 +1,10 @@ -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { render } from '@testing-library/svelte' import { getIsRestoringContext } from '../../src/index.js' import Base from './Base.svelte' describe('getQueryClientContext', () => { - test('should throw when called without a client in context', () => { + it('should throw when called without a client in context', () => { expect(() => render(Base)).toThrow( 'No QueryClient was found in Svelte context. Did you forget to wrap your component with QueryClientProvider?', ) @@ -12,7 +12,7 @@ describe('getQueryClientContext', () => { }) describe('getIsRestoringContext', () => { - test('should not throw when called outside of a component', () => { + it('should not throw when called outside of a component', () => { expect(() => getIsRestoringContext()).not.toThrow() }) }) diff --git a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts index 9367bed000f..05ec2ddbf75 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.svelte.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { flushSync } from 'svelte' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' @@ -22,7 +22,7 @@ describe('createMutation', () => { vi.useRealTimers() }) - test('should be able to reset `error`', async () => { + it('should be able to reset `error`', async () => { const rendered = render(Reset, { props: { queryClient }, }) @@ -38,7 +38,7 @@ describe('createMutation', () => { expect(rendered.getByText('Error: undefined')).toBeInTheDocument() }) - test('should be able to call `onSuccess` and `onSettled` after each successful mutate', async () => { + it('should be able to call `onSuccess` and `onSettled` after each successful mutate', async () => { const onSuccessMock = vi.fn() const onSettledMock = vi.fn() @@ -69,7 +69,7 @@ describe('createMutation', () => { expect(onSettledMock).toHaveBeenNthCalledWith(3, 3) }) - test('should set correct values for `failureReason` and `failureCount` on multiple mutate calls', async () => { + it('should set correct values for `failureReason` and `failureCount` on multiple mutate calls', async () => { type Value = { count: number } const mutationFn = vi.fn<(value: Value) => Promise>() @@ -108,7 +108,7 @@ describe('createMutation', () => { expect(rendered.getByText('Failure Reason: undefined')).toBeInTheDocument() }) - test( + it( 'should recreate observer when queryClient changes', withEffectRoot(async () => { const queryClient1 = new QueryClient() diff --git a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts index 74106951142..e870ff71afd 100644 --- a/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts +++ b/packages/svelte-query/tests/infiniteQueryOptions.test-d.ts @@ -1,11 +1,11 @@ -import { assertType, describe, expectTypeOf, test } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' import { queryKey } from '@tanstack/query-test-utils' import { createInfiniteQuery, infiniteQueryOptions } from '../src/index.js' import type { InfiniteData } from '@tanstack/query-core' describe('infiniteQueryOptions', () => { - test('should not allow excess properties', () => { + it('should not allow excess properties', () => { const key = queryKey() assertType( infiniteQueryOptions({ @@ -19,7 +19,7 @@ describe('infiniteQueryOptions', () => { ) }) - test('should infer types for callbacks', () => { + it('should infer types for callbacks', () => { const key = queryKey() infiniteQueryOptions({ queryKey: key, @@ -33,7 +33,7 @@ describe('infiniteQueryOptions', () => { }) }) - test('should work when passed to createInfiniteQuery', () => { + it('should work when passed to createInfiniteQuery', () => { const key = queryKey() const options = infiniteQueryOptions({ queryKey: key, @@ -50,7 +50,7 @@ describe('infiniteQueryOptions', () => { >() }) - test('should work when passed to fetchInfiniteQuery', async () => { + it('should work when passed to fetchInfiniteQuery', async () => { const key = queryKey() const options = infiniteQueryOptions({ queryKey: key, diff --git a/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts b/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts index 9270b377236..00e657db61c 100644 --- a/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts +++ b/packages/svelte-query/tests/mutationOptions/mutationOptions.test-d.ts @@ -1,4 +1,4 @@ -import { assertType, describe, expectTypeOf, test } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' import { queryKey } from '@tanstack/query-test-utils' import { @@ -19,7 +19,7 @@ import type { } from '../../src/types.js' describe('mutationOptions', () => { - test('should not allow excess properties', () => { + it('should not allow excess properties', () => { const key = queryKey() // @ts-expect-error this is a good error, because onMutates does not exist! @@ -33,7 +33,7 @@ describe('mutationOptions', () => { }) }) - test('should infer types for callbacks', () => { + it('should infer types for callbacks', () => { const key = queryKey() mutationOptions({ @@ -45,7 +45,7 @@ describe('mutationOptions', () => { }) }) - test('should infer types for onError callback', () => { + it('should infer types for onError callback', () => { const key = queryKey() mutationOptions({ @@ -59,7 +59,7 @@ describe('mutationOptions', () => { }) }) - test('should infer types for variables', () => { + it('should infer types for variables', () => { const key = queryKey() mutationOptions({ @@ -71,7 +71,7 @@ describe('mutationOptions', () => { }) }) - test('should infer result type correctly', () => { + it('should infer result type correctly', () => { const key = queryKey() mutationOptions({ @@ -86,7 +86,7 @@ describe('mutationOptions', () => { }) }) - test('should infer context type correctly', () => { + it('should infer context type correctly', () => { const key = queryKey() mutationOptions({ @@ -110,7 +110,7 @@ describe('mutationOptions', () => { }) }) - test('should error if mutationFn return type mismatches TData', () => { + it('should error if mutationFn return type mismatches TData', () => { assertType( mutationOptions({ // @ts-expect-error this is a good error, because return type is string, not number @@ -119,7 +119,7 @@ describe('mutationOptions', () => { ) }) - test('should allow mutationKey to be omitted', () => { + it('should allow mutationKey to be omitted', () => { return mutationOptions({ mutationFn: () => Promise.resolve(123), onSuccess: (data) => { @@ -128,7 +128,7 @@ describe('mutationOptions', () => { }) }) - test('should infer all types when not explicitly provided', () => { + it('should infer all types when not explicitly provided', () => { const key = queryKey() expectTypeOf( @@ -157,7 +157,7 @@ describe('mutationOptions', () => { >() }) - test('should work when used with createMutation', () => { + it('should work when used with createMutation', () => { const key = queryKey() const mutation = createMutation(() => @@ -184,7 +184,7 @@ describe('mutationOptions', () => { ) }) - test('should work when used with useIsMutating', () => { + it('should work when used with useIsMutating', () => { const key = queryKey() const isMutating = useIsMutating( @@ -203,7 +203,7 @@ describe('mutationOptions', () => { ) }) - test('should work when used with queryClient.isMutating', () => { + it('should work when used with queryClient.isMutating', () => { const key = queryKey() const queryClient = new QueryClient() @@ -223,7 +223,7 @@ describe('mutationOptions', () => { ) }) - test('should work when used with useMutationState', () => { + it('should work when used with useMutationState', () => { const key = queryKey() const mutationState = useMutationState({ diff --git a/packages/svelte-query/tests/queryOptions.test-d.ts b/packages/svelte-query/tests/queryOptions.test-d.ts index 2ed3245ae75..033f841f79f 100644 --- a/packages/svelte-query/tests/queryOptions.test-d.ts +++ b/packages/svelte-query/tests/queryOptions.test-d.ts @@ -1,4 +1,4 @@ -import { assertType, describe, expectTypeOf, test } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueriesObserver, QueryClient, @@ -10,7 +10,7 @@ import { createQueries, queryOptions } from '../src/index.js' import type { QueryObserverResult } from '@tanstack/query-core' describe('queryOptions', () => { - test('should not allow excess properties', () => { + it('should not allow excess properties', () => { const key = queryKey() assertType( queryOptions({ @@ -22,7 +22,7 @@ describe('queryOptions', () => { ) }) - test('should infer types for callbacks', () => { + it('should infer types for callbacks', () => { const key = queryKey() queryOptions({ queryKey: key, @@ -34,7 +34,7 @@ describe('queryOptions', () => { }) }) - test('should work when passed to fetchQuery', async () => { + it('should work when passed to fetchQuery', async () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -45,7 +45,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('should work when passed to createQueries', () => { + it('should work when passed to createQueries', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -59,7 +59,7 @@ describe('queryOptions', () => { expectTypeOf(queries[0].data).toEqualTypeOf() }) - test('should tag the queryKey with the result type of the QueryFn', () => { + it('should tag the queryKey with the result type of the QueryFn', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -69,7 +69,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('should tag the queryKey even if no promise is returned', () => { + it('should tag the queryKey even if no promise is returned', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -79,7 +79,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('should tag the queryKey with unknown if there is no queryFn', () => { + it('should tag the queryKey with unknown if there is no queryFn', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -88,7 +88,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('should tag the queryKey with the result type of the QueryFn if select is used', () => { + it('should tag the queryKey with the result type of the QueryFn if select is used', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -99,7 +99,7 @@ describe('queryOptions', () => { expectTypeOf(tagged[dataTagSymbol]).toEqualTypeOf() }) - test('should return the proper type when passed to getQueryData', () => { + it('should return the proper type when passed to getQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -111,7 +111,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('should return the proper type when passed to getQueryState', () => { + it('should return the proper type when passed to getQueryState', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -123,7 +123,7 @@ describe('queryOptions', () => { expectTypeOf(state?.data).toEqualTypeOf() }) - test('should properly type updaterFn when passed to setQueryData', () => { + it('should properly type updaterFn when passed to setQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -138,7 +138,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('should properly type value when passed to setQueryData', () => { + it('should properly type value when passed to setQueryData', () => { const key = queryKey() const { queryKey: tagged } = queryOptions({ queryKey: key, @@ -156,7 +156,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('should infer even if there is a conditional skipToken', () => { + it('should infer even if there is a conditional skipToken', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -168,7 +168,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('should infer to unknown if we disable a query with just a skipToken', () => { + it('should infer to unknown if we disable a query with just a skipToken', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -180,7 +180,7 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf() }) - test('should return the proper type when passed to QueriesObserver', () => { + it('should return the proper type when passed to QueriesObserver', () => { const key = queryKey() const options = queryOptions({ queryKey: key, @@ -194,7 +194,7 @@ describe('queryOptions', () => { >() }) - test('should allow undefined response in initialData', () => { + it('should allow undefined response in initialData', () => { const key = queryKey() const options = (id: string | null) => queryOptions({ diff --git a/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts b/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts index 5357b004048..6d0fd270aff 100644 --- a/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts +++ b/packages/svelte-query/tests/useIsFetching/useIsFetching.svelte.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import Base from './Base.svelte' @@ -16,7 +16,7 @@ describe('useIsFetching', () => { vi.useRealTimers() }) - test('should update as queries start and stop fetching', async () => { + it('should update as queries start and stop fetching', async () => { const rendered = render(Base, { props: { queryClient }, }) diff --git a/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts b/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts index 87c7f397ec2..ccabc6eefbe 100644 --- a/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts +++ b/packages/svelte-query/tests/useIsMutating/useIsMutating.svelte.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import Base from './Base.svelte' @@ -16,7 +16,7 @@ describe('useIsMutating', () => { vi.useRealTimers() }) - test('should update as queries start and stop mutating', async () => { + it('should update as queries start and stop mutating', async () => { const rendered = render(Base, { props: { queryClient }, }) diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts index f5e2c464116..e999f498f4b 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -19,7 +19,7 @@ describe('useMutationState', () => { vi.useRealTimers() }) - test('should run few mutation functions and check from useMutationState', async () => { + it('should run few mutation functions and check from useMutationState', async () => { const successKey = queryKey() const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) @@ -54,7 +54,7 @@ describe('useMutationState', () => { expect(rendered.getByText('Data: ["success","error"]')).toBeInTheDocument() }) - test('should select specific type of mutation ( i.e: error only )', async () => { + it('should select specific type of mutation ( i.e: error only )', async () => { const successKey = queryKey() const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) @@ -92,7 +92,7 @@ describe('useMutationState', () => { expect(rendered.getByText('Data: ["error"]')).toBeInTheDocument() }) - test('should return selected value when using select option', async () => { + it('should return selected value when using select option', async () => { const mutationKey = queryKey() const rendered = render(Select, { @@ -119,7 +119,7 @@ describe('useMutationState', () => { expect(rendered.getByText('Variables: ["success"]')).toBeInTheDocument() }) - test('should select specific mutation using mutation key', async () => { + it('should select specific mutation using mutation key', async () => { const successKey = queryKey() const errorKey = queryKey() const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) diff --git a/packages/vue-query/src/__tests__/mutationCache.test.ts b/packages/vue-query/src/__tests__/mutationCache.test.ts index ab70f834598..0ec4877a6f9 100644 --- a/packages/vue-query/src/__tests__/mutationCache.test.ts +++ b/packages/vue-query/src/__tests__/mutationCache.test.ts @@ -1,4 +1,4 @@ -import { beforeAll, describe, expect, test, vi } from 'vitest' +import { beforeAll, describe, expect, it, vi } from 'vitest' import { ref } from 'vue-demi' import { MutationCache as MutationCacheOrigin } from '@tanstack/query-core' import { MutationCache } from '../mutationCache' @@ -10,7 +10,7 @@ describe('MutationCache', () => { }) describe('find', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const mutationCache = new MutationCache() mutationCache.find({ @@ -24,7 +24,7 @@ describe('MutationCache', () => { }) describe('findAll', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const mutationCache = new MutationCache() mutationCache.findAll({ diff --git a/packages/vue-query/src/__tests__/queryCache.test.ts b/packages/vue-query/src/__tests__/queryCache.test.ts index f18047066dc..a96db14194a 100644 --- a/packages/vue-query/src/__tests__/queryCache.test.ts +++ b/packages/vue-query/src/__tests__/queryCache.test.ts @@ -1,4 +1,4 @@ -import { beforeAll, describe, expect, test, vi } from 'vitest' +import { beforeAll, describe, expect, it, vi } from 'vitest' import { ref } from 'vue-demi' import { QueryCache as QueryCacheOrigin } from '@tanstack/query-core' import { QueryCache } from '../queryCache' @@ -10,7 +10,7 @@ describe('QueryCache', () => { }) describe('find', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryCache = new QueryCache() queryCache.find({ @@ -24,7 +24,7 @@ describe('QueryCache', () => { }) describe('findAll', () => { - test('should properly unwrap two parameters', () => { + it('should properly unwrap two parameters', () => { const queryCache = new QueryCache() queryCache.findAll({ @@ -36,7 +36,7 @@ describe('QueryCache', () => { }) }) - test('should default to empty filters', () => { + it('should default to empty filters', () => { const queryCache = new QueryCache() queryCache.findAll() diff --git a/packages/vue-query/src/__tests__/queryClient.test.ts b/packages/vue-query/src/__tests__/queryClient.test.ts index 1a458e138f3..be6023c17b2 100644 --- a/packages/vue-query/src/__tests__/queryClient.test.ts +++ b/packages/vue-query/src/__tests__/queryClient.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { ref } from 'vue-demi' import { QueryClient as QueryClientOrigin } from '@tanstack/query-core' import { QueryClient } from '../queryClient' @@ -44,7 +44,7 @@ describe('QueryCache', () => { }) describe('isFetching', () => { - test('should properly unwrap 1 parameter', () => { + it('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.isFetching({ @@ -58,7 +58,7 @@ describe('QueryCache', () => { }) describe('isMutating', () => { - test('should properly unwrap 1 parameter', () => { + it('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.isMutating({ @@ -72,7 +72,7 @@ describe('QueryCache', () => { }) describe('getQueryData', () => { - test('should properly unwrap 1 parameter', () => { + it('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.getQueryData(queryKeyRef) @@ -84,7 +84,7 @@ describe('QueryCache', () => { }) describe('ensureQueryData', () => { - test('should properly unwrap parameter', () => { + it('should properly unwrap parameter', () => { const queryClient = new QueryClient() queryClient.ensureQueryData({ @@ -100,7 +100,7 @@ describe('QueryCache', () => { }) describe('getQueriesData', () => { - test('should properly unwrap queryKey param', () => { + it('should properly unwrap queryKey param', () => { const queryClient = new QueryClient() queryClient.getQueriesData({ queryKey: queryKeyRef }) @@ -110,7 +110,7 @@ describe('QueryCache', () => { }) }) - test('should properly unwrap filters param', () => { + it('should properly unwrap filters param', () => { const queryClient = new QueryClient() queryClient.getQueriesData({ queryKey: queryKeyRef }) @@ -122,7 +122,7 @@ describe('QueryCache', () => { }) describe('setQueryData', () => { - test('should properly unwrap 3 parameter', () => { + it('should properly unwrap 3 parameter', () => { const queryClient = new QueryClient() queryClient.setQueryData(queryKeyRef, fn, { @@ -138,7 +138,7 @@ describe('QueryCache', () => { }) describe('setQueriesData', () => { - test('should properly unwrap params with queryKey', () => { + it('should properly unwrap params with queryKey', () => { const queryClient = new QueryClient() queryClient.setQueriesData({ queryKey: queryKeyRef }, fn, { @@ -152,7 +152,7 @@ describe('QueryCache', () => { ) }) - test('should properly unwrap params with filters', () => { + it('should properly unwrap params with filters', () => { const queryClient = new QueryClient() queryClient.setQueriesData({ queryKey: queryKeyRef }, fn, { @@ -168,7 +168,7 @@ describe('QueryCache', () => { }) describe('getQueryState', () => { - test('should properly unwrap 1 parameter', () => { + it('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.getQueryState(queryKeyRef) @@ -180,7 +180,7 @@ describe('QueryCache', () => { }) describe('removeQueries', () => { - test('should properly unwrap 1 parameter', () => { + it('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.removeQueries({ @@ -194,7 +194,7 @@ describe('QueryCache', () => { }) describe('resetQueries', () => { - test('should properly unwrap 2 parameter', () => { + it('should properly unwrap 2 parameter', () => { const queryClient = new QueryClient() queryClient.resetQueries( @@ -214,7 +214,7 @@ describe('QueryCache', () => { }) describe('cancelQueries', () => { - test('should properly unwrap 2 parameter', () => { + it('should properly unwrap 2 parameter', () => { const queryClient = new QueryClient() queryClient.cancelQueries( @@ -234,7 +234,7 @@ describe('QueryCache', () => { }) describe('invalidateQueries', () => { - test('should properly unwrap 2 parameter', () => { + it('should properly unwrap 2 parameter', () => { const queryClient = new QueryClient() queryClient.invalidateQueries( @@ -254,7 +254,7 @@ describe('QueryCache', () => { }) // #7694 - test('should call invalidateQueries immediately and refetchQueries after sleep', async () => { + it('should call invalidateQueries immediately and refetchQueries after sleep', async () => { const invalidateQueries = vi.spyOn( QueryClientOrigin.prototype, 'invalidateQueries', @@ -278,7 +278,7 @@ describe('QueryCache', () => { expect(refetchQueries).toBeCalled() }) - test('should call invalidateQueries immediately and not call refetchQueries', async () => { + it('should call invalidateQueries immediately and not call refetchQueries', async () => { const invalidateQueries = vi.spyOn( QueryClientOrigin.prototype, 'invalidateQueries', @@ -305,7 +305,7 @@ describe('QueryCache', () => { }) describe('refetchQueries', () => { - test('should properly unwrap 2 parameter', () => { + it('should properly unwrap 2 parameter', () => { const queryClient = new QueryClient() queryClient.refetchQueries( @@ -325,7 +325,7 @@ describe('QueryCache', () => { }) describe('fetchQuery', () => { - test('should properly unwrap parameter', () => { + it('should properly unwrap parameter', () => { const queryClient = new QueryClient() queryClient.fetchQuery({ @@ -339,7 +339,7 @@ describe('QueryCache', () => { }) describe('prefetchQuery', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.prefetchQuery({ queryKey: queryKeyRef, queryFn: fn }) @@ -352,7 +352,7 @@ describe('QueryCache', () => { }) describe('fetchInfiniteQuery', () => { - test('should properly unwrap parameter', () => { + it('should properly unwrap parameter', () => { const queryClient = new QueryClient() queryClient.fetchInfiniteQuery({ @@ -367,7 +367,7 @@ describe('QueryCache', () => { }), ) }) - test('should properly unwrap parameter using infiniteQueryOptions with unref', () => { + it('should properly unwrap parameter using infiniteQueryOptions with unref', () => { const queryClient = new QueryClient() const options = infiniteQueryOptions({ @@ -388,7 +388,7 @@ describe('QueryCache', () => { }) describe('prefetchInfiniteQuery', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.prefetchInfiniteQuery({ @@ -406,7 +406,7 @@ describe('QueryCache', () => { }) describe('setDefaultOptions', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.setDefaultOptions({ @@ -424,7 +424,7 @@ describe('QueryCache', () => { }) describe('setQueryDefaults', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.setQueryDefaults(queryKeyRef, { @@ -441,7 +441,7 @@ describe('QueryCache', () => { }) describe('getQueryDefaults', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.getQueryDefaults(queryKeyRef) @@ -453,7 +453,7 @@ describe('QueryCache', () => { }) describe('setMutationDefaults', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.setMutationDefaults(queryKeyRef, { @@ -470,7 +470,7 @@ describe('QueryCache', () => { }) describe('getMutationDefaults', () => { - test('should properly unwrap parameters', () => { + it('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.getMutationDefaults(queryKeyRef) diff --git a/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts b/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts index 73dd45b7ebc..896b63f526c 100644 --- a/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts +++ b/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { useInfiniteQuery } from '../useInfiniteQuery' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -14,7 +14,7 @@ describe('useInfiniteQuery', () => { vi.useRealTimers() }) - test('should properly execute infinite query', async () => { + it('should properly execute infinite query', async () => { const key = queryKey() const { data, fetchNextPage, status } = useInfiniteQuery({ queryKey: key, @@ -45,7 +45,7 @@ describe('useInfiniteQuery', () => { }) expect(status.value).toStrictEqual('success') }) - test('should properly execute infinite query using infiniteQueryOptions', async () => { + it('should properly execute infinite query using infiniteQueryOptions', async () => { const key = queryKey() const options = infiniteQueryOptions({ queryKey: key, diff --git a/packages/vue-query/src/__tests__/useIsFetching.test.ts b/packages/vue-query/src/__tests__/useIsFetching.test.ts index 1e1a5a0ae2f..f55c76b23c4 100644 --- a/packages/vue-query/src/__tests__/useIsFetching.test.ts +++ b/packages/vue-query/src/__tests__/useIsFetching.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { onScopeDispose, reactive, ref } from 'vue-demi' import { queryKey, sleep } from '@tanstack/query-test-utils' import { useQuery } from '../useQuery' @@ -16,7 +16,7 @@ describe('useIsFetching', () => { vi.useRealTimers() }) - test('should properly return isFetching state', async () => { + it('should properly return isFetching state', async () => { const key1 = queryKey() const key2 = queryKey() const { isFetching: isFetchingQuery } = useQuery({ @@ -38,7 +38,7 @@ describe('useIsFetching', () => { expect(isFetching.value).toStrictEqual(0) }) - test('should stop listening to changes on onScopeDispose', async () => { + it('should stop listening to changes on onScopeDispose', async () => { const key = queryKey() const onScopeDisposeMock = onScopeDispose as MockedFunction< typeof onScopeDispose @@ -67,7 +67,7 @@ describe('useIsFetching', () => { onScopeDisposeMock.mockReset() }) - test('should properly update filters', async () => { + it('should properly update filters', async () => { const key = queryKey() const filter = reactive({ stale: false, queryKey: key }) useQuery({ @@ -84,7 +84,7 @@ describe('useIsFetching', () => { expect(isFetching.value).toStrictEqual(1) }) - test('should work with options getter and be reactive', async () => { + it('should work with options getter and be reactive', async () => { const key = queryKey() const staleRef = ref(false) useQuery({ @@ -104,7 +104,7 @@ describe('useIsFetching', () => { expect(isFetching.value).toStrictEqual(1) }) - test('should warn when used outside of setup function in development mode', () => { + it('should warn when used outside of setup function in development mode', () => { vi.stubEnv('NODE_ENV', 'development') const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) diff --git a/packages/vue-query/src/__tests__/useIsMutating.test.ts b/packages/vue-query/src/__tests__/useIsMutating.test.ts index a4b92b10d4e..0a79b32692e 100644 --- a/packages/vue-query/src/__tests__/useIsMutating.test.ts +++ b/packages/vue-query/src/__tests__/useIsMutating.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { onScopeDispose, reactive, ref } from 'vue-demi' import { queryKey, sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' @@ -16,7 +16,7 @@ describe('useIsMutating', () => { vi.useRealTimers() }) - test('should properly return isMutating state', async () => { + it('should properly return isMutating state', async () => { const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), }) @@ -39,7 +39,7 @@ describe('useIsMutating', () => { expect(isMutating.value).toStrictEqual(0) }) - test('should stop listening to changes on onScopeDispose', async () => { + it('should stop listening to changes on onScopeDispose', async () => { const onScopeDisposeMock = onScopeDispose as MockedFunction< typeof onScopeDispose > @@ -69,7 +69,7 @@ describe('useIsMutating', () => { onScopeDisposeMock.mockReset() }) - test('should properly update filters', async () => { + it('should properly update filters', async () => { const key = queryKey() const filterKey = queryKey() const filter = reactive({ mutationKey: filterKey }) @@ -90,7 +90,7 @@ describe('useIsMutating', () => { expect(isMutating.value).toStrictEqual(1) }) - test('should work with options getter and be reactive', async () => { + it('should work with options getter and be reactive', async () => { const key = queryKey() const keyRef = ref('isMutatingGetter2') const { mutate } = useMutation({ diff --git a/packages/vue-query/src/__tests__/useMutation.test.ts b/packages/vue-query/src/__tests__/useMutation.test.ts index 993971853e0..e8102608f69 100644 --- a/packages/vue-query/src/__tests__/useMutation.test.ts +++ b/packages/vue-query/src/__tests__/useMutation.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { reactive, ref } from 'vue-demi' import { queryKey, sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' @@ -14,7 +14,7 @@ describe('useMutation', () => { vi.useRealTimers() }) - test('should be in idle state initially', () => { + it('should be in idle state initially', () => { const mutation = useMutation({ mutationFn: (params) => sleep(0).then(() => params), }) @@ -27,7 +27,7 @@ describe('useMutation', () => { }) }) - test('should change state after invoking mutate', () => { + it('should change state after invoking mutate', () => { const result = 'Mock data' const mutation = useMutation({ mutationFn: (params: string) => sleep(0).then(() => params), @@ -45,7 +45,7 @@ describe('useMutation', () => { }) }) - test('should return error when request fails', async () => { + it('should return error when request fails', async () => { const mutation = useMutation({ mutationFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), @@ -62,7 +62,7 @@ describe('useMutation', () => { }) }) - test('should return data when request succeeds', async () => { + it('should return data when request succeeds', async () => { const result = 'Mock data' const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), @@ -82,7 +82,7 @@ describe('useMutation', () => { }) }) - test('should work with options getter and be reactive', async () => { + it('should work with options getter and be reactive', async () => { const key = queryKey() const result = 'Mock data' const keyRef = ref('key01') @@ -116,7 +116,7 @@ describe('useMutation', () => { ) }) - test('should update reactive options', async () => { + it('should update reactive options', async () => { const key1 = queryKey() const key2 = queryKey() const queryClient = useQueryClient() @@ -138,7 +138,7 @@ describe('useMutation', () => { expect(mutations?.options.mutationKey).toEqual(key2) }) - test('should update reactive options deeply', async () => { + it('should update reactive options deeply', async () => { type MutationKeyTest = { entity: string otherObject: { @@ -179,7 +179,7 @@ describe('useMutation', () => { ).toBe(true) }) - test('should allow for non-options object (mutationFn or mutationKey) passed as arg1 & arg2 to trigger reactive updates', async () => { + it('should allow for non-options object (mutationFn or mutationKey) passed as arg1 & arg2 to trigger reactive updates', async () => { const key1 = queryKey() const key2 = queryKey() const mutationKeyRef = ref>(key1) @@ -204,7 +204,7 @@ describe('useMutation', () => { expect(proof).toEqual(true) }) - test('should reset state after invoking mutation.reset', async () => { + it('should reset state after invoking mutation.reset', async () => { const mutation = useMutation({ mutationFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), @@ -231,7 +231,7 @@ describe('useMutation', () => { vi.clearAllMocks() }) - test('should call onMutate when passed as an option', async () => { + it('should call onMutate when passed as an option', async () => { const onMutate = vi.fn() const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), @@ -245,7 +245,7 @@ describe('useMutation', () => { expect(onMutate).toHaveBeenCalledTimes(1) }) - test('should call onError when passed as an option', async () => { + it('should call onError when passed as an option', async () => { const onError = vi.fn() const mutation = useMutation({ mutationFn: () => @@ -260,7 +260,7 @@ describe('useMutation', () => { expect(onError).toHaveBeenCalledTimes(1) }) - test('should call onSuccess when passed as an option', async () => { + it('should call onSuccess when passed as an option', async () => { const onSuccess = vi.fn() const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), @@ -274,7 +274,7 @@ describe('useMutation', () => { expect(onSuccess).toHaveBeenCalledTimes(1) }) - test('should call onSettled when passed as an option', async () => { + it('should call onSettled when passed as an option', async () => { const onSettled = vi.fn() const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), @@ -288,7 +288,7 @@ describe('useMutation', () => { expect(onSettled).toHaveBeenCalledTimes(1) }) - test('should call onError when passed as an argument of mutate function', async () => { + it('should call onError when passed as an argument of mutate function', async () => { const onError = vi.fn() const mutation = useMutation({ mutationFn: () => @@ -302,7 +302,7 @@ describe('useMutation', () => { expect(onError).toHaveBeenCalledTimes(1) }) - test('should call onSuccess when passed as an argument of mutate function', async () => { + it('should call onSuccess when passed as an argument of mutate function', async () => { const onSuccess = vi.fn() const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), @@ -315,7 +315,7 @@ describe('useMutation', () => { expect(onSuccess).toHaveBeenCalledTimes(1) }) - test('should call onSettled when passed as an argument of mutate function', async () => { + it('should call onSettled when passed as an argument of mutate function', async () => { const onSettled = vi.fn() const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), @@ -328,7 +328,7 @@ describe('useMutation', () => { expect(onSettled).toHaveBeenCalledTimes(1) }) - test('should fire both onSettled functions', async () => { + it('should fire both onSettled functions', async () => { const onSettled = vi.fn() const onSettledOnFunction = vi.fn() const mutation = useMutation({ @@ -350,7 +350,7 @@ describe('useMutation', () => { vi.clearAllMocks() }) - test('should resolve properly', async () => { + it('should resolve properly', async () => { const result = 'Mock data' const mutation = useMutation({ mutationFn: (params: string) => sleep(10).then(() => params), @@ -370,7 +370,7 @@ describe('useMutation', () => { }) }) - test('should throw on error', async () => { + it('should throw on error', async () => { const mutation = useMutation({ mutationFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), @@ -391,7 +391,7 @@ describe('useMutation', () => { }) }) - test('should warn when used outside of setup function in development mode', () => { + it('should warn when used outside of setup function in development mode', () => { vi.stubEnv('NODE_ENV', 'development') const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) @@ -410,7 +410,7 @@ describe('useMutation', () => { }) describe('throwOnError', () => { - test('should evaluate throwOnError when mutation is expected to throw', async () => { + it('should evaluate throwOnError when mutation is expected to throw', async () => { const err = new Error('Expected mock error. All is well!') const boundaryFn = vi.fn() const { mutate } = useMutation({ @@ -426,7 +426,7 @@ describe('useMutation', () => { expect(boundaryFn).toHaveBeenCalledWith(err) }) - test('should throw from error watcher when throwOnError returns true', async () => { + it('should throw from error watcher when throwOnError returns true', async () => { const throwOnErrorFn = vi.fn().mockReturnValue(true) const { mutate } = useMutation({ mutationFn: () => diff --git a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts index 353030f9ae0..477abc148be 100644 --- a/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts +++ b/packages/vue-query/src/__tests__/usePrefetchInfiniteQuery.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick, ref } from 'vue-demi' import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' @@ -13,7 +13,7 @@ describe('usePrefetchInfiniteQuery', () => { vi.useRealTimers() }) - test('should prefetch infinite query if query state does not exist', () => { + it('should prefetch infinite query if query state does not exist', () => { const queryClient = new QueryClient() const prefetchInfiniteQuerySpy = vi.spyOn( queryClient, @@ -44,7 +44,7 @@ describe('usePrefetchInfiniteQuery', () => { }) }) - test('should not prefetch infinite query if query state exists', () => { + it('should not prefetch infinite query if query state exists', () => { const queryClient = new QueryClient() const prefetchInfiniteQuerySpy = vi.spyOn( queryClient, @@ -73,7 +73,7 @@ describe('usePrefetchInfiniteQuery', () => { expect(prefetchInfiniteQuerySpy).not.toHaveBeenCalled() }) - test('should unwrap refs in infinite query options', () => { + it('should unwrap refs in infinite query options', () => { const queryClient = new QueryClient() const prefetchInfiniteQuerySpy = vi.spyOn( queryClient, @@ -99,7 +99,7 @@ describe('usePrefetchInfiniteQuery', () => { ) }) - test('should prefetch infinite query again when query key changes reactively', async () => { + it('should prefetch infinite query again when query key changes reactively', async () => { const queryClient = new QueryClient() const prefetchInfiniteQuerySpy = vi.spyOn( queryClient, @@ -136,7 +136,7 @@ describe('usePrefetchInfiniteQuery', () => { ) }) - test('should warn when used outside of setup function in development mode', () => { + it('should warn when used outside of setup function in development mode', () => { vi.stubEnv('NODE_ENV', 'development') const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) diff --git a/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts index 88274da0411..88b31026289 100644 --- a/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts +++ b/packages/vue-query/src/__tests__/usePrefetchQuery.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick, ref } from 'vue-demi' import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' @@ -13,7 +13,7 @@ describe('usePrefetchQuery', () => { vi.useRealTimers() }) - test('should prefetch query if query state does not exist', () => { + it('should prefetch query if query state does not exist', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const queryFn = vi.fn(() => Promise.resolve('prefetched')) @@ -34,7 +34,7 @@ describe('usePrefetchQuery', () => { }) }) - test('should not prefetch query if query state exists', () => { + it('should not prefetch query if query state exists', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const queryFn = vi.fn(() => Promise.resolve('prefetched')) @@ -52,7 +52,7 @@ describe('usePrefetchQuery', () => { expect(prefetchQuerySpy).not.toHaveBeenCalled() }) - test('should unwrap refs in query options', () => { + it('should unwrap refs in query options', () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const nestedRef = ref('value') @@ -73,7 +73,7 @@ describe('usePrefetchQuery', () => { ) }) - test('should prefetch again when query key changes reactively', async () => { + it('should prefetch again when query key changes reactively', async () => { const queryClient = new QueryClient() const prefetchQuerySpy = vi.spyOn(queryClient, 'prefetchQuery') const keyRef = ref('first') @@ -103,7 +103,7 @@ describe('usePrefetchQuery', () => { }) }) - test('should warn when used outside of setup function in development mode', () => { + it('should warn when used outside of setup function in development mode', () => { vi.stubEnv('NODE_ENV', 'development') const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) diff --git a/packages/vue-query/src/__tests__/useQueries.test.ts b/packages/vue-query/src/__tests__/useQueries.test.ts index 5c8189f8fb2..d9dd4b37e37 100644 --- a/packages/vue-query/src/__tests__/useQueries.test.ts +++ b/packages/vue-query/src/__tests__/useQueries.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { onScopeDispose, ref } from 'vue-demi' import { queryKey, sleep } from '@tanstack/query-test-utils' import { useQueries } from '../useQueries' @@ -18,7 +18,7 @@ describe('useQueries', () => { vi.useRealTimers() }) - test('should return result for each query', () => { + it('should return result for each query', () => { const key1 = queryKey() const key2 = queryKey() const queries = [ @@ -49,7 +49,7 @@ describe('useQueries', () => { ]) }) - test('should resolve to success and update reactive state', async () => { + it('should resolve to success and update reactive state', async () => { const key1 = queryKey() const key2 = queryKey() const queries = [ @@ -82,7 +82,7 @@ describe('useQueries', () => { ]) }) - test('should reject one of the queries and update reactive state', async () => { + it('should reject one of the queries and update reactive state', async () => { const key1 = queryKey() const key2 = queryKey() const queries = [ @@ -116,7 +116,7 @@ describe('useQueries', () => { ]) }) - test('should return state for new queries', async () => { + it('should return state for new queries', async () => { const key1 = queryKey() const key2 = queryKey() const key3 = queryKey() @@ -174,7 +174,7 @@ describe('useQueries', () => { ]) }) - test('should stop listening to changes on onScopeDispose', async () => { + it('should stop listening to changes on onScopeDispose', async () => { const key1 = queryKey() const key2 = queryKey() const onScopeDisposeMock = onScopeDispose as MockedFunction< @@ -211,7 +211,7 @@ describe('useQueries', () => { ]) }) - test('should use queryClient provided via options', async () => { + it('should use queryClient provided via options', async () => { const key1 = queryKey() const key2 = queryKey() const queryClient = new QueryClient() @@ -232,7 +232,7 @@ describe('useQueries', () => { expect(useQueryClient).toHaveBeenCalledTimes(0) }) - test('should combine queries', async () => { + it('should combine queries', async () => { const key1 = queryKey() const key2 = queryKey() const firstResult = 'first result' @@ -270,7 +270,7 @@ describe('useQueries', () => { }) }) - test('should be `enabled` to accept getter function', async () => { + it('should be `enabled` to accept getter function', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const checked = ref(false) @@ -294,7 +294,7 @@ describe('useQueries', () => { expect(fetchFn).toHaveBeenCalled() }) - test('should allow getters for query keys', async () => { + it('should allow getters for query keys', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') @@ -324,7 +324,7 @@ describe('useQueries', () => { expect(fetchFn).toHaveBeenCalledTimes(3) }) - test('should allow arbitrarily nested getters for query keys', async () => { + it('should allow arbitrarily nested getters for query keys', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') @@ -388,7 +388,7 @@ describe('useQueries', () => { expect(fetchFn).toHaveBeenCalledTimes(6) }) - test('should refetch only the specific query without affecting others', async () => { + it('should refetch only the specific query without affecting others', async () => { const key1 = queryKey() const key2 = queryKey() let userCount = 0 @@ -419,7 +419,7 @@ describe('useQueries', () => { expect(queriesState.value[1].data).toBe('posts-1') }) - test('should warn when used outside of setup function in development mode', () => { + it('should warn when used outside of setup function in development mode', () => { vi.stubEnv('NODE_ENV', 'development') const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) @@ -442,7 +442,7 @@ describe('useQueries', () => { } }) - test('should work with options getter and be reactive', async () => { + it('should work with options getter and be reactive', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') diff --git a/packages/vue-query/src/__tests__/useQuery.test.ts b/packages/vue-query/src/__tests__/useQuery.test.ts index f5157e8902e..2f05080f917 100644 --- a/packages/vue-query/src/__tests__/useQuery.test.ts +++ b/packages/vue-query/src/__tests__/useQuery.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { computed, getCurrentInstance, @@ -24,7 +24,7 @@ describe('useQuery', () => { vi.useRealTimers() }) - test('should properly execute query', () => { + it('should properly execute query', () => { const key = queryKey() const queryFn = () => sleep(0).then(() => 'Some data') @@ -45,7 +45,7 @@ describe('useQuery', () => { ) }) - test('should work with options getter', async () => { + it('should work with options getter', async () => { const key = queryKey() const query = useQuery(() => ({ queryKey: key, @@ -64,7 +64,7 @@ describe('useQuery', () => { }) }) - test('should work with options getter and be reactive', async () => { + it('should work with options getter and be reactive', async () => { const key = queryKey() const keyRef = ref('key011') const resultRef = ref('result02') @@ -98,7 +98,7 @@ describe('useQuery', () => { }) }) - test('should return pending status initially', () => { + it('should return pending status initially', () => { const key = queryKey() const query = useQuery({ queryKey: key, @@ -113,7 +113,7 @@ describe('useQuery', () => { }) }) - test('should resolve to success and update reactive state: useQuery(key, dataFn)', async () => { + it('should resolve to success and update reactive state: useQuery(key, dataFn)', async () => { const key = queryKey() const query = useQuery({ queryKey: key, @@ -132,7 +132,7 @@ describe('useQuery', () => { }) }) - test('should resolve to success and update reactive state: useQuery(optionsObj)', async () => { + it('should resolve to success and update reactive state: useQuery(optionsObj)', async () => { const key = queryKey() const query = useQuery({ queryKey: key, @@ -152,7 +152,7 @@ describe('useQuery', () => { }) }) - test('should resolve to success and update reactive state: useQuery(key, optionsObj)', async () => { + it('should resolve to success and update reactive state: useQuery(key, optionsObj)', async () => { const key = queryKey() const query = useQuery({ queryKey: key, @@ -172,7 +172,7 @@ describe('useQuery', () => { }) }) - test('should reject and update reactive state', async () => { + it('should reject and update reactive state', async () => { const key = queryKey() const query = useQuery({ queryKey: key, @@ -195,7 +195,7 @@ describe('useQuery', () => { }) }) - test('should update query on reactive (Ref) key change', async () => { + it('should update query on reactive (Ref) key change', async () => { const key = queryKey() const secondKeyRef = ref('key7') const query = useQuery({ @@ -224,7 +224,7 @@ describe('useQuery', () => { }) }) - test("should update query when an option is passed as Ref and it's changed", async () => { + it("should update query when an option is passed as Ref and it's changed", async () => { const key = queryKey() const enabled = ref(false) const query = useQuery({ @@ -256,7 +256,7 @@ describe('useQuery', () => { }) }) - test('should properly execute dependent queries', async () => { + it('should properly execute dependent queries', async () => { const key1 = queryKey() const key2 = queryKey() const { data } = useQuery({ @@ -296,7 +296,7 @@ describe('useQuery', () => { ) }) - test('should stop listening to changes on onScopeDispose', async () => { + it('should stop listening to changes on onScopeDispose', async () => { const key = queryKey() const onScopeDisposeMock = onScopeDispose as MockedFunction< typeof onScopeDispose @@ -319,7 +319,7 @@ describe('useQuery', () => { expect(status.value).toStrictEqual('pending') }) - test('should use the current value for the queryKey when refetch is called', async () => { + it('should use the current value for the queryKey when refetch is called', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const keyRef = ref('key11') @@ -348,7 +348,7 @@ describe('useQuery', () => { ) }) - test('should be `enabled` to accept getter function', async () => { + it('should be `enabled` to accept getter function', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const checked = ref(false) @@ -368,7 +368,7 @@ describe('useQuery', () => { expect(fetchFn).toHaveBeenCalled() }) - test('should allow getters for query keys', async () => { + it('should allow getters for query keys', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') @@ -394,7 +394,7 @@ describe('useQuery', () => { expect(fetchFn).toHaveBeenCalledTimes(3) }) - test('should allow arbitrarily nested getters for query keys', async () => { + it('should allow arbitrarily nested getters for query keys', async () => { const key = queryKey() const fetchFn = vi.fn(() => 'foo') const key1 = ref('key1') @@ -455,7 +455,7 @@ describe('useQuery', () => { }) describe('throwOnError', () => { - test('should evaluate throwOnError when query is expected to throw', async () => { + it('should evaluate throwOnError when query is expected to throw', async () => { const key = queryKey() const boundaryFn = vi.fn() useQuery({ @@ -479,7 +479,7 @@ describe('useQuery', () => { }) describe('outside scope warning', () => { - test('should warn when used outside of setup function in development mode', () => { + it('should warn when used outside of setup function in development mode', () => { vi.stubEnv('NODE_ENV', 'development') const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) @@ -500,7 +500,7 @@ describe('useQuery', () => { }) describe('suspense', () => { - test('should return a Promise', () => { + it('should return a Promise', () => { const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) @@ -514,7 +514,7 @@ describe('useQuery', () => { expect(result).toBeInstanceOf(Promise) }) - test('should resolve after being enabled', async () => { + it('should resolve after being enabled', async () => { const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) @@ -539,7 +539,7 @@ describe('useQuery', () => { expect(afterTimeout).toBe(true) }) - test('should resolve immediately when stale without refetching', () => { + it('should resolve immediately when stale without refetching', () => { const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) @@ -559,7 +559,7 @@ describe('useQuery', () => { }) }) - test('should not throw from suspense by default', async () => { + it('should not throw from suspense by default', async () => { const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) @@ -579,7 +579,7 @@ describe('useQuery', () => { }) }) - test('should throw from suspense when throwOnError is true', async () => { + it('should throw from suspense when throwOnError is true', async () => { const key = queryKey() const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) diff --git a/packages/vue-query/src/__tests__/useQueryClient.test.ts b/packages/vue-query/src/__tests__/useQueryClient.test.ts index 6648c1f18e6..8811089184d 100644 --- a/packages/vue-query/src/__tests__/useQueryClient.test.ts +++ b/packages/vue-query/src/__tests__/useQueryClient.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test, vi } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import * as VueDemi from 'vue-demi' import { useQueryClient } from '../useQueryClient' import { VUE_QUERY_CLIENT } from '../utils' @@ -20,7 +20,7 @@ describe('useQueryClient', () => { vi.clearAllMocks() }) - test('should return queryClient when it is provided in the context', () => { + it('should return queryClient when it is provided in the context', () => { const queryClientMock = { name: 'Mocked client' } injectSpy.mockReturnValueOnce(queryClientMock) @@ -31,7 +31,7 @@ describe('useQueryClient', () => { expect(injectSpy).toHaveBeenCalledWith(VUE_QUERY_CLIENT) }) - test('should throw an error when queryClient does not exist in the context', () => { + it('should throw an error when queryClient does not exist in the context', () => { injectSpy.mockReturnValueOnce(undefined) expect(useQueryClient).toThrow() @@ -39,14 +39,14 @@ describe('useQueryClient', () => { expect(injectSpy).toHaveBeenCalledWith(VUE_QUERY_CLIENT) }) - test('should throw an error when used outside of setup function', () => { + it('should throw an error when used outside of setup function', () => { hasInjectionContextSpy.mockReturnValueOnce(false) expect(useQueryClient).toThrow() expect(hasInjectionContextSpy).toHaveBeenCalledTimes(1) }) - test('should call inject with a custom key as a suffix', () => { + it('should call inject with a custom key as a suffix', () => { const queryClientKey = 'foo' const expectedKeyParameter = `${VUE_QUERY_CLIENT}:${queryClientKey}` const queryClientMock = { name: 'Mocked client' } diff --git a/packages/vue-query/src/__tests__/utils.test.ts b/packages/vue-query/src/__tests__/utils.test.ts index 8dead5d8995..ce3ad944394 100644 --- a/packages/vue-query/src/__tests__/utils.test.ts +++ b/packages/vue-query/src/__tests__/utils.test.ts @@ -1,10 +1,10 @@ -import { describe, expect, test } from 'vitest' +import { describe, expect, it } from 'vitest' import { reactive, ref } from 'vue-demi' import { cloneDeep, cloneDeepUnref, updateState } from '../utils' describe('utils', () => { describe('updateState', () => { - test('should update first object with values from the second one', () => { + it('should update first object with values from the second one', () => { const origin = { option1: 'a', option2: 'b', option3: 'c' } const update = { option1: 'x', option2: 'y', option3: 'z' } const expected = { option1: 'x', option2: 'y', option3: 'z' } @@ -13,7 +13,7 @@ describe('utils', () => { expect(origin).toEqual(expected) }) - test('should update only existing keys', () => { + it('should update only existing keys', () => { const origin = { option1: 'a', option2: 'b' } const update = { option1: 'x', option2: 'y', option3: 'z' } const expected = { option1: 'x', option2: 'y' } @@ -22,7 +22,7 @@ describe('utils', () => { expect(origin).toEqual(expected) }) - test('should remove non existing keys', () => { + it('should remove non existing keys', () => { const origin = { option1: 'a', option2: 'b', option3: 'c' } const update = { option1: 'x', option2: 'y' } const expected = { option1: 'x', option2: 'y' } @@ -33,13 +33,13 @@ describe('utils', () => { }) describe('cloneDeep', () => { - test('should copy primitives and functions AS-IS', () => { + it('should copy primitives and functions AS-IS', () => { expect(cloneDeep(3456)).toBe(3456) expect(cloneDeep('theString')).toBe('theString') expect(cloneDeep(null)).toBe(null) }) - test('should copy Maps and Sets AS-IS', () => { + it('should copy Maps and Sets AS-IS', () => { const setVal = new Set([3, 4, 5]) const setValCopy = cloneDeep(setVal) expect(setValCopy).toBe(setVal) @@ -59,7 +59,7 @@ describe('utils', () => { ) }) - test('should deeply copy arrays', () => { + it('should deeply copy arrays', () => { const val = [ 25, 'str', @@ -83,7 +83,7 @@ describe('utils', () => { expect((cp[4] as Array)[2]).not.toBe((val[4] as Array)[2]) // { a : 1 } }) - test('should deeply copy object', () => { + it('should deeply copy object', () => { const val = reactive({ a: 25, b: 'str', @@ -112,18 +112,18 @@ describe('utils', () => { }) describe('cloneDeepUnref', () => { - test('should unref primitives', () => { + it('should unref primitives', () => { expect(cloneDeepUnref(ref(34))).toBe(34) expect(cloneDeepUnref(ref('myStr'))).toBe('myStr') }) - test('should deeply unref arrays', () => { + it('should deeply unref arrays', () => { const val = ref([2, 3, ref(4), ref('5'), { a: ref(6) }, [ref(7)]]) const cp = cloneDeepUnref(val) expect(cp).toStrictEqual([2, 3, 4, '5', { a: 6 }, [7]]) }) - test('should deeply unref objects', () => { + it('should deeply unref objects', () => { const val = ref({ a: 1, b: ref(2), @@ -142,13 +142,13 @@ describe('utils', () => { }) }) - test('should clone getters returning values in queryKey', () => { + it('should clone getters returning values in queryKey', () => { const val = ref({ queryKey: [1, 2, () => '3'] }) const cp = cloneDeepUnref(val) expect(cp).toStrictEqual({ queryKey: [1, 2, '3'] }) }) - test('should unref undefined', () => { + it('should unref undefined', () => { expect(cloneDeepUnref(ref(undefined))).toBe(undefined) }) }) diff --git a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts index 28084c01855..43e9bc4aed5 100644 --- a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts +++ b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { isVue2, isVue3, ref } from 'vue-demi' import { queryKey } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' @@ -24,7 +24,7 @@ interface TestApp extends App { $root: TestApp } -const testIf = (condition: boolean) => (condition ? test : test.skip) +const testIf = (condition: boolean) => (condition ? it : it.skip) function getAppMock(withUnmountHook = false): TestApp { const mock = { @@ -53,7 +53,7 @@ describe('VueQueryPlugin', () => { }) describe('devtools', () => { - test('should NOT setup devtools', () => { + it('should NOT setup devtools', () => { const setupDevtoolsMock = setupDevtools as Mock const appMock = getAppMock() VueQueryPlugin.install(appMock) @@ -113,7 +113,7 @@ describe('VueQueryPlugin', () => { }) describe('when app unmounts', () => { - test('should call unmount on each client when onUnmount is missing', () => { + it('should call unmount on each client when onUnmount is missing', () => { const appMock = getAppMock() const customClient = { mount: vi.fn(), @@ -131,7 +131,7 @@ describe('VueQueryPlugin', () => { expect(originalUnmount).toHaveBeenCalledTimes(1) }) - test('should call onUnmount if present', () => { + it('should call onUnmount if present', () => { const appMock = getAppMock(true) const customClient = { mount: vi.fn(), @@ -260,7 +260,7 @@ describe('VueQueryPlugin', () => { }) describe('when persister is provided', () => { - test('should properly modify isRestoring flag on queryClient', async () => { + it('should properly modify isRestoring flag on queryClient', async () => { const appMock = getAppMock() const customClient = { mount: vi.fn(), @@ -284,7 +284,7 @@ describe('VueQueryPlugin', () => { expect(customClient.isRestoring?.value).toBeFalsy() }) - test('should delay useQuery subscription and not call fetcher if data is not stale', async () => { + it('should delay useQuery subscription and not call fetcher if data is not stale', async () => { const key = queryKey() const appMock = getAppMock() const customClient = new QueryClient({ @@ -332,7 +332,7 @@ describe('VueQueryPlugin', () => { expect(fnSpy).toHaveBeenCalledTimes(0) }) - test('should delay useQueries subscription and not call fetcher if data is not stale', async () => { + it('should delay useQueries subscription and not call fetcher if data is not stale', async () => { const key1 = queryKey() const key2 = queryKey() const appMock = getAppMock() From 0655128b92ca96393871b74fb9f813aa5cca5290 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 20 Apr 2026 23:36:50 +0900 Subject: [PATCH 145/414] test(svelte-query-persist-client): remove unused 'svelte-ignore' directives from test components (#10531) --- .../svelte-query-persist-client/tests/FreshData/FreshData.svelte | 1 - .../tests/InitialData/InitialData.svelte | 1 - .../tests/RestoreCache/RestoreCache.svelte | 1 - .../tests/UseQueries/UseQueries.svelte | 1 - 4 files changed, 4 deletions(-) diff --git a/packages/svelte-query-persist-client/tests/FreshData/FreshData.svelte b/packages/svelte-query-persist-client/tests/FreshData/FreshData.svelte index 9676f3456b9..4db160381aa 100644 --- a/packages/svelte-query-persist-client/tests/FreshData/FreshData.svelte +++ b/packages/svelte-query-persist-client/tests/FreshData/FreshData.svelte @@ -22,7 +22,6 @@ })) $effect(() => { - // svelte-ignore state_snapshot_uncloneable const snapshot = $state.snapshot(query) states.current.push(snapshot) }) diff --git a/packages/svelte-query-persist-client/tests/InitialData/InitialData.svelte b/packages/svelte-query-persist-client/tests/InitialData/InitialData.svelte index 10d9d4651e3..bbdb06dc7b1 100644 --- a/packages/svelte-query-persist-client/tests/InitialData/InitialData.svelte +++ b/packages/svelte-query-persist-client/tests/InitialData/InitialData.svelte @@ -16,7 +16,6 @@ })) $effect(() => { - // svelte-ignore state_snapshot_uncloneable const snapshot = $state.snapshot(query) states.current.push(snapshot) }) diff --git a/packages/svelte-query-persist-client/tests/RestoreCache/RestoreCache.svelte b/packages/svelte-query-persist-client/tests/RestoreCache/RestoreCache.svelte index 4829b37b4b6..d3bc8b2e85d 100644 --- a/packages/svelte-query-persist-client/tests/RestoreCache/RestoreCache.svelte +++ b/packages/svelte-query-persist-client/tests/RestoreCache/RestoreCache.svelte @@ -12,7 +12,6 @@ })) $effect(() => { - // svelte-ignore state_snapshot_uncloneable const snapshot = $state.snapshot(query) states.current.push(snapshot) }) diff --git a/packages/svelte-query-persist-client/tests/UseQueries/UseQueries.svelte b/packages/svelte-query-persist-client/tests/UseQueries/UseQueries.svelte index be8b278b673..b76e3e7247c 100644 --- a/packages/svelte-query-persist-client/tests/UseQueries/UseQueries.svelte +++ b/packages/svelte-query-persist-client/tests/UseQueries/UseQueries.svelte @@ -16,7 +16,6 @@ })) $effect(() => { - // svelte-ignore state_snapshot_uncloneable const snapshot = $state.snapshot(queries[0]) states.current.push(snapshot) }) From fc0462bff79c0334b81bfdab1041392d26966e32 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 20 Apr 2026 23:55:12 +0900 Subject: [PATCH 146/414] chore(svelte-query*/package.json): include 'tests' directory in 'test:eslint' scope (#10532) --- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index d88ad4ad187..6579266c9d2 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -23,7 +23,7 @@ "clean": "premove ./dist ./coverage ./.svelte-kit ./dist-ts", "compile": "tsc --build", "test:types": "svelte-check --tsconfig ./tsconfig.json", - "test:eslint": "eslint --concurrency=auto ./src", + "test:eslint": "eslint --concurrency=auto ./src ./tests", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index b5a98525711..ca7e198485c 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -23,7 +23,7 @@ "clean": "premove ./dist ./coverage ./.svelte-kit ./dist-ts", "compile": "tsc --build", "test:types": "svelte-check --tsconfig ./tsconfig.json", - "test:eslint": "eslint --concurrency=auto ./src", + "test:eslint": "eslint --concurrency=auto ./src ./tests", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", From cd6a274356775593bcb8a9ad16950ff8d3041836 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 21 Apr 2026 00:58:55 +0900 Subject: [PATCH 147/414] test(vue-query/vueQueryPlugin): rename 'testIf' helper to 'itIf' for consistency with 'it' convention (#10533) * test(vue-query/vueQueryPlugin): rename 'testIf' helper to 'itIf' for consistency with 'it' convention * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- eslint.config.js | 2 +- .../src/__tests__/vueQueryPlugin.test.ts | 82 +++++++++---------- 2 files changed, 39 insertions(+), 45 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index e6fa91ce0a0..8972e446b96 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -59,7 +59,7 @@ export default [ 'vitest/no-standalone-expect': [ 'error', { - additionalTestBlockFunctions: ['testIf'], + additionalTestBlockFunctions: ['itIf'], }, ], }, diff --git a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts index 43e9bc4aed5..cfcb18ce956 100644 --- a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts +++ b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts @@ -24,7 +24,7 @@ interface TestApp extends App { $root: TestApp } -const testIf = (condition: boolean) => (condition ? it : it.skip) +const itIf = (condition: boolean) => (condition ? it : it.skip) function getAppMock(withUnmountHook = false): TestApp { const mock = { @@ -61,7 +61,7 @@ describe('VueQueryPlugin', () => { expect(setupDevtoolsMock).toHaveBeenCalledTimes(0) }) - testIf(isVue2)('should NOT setup devtools by default', () => { + itIf(isVue2)('should NOT setup devtools by default', () => { const envCopy = process.env.NODE_ENV process.env.NODE_ENV = 'development' const setupDevtoolsMock = setupDevtools as Mock @@ -75,7 +75,7 @@ describe('VueQueryPlugin', () => { expect(setupDevtoolsMock).toHaveBeenCalledTimes(0) }) - testIf(isVue2)('should setup devtools', () => { + itIf(isVue2)('should setup devtools', () => { const envCopy = process.env.NODE_ENV process.env.NODE_ENV = 'development' const setupDevtoolsMock = setupDevtools as Mock @@ -89,7 +89,7 @@ describe('VueQueryPlugin', () => { expect(setupDevtoolsMock).toHaveBeenCalledTimes(1) }) - testIf(isVue3)('should NOT setup devtools by default', () => { + itIf(isVue3)('should NOT setup devtools by default', () => { const envCopy = process.env.NODE_ENV process.env.NODE_ENV = 'development' const setupDevtoolsMock = setupDevtools as Mock @@ -100,7 +100,7 @@ describe('VueQueryPlugin', () => { expect(setupDevtoolsMock).toHaveBeenCalledTimes(0) }) - testIf(isVue3)('should setup devtools', () => { + itIf(isVue3)('should setup devtools', () => { const envCopy = process.env.NODE_ENV process.env.NODE_ENV = 'development' const setupDevtoolsMock = setupDevtools as Mock @@ -148,7 +148,7 @@ describe('VueQueryPlugin', () => { }) describe('when called without additional options', () => { - testIf(isVue2)('should provide a client with default clientKey', () => { + itIf(isVue2)('should provide a client with default clientKey', () => { const appMock = getAppMock() VueQueryPlugin.install(appMock) @@ -159,7 +159,7 @@ describe('VueQueryPlugin', () => { }) }) - testIf(isVue3)('should provide a client with default clientKey', () => { + itIf(isVue3)('should provide a client with default clientKey', () => { const appMock = getAppMock() VueQueryPlugin.install(appMock) @@ -171,7 +171,7 @@ describe('VueQueryPlugin', () => { }) describe('when called with custom clientKey', () => { - testIf(isVue2)('should provide a client with customized clientKey', () => { + itIf(isVue2)('should provide a client with customized clientKey', () => { const appMock = getAppMock() VueQueryPlugin.install(appMock, { queryClientKey: 'CUSTOM' }) @@ -182,7 +182,7 @@ describe('VueQueryPlugin', () => { }) }) - testIf(isVue3)('should provide a client with customized clientKey', () => { + itIf(isVue3)('should provide a client with customized clientKey', () => { const appMock = getAppMock() VueQueryPlugin.install(appMock, { queryClientKey: 'CUSTOM' }) @@ -194,7 +194,7 @@ describe('VueQueryPlugin', () => { }) describe('when called with custom client', () => { - testIf(isVue2)('should provide that custom client', () => { + itIf(isVue2)('should provide that custom client', () => { const appMock = getAppMock() const customClient = { mount: vi.fn() } as unknown as QueryClient VueQueryPlugin.install(appMock, { queryClient: customClient }) @@ -207,7 +207,7 @@ describe('VueQueryPlugin', () => { }) }) - testIf(isVue3)('should provide that custom client', () => { + itIf(isVue3)('should provide that custom client', () => { const appMock = getAppMock() const customClient = { mount: vi.fn() } as unknown as QueryClient VueQueryPlugin.install(appMock, { queryClient: customClient }) @@ -221,42 +221,36 @@ describe('VueQueryPlugin', () => { }) describe('when called with custom client config', () => { - testIf(isVue2)( - 'should instantiate a client with the provided config', - () => { - const appMock = getAppMock() - const config = { - defaultOptions: { queries: { enabled: true } }, - } - VueQueryPlugin.install(appMock, { - queryClientConfig: config, - }) + itIf(isVue2)('should instantiate a client with the provided config', () => { + const appMock = getAppMock() + const config = { + defaultOptions: { queries: { enabled: true } }, + } + VueQueryPlugin.install(appMock, { + queryClientConfig: config, + }) - appMock._mixin.beforeCreate?.call(appMock) - const client = appMock._provided.VUE_QUERY_CLIENT as QueryClient - const defaultOptions = client.getDefaultOptions() - - expect(defaultOptions).toEqual(config.defaultOptions) - }, - ) - - testIf(isVue3)( - 'should instantiate a client with the provided config', - () => { - const appMock = getAppMock() - const config = { - defaultOptions: { queries: { enabled: true } }, - } - VueQueryPlugin.install(appMock, { - queryClientConfig: config, - }) + appMock._mixin.beforeCreate?.call(appMock) + const client = appMock._provided.VUE_QUERY_CLIENT as QueryClient + const defaultOptions = client.getDefaultOptions() - const client = (appMock.provide as Mock).mock.calls[0]?.[1] - const defaultOptions = client.getDefaultOptions() + expect(defaultOptions).toEqual(config.defaultOptions) + }) - expect(defaultOptions).toEqual(config.defaultOptions) - }, - ) + itIf(isVue3)('should instantiate a client with the provided config', () => { + const appMock = getAppMock() + const config = { + defaultOptions: { queries: { enabled: true } }, + } + VueQueryPlugin.install(appMock, { + queryClientConfig: config, + }) + + const client = (appMock.provide as Mock).mock.calls[0]?.[1] + const defaultOptions = client.getDefaultOptions() + + expect(defaultOptions).toEqual(config.defaultOptions) + }) }) describe('when persister is provided', () => { From 4ae65fa20dd02cb95d8a671de422a30d945e26a2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 21 Apr 2026 02:02:05 +0900 Subject: [PATCH 148/414] test(angular-query-experimental/injectQueries): add test for 'combine' option (#10536) --- .../src/__tests__/inject-queries.test.ts | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index 1cead27d3c1..57fe3ed8af2 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -82,6 +82,66 @@ describe('injectQueries', () => { expect(results[2]).toMatchObject([{ data: 1 }, { data: 2 }]) }) + it('should return the combined result when combine is provided', async () => { + const key1 = queryKey() + const key2 = queryKey() + const results: Array> = [] + + @Component({ + template: ` +
data: {{ combined().data.join(',') }}
+
isPending: {{ combined().isPending }}
+ `, + }) + class Page { + combined = injectQueries(() => ({ + queries: [ + { + queryKey: key1, + queryFn: () => sleep(10).then(() => 1), + }, + { + queryKey: key2, + queryFn: () => sleep(10).then(() => 2), + }, + ], + combine: (queries) => ({ + data: queries.map((q) => q.data), + isPending: queries.some((q) => q.isPending), + }), + })) + + _ = effect(() => { + results.push({ ...this.combined() }) + }) + } + + const rendered = await render(Page, { + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + expect(rendered.getByText('data: ,')).toBeInTheDocument() + expect(rendered.getByText('isPending: true')).toBeInTheDocument() + expect(results[0]).toMatchObject({ + data: [undefined, undefined], + isPending: true, + }) + + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + + expect(rendered.getByText('data: 1,2')).toBeInTheDocument() + expect(rendered.getByText('isPending: false')).toBeInTheDocument() + expect(results[results.length - 1]).toMatchObject({ + data: [1, 2], + isPending: false, + }) + expect(results.length).toBeGreaterThanOrEqual(2) + }) + describe('isRestoring', () => { it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { const key1 = queryKey() From e3ecdc525f682f33ad61093e173d6a694cd35677 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 21 Apr 2026 02:40:18 +0900 Subject: [PATCH 149/414] test(angular-query-experimental/injectQueries): move 'effect' into 'constructor' to follow Angular convention (#10537) --- .../src/__tests__/inject-queries.test.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index 57fe3ed8af2..d8fc60d233a 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -58,10 +58,12 @@ describe('injectQueries', () => { ], })) - _ = effect(() => { - const snapshot = this.result().map((q) => ({ data: q.data() })) - results.push(snapshot) - }) + constructor() { + effect(() => { + const snapshot = this.result().map((q) => ({ data: q.data() })) + results.push(snapshot) + }) + } } const rendered = await render(Page, { @@ -111,9 +113,11 @@ describe('injectQueries', () => { }), })) - _ = effect(() => { - results.push({ ...this.combined() }) - }) + constructor() { + effect(() => { + results.push({ ...this.combined() }) + }) + } } const rendered = await render(Page, { From 646f04ef08f1af041c997cba2b4d3d4dba88b725 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 21 Apr 2026 02:53:09 +0900 Subject: [PATCH 150/414] test(angular-query-persist-client/withPersistQueryClient): move 'effect' into 'constructor' to follow Angular convention (#10538) --- .../with-persist-query-client.test.ts | 45 +++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts index 31908671406..093efb825af 100644 --- a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts +++ b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts @@ -97,13 +97,16 @@ describe('withPersistQueryClient', () => { queryKey: key, queryFn: () => sleep(10).then(() => 'fetched'), })) - _ = effect(() => { - states.push({ - status: this.state.status(), - fetchStatus: this.state.fetchStatus(), - data: this.state.data(), + + constructor() { + effect(() => { + states.push({ + status: this.state.status(), + fetchStatus: this.state.fetchStatus(), + data: this.state.data(), + }) }) - }) + } } const rendered = await render(Page, { @@ -189,13 +192,16 @@ describe('withPersistQueryClient', () => { // otherwise initialData would be newer and takes precedence initialDataUpdatedAt: 1, })) - _ = effect(() => { - states.push({ - status: this.state.status(), - fetchStatus: this.state.fetchStatus(), - data: this.state.data(), + + constructor() { + effect(() => { + states.push({ + status: this.state.status(), + fetchStatus: this.state.fetchStatus(), + data: this.state.data(), + }) }) - }) + } } const rendered = await render(Page, { @@ -280,13 +286,16 @@ describe('withPersistQueryClient', () => { }, staleTime: Infinity, })) - _ = effect(() => { - states.push({ - status: this.state.status(), - fetchStatus: this.state.fetchStatus(), - data: this.state.data(), + + constructor() { + effect(() => { + states.push({ + status: this.state.status(), + fetchStatus: this.state.fetchStatus(), + data: this.state.data(), + }) }) - }) + } } const rendered = await render(Page, { From 50d08dee1b95cefedeac4d29b9046a297acc4713 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 21 Apr 2026 11:48:48 +0900 Subject: [PATCH 151/414] test(angular-query-experimental/injectQueries): remove duplicate 'render' providers already configured in 'beforeEach' (#10541) --- .../src/__tests__/inject-queries.test.ts | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index d8fc60d233a..1248c386b69 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -66,12 +66,7 @@ describe('injectQueries', () => { } } - const rendered = await render(Page, { - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) + const rendered = await render(Page) await vi.advanceTimersByTimeAsync(101) rendered.fixture.detectChanges() @@ -120,12 +115,7 @@ describe('injectQueries', () => { } } - const rendered = await render(Page, { - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) + const rendered = await render(Page) expect(rendered.getByText('data: ,')).toBeInTheDocument() expect(rendered.getByText('isPending: true')).toBeInTheDocument() From ad3bc846821e1a4d8c756b222f8d5aba3467bdce Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 00:18:27 +0900 Subject: [PATCH 152/414] test(angular-query-experimental/withDevtools): add test for 'No QueryClient found' throw when 'loadDevtools' is 'true' without a 'QueryClient' (#10544) --- .../src/__tests__/with-devtools.test.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts b/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts index 81bc73c4beb..92685d93712 100644 --- a/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts +++ b/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts @@ -153,6 +153,33 @@ describe('withDevtools feature', () => { }, ) + it("should throw 'No QueryClient found' when 'loadDevtools' is 'true' and no 'QueryClient' is provided", async () => { + const consoleErrorSpy = vi + .spyOn(console, 'error') + .mockImplementation(() => undefined) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + withDevtools(() => ({ + loadDevtools: true, + })).ɵproviders, + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + TestBed.tick() + await vi.dynamicImportSettled() + + expect(mockTanstackQueryDevtools).not.toHaveBeenCalled() + expect(consoleErrorSpy).toHaveBeenCalledWith( + 'Install @tanstack/query-devtools or reinstall without --omit=optional.', + expect.objectContaining({ message: 'No QueryClient found' }), + ) + + consoleErrorSpy.mockRestore() + }) + it('should not continue loading devtools after injector is destroyed', async () => { TestBed.configureTestingModule({ providers: [ From b79bb9283e881803f68c4e9d9ddbc2323341b2c8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 01:37:58 +0900 Subject: [PATCH 153/414] test(angular-query*): simplify 'TestBed' setup by removing redundant 'resetTestingModule' and leveraging provider merging (#10546) --- .../src/__tests__/inject-is-restoring.test.ts | 23 +++-------- .../src/__tests__/inject-mutation.test.ts | 32 --------------- .../src/__tests__/inject-queries.test.ts | 37 ++++++++--------- .../src/__tests__/inject-query.test.ts | 40 ++----------------- .../src/__tests__/pending-tasks.test.ts | 8 +--- .../with-persist-query-client.test.ts | 16 ++++---- 6 files changed, 33 insertions(+), 123 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts index 44b5df69909..9de273a10ac 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { describe, expect, it } from 'vitest' +import { beforeEach, describe, expect, it } from 'vitest' import { Injector, provideZonelessChangeDetection, signal } from '@angular/core' import { QueryClient, @@ -11,16 +11,17 @@ import { describe('injectIsRestoring', () => { let queryClient: QueryClient - it('returns false by default when provideIsRestoring is not used', () => { + beforeEach(() => { queryClient = new QueryClient() - TestBed.configureTestingModule({ providers: [ provideZonelessChangeDetection(), provideTanStackQuery(queryClient), ], }) + }) + it('returns false by default when provideIsRestoring is not used', () => { const isRestoring = TestBed.runInInjectionContext(() => { return injectIsRestoring() }) @@ -29,15 +30,10 @@ describe('injectIsRestoring', () => { }) it('returns provided signal value when provideIsRestoring is used', () => { - queryClient = new QueryClient() const restoringSignal = signal(true) TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - provideIsRestoring(restoringSignal.asReadonly()), - ], + providers: [provideIsRestoring(restoringSignal.asReadonly())], }) const isRestoring = TestBed.runInInjectionContext(() => { @@ -48,15 +44,6 @@ describe('injectIsRestoring', () => { }) it('can be used outside injection context when passing an injector', () => { - queryClient = new QueryClient() - - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const isRestoring = injectIsRestoring({ injector: TestBed.inject(Injector), }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 5a0bfb88c2c..8fd64599fff 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -536,14 +536,6 @@ describe('injectMutation', () => { }) it('should handle synchronous mutation with retry', async () => { - TestBed.resetTestingModule() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const app = TestBed.inject(ApplicationRef) let attemptCount = 0 @@ -586,14 +578,6 @@ describe('injectMutation', () => { }) it('should handle multiple synchronous mutations on same key', async () => { - TestBed.resetTestingModule() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const app = TestBed.inject(ApplicationRef) let callCount = 0 @@ -640,14 +624,6 @@ describe('injectMutation', () => { }) it('should handle synchronous mutation with optimistic updates', async () => { - TestBed.resetTestingModule() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const app = TestBed.inject(ApplicationRef) const testQueryKey = queryKey() let onMutateCalled = false @@ -692,14 +668,6 @@ describe('injectMutation', () => { }) it('should handle synchronous mutation cancellation', async () => { - TestBed.resetTestingModule() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const app = TestBed.inject(ApplicationRef) const key = queryKey() diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index 1248c386b69..71fc4ad7582 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -11,24 +11,24 @@ import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, provideIsRestoring, provideTanStackQuery } from '..' import { injectQueries } from '../inject-queries' -let queryClient: QueryClient - -beforeEach(() => { - vi.useFakeTimers() - queryClient = new QueryClient() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], +describe('injectQueries', () => { + let queryClient: QueryClient + + beforeEach(() => { + vi.useFakeTimers() + queryClient = new QueryClient() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) }) -}) -afterEach(() => { - vi.useRealTimers() -}) + afterEach(() => { + vi.useRealTimers() + }) -describe('injectQueries', () => { it('should return the correct states', async () => { const key1 = queryKey() const key2 = queryKey() @@ -143,13 +143,8 @@ describe('injectQueries', () => { const queryFn1 = vi.fn().mockImplementation(() => sleep(10).then(() => 1)) const queryFn2 = vi.fn().mockImplementation(() => sleep(10).then(() => 2)) - TestBed.resetTestingModule() TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - provideIsRestoring(signal(true).asReadonly()), - ], + providers: [provideIsRestoring(signal(true).asReadonly())], }) const queries = TestBed.runInInjectionContext(() => diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 652081c3c24..20ae245909b 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -38,6 +38,7 @@ import type { CreateQueryOptions, OmitKeyof, QueryFunction } from '..' describe('injectQuery', () => { let queryCache: QueryCache let queryClient: QueryClient + beforeEach(() => { vi.useFakeTimers() queryCache = new QueryCache() @@ -566,13 +567,8 @@ describe('injectQuery', () => { .fn() .mockImplementation(() => sleep(10).then(() => 'data')) - TestBed.resetTestingModule() TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - provideIsRestoring(signal(true).asReadonly()), - ], + providers: [provideIsRestoring(signal(true).asReadonly())], }) const query = TestBed.runInInjectionContext(() => @@ -645,14 +641,8 @@ describe('injectQuery', () => { }) it('should complete HttpClient-based queries before whenStable() resolves', async () => { - TestBed.resetTestingModule() TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - provideHttpClient(), - provideHttpClientTesting(), - ], + providers: [provideHttpClient(), provideHttpClientTesting()], }) const app = TestBed.inject(ApplicationRef) @@ -691,14 +681,6 @@ describe('injectQuery', () => { }) it('should handle synchronous queryFn with staleTime', async () => { - TestBed.resetTestingModule() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const app = TestBed.inject(ApplicationRef) let callCount = 0 @@ -735,14 +717,6 @@ describe('injectQuery', () => { }) it('should handle enabled/disabled transitions with synchronous queryFn', async () => { - TestBed.resetTestingModule() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const app = TestBed.inject(ApplicationRef) const enabledSignal = signal(false) let callCount = 0 @@ -777,14 +751,6 @@ describe('injectQuery', () => { }) it('should handle query invalidation with synchronous data', async () => { - TestBed.resetTestingModule() - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - ], - }) - const app = TestBed.inject(ApplicationRef) const testKey = queryKey() let callCount = 0 diff --git a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts index abb0752b9bc..0bdd109a4a7 100644 --- a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts +++ b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts @@ -458,14 +458,8 @@ describe('PendingTasks Integration', () => { describe('HttpClient Integration', () => { beforeEach(() => { - TestBed.resetTestingModule() TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery(queryClient), - provideHttpClient(), - provideHttpClientTesting(), - ], + providers: [provideHttpClient(), provideHttpClientTesting()], }) }) diff --git a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts index 093efb825af..98fa0fef6ff 100644 --- a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts +++ b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts @@ -18,14 +18,6 @@ import type { Persister, } from '@tanstack/query-persist-client-core' -beforeEach(() => { - vi.useFakeTimers() -}) - -afterEach(() => { - vi.useRealTimers() -}) - const createMockPersister = (): Persister => { let storedState: PersistedClient | undefined @@ -62,6 +54,14 @@ const createMockErrorPersister = ( } describe('withPersistQueryClient', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('restores cache from persister', async () => { const key = queryKey() const states: Array<{ From fc8a6a92401fe998f761ba59fd76c76ebf95fd0f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 01:59:06 +0900 Subject: [PATCH 154/414] test(angular-query*): prefix 'it' descriptions with 'should' for consistency (#10547) --- .../src/__tests__/infinite-query-options.test-d.ts | 4 ++-- .../src/__tests__/inject-infinite-query.test.ts | 4 ++-- .../src/__tests__/inject-is-fetching.test.ts | 6 +++--- .../src/__tests__/inject-is-mutating.test.ts | 4 ++-- .../src/__tests__/inject-is-restoring.test.ts | 8 ++++---- .../src/__tests__/inject-mutation-state.test.ts | 6 +++--- .../src/__tests__/inject-mutation.test.ts | 6 +++--- .../src/__tests__/inject-query.test.ts | 4 ++-- .../src/__tests__/signal-proxy.test.ts | 4 ++-- .../src/__tests__/with-persist-query-client.test.ts | 2 +- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts index e53af1ae785..d50b8c6b814 100644 --- a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts @@ -166,7 +166,7 @@ describe('infiniteQueryOptions', () => { ) }) - it('allow optional initialData function', () => { + it('should allow optional initialData function', () => { const key = queryKey() const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ @@ -185,7 +185,7 @@ describe('infiniteQueryOptions', () => { >() }) - it('allow optional initialData object', () => { + it('should allow optional initialData object', () => { const key = queryKey() const initialData: { example: boolean } | undefined = { example: true } const queryOptions = infiniteQueryOptions({ diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index fbaea8ca007..45c1f6bc341 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -64,7 +64,7 @@ describe('injectInfiniteQuery', () => { }) describe('injection context', () => { - it('throws NG0203 with descriptive error outside injection context', () => { + it('should throw NG0203 with descriptive error outside injection context', () => { const key = queryKey() expect(() => { injectInfiniteQuery(() => ({ @@ -77,7 +77,7 @@ describe('injectInfiniteQuery', () => { }).toThrow(/NG0203(.*?)injectInfiniteQuery/) }) - it('can be used outside injection context when passing an injector', () => { + it('should be usable outside injection context when passing an injector', () => { const key = queryKey() const query = injectInfiniteQuery( () => ({ diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index 97d8651b19e..f1d2861ab19 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -28,7 +28,7 @@ describe('injectIsFetching', () => { vi.useRealTimers() }) - it('Returns number of fetching queries', async () => { + it('should return the number of fetching queries', async () => { const key = queryKey() const isFetching = TestBed.runInInjectionContext(() => { injectQuery(() => ({ @@ -46,13 +46,13 @@ describe('injectIsFetching', () => { }) describe('injection context', () => { - it('throws NG0203 with descriptive error outside injection context', () => { + it('should throw NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsFetching() }).toThrow(/NG0203(.*?)injectIsFetching/) }) - it('can be used outside injection context when passing an injector', () => { + it('should be usable outside injection context when passing an injector', () => { expect( injectIsFetching(undefined, { injector: TestBed.inject(Injector), diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 652ad4031c0..8433fef501e 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -52,13 +52,13 @@ describe('injectIsMutating', () => { }) describe('injection context', () => { - it('throws NG0203 with descriptive error outside injection context', () => { + it('should throw NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsMutating() }).toThrow(/NG0203(.*?)injectIsMutating/) }) - it('can be used outside injection context when passing an injector', () => { + it('should be usable outside injection context when passing an injector', () => { expect( injectIsMutating(undefined, { injector: TestBed.inject(Injector), diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts index 9de273a10ac..0b74019b3a7 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts @@ -21,7 +21,7 @@ describe('injectIsRestoring', () => { }) }) - it('returns false by default when provideIsRestoring is not used', () => { + it('should return false by default when provideIsRestoring is not used', () => { const isRestoring = TestBed.runInInjectionContext(() => { return injectIsRestoring() }) @@ -29,7 +29,7 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(false) }) - it('returns provided signal value when provideIsRestoring is used', () => { + it('should return the provided signal value when provideIsRestoring is used', () => { const restoringSignal = signal(true) TestBed.configureTestingModule({ @@ -43,7 +43,7 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(true) }) - it('can be used outside injection context when passing an injector', () => { + it('should be usable outside injection context when passing an injector', () => { const isRestoring = injectIsRestoring({ injector: TestBed.inject(Injector), }) @@ -51,7 +51,7 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(false) }) - it('throws NG0203 with descriptive error outside injection context', () => { + it('should throw NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsRestoring() }).toThrow(/NG0203(.*?)injectIsRestoring/) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index 2808f92c22c..4eee7699aeb 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -59,7 +59,7 @@ describe('injectMutationState', () => { expect(mutationState()).toEqual([variables]) }) - it('reactive options should update injectMutationState', () => { + it('should update injectMutationState when reactive options change', () => { const mutationKey1 = queryKey() const mutationKey2 = queryKey() const variables1 = 'foo123' @@ -179,13 +179,13 @@ describe('injectMutationState', () => { }) describe('injection context', () => { - it('throws NG0203 with descriptive error outside injection context', () => { + it('should throw NG0203 with descriptive error outside injection context', () => { expect(() => { injectMutationState() }).toThrow(/NG0203(.*?)injectMutationState/) }) - it('can be used outside injection context when passing an injector', () => { + it('should be usable outside injection context when passing an injector', () => { const injector = TestBed.inject(Injector) expect( injectMutationState(undefined, { diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 8fd64599fff..5d9c2e93c39 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -114,7 +114,7 @@ describe('injectMutation', () => { }) }) - it('reactive options should update mutation', () => { + it('should update mutation when reactive options change', () => { const mutationCache = queryClient.getMutationCache() // Signal will be updated before the mutation is called // this test confirms that the mutation uses the updated value @@ -473,7 +473,7 @@ describe('injectMutation', () => { }) describe('injection context', () => { - it('throws NG0203 with descriptive error outside injection context', () => { + it('should throw NG0203 with descriptive error outside injection context', () => { const key = queryKey() expect(() => { injectMutation(() => ({ @@ -483,7 +483,7 @@ describe('injectMutation', () => { }).toThrow(/NG0203(.*?)injectMutation/) }) - it('can be used outside injection context when passing an injector', () => { + it('should be usable outside injection context when passing an injector', () => { const key = queryKey() expect(() => { injectMutation( diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 20ae245909b..6d33aa86a77 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -593,7 +593,7 @@ describe('injectQuery', () => { }) describe('injection context', () => { - it('throws NG0203 with descriptive error outside injection context', () => { + it('should throw NG0203 with descriptive error outside injection context', () => { const key = queryKey() expect(() => { injectQuery(() => ({ @@ -603,7 +603,7 @@ describe('injectQuery', () => { }).toThrow(/NG0203(.*?)injectQuery/) }) - it('can be used outside injection context when passing an injector', () => { + it('should be usable outside injection context when passing an injector', () => { const key = queryKey() const query = injectQuery( () => ({ diff --git a/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts b/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts index b7ad207fb68..cebcd7b82bb 100644 --- a/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts +++ b/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts @@ -16,12 +16,12 @@ describe('signalProxy', () => { expect(isSignal(proxy.fn)).toBe(false) }) - it('supports "in" operator', () => { + it('should support "in" operator', () => { expect('baz' in proxy).toBe(true) expect('foo' in proxy).toBe(false) }) - it('supports "Object.keys"', () => { + it('should support "Object.keys"', () => { expect(Object.keys(proxy)).toEqual(['fn', 'baz']) }) }) diff --git a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts index 98fa0fef6ff..1f9bd61419a 100644 --- a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts +++ b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts @@ -62,7 +62,7 @@ describe('withPersistQueryClient', () => { vi.useRealTimers() }) - it('restores cache from persister', async () => { + it('should restore cache from persister', async () => { const key = queryKey() const states: Array<{ status: string From eec2abefe5eeb7bafced3b05baa0967a17f2568f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 02:16:24 +0900 Subject: [PATCH 155/414] test(query-persist-client-core/createPersister): fix typo 'persiste' to 'persist' and 'persistance' to 'persistence' (#10548) --- .../src/__tests__/createPersister.test.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts index bc630b8c730..b8b1de807ba 100644 --- a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts +++ b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts @@ -436,7 +436,7 @@ describe('createPersister', () => { }) describe('persistQuery', () => { - it('Should properly persiste basic query', async () => { + it('Should properly persist basic query', async () => { const storage = getFreshStorage() const { persister, query, queryHash, queryKey, storageKey } = setupPersister(['foo'], { @@ -458,7 +458,7 @@ describe('createPersister', () => { }) }) - it('Should skip persistance if storage is not provided', async () => { + it('Should skip persistence if storage is not provided', async () => { const serializeMock = vi.fn() const { persister, query } = setupPersister(['foo'], { storage: null, @@ -473,7 +473,7 @@ describe('createPersister', () => { }) describe('persistQueryByKey', () => { - it('Should skip persistance if storage is not provided', async () => { + it('Should skip persistence if storage is not provided', async () => { const serializeMock = vi.fn() const { persister, client, queryKey } = setupPersister(['foo'], { storage: null, @@ -486,7 +486,7 @@ describe('createPersister', () => { expect(serializeMock).toHaveBeenCalledTimes(0) }) - it('should skip persistance if query was not found', async () => { + it('should skip persistence if query was not found', async () => { const serializeMock = vi.fn() const storage = getFreshStorage() const { client, persister, queryKey } = setupPersister(['foo'], { @@ -500,7 +500,7 @@ describe('createPersister', () => { expect(serializeMock).toHaveBeenCalledTimes(0) }) - it('Should properly persiste basic query', async () => { + it('Should properly persist basic query', async () => { const storage = getFreshStorage() const { persister, client, queryHash, queryKey, storageKey } = setupPersister(['foo'], { From a65252663c804cc45603a42dea4ca0a5e457c264 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 02:26:12 +0900 Subject: [PATCH 156/414] test(vue-query/queryClient): rename local 'queryKey' to 'key' to avoid 'no-shadow' with the 'queryKey' import (#10549) --- .../src/__tests__/queryClient.test-d.ts | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/vue-query/src/__tests__/queryClient.test-d.ts b/packages/vue-query/src/__tests__/queryClient.test-d.ts index 9af6d20307e..cd3af0d5618 100644 --- a/packages/vue-query/src/__tests__/queryClient.test-d.ts +++ b/packages/vue-query/src/__tests__/queryClient.test-d.ts @@ -5,25 +5,25 @@ import type { DataTag, InfiniteData } from '@tanstack/query-core' describe('getQueryData', () => { it('should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(key) expectTypeOf(data).toEqualTypeOf() }) it('should infer unknown if key is not tagged', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(key) expectTypeOf(data).toEqualTypeOf() }) it('should infer passed generic if passed', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) + const data = queryClient.getQueryData(key) expectTypeOf(data).toEqualTypeOf() }) @@ -38,9 +38,9 @@ describe('getQueryData', () => { describe('setQueryData', () => { it('updater should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(key, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -48,24 +48,24 @@ describe('setQueryData', () => { }) it('value should be typed if key is tagged', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, '1') + queryClient.setQueryData(key, '1') // @ts-expect-error value should be a number - queryClient.setQueryData(queryKey, () => '1') + queryClient.setQueryData(key, () => '1') - const data = queryClient.setQueryData(queryKey, 1) + const data = queryClient.setQueryData(key, 1) expectTypeOf(data).toEqualTypeOf() }) it('should infer unknown for updater if key is not tagged', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(key, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -73,17 +73,17 @@ describe('setQueryData', () => { }) it('should infer unknown for value if key is not tagged', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, 'foo') + const data = queryClient.setQueryData(key, 'foo') expectTypeOf(data).toEqualTypeOf() }) it('should infer passed generic if passed', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, (prev) => { + const data = queryClient.setQueryData(key, (prev) => { expectTypeOf(prev).toEqualTypeOf() return prev }) @@ -91,21 +91,21 @@ describe('setQueryData', () => { }) it('should infer passed generic for value', () => { - const queryKey = ['key'] as const + const key = ['key'] as const const queryClient = new QueryClient() - const data = queryClient.setQueryData(queryKey, 'foo') + const data = queryClient.setQueryData(key, 'foo') expectTypeOf(data).toEqualTypeOf() }) it('should preserve updater parameter type inference when used in functions with explicit return types', () => { - const queryKey = ['key'] as DataTag, number> + const key = ['key'] as DataTag, number> const queryClient = new QueryClient() // Simulate usage inside a function with explicit return type // The outer function returns 'unknown' but this shouldn't affect the updater's type inference ;(() => - queryClient.setQueryData(queryKey, (data) => { + queryClient.setQueryData(key, (data) => { expectTypeOf(data).toEqualTypeOf() return data })) satisfies () => unknown From cf8a765e7ae3ec98a5dd954584f13ef40a3b461a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 02:32:50 +0900 Subject: [PATCH 157/414] test(react-query/useQuery): rename 'throwOnError' callback parameter to 'err' to avoid 'no-shadow' with outer 'error' (#10550) --- packages/react-query/src/__tests__/useQuery.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 71cda44e37e..d0c8dae5ae3 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -6846,7 +6846,7 @@ describe('useQuery', () => { const { status, error } = useQuery({ queryKey: key, queryFn, - throwOnError: (error) => error.message.includes('404'), + throwOnError: (err) => err.message.includes('404'), retryOnMount: true, staleTime: Infinity, retry: false, From 59efc40372ecfbf305a98bcd6dd092d5d3eb35d9 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 07:50:55 +0900 Subject: [PATCH 158/414] test(*): resolve 'require-await' warnings in test files (#10551) --- .../src/__tests__/queryObserver.test.tsx | 14 +++++++------- .../src/__tests__/streamedQuery.test.tsx | 2 ++ .../react-query/src/__tests__/useQuery.test.tsx | 4 ++-- .../solid-query/src/__tests__/useQuery.test.tsx | 8 ++++---- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index de838e27221..c814314da13 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -1481,12 +1481,12 @@ describe('queryObserver', () => { it('should not refetchOnWindowFocus when staleTime is static and query has background error', async () => { const key = queryKey() let callCount = 0 - const queryFn = vi.fn(async () => { + const queryFn = vi.fn(() => { callCount++ if (callCount === 1) { - return 'data' + return Promise.resolve('data') } - throw new Error('background error') + return Promise.reject(new Error('background error')) }) const observer = new QueryObserver(queryClient, { @@ -1520,15 +1520,15 @@ describe('queryObserver', () => { it('should refetchOnWindowFocus when query has background error and staleTime is not static', async () => { const key = queryKey() let callCount = 0 - const queryFn = vi.fn(async () => { + const queryFn = vi.fn(() => { callCount++ if (callCount === 1) { - return 'data' + return Promise.resolve('data') } if (callCount === 2) { - throw new Error('background error') + return Promise.reject(new Error('background error')) } - return 'new data' + return Promise.resolve('new data') }) const observer = new QueryObserver(queryClient, { diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index 1402320f831..6895609e53b 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -550,6 +550,7 @@ describe('streamedQuery', () => { retry: false, queryFn: streamedQuery({ refetchMode: 'reset', + // eslint-disable-next-line @typescript-eslint/require-await streamFn: async function* () { if (shouldError) { throw error @@ -711,6 +712,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ + // eslint-disable-next-line @typescript-eslint/require-await streamFn: async function* () { const v = [1, 2, 3] yield* v diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index d0c8dae5ae3..7ebb2124eb8 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -5675,9 +5675,9 @@ describe('useQuery', () => { function Component() { const state = useQuery({ queryKey: key, - queryFn: async () => { + queryFn: () => { count++ - return `data${count}` + return Promise.resolve(`data${count}`) }, }) diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 904f82e0c47..0edb42fd97f 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -3950,7 +3950,7 @@ describe('useQuery', () => { }) // See https://github.com/tannerlinsley/react-query/issues/360 - it('should init to status:pending, fetchStatus:idle when enabled is false', async () => { + it('should init to status:pending, fetchStatus:idle when enabled is false', () => { const key = queryKey() function Page() { @@ -5017,7 +5017,7 @@ describe('useQuery', () => { }) }) - it('should only call the query hash function once', async () => { + it('should only call the query hash function once', () => { const key = queryKey() let hashes = 0 @@ -5943,9 +5943,9 @@ describe('useQuery', () => { function Component() { const state = useQuery(() => ({ queryKey: key, - queryFn: async () => { + queryFn: () => { count++ - return `data${count}` + return Promise.resolve(`data${count}`) }, })) From f01b7ce6d3fda1b638b28a61d606fa800291d7ec Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 14:44:53 +0900 Subject: [PATCH 159/414] test(angular-query-experimental/injectIsFetching): switch main test to '@Component' + 'render' pattern (#10556) --- .../src/__tests__/inject-is-fetching.test.ts | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index f1d2861ab19..ad29c381bb0 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -1,6 +1,11 @@ import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { Injector, provideZonelessChangeDetection } from '@angular/core' +import { + Component, + Injector, + provideZonelessChangeDetection, +} from '@angular/core' +import { render } from '@testing-library/angular' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, @@ -30,19 +35,29 @@ describe('injectIsFetching', () => { it('should return the number of fetching queries', async () => { const key = queryKey() - const isFetching = TestBed.runInInjectionContext(() => { - injectQuery(() => ({ + + @Component({ + template: `
fetching: {{ isFetching() }}
`, + }) + class Page { + readonly query = injectQuery(() => ({ queryKey: key, queryFn: () => sleep(100).then(() => 'Some data'), })) - return injectIsFetching() - }) + readonly isFetching = injectIsFetching() + } + + const rendered = await render(Page) + + expect(rendered.getByText('fetching: 0')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(0) + rendered.fixture.detectChanges() + expect(rendered.getByText('fetching: 1')).toBeInTheDocument() - expect(isFetching()).toStrictEqual(0) - await vi.advanceTimersByTimeAsync(1) - expect(isFetching()).toStrictEqual(1) - await vi.advanceTimersByTimeAsync(100) - expect(isFetching()).toStrictEqual(0) + await vi.advanceTimersByTimeAsync(101) + rendered.fixture.detectChanges() + expect(rendered.getByText('fetching: 0')).toBeInTheDocument() }) describe('injection context', () => { From 0d2112c3e7d4776aa2c707d17f1a70e4207039ca Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 15:36:56 +0900 Subject: [PATCH 160/414] test(angular-query-experimental/injectIsMutating): switch main test to '@Component' + 'render' pattern (#10557) --- .../src/__tests__/inject-is-mutating.test.ts | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 8433fef501e..91d3e89afb6 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -1,6 +1,11 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { TestBed } from '@angular/core/testing' -import { Injector, provideZonelessChangeDetection } from '@angular/core' +import { + Component, + Injector, + provideZonelessChangeDetection, +} from '@angular/core' +import { render } from '@testing-library/angular' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, @@ -30,25 +35,31 @@ describe('injectIsMutating', () => { it('should properly return isMutating state', async () => { const key = queryKey() - const [mutation, isMutating] = TestBed.runInInjectionContext(() => [ - injectMutation(() => ({ + + @Component({ + template: `
mutating: {{ isMutating() }}
`, + }) + class Page { + readonly mutation = injectMutation(() => ({ mutationKey: key, mutationFn: (params: { par1: string }) => sleep(10).then(() => params), - })), - injectIsMutating(), - ]) + })) + readonly isMutating = injectIsMutating() + } - expect(isMutating()).toBe(0) + const rendered = await render(Page) - mutation.mutate({ - par1: 'par1', - }) + expect(rendered.getByText('mutating: 0')).toBeInTheDocument() + + rendered.fixture.componentInstance.mutation.mutate({ par1: 'par1' }) - expect(isMutating()).toBe(0) await vi.advanceTimersByTimeAsync(0) - expect(isMutating()).toBe(1) + rendered.fixture.detectChanges() + expect(rendered.getByText('mutating: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) - expect(isMutating()).toBe(0) + rendered.fixture.detectChanges() + expect(rendered.getByText('mutating: 0')).toBeInTheDocument() }) describe('injection context', () => { From e7de9090c8c20fc1baf6a438545df5b9b6d9701d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 15:56:27 +0900 Subject: [PATCH 161/414] test(angular-query-experimental/injectInfiniteQuery): switch main test to '@Component' + 'render' pattern (#10558) --- .../__tests__/inject-infinite-query.test.ts | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index 45c1f6bc341..e3c3744d563 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -1,9 +1,13 @@ import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { Injector, provideZonelessChangeDetection } from '@angular/core' +import { + Component, + Injector, + provideZonelessChangeDetection, +} from '@angular/core' +import { render } from '@testing-library/angular' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' -import { expectSignals } from './test-utils' describe('injectInfiniteQuery', () => { let queryClient: QueryClient @@ -25,42 +29,41 @@ describe('injectInfiniteQuery', () => { it('should properly execute infinite query', async () => { const key = queryKey() - const query = TestBed.runInInjectionContext(() => { - return injectInfiniteQuery(() => ({ + + @Component({ + template: ` +
status: {{ query.status() }}
+
pages: {{ query.data()?.pages?.join(', ') ?? 'none' }}
+ `, + }) + class Page { + readonly query = injectInfiniteQuery(() => ({ queryKey: key, queryFn: ({ pageParam }) => sleep(10).then(() => 'data on page ' + pageParam), initialPageParam: 0, getNextPageParam: () => 12, })) - }) + } - expectSignals(query, { - data: undefined, - status: 'pending', - }) + const rendered = await render(Page) - await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('status: pending')).toBeInTheDocument() + expect(rendered.getByText('pages: none')).toBeInTheDocument() - expectSignals(query, { - data: { - pageParams: [0], - pages: ['data on page 0'], - }, - status: 'success', - }) + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + expect(rendered.getByText('status: success')).toBeInTheDocument() + expect(rendered.getByText('pages: data on page 0')).toBeInTheDocument() - void query.fetchNextPage() + rendered.fixture.componentInstance.query.fetchNextPage() await vi.advanceTimersByTimeAsync(11) - - expectSignals(query, { - data: { - pageParams: [0, 12], - pages: ['data on page 0', 'data on page 12'], - }, - status: 'success', - }) + rendered.fixture.detectChanges() + expect(rendered.getByText('status: success')).toBeInTheDocument() + expect( + rendered.getByText('pages: data on page 0, data on page 12'), + ).toBeInTheDocument() }) describe('injection context', () => { From 7d881354ffde0572370221bb3ba919c510ff5e54 Mon Sep 17 00:00:00 2001 From: Jan Aagaard Date: Wed, 22 Apr 2026 12:56:26 +0200 Subject: [PATCH 162/414] docs: Update the documentation for gcTime in setQueryData (#10559) Clarified the behavior of gcTime in setQueryData. https://bsky.app/profile/tkdodo.eu/post/3mk2z7ur7kc2m --- docs/reference/QueryClient.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md index 13bde1ffad0..a4783788b4c 100644 --- a/docs/reference/QueryClient.md +++ b/docs/reference/QueryClient.md @@ -250,7 +250,7 @@ This distinction is more a "convenience" for ts devs that know which structure w ## `queryClient.setQueryData` -`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created. **If the query is not utilized by a query hook in the default `gcTime` of 5 minutes, the query will be garbage collected**. To update multiple queries at once and match query keys partially, you need to use [`queryClient.setQueriesData`](#queryclientsetqueriesdata) instead. +`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created. **If the query is not utilized by a query hook within the default `gcTime`, the query will be garbage collected. If the default `gcTime` has not been configured, it defaults to 5 minutes.** To update multiple queries at once and match query keys partially, you need to use [`queryClient.setQueriesData`](#queryclientsetqueriesdata) instead. > The difference between using `setQueryData` and `fetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `fetchQuery` to handle the asynchronous fetch. From b1538fc6cb0ce5b5d3f73b01796d2cef5659504e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 23 Apr 2026 10:11:00 +0900 Subject: [PATCH 163/414] test(query-persist-client-core/createPersister): lowercase 'Should' to 'should' in 'it' descriptions for consistency (#10560) --- .../src/__tests__/createPersister.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts index b8b1de807ba..8e385bc3dad 100644 --- a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts +++ b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts @@ -436,7 +436,7 @@ describe('createPersister', () => { }) describe('persistQuery', () => { - it('Should properly persist basic query', async () => { + it('should properly persist basic query', async () => { const storage = getFreshStorage() const { persister, query, queryHash, queryKey, storageKey } = setupPersister(['foo'], { @@ -458,7 +458,7 @@ describe('createPersister', () => { }) }) - it('Should skip persistence if storage is not provided', async () => { + it('should skip persistence if storage is not provided', async () => { const serializeMock = vi.fn() const { persister, query } = setupPersister(['foo'], { storage: null, @@ -473,7 +473,7 @@ describe('createPersister', () => { }) describe('persistQueryByKey', () => { - it('Should skip persistence if storage is not provided', async () => { + it('should skip persistence if storage is not provided', async () => { const serializeMock = vi.fn() const { persister, client, queryKey } = setupPersister(['foo'], { storage: null, @@ -500,7 +500,7 @@ describe('createPersister', () => { expect(serializeMock).toHaveBeenCalledTimes(0) }) - it('Should properly persist basic query', async () => { + it('should properly persist basic query', async () => { const storage = getFreshStorage() const { persister, client, queryHash, queryKey, storageKey } = setupPersister(['foo'], { From e236194f100bd99fe2c5e77ed38a533f8622fbc0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 23 Apr 2026 13:44:10 +0900 Subject: [PATCH 164/414] test(react-query/useQuery.promise): improve stability by isolating 'queryClient' per test and switching 'queryFn' to real 'sleep' (#10562) * test(react-query/useQuery.promise): improve stability by isolating 'queryClient' per test and switching 'queryFn' to real 'sleep' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useQuery.promise.test.tsx | 166 ++++++------------ 1 file changed, 55 insertions(+), 111 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.promise.test.tsx b/packages/react-query/src/__tests__/useQuery.promise.test.tsx index 5e1d892df04..e721c6a4d9c 100644 --- a/packages/react-query/src/__tests__/useQuery.promise.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.promise.test.tsx @@ -1,12 +1,11 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' import { createRenderStream, useTrackRenders, } from '@testing-library/react-render-stream' -import { queryKey } from '@tanstack/query-test-utils' -import { waitFor } from '@testing-library/react' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, @@ -18,26 +17,26 @@ import { import { QueryCache } from '../index' describe('useQuery().promise', { timeout: 10_000 }, () => { - const queryCache = new QueryCache() - const queryClient = new QueryClient({ - queryCache, - }) + let queryCache: QueryCache + let queryClient: QueryClient - beforeAll(() => { + beforeEach(() => { vi.useFakeTimers({ shouldAdvanceTime: true, toFake: ['setTimeout', 'clearTimeout', 'setInterval', 'clearInterval'], }) - queryClient.setDefaultOptions({ - queries: { experimental_prefetchInRender: true }, + queryCache = new QueryCache() + queryClient = new QueryClient({ + queryCache, + defaultOptions: { + queries: { experimental_prefetchInRender: true }, + }, }) }) - afterAll(() => { + afterEach(() => { vi.useRealTimers() - queryClient.setDefaultOptions({ - queries: { experimental_prefetchInRender: false }, - }) + queryClient.clear() }) it('should work with a basic test', async () => { @@ -60,10 +59,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { useTrackRenders() const query = useQuery({ queryKey: key, - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) return ( @@ -107,7 +103,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { queryKey: key, queryFn: async () => { callCount++ - await vi.advanceTimersByTimeAsync(1) + await sleep(10) return 'test' }, staleTime: 1000, @@ -161,7 +157,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { queryKey: key, queryFn: async () => { callCount++ - await vi.advanceTimersByTimeAsync(1) + await sleep(10) return 'test' }, staleTime: 1000, @@ -238,10 +234,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { useTrackRenders() const query = useQuery({ queryKey: key, - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), initialData: 'initial', }) @@ -274,10 +267,9 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { it('should not fetch with initial data and staleTime', async () => { const key = queryKey() const renderStream = createRenderStream({ snapshotDOM: true }) - const queryFn = vi.fn().mockImplementation(async () => { - await vi.advanceTimersByTimeAsync(1) - return 'test' - }) + const queryFn = vi + .fn() + .mockImplementation(() => sleep(10).then(() => 'test')) function MyComponent(props: { promise: Promise }) { useTrackRenders() @@ -339,10 +331,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { function Page() { const query = useQuery({ queryKey: key, - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), placeholderData: 'placeholder', }) useTrackRenders() @@ -392,10 +381,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const [count, setCount] = React.useState(0) const query = useQuery({ queryKey: [...key, count], - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return 'test-' + count - }, + queryFn: () => sleep(10).then(() => 'test-' + count), placeholderData: keepPreviousData, }) @@ -461,10 +447,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { function Page() { const query = useQuery({ queryKey: key, - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return { name: 'test' } - }, + queryFn: () => sleep(10).then(() => ({ name: 'test' })), select: (data) => data.name, }) @@ -517,7 +500,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const query = useQuery({ queryKey: key, queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) + await sleep(10) if (++queryCount > 1) { // second time this query mounts, it should not throw return 'data' @@ -598,10 +581,8 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { function MyComponent() { const query = useQuery({ queryKey: key, - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - throw new Error('Error test') - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Error test'))), retry: false, }) const data = React.use(query.promise) @@ -656,10 +637,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { function Page() { const query = useQuery({ queryKey: key, - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return 'test1' - }, + queryFn: () => sleep(10).then(() => 'test1'), }) useTrackRenders() @@ -700,10 +678,9 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { it('should dedupe when re-fetched with queryClient.fetchQuery while suspending', async () => { const key = queryKey() const renderStream = createRenderStream({ snapshotDOM: true }) - const queryFn = vi.fn().mockImplementation(async () => { - await vi.advanceTimersByTimeAsync(10) - return 'test' - }) + const queryFn = vi + .fn() + .mockImplementation(() => sleep(10).then(() => 'test')) const options = { queryKey: key, @@ -757,10 +734,9 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const key = queryKey() let count = 0 const renderStream = createRenderStream({ snapshotDOM: true }) - const queryFn = vi.fn().mockImplementation(async () => { - await vi.advanceTimersByTimeAsync(10) - return 'test' + count++ - }) + const queryFn = vi + .fn() + .mockImplementation(() => sleep(10).then(() => 'test' + count++)) const options = { queryKey: key, @@ -817,7 +793,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const key = queryKey() let count = 0 const queryFn = vi.fn().mockImplementation(async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'test' + count++ }) @@ -891,10 +867,9 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { it('should resolve to previous data when canceled with cancelQueries while suspending', async () => { const renderStream = createRenderStream({ snapshotDOM: true }) const key = queryKey() - const queryFn = vi.fn().mockImplementation(async () => { - await vi.advanceTimersByTimeAsync(10) - return 'test' - }) + const queryFn = vi + .fn() + .mockImplementation(() => sleep(10).then(() => 'test')) const options = { queryKey: key, @@ -954,10 +929,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const options = (count: number) => ({ queryKey: [...key, count], - queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) - return 'test' + count - }, + queryFn: () => sleep(10).then(() => 'test' + count), }) function MyComponent(props: { promise: Promise }) { @@ -1010,10 +982,9 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const renderStream = createRenderStream({ snapshotDOM: true }) queryClient.setQueryData(key, 'initial') - const queryFn = vi.fn().mockImplementation(async () => { - await vi.advanceTimersByTimeAsync(1) - return 'test' - }) + const queryFn = vi + .fn() + .mockImplementation(() => sleep(10).then(() => 'test')) function MyComponent(props: { promise: Promise }) { const data = React.use(props.promise) @@ -1072,10 +1043,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const [count, setCount] = React.useState(0) const query = useQuery({ queryKey: [key, count], - queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) - return 'test' + count - }, + queryFn: () => sleep(10).then(() => 'test' + count), staleTime: Infinity, }) @@ -1152,10 +1120,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const [count, setCount] = React.useState(0) const query = useQuery({ queryKey: [key, count], - queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) - return 'test' + count - }, + queryFn: () => sleep(10).then(() => 'test' + count), staleTime: Infinity, }) @@ -1228,10 +1193,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const [count, setCount] = React.useState(0) const query = useQuery({ queryKey: [key, count], - queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) - return 'test' + count + modifier - }, + queryFn: () => sleep(10).then(() => 'test' + count + modifier), }) return ( @@ -1291,24 +1253,16 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { modifier = 'new' rendered.getByText('dec').click() - { - const { snapshot } = await renderStream.takeRender() - expect(snapshot).toMatchObject({ data: 'test3' }) - } + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('test2new')).toBeInTheDocument() rendered.getByText('dec').click() - { - const { snapshot } = await renderStream.takeRender() - expect(snapshot).toMatchObject({ data: 'test3' }) - } + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('test1new')).toBeInTheDocument() rendered.getByText('dec').click() - { - const { snapshot } = await renderStream.takeRender() - expect(snapshot).toMatchObject({ data: 'test0' }) - } - - await waitFor(() => rendered.getByText('test0new')) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('test0new')).toBeInTheDocument() }) it('should not suspend indefinitely with multiple, nested observers)', async () => { @@ -1326,10 +1280,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { return useQuery({ staleTime: Infinity, queryKey: [key, input], - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return input + ' response' - }, + queryFn: () => sleep(10).then(() => input + ' response'), }) } @@ -1400,10 +1351,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { useTrackRenders() const query = useInfiniteQuery({ queryKey: key, - queryFn: async () => { - await vi.advanceTimersByTimeAsync(1) - return { nextCursor: 1, data: 'test' } - }, + queryFn: () => sleep(10).then(() => ({ nextCursor: 1, data: 'test' })), initialPageParam: 0, getNextPageParam: (lastPage) => lastPage.nextCursor, }) @@ -1446,7 +1394,7 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { const query = useInfiniteQuery({ queryKey: key, queryFn: async ({ pageParam = 0 }) => { - await vi.advanceTimersByTimeAsync(1) + await sleep(10) if (pageParam === 0) { return { nextCursor: 1, data: 'page-1' } } @@ -1494,13 +1442,9 @@ describe('useQuery().promise', { timeout: 10_000 }, () => { } rendered.getByText('fetchNext').click() - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(11) - await waitFor(() => { - expect( - rendered.getByText('isFetchNextPageError:true'), - ).toBeInTheDocument() - }) + expect(rendered.getByText('isFetchNextPageError:true')).toBeInTheDocument() expect(rendered.queryByText('error boundary')).toBeNull() }) From 0f339c1c92ebd46783d3c8f0fc91314070feb7d1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 23 Apr 2026 15:12:43 +0900 Subject: [PATCH 165/414] test(angular-query-experimental/injectQueries): switch 'isRestoring' test to '@Component' + 'render' pattern (#10563) --- .../src/__tests__/inject-queries.test.ts | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index 71fc4ad7582..e7a3a842c31 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -147,32 +147,48 @@ describe('injectQueries', () => { providers: [provideIsRestoring(signal(true).asReadonly())], }) - const queries = TestBed.runInInjectionContext(() => - injectQueries(() => ({ + @Component({ + template: ` +
+ status1: {{ queries()[0].status() }}, fetchStatus1: + {{ queries()[0].fetchStatus() }} +
+
+ status2: {{ queries()[1].status() }}, fetchStatus2: + {{ queries()[1].fetchStatus() }} +
+ `, + }) + class Page { + queries = injectQueries(() => ({ queries: [ { queryKey: key1, queryFn: queryFn1 }, { queryKey: key2, queryFn: queryFn2 }, ], - })), - ) + })) + } + + const rendered = await render(Page) await vi.advanceTimersByTimeAsync(0) - expect(queries()[0].status()).toBe('pending') - expect(queries()[0].fetchStatus()).toBe('idle') - expect(queries()[0].data()).toBeUndefined() - expect(queries()[1].status()).toBe('pending') - expect(queries()[1].fetchStatus()).toBe('idle') - expect(queries()[1].data()).toBeUndefined() + rendered.fixture.detectChanges() + expect( + rendered.getByText('status1: pending, fetchStatus1: idle'), + ).toBeInTheDocument() + expect( + rendered.getByText('status2: pending, fetchStatus2: idle'), + ).toBeInTheDocument() expect(queryFn1).toHaveBeenCalledTimes(0) expect(queryFn2).toHaveBeenCalledTimes(0) await vi.advanceTimersByTimeAsync(11) - expect(queries()[0].status()).toBe('pending') - expect(queries()[0].fetchStatus()).toBe('idle') - expect(queries()[0].data()).toBeUndefined() - expect(queries()[1].status()).toBe('pending') - expect(queries()[1].fetchStatus()).toBe('idle') - expect(queries()[1].data()).toBeUndefined() + rendered.fixture.detectChanges() + expect( + rendered.getByText('status1: pending, fetchStatus1: idle'), + ).toBeInTheDocument() + expect( + rendered.getByText('status2: pending, fetchStatus2: idle'), + ).toBeInTheDocument() expect(queryFn1).toHaveBeenCalledTimes(0) expect(queryFn2).toHaveBeenCalledTimes(0) }) From 65f9eeb46192a2d9e1c8c00891c5716332782906 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 23 Apr 2026 15:32:13 +0900 Subject: [PATCH 166/414] test(angular-query-experimental/injectQueries): add 'readonly' modifier to component fields for consistency with other render-pattern tests (#10564) --- .../src/__tests__/inject-queries.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index e7a3a842c31..2d3560b99b8 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -45,7 +45,7 @@ describe('injectQueries', () => { `, }) class Page { - result = injectQueries(() => ({ + readonly result = injectQueries(() => ({ queries: [ { queryKey: key1, @@ -91,7 +91,7 @@ describe('injectQueries', () => { `, }) class Page { - combined = injectQueries(() => ({ + readonly combined = injectQueries(() => ({ queries: [ { queryKey: key1, @@ -160,7 +160,7 @@ describe('injectQueries', () => { `, }) class Page { - queries = injectQueries(() => ({ + readonly queries = injectQueries(() => ({ queries: [ { queryKey: key1, queryFn: queryFn1 }, { queryKey: key2, queryFn: queryFn2 }, From e2a945e4c8ebd3ddca681a4c3669b8c0b5d7efe6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 23 Apr 2026 17:54:11 +0900 Subject: [PATCH 167/414] test(angular-query-experimental/injectMutation): switch 'success' and 'reset' tests to '@Component' + 'render' pattern (#10566) --- .../src/__tests__/inject-mutation.test.ts | 82 ++++++++++++------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 5d9c2e93c39..b9d3eea6e12 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -9,6 +9,7 @@ import { import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { By } from '@angular/platform-browser' +import { render } from '@testing-library/angular' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectMutation, provideTanStackQuery } from '..' import { expectSignals, setFixtureSignalInputs } from './test-utils' @@ -94,24 +95,36 @@ describe('injectMutation', () => { it('should return data when request succeeds', async () => { const result = 'Mock data' - const mutation = TestBed.runInInjectionContext(() => { - return injectMutation(() => ({ + + @Component({ + template: ` +
isIdle: {{ mutation.isIdle() }}
+
isPending: {{ mutation.isPending() }}
+
isError: {{ mutation.isError() }}
+
isSuccess: {{ mutation.isSuccess() }}
+
data: {{ mutation.data() ?? 'none' }}
+
error: {{ mutation.error()?.message ?? 'none' }}
+ `, + }) + class Page { + readonly mutation = injectMutation(() => ({ mutationFn: (params: string) => sleep(10).then(() => params), })) - }) + } - mutation.mutate(result) + const rendered = await render(Page) - await vi.advanceTimersByTimeAsync(11) + rendered.fixture.componentInstance.mutation.mutate(result) - expectSignals(mutation, { - isIdle: false, - isPending: false, - isError: false, - isSuccess: true, - data: result, - error: null, - }) + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + + expect(rendered.getByText('isIdle: false')).toBeInTheDocument() + expect(rendered.getByText('isPending: false')).toBeInTheDocument() + expect(rendered.getByText('isError: false')).toBeInTheDocument() + expect(rendered.getByText('isSuccess: true')).toBeInTheDocument() + expect(rendered.getByText(`data: ${result}`)).toBeInTheDocument() + expect(rendered.getByText('error: none')).toBeInTheDocument() }) it('should update mutation when reactive options change', () => { @@ -138,31 +151,44 @@ describe('injectMutation', () => { }) it('should reset state after invoking mutation.reset', async () => { - const mutation = TestBed.runInInjectionContext(() => { - return injectMutation(() => ({ + @Component({ + template: ` +
isIdle: {{ mutation.isIdle() }}
+
isPending: {{ mutation.isPending() }}
+
isError: {{ mutation.isError() }}
+
isSuccess: {{ mutation.isSuccess() }}
+
data: {{ mutation.data() ?? 'none' }}
+
error: {{ mutation.error()?.message ?? 'none' }}
+ `, + }) + class Page { + readonly mutation = injectMutation(() => ({ mutationFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), })) - }) + } - mutation.mutate() + const rendered = await render(Page) + + rendered.fixture.componentInstance.mutation.mutate() await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() - expect(mutation.isError()).toBe(true) + expect(rendered.getByText('isError: true')).toBeInTheDocument() + expect(rendered.getByText('error: Some error')).toBeInTheDocument() - mutation.reset() + rendered.fixture.componentInstance.mutation.reset() await vi.advanceTimersByTimeAsync(0) - - expectSignals(mutation, { - isIdle: true, - isPending: false, - isError: false, - isSuccess: false, - data: undefined, - error: null, - }) + rendered.fixture.detectChanges() + + expect(rendered.getByText('isIdle: true')).toBeInTheDocument() + expect(rendered.getByText('isPending: false')).toBeInTheDocument() + expect(rendered.getByText('isError: false')).toBeInTheDocument() + expect(rendered.getByText('isSuccess: false')).toBeInTheDocument() + expect(rendered.getByText('data: none')).toBeInTheDocument() + expect(rendered.getByText('error: none')).toBeInTheDocument() }) describe('side effects', () => { From 61b97638e3863169a792f5dc92a49b2473b750b1 Mon Sep 17 00:00:00 2001 From: Aleksei Kharitonov <91592026+AlexRixten@users.noreply.github.com> Date: Thu, 23 Apr 2026 13:08:15 +0200 Subject: [PATCH 168/414] docs(eslint/no-unstable-deps): correct 'react' package name casing in examples (#10553) fix(docs): correct import casing in no-unstable-deps examples --- docs/eslint/no-unstable-deps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/eslint/no-unstable-deps.md b/docs/eslint/no-unstable-deps.md index 529f82def67..a3f006d9b73 100644 --- a/docs/eslint/no-unstable-deps.md +++ b/docs/eslint/no-unstable-deps.md @@ -22,7 +22,7 @@ Examples of **incorrect** code for this rule: ```tsx /* eslint "@tanstack/query/no-unstable-deps": "warn" */ -import { useCallback } from 'React' +import { useCallback } from 'react' import { useMutation } from '@tanstack/react-query' function Component() { @@ -38,7 +38,7 @@ Examples of **correct** code for this rule: ```tsx /* eslint "@tanstack/query/no-unstable-deps": "warn" */ -import { useCallback } from 'React' +import { useCallback } from 'react' import { useMutation } from '@tanstack/react-query' function Component() { From 6540a4126b1c087d86d64525e78f32d9920dcd31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Thu, 23 Apr 2026 14:45:49 +0200 Subject: [PATCH 169/414] feat(core): callback for retryOnMount (#10515) * feat(core): callback for retryOnMount * ci: apply automated fixes * fix: vue --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/silver-places-pick.md | 5 + docs/framework/react/reference/useQuery.md | 5 +- docs/framework/solid/reference/useQuery.md | 5 +- .../QueryResetErrorBoundary.test.tsx | 4 +- .../src/__tests__/useQuery.test.tsx | 10 +- packages/query-core/src/query.ts | 5 +- packages/query-core/src/queryObserver.ts | 29 +++--- packages/query-core/src/types.ts | 7 +- packages/query-core/src/utils.ts | 10 +- .../QueryResetErrorBoundary.test.tsx | 4 +- .../src/__tests__/useQuery.test.tsx | 97 +++++++++++++++++-- .../src/__tests__/useQuery.test.tsx | 8 +- packages/vue-query/src/queryOptions.ts | 4 +- packages/vue-query/src/useQuery.ts | 4 +- 14 files changed, 146 insertions(+), 51 deletions(-) create mode 100644 .changeset/silver-places-pick.md diff --git a/.changeset/silver-places-pick.md b/.changeset/silver-places-pick.md new file mode 100644 index 00000000000..04d201a72fd --- /dev/null +++ b/.changeset/silver-places-pick.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': minor +--- + +feat(query-core): accept callback function for retryOnMount diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md index c17fe8b79db..b02775a62cf 100644 --- a/docs/framework/react/reference/useQuery.md +++ b/docs/framework/react/reference/useQuery.md @@ -86,8 +86,9 @@ const { - If set to a `number`, e.g. `3`, failed queries will retry until the failed query count meets that number. - If set to a function, it will be called with `failureCount` (starting at `0` for the first retry) and `error` to determine if a retry should be attempted. - defaults to `3` on the client and `0` on the server -- `retryOnMount: boolean` - - If set to `false`, the query will not be retried on mount if it contains an error. Defaults to `true`. +- `retryOnMount: boolean | (query: Query) => boolean` + - If set to `false`, the query will not be retried on mount if it contains an error and has no data. Defaults to `true`. + - If set to a function, the function will be executed with the query to compute the value. - `retryDelay: number | (retryAttempt: number, error: TError) => number` - This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the next attempt in milliseconds. - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff. diff --git a/docs/framework/solid/reference/useQuery.md b/docs/framework/solid/reference/useQuery.md index 38b9751d758..876c5c99729 100644 --- a/docs/framework/solid/reference/useQuery.md +++ b/docs/framework/solid/reference/useQuery.md @@ -277,8 +277,9 @@ function App() { - If `true`, failed queries will retry infinitely. - If set to a `number`, e.g. `3`, failed queries will retry until the failed query count meets that number. - defaults to `3` on the client and `0` on the server - - ##### `retryOnMount: boolean` - - If set to `false`, the query will not be retried on mount if it contains an error. Defaults to `true`. + - ##### `retryOnMount: boolean | (query: Query) => boolean` + - If set to `false`, the query will not be retried on mount if it contains an error and has no data. Defaults to `true`. + - If set to a function, the function will be executed with the query to compute the value. - ##### `retryDelay: number | (retryAttempt: number, error: TError) => number` - This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the next attempt in milliseconds. - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff. diff --git a/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx index 5d873cf1800..0b35921737e 100644 --- a/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/preact-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -753,7 +753,7 @@ describe('QueryErrorResetBoundary', () => { }), retry: false, throwOnError: true, - retryOnMount: true, + retryOnMount: () => true, }, ], }) @@ -818,7 +818,7 @@ describe('QueryErrorResetBoundary', () => { return 'data' }), retry: false, - retryOnMount: true, + retryOnMount: () => true, }, ], }) diff --git a/packages/preact-query/src/__tests__/useQuery.test.tsx b/packages/preact-query/src/__tests__/useQuery.test.tsx index 4ef21e05e55..10e8406c825 100644 --- a/packages/preact-query/src/__tests__/useQuery.test.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test.tsx @@ -4919,7 +4919,7 @@ describe('useQuery', () => { queryFn, enabled, retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) @@ -4979,7 +4979,7 @@ describe('useQuery', () => { return 'data' }, retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) @@ -5033,7 +5033,7 @@ describe('useQuery', () => { queryFn: () => sleep(10).then(() => Promise.reject(new Error('Error'))), retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) @@ -6012,7 +6012,7 @@ describe('useQuery', () => { queryKey: key, queryFn, retry: false, - retryOnMount: false, + retryOnMount: () => false, }) states.push(state) @@ -6433,7 +6433,7 @@ describe('useQuery', () => { ? () => sleep(10).then(() => Promise.resolve('data')) : skipToken, retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 7dfaa587721..9d2731e690a 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -2,7 +2,7 @@ import { ensureQueryFn, noop, replaceData, - resolveEnabled, + resolveQueryBoolean, resolveStaleTime, skipToken, timeUntilStale, @@ -271,7 +271,8 @@ export class Query< isActive(): boolean { return this.observers.some( - (observer) => resolveEnabled(observer.options.enabled, this) !== false, + (observer) => + resolveQueryBoolean(observer.options.enabled, this) !== false, ) } diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index fa950bcfff3..954c969d548 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -8,7 +8,7 @@ import { isValidTimeout, noop, replaceData, - resolveEnabled, + resolveQueryBoolean, resolveStaleTime, shallowEqualObjects, timeUntilStale, @@ -153,7 +153,7 @@ export class QueryObserver< this.options.enabled !== undefined && typeof this.options.enabled !== 'boolean' && typeof this.options.enabled !== 'function' && - typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== + typeof resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== 'boolean' ) { throw new Error( @@ -197,8 +197,8 @@ export class QueryObserver< if ( mounted && (this.#currentQuery !== prevQuery || - resolveEnabled(this.options.enabled, this.#currentQuery) !== - resolveEnabled(prevOptions.enabled, this.#currentQuery) || + resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== + resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery)) ) { @@ -211,8 +211,8 @@ export class QueryObserver< if ( mounted && (this.#currentQuery !== prevQuery || - resolveEnabled(this.options.enabled, this.#currentQuery) !== - resolveEnabled(prevOptions.enabled, this.#currentQuery) || + resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== + resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval) ) { this.#updateRefetchInterval(nextRefetchInterval) @@ -394,7 +394,7 @@ export class QueryObserver< if ( environmentManager.isServer() || - resolveEnabled(this.options.enabled, this.#currentQuery) === false || + resolveQueryBoolean(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0 ) { @@ -589,7 +589,7 @@ export class QueryObserver< isStale: isStale(query, options), refetch: this.refetch, promise: this.#currentThenable, - isEnabled: resolveEnabled(options.enabled, query) !== false, + isEnabled: resolveQueryBoolean(options.enabled, query) !== false, } const nextResult = result as QueryObserverResult @@ -750,9 +750,12 @@ function shouldLoadOnMount( options: QueryObserverOptions, ): boolean { return ( - resolveEnabled(options.enabled, query) !== false && + resolveQueryBoolean(options.enabled, query) !== false && query.state.data === undefined && - !(query.state.status === 'error' && options.retryOnMount === false) + !( + query.state.status === 'error' && + resolveQueryBoolean(options.retryOnMount, query) === false + ) ) } @@ -775,7 +778,7 @@ function shouldFetchOn( (typeof options)['refetchOnReconnect'], ) { if ( - resolveEnabled(options.enabled, query) !== false && + resolveQueryBoolean(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== 'static' ) { const value = typeof field === 'function' ? field(query) : field @@ -793,7 +796,7 @@ function shouldFetchOptionally( ): boolean { return ( (query !== prevQuery || - resolveEnabled(prevOptions.enabled, query) === false) && + resolveQueryBoolean(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options) ) @@ -804,7 +807,7 @@ function isStale( options: QueryObserverOptions, ): boolean { return ( - resolveEnabled(options.enabled, query) !== false && + resolveQueryBoolean(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query)) ) } diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 4f3f4caed20..7e7aab7df46 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -110,7 +110,7 @@ export type StaleTimeFunction< | StaleTime | ((query: Query) => StaleTime) -export type Enabled< +export type QueryBooleanOption< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, @@ -326,7 +326,7 @@ export interface QueryObserverOptions< * Accepts a boolean or function that returns a boolean. * Defaults to `true`. */ - enabled?: Enabled + enabled?: QueryBooleanOption /** * The time in milliseconds after data is considered stale. * If set to `Infinity`, the data will never be considered stale. @@ -391,9 +391,10 @@ export interface QueryObserverOptions< ) => boolean | 'always') /** * If set to `false`, the query will not be retried on mount if it contains an error. + * If set to a function, the function will be executed with the query to compute the value. * Defaults to `true`. */ - retryOnMount?: boolean + retryOnMount?: QueryBooleanOption /** * If set, the component will only re-render if any of the listed properties change. * When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change. diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index b29e8ded456..b97b2cc5a33 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -1,10 +1,10 @@ import { timeoutManager } from './timeoutManager' import type { DefaultError, - Enabled, FetchStatus, MutationKey, MutationStatus, + QueryBooleanOption, QueryFunction, QueryKey, QueryOptions, @@ -126,16 +126,18 @@ export function resolveStaleTime< return typeof staleTime === 'function' ? staleTime(query) : staleTime } -export function resolveEnabled< +export function resolveQueryBoolean< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - enabled: undefined | Enabled, + option: + | undefined + | QueryBooleanOption, query: Query, ): boolean | undefined { - return typeof enabled === 'function' ? enabled(query) : enabled + return typeof option === 'function' ? option(query) : option } export function matchQuery( diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index 016e7f34d01..f9973bba2cc 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -829,7 +829,7 @@ describe('QueryErrorResetBoundary', () => { }), retry: false, throwOnError: true, - retryOnMount: true, + retryOnMount: () => true, }, ], }) @@ -894,7 +894,7 @@ describe('QueryErrorResetBoundary', () => { return 'data' }), retry: false, - retryOnMount: true, + retryOnMount: () => true, }, ], }) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 7ebb2124eb8..7504b9b4cb0 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -4898,7 +4898,7 @@ describe('useQuery', () => { queryFn, enabled, retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) @@ -4959,7 +4959,7 @@ describe('useQuery', () => { } }, retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) @@ -5013,7 +5013,7 @@ describe('useQuery', () => { queryFn: () => sleep(10).then(() => Promise.reject(new Error('Error'))), retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) @@ -5996,7 +5996,7 @@ describe('useQuery', () => { queryKey: key, queryFn, retry: false, - retryOnMount: false, + retryOnMount: () => false, }) states.push(state) @@ -6419,7 +6419,7 @@ describe('useQuery', () => { ? () => sleep(10).then(() => Promise.resolve('data')) : skipToken, retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, }) @@ -6729,7 +6729,7 @@ describe('useQuery', () => { queryKey: key, queryFn, throwOnError: () => false, - retryOnMount: true, + retryOnMount: () => true, staleTime: Infinity, retry: false, }) @@ -6775,7 +6775,7 @@ describe('useQuery', () => { queryKey: key, queryFn, throwOnError: () => true, - retryOnMount: true, + retryOnMount: () => true, staleTime: Infinity, retry: false, }) @@ -6846,7 +6846,7 @@ describe('useQuery', () => { const { status, error } = useQuery({ queryKey: key, queryFn, - throwOnError: (err) => err.message.includes('404'), + throwOnError: (error) => error.message.includes('404'), retryOnMount: true, staleTime: Infinity, retry: false, @@ -6883,6 +6883,87 @@ describe('useQuery', () => { expect(queryFn).toHaveBeenCalledTimes(2) }) + it('should pass the query to retryOnMount callback', async () => { + const key = queryKey() + const queryFn = vi.fn().mockRejectedValue(new Error('oops')) + const retryOnMount = vi.fn((query) => query.state.status !== 'error') + + function Page() { + const { status } = useQuery({ + queryKey: key, + queryFn, + retry: false, + retryOnMount, + }) + + return
{status}
+ } + + const rendered1 = renderWithClient(queryClient, ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered1.getByText('error')).toBeInTheDocument() + rendered1.unmount() + + renderWithClient(queryClient, ) + await vi.advanceTimersByTimeAsync(0) + + expect(retryOnMount).toHaveBeenCalled() + const query = retryOnMount.mock.calls.at(-1)![0] + expect(query.state.status).toBe('error') + expect(query.state.data).toBeUndefined() + expect(queryFn).toHaveBeenCalledTimes(1) + }) + + it('should not call retryOnMount callback when the query has data', async () => { + const key = queryKey() + let count = 0 + const retryOnMount = vi.fn(() => false) + const queryFn = vi.fn().mockImplementation(async () => { + await sleep(10) + count++ + if (count === 1) { + return 'data' + } + throw new Error('oops') + }) + + function Page() { + const { data, error, refetch } = useQuery({ + queryKey: key, + queryFn, + retry: false, + staleTime: 0, + refetchOnMount: true, + retryOnMount, + }) + + return ( +
+
{data ?? 'no data'}
+
{error instanceof Error ? error.message : 'no error'}
+ +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() + expect(rendered.getByText('oops')).toBeInTheDocument() + + rendered.unmount() + + renderWithClient(queryClient, ) + await vi.advanceTimersByTimeAsync(11) + + expect(retryOnMount).not.toHaveBeenCalled() + expect(queryFn).toHaveBeenCalledTimes(3) + }) + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { const key = queryKey() const queryFn = vi diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 0edb42fd97f..745a9ab1cc2 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -5059,7 +5059,7 @@ describe('useQuery', () => { queryFn, enabled: props.enabled, retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, })) @@ -5126,7 +5126,7 @@ describe('useQuery', () => { props.id % 2 === 1 ? Promise.reject(new Error('Error')) : 'data', ), retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, })) @@ -5186,7 +5186,7 @@ describe('useQuery', () => { queryKey: [props.id], queryFn: () => sleep(10).then(() => Promise.reject(new Error('Error'))), retry: false, - retryOnMount: false, + retryOnMount: () => false, refetchOnMount: false, refetchOnWindowFocus: false, })) @@ -6188,7 +6188,7 @@ describe('useQuery', () => { queryKey: key, queryFn, retry: false, - retryOnMount: false, + retryOnMount: () => false, })) createRenderEffect(() => { diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index ee8bc8c2e5b..bc0d578aebb 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -2,9 +2,9 @@ import type { DeepUnwrapRef, MaybeRefOrGetter, ShallowOption } from './types' import type { DataTag, DefaultError, - Enabled, InitialDataFunction, NonUndefinedGuard, + QueryBooleanOption, QueryKey, QueryObserverOptions, } from '@tanstack/query-core' @@ -25,7 +25,7 @@ export type QueryOptions< >]: Property extends 'enabled' ? | MaybeRefOrGetter - | (() => Enabled< + | (() => QueryBooleanOption< TQueryFnData, TError, TQueryData, diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index a64d5fc2d75..116e91baefe 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -3,9 +3,9 @@ import { useBaseQuery } from './useBaseQuery' import type { DefaultError, DefinedQueryObserverResult, - Enabled, InitialDataFunction, NonUndefinedGuard, + QueryBooleanOption, QueryKey, QueryObserverOptions, } from '@tanstack/query-core' @@ -36,7 +36,7 @@ export type UseQueryOptions< >]: Property extends 'enabled' ? | MaybeRefOrGetter - | (() => Enabled< + | (() => QueryBooleanOption< TQueryFnData, TError, TQueryData, From ad517e5564c562346979ba58aa3556359f68bb11 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 15:15:00 +0200 Subject: [PATCH 170/414] ci: Version Packages (#10567) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/silver-places-pick.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 439 insertions(+), 275 deletions(-) delete mode 100644 .changeset/silver-places-pick.md diff --git a/.changeset/silver-places-pick.md b/.changeset/silver-places-pick.md deleted file mode 100644 index 04d201a72fd..00000000000 --- a/.changeset/silver-places-pick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': minor ---- - -feat(query-core): accept callback function for retryOnMount diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index d979cc0914e..22e554cad2a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 5fe9eb11073..eb543473f9e 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", - "@tanstack/angular-query-persist-client": "^5.99.2", - "@tanstack/query-async-storage-persister": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-persist-client": "^5.100.0", + "@tanstack/query-async-storage-persister": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 689629dedea..95daf083023 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index ebd3f539252..056006e31c2 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 185f4699db9..65b24302224 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 54ae397c878..e3d58648e7b 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index cffeab04ac0..970f50290e7 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index f33d877dc2e..f345831bab9 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index dd224e80df3..67b3a3e4176 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 2dd24f9c0be..695f9e3b38b 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 71a88482471..dc6d7b223ad 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 66ffa9a29d0..102ff2aa93f 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.99.2", + "@tanstack/preact-query": "^5.100.0", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 671c736b50e..057c2887739 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.2", + "@tanstack/eslint-plugin-query": "^5.100.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 7ab5a241e19..4cf50777512 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 7afae88dff6..05af98ac90b 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index cac587d40a6..54540ec2027 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.2", - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", - "@tanstack/react-query-persist-client": "^5.99.2", + "@tanstack/query-async-storage-persister": "^5.100.0", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query-persist-client": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.2", + "@tanstack/eslint-plugin-query": "^5.100.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 332f4f545f4..29ab2eb56ad 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 3c2dd5572c7..046aeb4a766 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 5d0e8e3f794..2c570b3c6e4 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index cf05a1c395e..47be07cd227 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.2", - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", - "@tanstack/react-query-persist-client": "^5.99.2", + "@tanstack/query-async-storage-persister": "^5.100.0", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query-persist-client": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.2", + "@tanstack/eslint-plugin-query": "^5.100.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index b13de5b7f54..6fb6946ecec 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", + "@tanstack/react-query": "^5.100.0", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.2", + "@tanstack/eslint-plugin-query": "^5.100.0", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 88858e7e5cb..51fd4f6d3a9 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 242fab9b063..6bc866dc261 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 4de42b8709f..758055bccb6 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 4ded0473c38..456ff2d6271 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", - "@tanstack/react-query-next-experimental": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query-next-experimental": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index ec1cce036ac..55bfcd6b982 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 3907a2c0ea4..319618c579e 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.2", + "@tanstack/query-async-storage-persister": "^5.100.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", - "@tanstack/react-query-persist-client": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query-persist-client": "^5.100.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index bda889c091f..b7814836855 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 1b45c5aea16..13749f473b5 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 5847159f17f..5e627335d53 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 5b363cc524c..47dd9f0faec 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index f1e8e149d92..e72e032d24c 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 6eed8920cd4..b33ecdbc0a8 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 7a746dbc0c0..d2e4ef6fd34 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index b2eb96cf05e..2975cd1414c 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 3adaa520674..462ca2fb083 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 1c78cfbdb6c..d82284e73d8 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 5a9dc31e182..6e757d4d227 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 3f00ec47d5e..47e374359be 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.99.2", - "@tanstack/react-query-devtools": "^5.99.2", + "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query-devtools": "^5.100.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 6704a82ccc6..824e3deed7c 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.99.2", - "@tanstack/solid-query-devtools": "^5.99.2", + "@tanstack/solid-query": "^5.100.0", + "@tanstack/solid-query-devtools": "^5.100.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index ea95b976cc1..8c2cd21e995 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.2", - "@tanstack/solid-query-devtools": "^5.99.2", + "@tanstack/solid-query": "^5.100.0", + "@tanstack/solid-query-devtools": "^5.100.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 3cc588bead4..bc4bb455bc1 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.2", - "@tanstack/solid-query-devtools": "^5.99.2", + "@tanstack/solid-query": "^5.100.0", + "@tanstack/solid-query-devtools": "^5.100.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 1b710968bb2..3ee394531b5 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.2", - "@tanstack/solid-query-devtools": "^5.99.2", + "@tanstack/solid-query": "^5.100.0", + "@tanstack/solid-query-devtools": "^5.100.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 0e2c31eaf53..fd95d74ff72 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.2", - "@tanstack/solid-query": "^5.99.2", - "@tanstack/solid-query-devtools": "^5.99.2", - "@tanstack/solid-query-persist-client": "^5.99.2", + "@tanstack/query-async-storage-persister": "^5.100.0", + "@tanstack/solid-query": "^5.100.0", + "@tanstack/solid-query-devtools": "^5.100.0", + "@tanstack/solid-query-persist-client": "^5.100.0", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index f82fd825ff2..fac1113ee70 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.99.2", - "@tanstack/solid-query-devtools": "^5.99.2", + "@tanstack/solid-query": "^5.100.0", + "@tanstack/solid-query-devtools": "^5.100.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.99.2", + "@tanstack/eslint-plugin-query": "^5.100.0", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index cb29acd1a78..fb6616e3cfb 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.99.2", - "@tanstack/solid-query-devtools": "^5.99.2", + "@tanstack/solid-query": "^5.100.0", + "@tanstack/solid-query-devtools": "^5.100.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 63a447a7dea..3b2fb08924e 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18" + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 3ad1dea2cc1..dd6b43f1c60 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.99.2", - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18", - "@tanstack/svelte-query-persist-client": "^6.1.18" + "@tanstack/query-async-storage-persister": "^5.100.0", + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19", + "@tanstack/svelte-query-persist-client": "^6.1.19" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 4d214dd6271..71053d77711 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18" + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 02ce8bfd95c..f3139dbc73e 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18" + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 7a9b5378623..b0f3ef92e2d 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18" + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 6eab9564b72..0196f1adac4 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18" + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 7f717c9ef26..bf780050d71 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18" + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 652378e7c1e..1c5044076dc 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.18", - "@tanstack/svelte-query-devtools": "^6.1.18" + "@tanstack/svelte-query": "^6.1.19", + "@tanstack/svelte-query-devtools": "^6.1.19" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index fd24a730dec..583cc66dbe3 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.2", - "@tanstack/vue-query-devtools": "^6.1.18", + "@tanstack/vue-query": "^5.100.0", + "@tanstack/vue-query-devtools": "^6.1.19", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index a62b95df841..800f96a8018 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.2", + "@tanstack/vue-query": "^5.100.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 0c3f1405647..aa30fb877ff 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.99.2", - "@tanstack/query-persist-client-core": "^5.99.2", - "@tanstack/query-sync-storage-persister": "^5.99.2", - "@tanstack/vue-query": "^5.99.2", + "@tanstack/query-core": "^5.100.0", + "@tanstack/query-persist-client-core": "^5.100.0", + "@tanstack/query-sync-storage-persister": "^5.100.0", + "@tanstack/vue-query": "^5.100.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 6546ece226f..af86c51dc43 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.99.2", - "@tanstack/vue-query-devtools": "^6.1.18", + "@tanstack/vue-query": "^5.100.0", + "@tanstack/vue-query-devtools": "^6.1.19", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 51b47e863ef..c5e6dcd40c0 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.99.2", + "@tanstack/angular-query-experimental": "^5.100.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index ed5d84f234b..f2869d50116 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 3c62b5e386c..78e8a75efcb 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.99.2", + "version": "5.100.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 7d364b834ea..f8f2f1ce26e 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.0 + - @tanstack/query-persist-client-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 4756b7cf509..ae6b2edd1ea 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.99.2", + "version": "5.100.0", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 62f70edcc48..9ccf32755d3 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.0 + ## 5.99.2 ## 5.99.1 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 13cb83c1bf6..558a9fc0c44 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.99.2", + "version": "5.100.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 869163f22be..4237f42574e 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.0 + - @tanstack/query-devtools@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 86e7d53f5cf..2ac5ce88555 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.99.2", + "version": "5.100.0", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 55c5b263fb4..2e0d4e98477 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.0 + - @tanstack/query-persist-client-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index af8e4442c51..71b7ea15a6f 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.99.2", + "version": "5.100.0", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 6731a969054..58ae68c6973 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 38132c82885..8c41b86453f 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.99.2", + "version": "5.100.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 013c7a933ac..4f128a8145e 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + - @tanstack/query-persist-client-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index b7a3b35fb96..a5255cc81f9 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.99.2", + "version": "5.100.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index d1cfb3c909c..72f4379826e 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index c295b1dae2b..58e58f869f7 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.99.2", + "version": "5.100.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 8045a35bec6..a3081678e65 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.100.0 + +### Minor Changes + +- feat(query-core): accept callback function for retryOnMount ([#10515](https://github.com/TanStack/query/pull/10515)) + ## 5.99.2 ## 5.99.1 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index b1c55ac0370..f081f6a8530 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.99.2", + "version": "5.100.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index b691076bc22..5a6cec10363 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.0 + ## 5.99.2 ## 5.99.1 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 3c508c0ff29..354a5b920c0 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.99.2", + "version": "5.100.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 801b0f1919b..78fc990f6c6 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index fbfedc6b4ea..5d261205f4e 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.99.2", + "version": "5.100.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index f1d74c31b98..89dc8e34082 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + - @tanstack/query-persist-client-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 4b482b6b6b0..8c6eb894b94 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.99.2", + "version": "5.100.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 3340c45ac53..86b6ccb0b10 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.0 + - @tanstack/react-query@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index ef74ccca27c..67f393d5a25 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.99.2", + "version": "5.100.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index e2720d693f1..10276935b49 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 10721005580..75fa1762f5a 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.99.2", + "version": "5.100.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 3a1fe5045fb..1cc7c4a40bd 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.0 + - @tanstack/react-query@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index ac0d01b2aec..3e59fb2cfe3 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.99.2", + "version": "5.100.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index da3037f8379..bd24cc5a15b 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index a3530e0bc9c..7ab8703731d 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.99.2", + "version": "5.100.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index a949186a9f3..d1a83dea2d8 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.0 + - @tanstack/solid-query@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index c931eba3b96..871adb906cb 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.99.2", + "version": "5.100.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 661c51bbdca..1016a6d4426 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.0 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.0 + - @tanstack/solid-query@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 465628e2651..47a50f53113 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.99.2", + "version": "5.100.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 5a332a6893a..84ebe72893d 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 31d235e92bd..25586898156 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.99.2", + "version": "5.100.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 5d0179480a7..90acb5e5dd5 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.19 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.0 + - @tanstack/svelte-query@6.1.19 + ## 6.1.18 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 7e8091b56bd..a67e8b31090 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.18", + "version": "6.1.19", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 0e99bda9119..67c7d5be20d 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.19 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.0 + - @tanstack/svelte-query@6.1.19 + ## 6.1.18 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 6579266c9d2..7e49a291ac9 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.18", + "version": "6.1.19", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index ccf5d846df9..0a0c8c21417 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.19 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 6.1.18 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index ca7e198485c..1d8238989af 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.18", + "version": "6.1.19", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 08afe5f188e..e9440bf41eb 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.19 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.0 + - @tanstack/vue-query@5.100.0 + ## 6.1.18 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index bf5476f731d..d5f9bc5f637 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.18", + "version": "6.1.19", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index dd03c4314a1..80b92b63aea 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.0 + +### Patch Changes + +- Updated dependencies [[`6540a41`](https://github.com/TanStack/query/commit/6540a4126b1c087d86d64525e78f32d9920dcd31)]: + - @tanstack/query-core@5.100.0 + ## 5.99.2 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 90aa817d606..a6e4315fd56 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.99.2", + "version": "5.100.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36ee677fbd2..cfdf73760c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.18 + specifier: ^6.1.19 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.99.2 + specifier: ^5.100.0 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 1bb0d234280fd4ae1725c439088426a20593a8df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Thu, 23 Apr 2026 15:54:30 +0200 Subject: [PATCH 171/414] fix(query-core): fix hydration bugs for already resolved promises (#10444) --- .changeset/shy-wings-buy.md | 5 + .../src/__tests__/hydration.test.tsx | 173 ++++++++++++++++++ packages/query-core/src/hydration.ts | 28 ++- 3 files changed, 201 insertions(+), 5 deletions(-) create mode 100644 .changeset/shy-wings-buy.md diff --git a/.changeset/shy-wings-buy.md b/.changeset/shy-wings-buy.md new file mode 100644 index 00000000000..7710365f635 --- /dev/null +++ b/.changeset/shy-wings-buy.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +Fix bugs where hydrating queries with promises that had already resolved could cause queries to briefly and incorrectly show as pending/fetching diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index 505c6c26da7..c9ab0711e84 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -1385,4 +1385,177 @@ describe('dehydration and rehydration', () => { // error and test will fail await originalPromise }) + + // Companion to the test above: when the query already exists in the cache + // (e.g. after an initial render or a first hydration pass), the same + // synchronous thenable resolution must also produce status: 'success'. + // Previously the if (query) branch would spread status: 'pending' from the + // server state without correcting it for the resolved data. + it('should set status to success when rehydrating an existing pending query with a synchronously resolved promise', async () => { + const key = queryKey() + // --- server --- + + const serverQueryClient = new QueryClient({ + defaultOptions: { + dehydrate: { shouldDehydrateQuery: () => true }, + }, + }) + + let resolvePrefetch: undefined | ((value?: unknown) => void) + const prefetchPromise = new Promise((res) => { + resolvePrefetch = res + }) + // Keep the query pending so it dehydrates with status: 'pending' and a promise + void serverQueryClient.prefetchQuery({ + queryKey: key, + queryFn: () => prefetchPromise, + }) + + const dehydrated = dehydrate(serverQueryClient) + expect(dehydrated.queries[0]?.state.status).toBe('pending') + + // Simulate a synchronous thenable – models a React streaming promise that + // resolved before the second hydrate() call. + resolvePrefetch?.('server data') + // @ts-expect-error + dehydrated.queries[0].promise.then = (cb) => { + cb?.('server data') + // @ts-expect-error + return dehydrated.queries[0].promise + } + + // --- client --- + // Query already exists in the cache in a pending state, as it would after + // a first hydration pass or an initial render. + const clientQueryClient = new QueryClient() + void clientQueryClient.prefetchQuery({ + queryKey: key, + queryFn: () => { + throw new Error('QueryFn on client should not be called') + }, + }) + + const query = clientQueryClient.getQueryCache().find({ queryKey: key })! + expect(query.state.status).toBe('pending') + + hydrate(clientQueryClient, dehydrated) + + expect(clientQueryClient.getQueryData(key)).toBe('server data') + expect(query.state.status).toBe('success') + + clientQueryClient.clear() + serverQueryClient.clear() + }) + + it('should not transition to a fetching/pending state when hydrating an already resolved promise into a new query', async () => { + const key = queryKey() + // --- server --- + const serverQueryClient = new QueryClient({ + defaultOptions: { + dehydrate: { shouldDehydrateQuery: () => true }, + }, + }) + + let resolvePrefetch: undefined | ((value?: unknown) => void) + const prefetchPromise = new Promise((res) => { + resolvePrefetch = res + }) + void serverQueryClient.prefetchQuery({ + queryKey: key, + queryFn: () => prefetchPromise, + }) + const dehydrated = dehydrate(serverQueryClient) + + // Simulate a synchronous thenable – the promise was already resolved + // before we hydrate on the client + resolvePrefetch?.('server data') + // @ts-expect-error + dehydrated.queries[0].promise.then = (cb) => { + cb?.('server data') + // @ts-expect-error + return dehydrated.queries[0].promise + } + + // --- client --- + const clientQueryClient = new QueryClient() + + const states: Array<{ status: string; fetchStatus: string }> = [] + const unsubscribe = clientQueryClient.getQueryCache().subscribe((event) => { + if (event.type === 'updated') { + const { status, fetchStatus } = event.query.state + states.push({ status, fetchStatus }) + } + }) + + hydrate(clientQueryClient, dehydrated) + await vi.advanceTimersByTimeAsync(0) + unsubscribe() + + expect(states).not.toContainEqual( + expect.objectContaining({ fetchStatus: 'fetching' }), + ) + expect(states).not.toContainEqual( + expect.objectContaining({ status: 'pending' }), + ) + + clientQueryClient.clear() + serverQueryClient.clear() + }) + + it('should not transition to a fetching/pending state when hydrating an already resolved promise into an existing query', async () => { + const key = queryKey() + // --- server --- + const serverQueryClient = new QueryClient({ + defaultOptions: { + dehydrate: { shouldDehydrateQuery: () => true }, + }, + }) + + let resolvePrefetch: undefined | ((value?: unknown) => void) + const prefetchPromise = new Promise((res) => { + resolvePrefetch = res + }) + void serverQueryClient.prefetchQuery({ + queryKey: key, + queryFn: () => prefetchPromise, + }) + const dehydrated = dehydrate(serverQueryClient) + + // Simulate a synchronous thenable – the promise was already resolved + // before we hydrate on the client + resolvePrefetch?.('server data') + // @ts-expect-error + dehydrated.queries[0].promise.then = (cb) => { + cb?.('server data') + // @ts-expect-error + return dehydrated.queries[0].promise + } + + // --- client --- + // Pre-populate with old data (updatedAt: 0 ensures dehydratedAt is newer) + const clientQueryClient = new QueryClient() + clientQueryClient.setQueryData(key, 'old data', { updatedAt: 0 }) + + const states: Array<{ status: string; fetchStatus: string }> = [] + const unsubscribe = clientQueryClient.getQueryCache().subscribe((event) => { + if (event.type === 'updated') { + const { status, fetchStatus } = event.query.state + states.push({ status, fetchStatus }) + } + }) + + hydrate(clientQueryClient, dehydrated) + await vi.advanceTimersByTimeAsync(0) + unsubscribe() + + expect(states).not.toContainEqual( + expect.objectContaining({ fetchStatus: 'fetching' }), + ) + expect(states).not.toContainEqual( + expect.objectContaining({ status: 'pending' }), + ) + + clientQueryClient.clear() + serverQueryClient.clear() + }) }) diff --git a/packages/query-core/src/hydration.ts b/packages/query-core/src/hydration.ts index c75d8ee332c..73678f04766 100644 --- a/packages/query-core/src/hydration.ts +++ b/packages/query-core/src/hydration.ts @@ -230,12 +230,24 @@ export function hydrate( state.dataUpdatedAt > query.state.dataUpdatedAt || hasNewerSyncData ) { - // omit fetchStatus from dehydrated state - // so that query stays in its current fetchStatus + // Omit fetchStatus from dehydrated state so that query stays in its current fetchStatus const { fetchStatus: _ignored, ...serializedState } = state query.setState({ ...serializedState, data, + // If the query was pending at the moment of dehydration, but resolved to have data + // before hydration, we can assume the query should be hydrated as successful. + // + // Since you can opt into dehydrating failed queries, and those can have data from + // previous successful fetches, we make sure we only do this for pending queries. + ...(state.status === 'pending' && + data !== undefined && { + status: 'success' as const, + // Preserve existing fetchStatus if the existing query is actively fetching. + ...(!existingQueryIsFetching && { + fetchStatus: 'idle' as const, + }), + }), }) } } else { @@ -255,13 +267,21 @@ export function hydrate( ...state, data, fetchStatus: 'idle', - status: data !== undefined ? 'success' : state.status, + // Like above, if the query was pending at the moment of dehydration but has data, + // we can assume it should be hydrated as successful. + status: + state.status === 'pending' && data !== undefined + ? 'success' + : state.status, }, ) } if ( promise && + // If the data was synchronously available, there is no need to set up + // a retryer and thus no reason to call fetch + !syncData && !existingQueryIsPending && !existingQueryIsFetching && // Only hydrate if dehydration is newer than any existing data, @@ -270,8 +290,6 @@ export function hydrate( ) { // This doesn't actually fetch - it just creates a retryer // which will re-use the passed `initialPromise` - // Note that we need to call these even when data was synchronously - // available, as we still need to set up the retryer query .fetch(undefined, { // RSC transformed promises are not thenable From 2f9527ed76306a0a73af452724da8906ad1c10aa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 16:20:54 +0200 Subject: [PATCH 172/414] ci: Version Packages (#10568) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/shy-wings-buy.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 439 insertions(+), 275 deletions(-) delete mode 100644 .changeset/shy-wings-buy.md diff --git a/.changeset/shy-wings-buy.md b/.changeset/shy-wings-buy.md deleted file mode 100644 index 7710365f635..00000000000 --- a/.changeset/shy-wings-buy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -Fix bugs where hydrating queries with promises that had already resolved could cause queries to briefly and incorrectly show as pending/fetching diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 22e554cad2a..4b0cd3efeac 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index eb543473f9e..48c48d08d3d 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", - "@tanstack/angular-query-persist-client": "^5.100.0", - "@tanstack/query-async-storage-persister": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-persist-client": "^5.100.1", + "@tanstack/query-async-storage-persister": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 95daf083023..ecd44fb6af4 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 056006e31c2..e91145b0647 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 65b24302224..71245cdfa84 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index e3d58648e7b..d5cf2dcca8f 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 970f50290e7..67f7541c865 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index f345831bab9..5c3296d15e3 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 67b3a3e4176..4c73276035b 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 695f9e3b38b..8af0a41f4a7 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index dc6d7b223ad..04514de96db 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 102ff2aa93f..840e4c82ccc 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.0", + "@tanstack/preact-query": "^5.100.1", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 057c2887739..f4a4a0ac39c 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.0", + "@tanstack/eslint-plugin-query": "^5.100.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 4cf50777512..be561cab877 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 05af98ac90b..c783df6849b 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 54540ec2027..b2d7675caa3 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.0", - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", - "@tanstack/react-query-persist-client": "^5.100.0", + "@tanstack/query-async-storage-persister": "^5.100.1", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query-persist-client": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.0", + "@tanstack/eslint-plugin-query": "^5.100.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 29ab2eb56ad..fc8cec67b2a 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 046aeb4a766..b70c411bada 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 2c570b3c6e4..6a8fe3b8d11 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 47be07cd227..48a2d8a4017 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.0", - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", - "@tanstack/react-query-persist-client": "^5.100.0", + "@tanstack/query-async-storage-persister": "^5.100.1", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query-persist-client": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.0", + "@tanstack/eslint-plugin-query": "^5.100.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 6fb6946ecec..be0d58d4f39 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", + "@tanstack/react-query": "^5.100.1", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.0", + "@tanstack/eslint-plugin-query": "^5.100.1", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 51fd4f6d3a9..0ca1f4302ca 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 6bc866dc261..80796f1ec15 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 758055bccb6..b527d0616a2 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 456ff2d6271..f3aa1728059 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", - "@tanstack/react-query-next-experimental": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query-next-experimental": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 55bfcd6b982..0cfb341de44 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 319618c579e..cf63d12b842 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.0", + "@tanstack/query-async-storage-persister": "^5.100.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", - "@tanstack/react-query-persist-client": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query-persist-client": "^5.100.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index b7814836855..17c36ee5938 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 13749f473b5..6f721cfa6a6 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 5e627335d53..d90b1cec839 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 47dd9f0faec..1c6ec318f7f 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index e72e032d24c..e1dfb691fb4 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index b33ecdbc0a8..ab4c4065132 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index d2e4ef6fd34..7add38a9891 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 2975cd1414c..9386b9e9909 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 462ca2fb083..4a5de72fbda 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index d82284e73d8..509cfd9306b 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 6e757d4d227..68128d2d0ca 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 47e374359be..cabb7ea60da 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.0", - "@tanstack/react-query-devtools": "^5.100.0", + "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query-devtools": "^5.100.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 824e3deed7c..1fb056fc2a5 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.0", - "@tanstack/solid-query-devtools": "^5.100.0", + "@tanstack/solid-query": "^5.100.1", + "@tanstack/solid-query-devtools": "^5.100.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 8c2cd21e995..46c6910420b 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.0", - "@tanstack/solid-query-devtools": "^5.100.0", + "@tanstack/solid-query": "^5.100.1", + "@tanstack/solid-query-devtools": "^5.100.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index bc4bb455bc1..4eb9a39b42a 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.0", - "@tanstack/solid-query-devtools": "^5.100.0", + "@tanstack/solid-query": "^5.100.1", + "@tanstack/solid-query-devtools": "^5.100.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 3ee394531b5..fd3758668a0 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.0", - "@tanstack/solid-query-devtools": "^5.100.0", + "@tanstack/solid-query": "^5.100.1", + "@tanstack/solid-query-devtools": "^5.100.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index fd95d74ff72..23b96bf637a 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.0", - "@tanstack/solid-query": "^5.100.0", - "@tanstack/solid-query-devtools": "^5.100.0", - "@tanstack/solid-query-persist-client": "^5.100.0", + "@tanstack/query-async-storage-persister": "^5.100.1", + "@tanstack/solid-query": "^5.100.1", + "@tanstack/solid-query-devtools": "^5.100.1", + "@tanstack/solid-query-persist-client": "^5.100.1", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index fac1113ee70..a0a308eff0a 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.0", - "@tanstack/solid-query-devtools": "^5.100.0", + "@tanstack/solid-query": "^5.100.1", + "@tanstack/solid-query-devtools": "^5.100.1", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.0", + "@tanstack/eslint-plugin-query": "^5.100.1", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index fb6616e3cfb..932d770ff02 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.0", - "@tanstack/solid-query-devtools": "^5.100.0", + "@tanstack/solid-query": "^5.100.1", + "@tanstack/solid-query-devtools": "^5.100.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 3b2fb08924e..dd3e77c2db5 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19" + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index dd6b43f1c60..ed113154d28 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.0", - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19", - "@tanstack/svelte-query-persist-client": "^6.1.19" + "@tanstack/query-async-storage-persister": "^5.100.1", + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20", + "@tanstack/svelte-query-persist-client": "^6.1.20" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 71053d77711..d9a8a02a851 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19" + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index f3139dbc73e..95b2601067a 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19" + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index b0f3ef92e2d..37b6a21e7a7 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19" + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 0196f1adac4..f1593d234b9 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19" + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index bf780050d71..c68b74a8265 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19" + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 1c5044076dc..ff65b7a854e 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.19", - "@tanstack/svelte-query-devtools": "^6.1.19" + "@tanstack/svelte-query": "^6.1.20", + "@tanstack/svelte-query-devtools": "^6.1.20" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 583cc66dbe3..080c07220fd 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.0", - "@tanstack/vue-query-devtools": "^6.1.19", + "@tanstack/vue-query": "^5.100.1", + "@tanstack/vue-query-devtools": "^6.1.20", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 800f96a8018..ec84a4dc860 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.0", + "@tanstack/vue-query": "^5.100.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index aa30fb877ff..970b938dabf 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.0", - "@tanstack/query-persist-client-core": "^5.100.0", - "@tanstack/query-sync-storage-persister": "^5.100.0", - "@tanstack/vue-query": "^5.100.0", + "@tanstack/query-core": "^5.100.1", + "@tanstack/query-persist-client-core": "^5.100.1", + "@tanstack/query-sync-storage-persister": "^5.100.1", + "@tanstack/vue-query": "^5.100.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index af86c51dc43..93f34ed030c 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.0", - "@tanstack/vue-query-devtools": "^6.1.19", + "@tanstack/vue-query": "^5.100.1", + "@tanstack/vue-query-devtools": "^6.1.20", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index c5e6dcd40c0..4612add0c6d 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.0", + "@tanstack/angular-query-experimental": "^5.100.1", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index f2869d50116..0af3fa57cd4 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 78e8a75efcb..3149d93ec56 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.0", + "version": "5.100.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index f8f2f1ce26e..0a2f8d6fc5b 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.1 + - @tanstack/query-persist-client-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index ae6b2edd1ea..b51251b2b0c 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.0", + "version": "5.100.1", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 9ccf32755d3..8c8e71cf737 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.1 + ## 5.100.0 ## 5.99.2 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 558a9fc0c44..2f196d31adf 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.0", + "version": "5.100.1", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 4237f42574e..f09b432a7a9 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.1 + - @tanstack/query-devtools@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 2ac5ce88555..6948e9c5c14 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.0", + "version": "5.100.1", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 2e0d4e98477..a7b75f89e95 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.1 + - @tanstack/query-persist-client-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 71b7ea15a6f..5cf3fbfb053 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.0", + "version": "5.100.1", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 58ae68c6973..c794a71116a 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 8c41b86453f..5a294f057b9 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.0", + "version": "5.100.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 4f128a8145e..4cc1616c30e 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + - @tanstack/query-persist-client-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index a5255cc81f9..6448c5e9565 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.0", + "version": "5.100.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 72f4379826e..5d83c9899c8 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 58e58f869f7..d6792835e64 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.0", + "version": "5.100.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index a3081678e65..5a40eccba0e 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.100.1 + +### Patch Changes + +- Fix bugs where hydrating queries with promises that had already resolved could cause queries to briefly and incorrectly show as pending/fetching ([#10444](https://github.com/TanStack/query/pull/10444)) + ## 5.100.0 ### Minor Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index f081f6a8530..48aad906858 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.0", + "version": "5.100.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 5a6cec10363..be471237b1f 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.1 + ## 5.100.0 ## 5.99.2 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 354a5b920c0..245c99f9bb3 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.0", + "version": "5.100.1", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 78fc990f6c6..ca512bd3b8d 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 5d261205f4e..dd24198e969 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.0", + "version": "5.100.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 89dc8e34082..c7bb5c7f675 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + - @tanstack/query-persist-client-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 8c6eb894b94..c16c013f1c2 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.0", + "version": "5.100.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 86b6ccb0b10..c69c473d6a8 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.1 + - @tanstack/react-query@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 67f393d5a25..4cd085ed3b6 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.0", + "version": "5.100.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 10276935b49..8d674c4a4ca 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 75fa1762f5a..0e5eb7a53d2 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.0", + "version": "5.100.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 1cc7c4a40bd..faa699c04c3 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.1 + - @tanstack/react-query@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3e59fb2cfe3..0a15f116966 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.0", + "version": "5.100.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index bd24cc5a15b..f6a1e3668c9 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 7ab8703731d..4c07b89dfb2 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.0", + "version": "5.100.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index d1a83dea2d8..9407a830834 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.1 + - @tanstack/solid-query@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 871adb906cb..ed2acd709e5 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.0", + "version": "5.100.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 1016a6d4426..57ce7f78d3b 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.1 + - @tanstack/solid-query@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 47a50f53113..3cddabdf9d6 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.0", + "version": "5.100.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 84ebe72893d..525b9836dee 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 25586898156..112056eb8fc 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.0", + "version": "5.100.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 90acb5e5dd5..02d620ebef9 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.20 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.1 + - @tanstack/svelte-query@6.1.20 + ## 6.1.19 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index a67e8b31090..88cc5ff2f7f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.19", + "version": "6.1.20", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 67c7d5be20d..e00b1cbc040 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.20 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.1 + - @tanstack/svelte-query@6.1.20 + ## 6.1.19 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 7e49a291ac9..24e9df51737 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.19", + "version": "6.1.20", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 0a0c8c21417..dd8128ff38d 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.20 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 6.1.19 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 1d8238989af..980b9f2ff92 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.19", + "version": "6.1.20", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index e9440bf41eb..b0a787d544a 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.20 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.1 + - @tanstack/vue-query@5.100.1 + ## 6.1.19 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index d5f9bc5f637..5eb3d0e78ae 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.19", + "version": "6.1.20", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 80b92b63aea..13b8012342a 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.1 + +### Patch Changes + +- Updated dependencies [[`1bb0d23`](https://github.com/TanStack/query/commit/1bb0d234280fd4ae1725c439088426a20593a8df)]: + - @tanstack/query-core@5.100.1 + ## 5.100.0 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index a6e4315fd56..cd01e8723a6 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.0", + "version": "5.100.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cfdf73760c8..a826f0f6ba1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.19 + specifier: ^6.1.20 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.0 + specifier: ^5.100.1 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 41a7ab07e7d46d9ce685ccd5008e769cef23d075 Mon Sep 17 00:00:00 2001 From: palkim Date: Fri, 24 Apr 2026 16:32:44 +0900 Subject: [PATCH 173/414] test(query-core/utils): add tests for 'ensureQueryFn' with 'initialPromise' and 'skipToken' (#10527) * test(query-core/utils): add tests for 'ensureQueryFn' initialPromise fallback and skipToken handling * test(query-core/utils): use typed QueryFunctionContext in ensureQueryFn tests Replace the `(resolved as unknown as () => Promise<...>)()` double-cast with `resolved(context)` using a shared `QueryFunctionContext` fixture. Per review suggestions on #10527. --------- Co-authored-by: Wonsuk Choi --- .../query-core/src/__tests__/utils.test.tsx | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/packages/query-core/src/__tests__/utils.test.tsx b/packages/query-core/src/__tests__/utils.test.tsx index f9b0ee4fa07..69c72a50aa8 100644 --- a/packages/query-core/src/__tests__/utils.test.tsx +++ b/packages/query-core/src/__tests__/utils.test.tsx @@ -4,6 +4,7 @@ import { QueryClient } from '..' import { addToEnd, addToStart, + ensureQueryFn, hashKey, hashQueryKeyByOptions, isPlainArray, @@ -14,8 +15,10 @@ import { replaceEqualDeep, shallowEqualObjects, shouldThrowError, + skipToken, } from '../utils' import { Mutation } from '../mutation' +import type { QueryFunctionContext } from '..' describe('core/utils', () => { describe('hashQueryKeyByOptions', () => { @@ -534,6 +537,55 @@ describe('core/utils', () => { }) }) + describe('ensureQueryFn', () => { + const context = {} as QueryFunctionContext + + it('should return a function that resolves to initialPromise when queryFn is missing and initialPromise is provided', async () => { + const initialPromise = Promise.resolve('initial-data') + + const resolved = ensureQueryFn( + { queryHash: '["key"]' }, + { initialPromise }, + ) + + await expect(resolved(context)).resolves.toBe('initial-data') + }) + + it('should return a function that rejects when initialPromise rejects', async () => { + const error = new Error('initial-promise-error') + const initialPromise = Promise.reject(error) + + const resolved = ensureQueryFn( + { queryHash: '["key"]' }, + { initialPromise }, + ) + + await expect(resolved(context)).rejects.toBe(error) + }) + + it('should return a function that rejects with missing queryFn error when queryFn is set to skipToken', async () => { + const consoleErrorSpy = vi + .spyOn(console, 'error') + .mockImplementation(() => undefined) + + const resolved = ensureQueryFn({ + queryFn: skipToken, + queryHash: '["skip"]', + }) + + expect(consoleErrorSpy).toHaveBeenCalledWith( + expect.stringContaining( + 'Attempted to invoke queryFn when set to skipToken', + ), + ) + await expect(resolved(context)).rejects.toThrow( + 'Missing queryFn: \'["skip"]\'', + ) + + consoleErrorSpy.mockRestore() + }) + }) + describe('shouldThrowError', () => { it('should return the result of executing throwOnError if throwOnError parameter is a function', () => { const throwOnError = (error: Error) => error.message === 'test error' From 5ccd5975565231e1caacde02ba6601e442784f09 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 25 Apr 2026 13:37:48 +0900 Subject: [PATCH 174/414] test(angular-query-experimental/injectQuery): switch 'success' and 'reject' tests to '@Component' + 'render' pattern (#10572) * test(angular-query-experimental/injectQuery): switch 'success' and 'reject' tests to '@Component' + 'render' pattern * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/inject-query.test.ts | 73 ++++++++++++++----- 1 file changed, 53 insertions(+), 20 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 6d33aa86a77..82eb8f0f343 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -23,6 +23,7 @@ import { it, vi, } from 'vitest' +import { render } from '@testing-library/angular' import { queryKey, sleep } from '@tanstack/query-test-utils' import { lastValueFrom } from 'rxjs' import { @@ -285,42 +286,74 @@ describe('injectQuery', () => { it('should resolve to success and update signal: injectQuery()', async () => { const key = queryKey() - const query = TestBed.runInInjectionContext(() => { - return injectQuery(() => ({ + + @Component({ + template: ` +
status: {{ query.status() }}
+
data: {{ query.data() ?? 'none' }}
+
isPending: {{ query.isPending() }}
+
isFetching: {{ query.isFetching() }}
+
isFetched: {{ query.isFetched() }}
+
isSuccess: {{ query.isSuccess() }}
+ `, + }) + class Page { + readonly query = injectQuery(() => ({ queryKey: key, queryFn: () => sleep(10).then(() => 'result2'), })) - }) + } + + const rendered = await render(Page) await vi.advanceTimersByTimeAsync(11) - expect(query.status()).toBe('success') - expect(query.data()).toBe('result2') - expect(query.isPending()).toBe(false) - expect(query.isFetching()).toBe(false) - expect(query.isFetched()).toBe(true) - expect(query.isSuccess()).toBe(true) + rendered.fixture.detectChanges() + + expect(rendered.getByText('status: success')).toBeInTheDocument() + expect(rendered.getByText('data: result2')).toBeInTheDocument() + expect(rendered.getByText('isPending: false')).toBeInTheDocument() + expect(rendered.getByText('isFetching: false')).toBeInTheDocument() + expect(rendered.getByText('isFetched: true')).toBeInTheDocument() + expect(rendered.getByText('isSuccess: true')).toBeInTheDocument() }) it('should reject and update signal', async () => { const key = queryKey() - const query = TestBed.runInInjectionContext(() => { - return injectQuery(() => ({ + + @Component({ + template: ` +
status: {{ query.status() }}
+
data: {{ query.data() ?? 'none' }}
+
error: {{ query.error()?.message ?? 'none' }}
+
isPending: {{ query.isPending() }}
+
isFetching: {{ query.isFetching() }}
+
isError: {{ query.isError() }}
+
failureCount: {{ query.failureCount() }}
+
failureReason: {{ query.failureReason()?.message ?? 'none' }}
+ `, + }) + class Page { + readonly query = injectQuery(() => ({ retry: false, queryKey: key, queryFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), })) - }) + } + + const rendered = await render(Page) await vi.advanceTimersByTimeAsync(11) - expect(query.status()).toBe('error') - expect(query.data()).toBe(undefined) - expect(query.error()).toMatchObject({ message: 'Some error' }) - expect(query.isPending()).toBe(false) - expect(query.isFetching()).toBe(false) - expect(query.isError()).toBe(true) - expect(query.failureCount()).toBe(1) - expect(query.failureReason()).toMatchObject({ message: 'Some error' }) + rendered.fixture.detectChanges() + + expect(rendered.getByText('status: error')).toBeInTheDocument() + expect(rendered.getByText('data: none')).toBeInTheDocument() + expect(rendered.getByText('error: Some error')).toBeInTheDocument() + expect(rendered.getByText('isPending: false')).toBeInTheDocument() + expect(rendered.getByText('isFetching: false')).toBeInTheDocument() + expect(rendered.getByText('isError: true')).toBeInTheDocument() + expect(rendered.getByText('failureCount: 1')).toBeInTheDocument() + expect(rendered.getByText('failureReason: Some error')).toBeInTheDocument() }) it('should update query on options contained signal change', async () => { From d6a7bf3e3e024c1a77d0536813238cc8007a5fa7 Mon Sep 17 00:00:00 2001 From: kimchosule Date: Sat, 25 Apr 2026 18:09:35 +0900 Subject: [PATCH 175/414] Fix/infinite query hydration 8825 (#10074) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: preserve infinite query behavior during SSR hydration (#8825) * chore: add changeset for #8825 * refactor: apply review feedback - Remove isRejectedThenable check - Inline behavior assignment * refactor: remove unnecessary `any` type assertions * refactor: store query type in Query instead of injecting behavior - Add a type field to Query, set from the _type marker - In Query.fetch(), apply infiniteQueryBehavior automatically when type === 'infiniteQuery' - Remove direct behavior injection from infiniteQueryObserver, fetchInfiniteQuery, ensureInfiniteQueryData, and hydrate() - In hydrate(), pass the _type marker instead of behavior to fix a regression where user-provided hydrate defaultOptions.queries.behavior could be overwritten - Add regression tests for the SSR -> dehydrate -> hydrate -> refetch flow * ci: apply automated fixes * ref: use optional type: 'infinite' everywhere * fix: don't send full queries into queryClient methods * fix: let's stick with queryType as the public name * fix: test -> it --------- Co-authored-by: kimchosule Co-authored-by: Dominik Dorfmeister 🔮 Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/stupid-seals-live.md | 5 + .../src/__tests__/hydration.test.tsx | 246 ++++++++++++++++++ .../__tests__/infiniteQueryObserver.test.tsx | 3 +- packages/query-core/src/hydration.ts | 13 +- .../query-core/src/infiniteQueryObserver.ts | 14 +- packages/query-core/src/query.ts | 18 +- packages/query-core/src/queryClient.ts | 15 +- packages/query-core/src/types.ts | 1 + packages/query-devtools/src/Devtools.tsx | 19 +- packages/vue-query/src/devtools/devtools.ts | 5 +- 10 files changed, 307 insertions(+), 32 deletions(-) create mode 100644 .changeset/stupid-seals-live.md diff --git a/.changeset/stupid-seals-live.md b/.changeset/stupid-seals-live.md new file mode 100644 index 00000000000..e7441349695 --- /dev/null +++ b/.changeset/stupid-seals-live.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +fix: preserve infinite query behavior during SSR hydration (#8825) diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index c9ab0711e84..c64cb10da53 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -1386,6 +1386,252 @@ describe('dehydration and rehydration', () => { await originalPromise }) + it('should preserve queryType for infinite queries during hydration', async () => { + const queryCache = new QueryCache() + const queryClient = new QueryClient({ queryCache }) + + await vi.waitFor(() => + queryClient.prefetchInfiniteQuery({ + queryKey: ['infinite'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + items: [`page-${pageParam}`], + nextCursor: pageParam + 1, + })), + initialPageParam: 0, + getNextPageParam: (lastPage: { + items: Array + nextCursor: number + }) => lastPage.nextCursor, + }), + ) + + const dehydrated = dehydrate(queryClient) + + const infiniteQueryState = dehydrated.queries.find( + (q) => q.queryKey[0] === 'infinite', + ) + expect(infiniteQueryState?.queryType).toBe('infinite') + + const hydrationCache = new QueryCache() + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) + hydrate(hydrationClient, dehydrated) + + const hydratedQuery = hydrationCache.find({ queryKey: ['infinite'] }) + expect(hydratedQuery?.state.data).toBeDefined() + expect(hydratedQuery?.state.data).toHaveProperty('pages') + expect(hydratedQuery?.state.data).toHaveProperty('pageParams') + expect((hydratedQuery?.state.data as any).pages).toHaveLength(1) + }) + + it('should attach infiniteQueryBehavior during hydration', async () => { + const queryCache = new QueryCache() + const queryClient = new QueryClient({ queryCache }) + + await vi.waitFor(() => + queryClient.prefetchInfiniteQuery({ + queryKey: ['infinite-with-behavior'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + data: `page-${pageParam}`, + next: pageParam + 1, + })), + initialPageParam: 0, + getNextPageParam: (lastPage: { data: string; next: number }) => + lastPage.next, + }), + ) + + const dehydrated = dehydrate(queryClient) + + const hydrationCache = new QueryCache() + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) + hydrate(hydrationClient, dehydrated) + + const result = await vi.waitFor(() => + hydrationClient.fetchInfiniteQuery({ + queryKey: ['infinite-with-behavior'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + data: `page-${pageParam}`, + next: pageParam + 1, + })), + initialPageParam: 0, + getNextPageParam: (lastPage: { data: string; next: number }) => + lastPage.next, + }), + ) + + expect(result.pages).toHaveLength(1) + expect(result.pageParams).toHaveLength(1) + }) + + it('should restore infinite query type through dehydrate and hydrate cycle', async () => { + const serverClient = new QueryClient({ queryCache: new QueryCache() }) + + await vi.waitFor(() => + serverClient.prefetchInfiniteQuery({ + queryKey: ['infinite-type-restore'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + items: [`item-${pageParam}`], + next: pageParam + 1, + })), + initialPageParam: 0, + getNextPageParam: (lastPage: { items: Array; next: number }) => + lastPage.next, + }), + ) + + const dehydrated = dehydrate(serverClient) + + const dehydratedQuery = dehydrated.queries.find( + (q) => q.queryKey[0] === 'infinite-type-restore', + ) + expect(dehydratedQuery?.queryType).toBe('infinite') + + const clientCache = new QueryCache() + const clientClient = new QueryClient({ queryCache: clientCache }) + hydrate(clientClient, dehydrated) + + const hydratedQuery = clientCache.find({ + queryKey: ['infinite-type-restore'], + }) + expect(hydratedQuery?.queryType).toBe('infinite') + }) + + it('should preserve pages structure when refetching infinite query after hydration', async () => { + const serverClient = new QueryClient({ queryCache: new QueryCache() }) + + await vi.waitFor(() => + serverClient.prefetchInfiniteQuery({ + queryKey: ['refetch'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + items: [`page-${pageParam}`], + next: pageParam + 1, + })), + initialPageParam: 0, + getNextPageParam: (lastPage: { items: Array; next: number }) => + lastPage.next, + }), + ) + + const dehydrated = dehydrate(serverClient) + + const clientCache = new QueryCache() + const clientClient = new QueryClient({ queryCache: clientCache }) + hydrate(clientClient, dehydrated) + + const beforeRefetch = clientClient.getQueryData<{ + pages: Array<{ items: Array; next: number }> + pageParams: Array + }>(['refetch']) + expect(beforeRefetch?.pages).toHaveLength(1) + expect(beforeRefetch?.pageParams).toHaveLength(1) + + const result = await vi.waitFor(() => + clientClient.fetchInfiniteQuery({ + queryKey: ['refetch'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + items: [`page-${pageParam}`], + next: pageParam + 1, + })), + initialPageParam: 0, + getNextPageParam: (lastPage: { items: Array; next: number }) => + lastPage.next, + }), + ) + + expect(result).toHaveProperty('pages') + expect(result).toHaveProperty('pageParams') + expect(Array.isArray(result.pages)).toBe(true) + expect(result.pages).toHaveLength(1) + expect(result.pages[0]).toHaveProperty('items') + }) + + it('should retain infinite query type after subsequent setOptions calls', async () => { + const serverClient = new QueryClient({ queryCache: new QueryCache() }) + + await vi.waitFor(() => + serverClient.prefetchInfiniteQuery({ + queryKey: ['infinite-setoptions-guard'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + data: `p${pageParam}`, + next: pageParam + 1, + })), + initialPageParam: 0, + getNextPageParam: (lastPage: { data: string; next: number }) => + lastPage.next, + }), + ) + + const dehydrated = dehydrate(serverClient) + + const clientCache = new QueryCache() + const clientClient = new QueryClient({ queryCache: clientCache }) + hydrate(clientClient, dehydrated) + + const query = clientCache.find({ queryKey: ['infinite-setoptions-guard'] })! + expect(query.queryType).toBe('infinite') + + query.setOptions({ queryKey: ['infinite-setoptions-guard'] }) + expect(query.queryType).toBe('infinite') + }) + + it('should restore all pages when refetching multi-page infinite query after hydration', async () => { + const serverClient = new QueryClient({ queryCache: new QueryCache() }) + + await vi.waitFor(() => + serverClient.prefetchInfiniteQuery({ + queryKey: ['infinite-multipage-restore'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + items: [`item-${pageParam}`], + next: pageParam + 1, + })), + initialPageParam: 0, + pages: 2, + getNextPageParam: (lastPage: { items: Array; next: number }) => + lastPage.next, + }), + ) + + const dehydrated = dehydrate(serverClient) + + const clientCache = new QueryCache() + const clientClient = new QueryClient({ queryCache: clientCache }) + hydrate(clientClient, dehydrated) + + const beforeRefetch = clientClient.getQueryData<{ + pages: Array + pageParams: Array + }>(['infinite-multipage-restore']) + expect(beforeRefetch?.pages).toHaveLength(2) + + const result = await vi.waitFor(() => + clientClient.fetchInfiniteQuery({ + queryKey: ['infinite-multipage-restore'], + queryFn: async ({ pageParam }) => + sleep(0).then(() => ({ + items: [`item-${pageParam}`], + next: pageParam + 1, + })), + initialPageParam: 0, + pages: 2, + getNextPageParam: (lastPage: { items: Array; next: number }) => + lastPage.next, + }), + ) + + expect(result.pages).toHaveLength(2) + expect(result.pageParams).toHaveLength(2) + expect(result.pages[0]).toHaveProperty('items') + expect(result.pages[1]).toHaveProperty('items') + }) + // Companion to the test above: when the query already exists in the cache // (e.g. after an initial render or a first hydration pass), the same // synchronous thenable resolution must also produce status: 'success'. diff --git a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx index 0de82331fbc..99c00e37d22 100644 --- a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx @@ -235,8 +235,7 @@ describe('InfiniteQueryObserver', () => { const result = observer.getOptimisticResult(options) - expect(options.behavior).toBeDefined() - expect(options.behavior?.onFetch).toBeDefined() + expect(options._type).toBe('infinite') expect(result).toMatchObject({ data: undefined, diff --git a/packages/query-core/src/hydration.ts b/packages/query-core/src/hydration.ts index 73678f04766..90868dd2623 100644 --- a/packages/query-core/src/hydration.ts +++ b/packages/query-core/src/hydration.ts @@ -48,6 +48,7 @@ interface DehydratedQuery { state: QueryState promise?: Promise meta?: QueryMeta + queryType?: 'infinite' // This is only optional because older versions of Query might have dehydrated // without it which we need to handle for backwards compatibility. // This should be changed to required in the future. @@ -117,6 +118,7 @@ function dehydrateQuery( promise: dehydratePromise(), }), ...(query.meta && { meta: query.meta }), + ...(query.queryType && { queryType: query.queryType }), } } @@ -209,7 +211,15 @@ export function hydrate( }) queries.forEach( - ({ queryKey, state, queryHash, meta, promise, dehydratedAt }) => { + ({ + queryKey, + state, + queryHash, + meta, + promise, + dehydratedAt, + queryType, + }) => { const syncData = promise ? tryResolveSync(promise) : undefined const rawData = state.data === undefined ? syncData?.data : state.data const data = rawData === undefined ? rawData : deserializeData(rawData) @@ -260,6 +270,7 @@ export function hydrate( queryKey, queryHash, meta, + _type: queryType, }, // Reset fetch status to idle to avoid // query being stuck in fetching state upon hydration diff --git a/packages/query-core/src/infiniteQueryObserver.ts b/packages/query-core/src/infiniteQueryObserver.ts index 1499b138169..1cdd32a8859 100644 --- a/packages/query-core/src/infiniteQueryObserver.ts +++ b/packages/query-core/src/infiniteQueryObserver.ts @@ -1,9 +1,5 @@ import { QueryObserver } from './queryObserver' -import { - hasNextPage, - hasPreviousPage, - infiniteQueryBehavior, -} from './infiniteQueryBehavior' +import { hasNextPage, hasPreviousPage } from './infiniteQueryBehavior' import type { Subscribable } from './subscribable' import type { DefaultError, @@ -93,10 +89,8 @@ export class InfiniteQueryObserver< TPageParam >, ): void { - super.setOptions({ - ...options, - behavior: infiniteQueryBehavior(), - }) + options._type = 'infinite' + super.setOptions(options) } getOptimisticResult( @@ -108,7 +102,7 @@ export class InfiniteQueryObserver< TPageParam >, ): InfiniteQueryObserverResult { - options.behavior = infiniteQueryBehavior() + options._type = 'infinite' return super.getOptimisticResult(options) as InfiniteQueryObserverResult< TData, TError diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 9d2731e690a..721c0019426 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -10,6 +10,7 @@ import { import { notifyManager } from './notifyManager' import { CancelledError, canFetch, createRetryer } from './retryer' import { Removable } from './removable' +import { infiniteQueryBehavior } from './infiniteQueryBehavior' import type { QueryCache } from './queryCache' import type { QueryClient } from './queryClient' import type { @@ -166,6 +167,7 @@ export class Query< queryHash: string options!: QueryOptions state: QueryState + #queryType?: 'infinite' #initialState: QueryState #revertState?: QueryState @@ -195,6 +197,10 @@ export class Query< return this.options.meta } + get queryType() { + return this.#queryType + } + get promise(): Promise | undefined { return this.#retryer?.promise } @@ -204,6 +210,10 @@ export class Query< ): void { this.options = { ...this.#defaultOptions, ...options } + if (options?._type) { + this.#queryType = options._type + } + this.updateGcTime(this.options.gcTime) // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition @@ -511,7 +521,13 @@ export class Query< const context = createFetchContext() - this.options.behavior?.onFetch(context, this as unknown as Query) + const behavior = + this.#queryType === 'infinite' + ? (infiniteQueryBehavior( + (this.options as { pages?: number }).pages, + ) as QueryBehavior) + : this.options.behavior + behavior?.onFetch(context, this as unknown as Query) // Store state in case the current fetch needs to be reverted this.#revertState = this.state diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts index 80cc36668aa..f448a068f2f 100644 --- a/packages/query-core/src/queryClient.ts +++ b/packages/query-core/src/queryClient.ts @@ -12,7 +12,6 @@ import { MutationCache } from './mutationCache' import { focusManager } from './focusManager' import { onlineManager } from './onlineManager' import { notifyManager } from './notifyManager' -import { infiniteQueryBehavior } from './infiniteQueryBehavior' import type { CancelOptions, DefaultError, @@ -395,12 +394,7 @@ export class QueryClient { TPageParam >, ): Promise> { - options.behavior = infiniteQueryBehavior< - TQueryFnData, - TError, - TData, - TPageParam - >(options.pages) + options._type = 'infinite' return this.fetchQuery(options as any) } @@ -437,12 +431,7 @@ export class QueryClient { TPageParam >, ): Promise> { - options.behavior = infiniteQueryBehavior< - TQueryFnData, - TError, - TData, - TPageParam - >(options.pages) + options._type = 'infinite' return this.ensureQueryData(options as any) } diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 7e7aab7df46..d36de200dfa 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -266,6 +266,7 @@ export interface QueryOptions< | boolean | ((oldData: unknown | undefined, newData: unknown) => unknown) _defaulted?: boolean + _type?: 'infinite' /** * Additional payload to be stored on each query. * Use this property to pass information that can be used in other places. diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index ed8eed4534e..62b531a8ff3 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -2098,7 +2098,10 @@ const QueryDetails = () => { type: 'INVALIDATE', queryHash: activeQuery()?.queryHash, }) - queryClient.invalidateQueries(activeQuery()) + queryClient.invalidateQueries({ + queryKey: activeQuery()?.queryKey, + exact: true, + }) }} disabled={queryStatus() === 'pending'} > @@ -2123,7 +2126,10 @@ const QueryDetails = () => { type: 'RESET', queryHash: activeQuery()?.queryHash, }) - queryClient.resetQueries(activeQuery()) + queryClient.resetQueries({ + queryKey: activeQuery()?.queryKey, + exact: true, + }) }} disabled={queryStatus() === 'pending'} > @@ -2148,7 +2154,10 @@ const QueryDetails = () => { type: 'REMOVE', queryHash: activeQuery()?.queryHash, }) - queryClient.removeQueries(activeQuery()) + queryClient.removeQueries({ + queryKey: activeQuery()?.queryKey, + exact: true, + }) setSelectedQueryHash(null) }} disabled={statusLabel() === 'fetching'} @@ -2228,7 +2237,9 @@ const QueryDetails = () => { type: 'RESTORE_ERROR', queryHash: activeQuery()?.queryHash, }) - queryClient.resetQueries(activeQuery()) + queryClient.resetQueries({ + queryKey: activeQuery()?.queryKey, + }) } }} disabled={queryStatus() === 'pending'} diff --git a/packages/vue-query/src/devtools/devtools.ts b/packages/vue-query/src/devtools/devtools.ts index beff5658414..42dfc05d734 100644 --- a/packages/vue-query/src/devtools/devtools.ts +++ b/packages/vue-query/src/devtools/devtools.ts @@ -90,7 +90,10 @@ export function setupDevtools(app: any, queryClient: QueryClient) { tooltip: 'Invalidate', action: (queryHash: string) => { const query = queryCache.get(queryHash) as Query - queryClient.invalidateQueries(query) + queryClient.invalidateQueries({ + queryKey: query.queryKey, + exact: true, + }) }, }, { From 645d5d130f5e8017cb1bf1a37987f7b980aed705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Sat, 25 Apr 2026 11:27:54 +0200 Subject: [PATCH 176/414] ref(core): remove leftover setStateOptions (#10574) --- .changeset/wet-lands-wait.md | 5 +++++ packages/query-core/src/query.ts | 12 ++---------- 2 files changed, 7 insertions(+), 10 deletions(-) create mode 100644 .changeset/wet-lands-wait.md diff --git a/.changeset/wet-lands-wait.md b/.changeset/wet-lands-wait.md new file mode 100644 index 00000000000..e102a8ec888 --- /dev/null +++ b/.changeset/wet-lands-wait.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +ref(core): remove leftover setStateOptions diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 721c0019426..62bc9a16082 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -138,7 +138,6 @@ interface ContinueAction { interface SetStateAction { type: 'setState' state: Partial> - setStateOptions?: SetStateOptions } export type Action = @@ -151,10 +150,6 @@ export type Action = | SetStateAction | SuccessAction -export interface SetStateOptions { - meta?: any -} - // CLASS export class Query< @@ -251,11 +246,8 @@ export class Query< return data } - setState( - state: Partial>, - setStateOptions?: SetStateOptions, - ): void { - this.#dispatch({ type: 'setState', state, setStateOptions }) + setState(state: Partial>): void { + this.#dispatch({ type: 'setState', state }) } cancel(options?: CancelOptions): Promise { From ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31 Mon Sep 17 00:00:00 2001 From: Ben Younes Date: Sat, 25 Apr 2026 11:37:25 +0200 Subject: [PATCH 177/414] fix(query-core): stop wrapping persister generics in NoInfer (#10510) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(query-core): stop wrapping persister generics in NoInfer The `persister` field on QueryOptions was typed as `QueryPersister, NoInfer, NoInfer>` so persister could not contribute to TQueryFnData inference. When the companion queryFn declared a parameter (e.g. `(_context) => 'test'`), TypeScript failed to infer TQueryFnData from its return and defaulted to `unknown`, causing a spurious overload mismatch against a concretely-typed persister (fixes #7842). Removing the NoInfer wrappers lets persister participate in inference. Genuine type conflicts between persister and queryFn still surface as errors (covered by a new negative type test in queryOptions.test-d.tsx). Co-Authored-By: Claude * test(react-query): wrap negative type tests in assertType Addresses CodeRabbit nitpick: vitest/expect-expect flagged the genuine-conflict test as having no assertions. Wrap both calls in assertType() so the linter sees an explicit assertion while the `@ts-expect-error` directives continue to enforce the type mismatch. Co-Authored-By: Claude --------- Co-authored-by: Claude Co-authored-by: Dominik Dorfmeister 🔮 --- ...sister-infer-when-queryfn-has-parameter.md | 5 +++ packages/query-core/src/types.ts | 6 +-- .../src/__tests__/queryOptions.test-d.tsx | 37 +++++++++++++++++++ 3 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 .changeset/fix-persister-infer-when-queryfn-has-parameter.md diff --git a/.changeset/fix-persister-infer-when-queryfn-has-parameter.md b/.changeset/fix-persister-infer-when-queryfn-has-parameter.md new file mode 100644 index 00000000000..ef3ca442a38 --- /dev/null +++ b/.changeset/fix-persister-infer-when-queryfn-has-parameter.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +fix(query-core): allow `persister` to contribute to `TQueryFnData` inference so a `queryFn` that declares a parameter no longer produces a spurious overload mismatch against a typed persister (#7842). diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index d36de200dfa..6e26b02746a 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -246,11 +246,7 @@ export interface QueryOptions< */ gcTime?: number queryFn?: QueryFunction | SkipToken - persister?: QueryPersister< - NoInfer, - NoInfer, - NoInfer - > + persister?: QueryPersister queryHash?: string queryKey?: TQueryKey queryKeyHashFn?: QueryKeyHashFunction diff --git a/packages/react-query/src/__tests__/queryOptions.test-d.tsx b/packages/react-query/src/__tests__/queryOptions.test-d.tsx index dcfaeab6589..14f92a8da3e 100644 --- a/packages/react-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/queryOptions.test-d.tsx @@ -15,6 +15,7 @@ import type { DataTag, InitialDataFunction, QueryObserverResult, + QueryPersister, } from '@tanstack/query-core' describe('queryOptions', () => { @@ -284,4 +285,40 @@ describe('queryOptions', () => { DataTag >() }) + + it('should infer TQueryFnData from persister paired with a queryFn declaring a parameter (#7842)', () => { + const persister = undefined as unknown as QueryPersister + + const options = queryOptions({ + queryKey: ['key'], + queryFn: (_context) => 'hello', + persister, + }) + + expectTypeOf(options.queryFn!).returns.toEqualTypeOf< + string | Promise + >() + }) + + it('should still error when persister and queryFn return types genuinely conflict', () => { + const persister = undefined as unknown as QueryPersister + + assertType( + queryOptions({ + queryKey: ['key'], + // @ts-expect-error persister expects string, queryFn returns number + queryFn: () => 42, + persister, + }), + ) + + assertType( + queryOptions({ + queryKey: ['key'], + // @ts-expect-error persister expects string, queryFn with arg returns number + queryFn: (_context) => 42, + persister, + }), + ) + }) }) From 93b28450008eb104bf3a9d661f0a5625719bd2ea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 25 Apr 2026 11:40:41 +0200 Subject: [PATCH 178/414] ci: Version Packages (#10575) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- ...sister-infer-when-queryfn-has-parameter.md | 5 - .changeset/stupid-seals-live.md | 5 - .changeset/wet-lands-wait.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 10 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 111 files changed, 443 insertions(+), 285 deletions(-) delete mode 100644 .changeset/fix-persister-infer-when-queryfn-has-parameter.md delete mode 100644 .changeset/stupid-seals-live.md delete mode 100644 .changeset/wet-lands-wait.md diff --git a/.changeset/fix-persister-infer-when-queryfn-has-parameter.md b/.changeset/fix-persister-infer-when-queryfn-has-parameter.md deleted file mode 100644 index ef3ca442a38..00000000000 --- a/.changeset/fix-persister-infer-when-queryfn-has-parameter.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -fix(query-core): allow `persister` to contribute to `TQueryFnData` inference so a `queryFn` that declares a parameter no longer produces a spurious overload mismatch against a typed persister (#7842). diff --git a/.changeset/stupid-seals-live.md b/.changeset/stupid-seals-live.md deleted file mode 100644 index e7441349695..00000000000 --- a/.changeset/stupid-seals-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -fix: preserve infinite query behavior during SSR hydration (#8825) diff --git a/.changeset/wet-lands-wait.md b/.changeset/wet-lands-wait.md deleted file mode 100644 index e102a8ec888..00000000000 --- a/.changeset/wet-lands-wait.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -ref(core): remove leftover setStateOptions diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 4b0cd3efeac..6e246b43127 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 48c48d08d3d..6d138cefac2 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", - "@tanstack/angular-query-persist-client": "^5.100.1", - "@tanstack/query-async-storage-persister": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-persist-client": "^5.100.2", + "@tanstack/query-async-storage-persister": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index ecd44fb6af4..a3409ef4d62 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index e91145b0647..04f9afeee42 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 71245cdfa84..c08915ea9be 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index d5cf2dcca8f..947034a62f1 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 67f7541c865..dd449f9a69a 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 5c3296d15e3..c25f812fc0e 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 4c73276035b..736bf78b685 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 8af0a41f4a7..9f523b3509f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 04514de96db..50153dab29e 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 840e4c82ccc..afee9aeee85 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.1", + "@tanstack/preact-query": "^5.100.2", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index f4a4a0ac39c..661fb31f08b 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.1", + "@tanstack/eslint-plugin-query": "^5.100.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index be561cab877..f42795d4c8d 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index c783df6849b..41b937fd58f 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index b2d7675caa3..1fd008ffa79 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.1", - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", - "@tanstack/react-query-persist-client": "^5.100.1", + "@tanstack/query-async-storage-persister": "^5.100.2", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query-persist-client": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.1", + "@tanstack/eslint-plugin-query": "^5.100.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index fc8cec67b2a..6adf4e66bac 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index b70c411bada..be662104f8b 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 6a8fe3b8d11..7efa4c632d3 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 48a2d8a4017..5c1fddad96e 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.1", - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", - "@tanstack/react-query-persist-client": "^5.100.1", + "@tanstack/query-async-storage-persister": "^5.100.2", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query-persist-client": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.1", + "@tanstack/eslint-plugin-query": "^5.100.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index be0d58d4f39..b70619d7bf2 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", + "@tanstack/react-query": "^5.100.2", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.1", + "@tanstack/eslint-plugin-query": "^5.100.2", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 0ca1f4302ca..6bf21dfc1e3 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 80796f1ec15..986284aa4a4 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index b527d0616a2..622d5b38159 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index f3aa1728059..5baab8ccfb9 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", - "@tanstack/react-query-next-experimental": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query-next-experimental": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 0cfb341de44..3079918d1e9 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index cf63d12b842..18ece702657 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.1", + "@tanstack/query-async-storage-persister": "^5.100.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", - "@tanstack/react-query-persist-client": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query-persist-client": "^5.100.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 17c36ee5938..d1ec455006f 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 6f721cfa6a6..0a6e2fca241 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index d90b1cec839..b11981464a3 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 1c6ec318f7f..04633f673eb 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index e1dfb691fb4..53143c71c45 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index ab4c4065132..864d9b80aba 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 7add38a9891..1bbfd732f8f 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 9386b9e9909..49b11af81bd 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 4a5de72fbda..c4da6ce9075 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 509cfd9306b..f0c915cfec2 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 68128d2d0ca..a3fda110ea7 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index cabb7ea60da..e0c443b972c 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.1", - "@tanstack/react-query-devtools": "^5.100.1", + "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query-devtools": "^5.100.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 1fb056fc2a5..7f6bc62ff83 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.1", - "@tanstack/solid-query-devtools": "^5.100.1", + "@tanstack/solid-query": "^5.100.2", + "@tanstack/solid-query-devtools": "^5.100.2", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 46c6910420b..48c8742f58c 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.1", - "@tanstack/solid-query-devtools": "^5.100.1", + "@tanstack/solid-query": "^5.100.2", + "@tanstack/solid-query-devtools": "^5.100.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 4eb9a39b42a..77469b0d778 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.1", - "@tanstack/solid-query-devtools": "^5.100.1", + "@tanstack/solid-query": "^5.100.2", + "@tanstack/solid-query-devtools": "^5.100.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index fd3758668a0..d0513af7f9c 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.1", - "@tanstack/solid-query-devtools": "^5.100.1", + "@tanstack/solid-query": "^5.100.2", + "@tanstack/solid-query-devtools": "^5.100.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 23b96bf637a..3f03de1f5a5 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.1", - "@tanstack/solid-query": "^5.100.1", - "@tanstack/solid-query-devtools": "^5.100.1", - "@tanstack/solid-query-persist-client": "^5.100.1", + "@tanstack/query-async-storage-persister": "^5.100.2", + "@tanstack/solid-query": "^5.100.2", + "@tanstack/solid-query-devtools": "^5.100.2", + "@tanstack/solid-query-persist-client": "^5.100.2", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index a0a308eff0a..806727cb161 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.1", - "@tanstack/solid-query-devtools": "^5.100.1", + "@tanstack/solid-query": "^5.100.2", + "@tanstack/solid-query-devtools": "^5.100.2", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.1", + "@tanstack/eslint-plugin-query": "^5.100.2", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 932d770ff02..d63ba320735 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.1", - "@tanstack/solid-query-devtools": "^5.100.1", + "@tanstack/solid-query": "^5.100.2", + "@tanstack/solid-query-devtools": "^5.100.2", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index dd3e77c2db5..c5e201665cf 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20" + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index ed113154d28..494c77eaf9d 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.1", - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20", - "@tanstack/svelte-query-persist-client": "^6.1.20" + "@tanstack/query-async-storage-persister": "^5.100.2", + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21", + "@tanstack/svelte-query-persist-client": "^6.1.21" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index d9a8a02a851..7711b1f3143 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20" + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 95b2601067a..a6c9c06e816 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20" + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 37b6a21e7a7..5664d736c56 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20" + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index f1593d234b9..a96ff53ceeb 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20" + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index c68b74a8265..d31b82d0bc4 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20" + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index ff65b7a854e..abc5b138925 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.20", - "@tanstack/svelte-query-devtools": "^6.1.20" + "@tanstack/svelte-query": "^6.1.21", + "@tanstack/svelte-query-devtools": "^6.1.21" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 080c07220fd..8063a2a3407 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.1", - "@tanstack/vue-query-devtools": "^6.1.20", + "@tanstack/vue-query": "^5.100.2", + "@tanstack/vue-query-devtools": "^6.1.21", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index ec84a4dc860..571821415ed 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.1", + "@tanstack/vue-query": "^5.100.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 970b938dabf..1f1c4781249 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.1", - "@tanstack/query-persist-client-core": "^5.100.1", - "@tanstack/query-sync-storage-persister": "^5.100.1", - "@tanstack/vue-query": "^5.100.1", + "@tanstack/query-core": "^5.100.2", + "@tanstack/query-persist-client-core": "^5.100.2", + "@tanstack/query-sync-storage-persister": "^5.100.2", + "@tanstack/vue-query": "^5.100.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 93f34ed030c..30627e68416 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.1", - "@tanstack/vue-query-devtools": "^6.1.20", + "@tanstack/vue-query": "^5.100.2", + "@tanstack/vue-query-devtools": "^6.1.21", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 4612add0c6d..7d9e6c7d1fb 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.1", + "@tanstack/angular-query-experimental": "^5.100.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 0af3fa57cd4..93b917ba12a 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 3149d93ec56..b8f03a51907 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.1", + "version": "5.100.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 0a2f8d6fc5b..9bb9fbc3141 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.2 + - @tanstack/query-persist-client-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index b51251b2b0c..8d567cf8353 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.1", + "version": "5.100.2", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 8c8e71cf737..fa297dbe93b 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.2 + ## 5.100.1 ## 5.100.0 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 2f196d31adf..fb179c94753 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.1", + "version": "5.100.2", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index f09b432a7a9..43a26d4b8e3 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.2 + - @tanstack/query-devtools@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 6948e9c5c14..c121b9d764e 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.1", + "version": "5.100.2", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index a7b75f89e95..68efae92777 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.2 + - @tanstack/query-persist-client-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 5cf3fbfb053..2f51df4153b 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.1", + "version": "5.100.2", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index c794a71116a..4a3cee907d0 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 5a294f057b9..f25bcc9ba55 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.1", + "version": "5.100.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 4cc1616c30e..f44f16d0344 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + - @tanstack/query-persist-client-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 6448c5e9565..47d136795ad 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.1", + "version": "5.100.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 5d83c9899c8..24f7ed22121 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index d6792835e64..f32871d857a 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.1", + "version": "5.100.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 5a40eccba0e..bda2629e682 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/query-core +## 5.100.2 + +### Patch Changes + +- fix(query-core): allow `persister` to contribute to `TQueryFnData` inference so a `queryFn` that declares a parameter no longer produces a spurious overload mismatch against a typed persister (#7842). ([#10510](https://github.com/TanStack/query/pull/10510)) + +- fix: preserve infinite query behavior during SSR hydration (#8825) ([#10074](https://github.com/TanStack/query/pull/10074)) + +- ref(core): remove leftover setStateOptions ([#10574](https://github.com/TanStack/query/pull/10574)) + ## 5.100.1 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 48aad906858..a148b5e0c21 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.1", + "version": "5.100.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index be471237b1f..d49818bfdfe 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.2 + ## 5.100.1 ## 5.100.0 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 245c99f9bb3..4424b54c74a 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.1", + "version": "5.100.2", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index ca512bd3b8d..6c940ef2403 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index dd24198e969..b2ad8c2ef99 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.1", + "version": "5.100.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index c7bb5c7f675..6240ef09039 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + - @tanstack/query-persist-client-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index c16c013f1c2..67f8b1120b9 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.1", + "version": "5.100.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index c69c473d6a8..ff1b18470a1 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.2 + - @tanstack/react-query@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 4cd085ed3b6..d2f5b27e9b8 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.1", + "version": "5.100.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 8d674c4a4ca..9d32e7df280 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 0e5eb7a53d2..05b4ed074f2 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.1", + "version": "5.100.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index faa699c04c3..529a740259c 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.2 + - @tanstack/react-query@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 0a15f116966..c3b20476633 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.1", + "version": "5.100.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index f6a1e3668c9..eb97ea613ab 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 4c07b89dfb2..8ee78e734b8 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.1", + "version": "5.100.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 9407a830834..b9c5689b3ca 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.2 + - @tanstack/solid-query@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index ed2acd709e5..93da8de645e 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.1", + "version": "5.100.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 57ce7f78d3b..7c962f9de18 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.2 + - @tanstack/solid-query@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 3cddabdf9d6..4bfd76c7386 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.1", + "version": "5.100.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 525b9836dee..28155eee26d 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 112056eb8fc..e24a7e57c99 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.1", + "version": "5.100.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 02d620ebef9..2c159699e89 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.21 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.2 + - @tanstack/svelte-query@6.1.21 + ## 6.1.20 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 88cc5ff2f7f..c1dd443ebdd 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.20", + "version": "6.1.21", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index e00b1cbc040..fc129959778 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.21 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.2 + - @tanstack/svelte-query@6.1.21 + ## 6.1.20 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 24e9df51737..cbd8625bcd3 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.20", + "version": "6.1.21", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index dd8128ff38d..25519c65459 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.21 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 6.1.20 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 980b9f2ff92..1b250e66eef 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.20", + "version": "6.1.21", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index b0a787d544a..54756c20b66 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.21 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.2 + - @tanstack/vue-query@5.100.2 + ## 6.1.20 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 5eb3d0e78ae..acf6a7899a5 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.20", + "version": "6.1.21", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 13b8012342a..94e0027a475 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.2 + +### Patch Changes + +- Updated dependencies [[`ea4497e`](https://github.com/TanStack/query/commit/ea4497e8aa00d8c1c3a36fb1e17563a889d6ab31), [`d6a7bf3`](https://github.com/TanStack/query/commit/d6a7bf3e3e024c1a77d0536813238cc8007a5fa7), [`645d5d1`](https://github.com/TanStack/query/commit/645d5d130f5e8017cb1bf1a37987f7b980aed705)]: + - @tanstack/query-core@5.100.2 + ## 5.100.1 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index cd01e8723a6..02709657ef7 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.1", + "version": "5.100.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a826f0f6ba1..da089f93f37 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.20 + specifier: ^6.1.21 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.1 + specifier: ^5.100.2 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From f85d825e02efbbff02e2081528ed28f5e5382f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Sat, 25 Apr 2026 12:55:47 +0200 Subject: [PATCH 179/414] Feature/use suspense queries combine (#10576) * useSuspenseQueries combine * useSuspenseQueries combine * ci: apply automated fixes * fix: stale data * ci: apply automated fixes (attempt 3/3) --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/wild-rabbits-jump.md | 6 ++ .../src/__tests__/queriesObserver.test.tsx | 76 +++++++++++++++++++ packages/query-core/src/queriesObserver.ts | 20 ++++- .../src/__tests__/useSuspenseQueries.test.tsx | 68 +++++++++++++++++ 4 files changed, 167 insertions(+), 3 deletions(-) create mode 100644 .changeset/wild-rabbits-jump.md diff --git a/.changeset/wild-rabbits-jump.md b/.changeset/wild-rabbits-jump.md new file mode 100644 index 00000000000..1d6b19c286b --- /dev/null +++ b/.changeset/wild-rabbits-jump.md @@ -0,0 +1,6 @@ +--- +'@tanstack/react-query': patch +'@tanstack/query-core': patch +--- + +fix(suspense): skip calling combine when queries would suspend diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index 504f5b8379a..1adfa6195a6 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -473,6 +473,82 @@ describe('queriesObserver', () => { expect(newCombined.count).toBe(2) }) + it('should skip combine notifications while suspense queries have no data', async () => { + const key = queryKey() + const combine = vi.fn((results: Array) => + results.map((result) => result.data), + ) + const query = { + queryKey: key, + queryFn: () => sleep(10).then(() => 'data'), + staleTime: Infinity, + suspense: true, + } + + queryClient.setQueryData(key, 'data') + + const observer = new QueriesObserver>(queryClient, [query], { + combine, + }) + + const [rawResult, getCombinedResult] = observer.getOptimisticResult( + [query], + combine, + ) + expect(getCombinedResult(rawResult)).toEqual(['data']) + expect(combine).toHaveBeenCalledTimes(1) + + const unsubscribe = observer.subscribe(() => undefined) + + void queryClient.resetQueries({ queryKey: key }) + expect(combine).toHaveBeenCalledTimes(1) + + unsubscribe() + }) + + it('should skip combine notifications after suspense is enabled without structural changes', async () => { + const key = queryKey() + const combine = vi.fn((results: Array) => + results.map((result) => result.data), + ) + const query = { + queryKey: key, + queryFn: () => sleep(10).then(() => 'data'), + staleTime: Infinity, + suspense: false, + } + + queryClient.setQueryData(key, 'data') + + const observer = new QueriesObserver>(queryClient, [query], { + combine, + }) + + const [rawResult, getCombinedResult] = observer.getOptimisticResult( + [query], + combine, + ) + expect(getCombinedResult(rawResult)).toEqual(['data']) + expect(combine).toHaveBeenCalledTimes(1) + + const unsubscribe = observer.subscribe(() => undefined) + + observer.setQueries( + [ + { + ...query, + suspense: true, + }, + ], + { combine }, + ) + + void queryClient.resetQueries({ queryKey: key }) + expect(combine).toHaveBeenCalledTimes(1) + + unsubscribe() + }) + it('should handle queries being removed with stable combine reference', () => { const combine = vi.fn((results: Array) => ({ count: results.length, diff --git a/packages/query-core/src/queriesObserver.ts b/packages/query-core/src/queriesObserver.ts index 67dd088f9ae..4fcf8e5d41e 100644 --- a/packages/query-core/src/queriesObserver.ts +++ b/packages/query-core/src/queriesObserver.ts @@ -249,6 +249,17 @@ export class QueriesObserver< return input as any } + #shouldSkipCombine(): boolean { + return ( + this.#options?.combine !== undefined && + this.#observers.some((observer, index) => { + return ( + observer.options.suspense && this.#result[index]?.data === undefined + ) + }) + ) + } + #findMatchingObservers( queries: Array, ): Array { @@ -294,11 +305,14 @@ export class QueriesObserver< #notify(): void { if (this.hasListeners()) { - const previousResult = this.#combinedResult const newTracked = this.#trackResult(this.#result, this.#observerMatches) - const newResult = this.#combineResult(newTracked, this.#options?.combine) + const shouldSkipCombine = this.#shouldSkipCombine() + const previousResult = this.#combinedResult + const newResult = shouldSkipCombine + ? previousResult + : this.#combineResult(newTracked, this.#options?.combine) - if (previousResult !== newResult) { + if (shouldSkipCombine || previousResult !== newResult) { notifyManager.batch(() => { this.listeners.forEach((listener) => { listener(this.#result) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index d8838aee0da..6b5b327b6ee 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -274,6 +274,74 @@ describe('useSuspenseQueries', () => { expect(spy).toHaveBeenCalled() }) + it('should not call combine while reset queries are pending again', async () => { + const consoleMock = vi + .spyOn(console, 'error') + .mockImplementation(() => undefined) + const key = queryKey() + let shouldError = false + + function Page() { + const data = useSuspenseQueries({ + queries: [ + { + queryKey: key, + queryFn: () => + sleep(10).then(() => { + if (shouldError) { + throw new Error('Suspense Error Bingo') + } + + return 'data' + }), + retry: false, + }, + ], + combine: (result) => result.map((query) => query.data.toUpperCase()), + }) + + return ( +
+ +
data: {data.join(',')}
+
+ ) + } + + const rendered = renderWithClient( + queryClient, +
error boundary
}> + + + +
, + ) + + expect(rendered.getByText('loading')).toBeInTheDocument() + + await act(() => vi.advanceTimersByTimeAsync(10)) + expect(rendered.getByText('data: DATA')).toBeInTheDocument() + + shouldError = true + + expect(() => { + fireEvent.click(rendered.getByText('reset')) + }).not.toThrow() + + await act(() => vi.advanceTimersByTimeAsync(10)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + + expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( + new Error('Suspense Error Bingo'), + ) + + consoleMock.mockRestore() + }) + it('should handle duplicate query keys without infinite loops', async () => { const key = queryKey() const localDuration = 10 From fe287cc2471b74726a5d05f1c40a86a9ef891c7e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 25 Apr 2026 13:15:56 +0200 Subject: [PATCH 180/414] ci: Version Packages (#10579) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/wild-rabbits-jump.md | 6 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 9 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 441 insertions(+), 276 deletions(-) delete mode 100644 .changeset/wild-rabbits-jump.md diff --git a/.changeset/wild-rabbits-jump.md b/.changeset/wild-rabbits-jump.md deleted file mode 100644 index 1d6b19c286b..00000000000 --- a/.changeset/wild-rabbits-jump.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@tanstack/react-query': patch -'@tanstack/query-core': patch ---- - -fix(suspense): skip calling combine when queries would suspend diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 6e246b43127..4b9508a1b43 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 6d138cefac2..a1633d00ff7 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", - "@tanstack/angular-query-persist-client": "^5.100.2", - "@tanstack/query-async-storage-persister": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-persist-client": "^5.100.3", + "@tanstack/query-async-storage-persister": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index a3409ef4d62..ce3a3ad546c 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 04f9afeee42..4f628137f75 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index c08915ea9be..37fa4323a43 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 947034a62f1..af678145e90 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index dd449f9a69a..9732cee520f 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index c25f812fc0e..af9791db34b 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 736bf78b685..bc253cb025f 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 9f523b3509f..aa8004589ce 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 50153dab29e..5172209e6bf 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index afee9aeee85..a6a8b4a609b 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.2", + "@tanstack/preact-query": "^5.100.3", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 661fb31f08b..629ea32b761 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.2", + "@tanstack/eslint-plugin-query": "^5.100.3", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index f42795d4c8d..96875e1838a 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 41b937fd58f..4649993a210 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1fd008ffa79..4ce76c6138c 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.2", - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", - "@tanstack/react-query-persist-client": "^5.100.2", + "@tanstack/query-async-storage-persister": "^5.100.3", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query-persist-client": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.2", + "@tanstack/eslint-plugin-query": "^5.100.3", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 6adf4e66bac..f0455a5d55b 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index be662104f8b..762633b4801 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 7efa4c632d3..b57249ed69c 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 5c1fddad96e..dfd81f55400 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.2", - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", - "@tanstack/react-query-persist-client": "^5.100.2", + "@tanstack/query-async-storage-persister": "^5.100.3", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query-persist-client": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.2", + "@tanstack/eslint-plugin-query": "^5.100.3", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index b70619d7bf2..b9a5dd9f30e 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", + "@tanstack/react-query": "^5.100.3", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.2", + "@tanstack/eslint-plugin-query": "^5.100.3", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 6bf21dfc1e3..3ddabffe226 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 986284aa4a4..32d142e3e70 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 622d5b38159..459884dc5d6 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 5baab8ccfb9..96c210f0ba8 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", - "@tanstack/react-query-next-experimental": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query-next-experimental": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 3079918d1e9..42e94aa91c6 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 18ece702657..0dba103fd50 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.2", + "@tanstack/query-async-storage-persister": "^5.100.3", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", - "@tanstack/react-query-persist-client": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query-persist-client": "^5.100.3", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index d1ec455006f..9afb59ec524 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 0a6e2fca241..3e026dc9f6c 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index b11981464a3..33f4023cd11 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 04633f673eb..d11e001695f 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 53143c71c45..c6de00fc6a6 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 864d9b80aba..11e3565dec9 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 1bbfd732f8f..c6c2b27bc96 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 49b11af81bd..07c4f4b429c 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index c4da6ce9075..1b710fea093 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index f0c915cfec2..21156bafe78 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index a3fda110ea7..b480f9544e7 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index e0c443b972c..9bf53645fd4 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.2", - "@tanstack/react-query-devtools": "^5.100.2", + "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query-devtools": "^5.100.3", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 7f6bc62ff83..d954692e067 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.2", - "@tanstack/solid-query-devtools": "^5.100.2", + "@tanstack/solid-query": "^5.100.3", + "@tanstack/solid-query-devtools": "^5.100.3", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 48c8742f58c..9102438330b 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.2", - "@tanstack/solid-query-devtools": "^5.100.2", + "@tanstack/solid-query": "^5.100.3", + "@tanstack/solid-query-devtools": "^5.100.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 77469b0d778..3d8ec4b7c95 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.2", - "@tanstack/solid-query-devtools": "^5.100.2", + "@tanstack/solid-query": "^5.100.3", + "@tanstack/solid-query-devtools": "^5.100.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index d0513af7f9c..51abf47ecf0 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.2", - "@tanstack/solid-query-devtools": "^5.100.2", + "@tanstack/solid-query": "^5.100.3", + "@tanstack/solid-query-devtools": "^5.100.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 3f03de1f5a5..672ffd22792 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.2", - "@tanstack/solid-query": "^5.100.2", - "@tanstack/solid-query-devtools": "^5.100.2", - "@tanstack/solid-query-persist-client": "^5.100.2", + "@tanstack/query-async-storage-persister": "^5.100.3", + "@tanstack/solid-query": "^5.100.3", + "@tanstack/solid-query-devtools": "^5.100.3", + "@tanstack/solid-query-persist-client": "^5.100.3", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 806727cb161..84df731dc06 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.2", - "@tanstack/solid-query-devtools": "^5.100.2", + "@tanstack/solid-query": "^5.100.3", + "@tanstack/solid-query-devtools": "^5.100.3", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.2", + "@tanstack/eslint-plugin-query": "^5.100.3", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index d63ba320735..7d5503103f6 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.2", - "@tanstack/solid-query-devtools": "^5.100.2", + "@tanstack/solid-query": "^5.100.3", + "@tanstack/solid-query-devtools": "^5.100.3", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index c5e201665cf..56f7d96241e 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21" + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 494c77eaf9d..f9640a4b676 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.2", - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21", - "@tanstack/svelte-query-persist-client": "^6.1.21" + "@tanstack/query-async-storage-persister": "^5.100.3", + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22", + "@tanstack/svelte-query-persist-client": "^6.1.22" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 7711b1f3143..2bd3c7d8512 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21" + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index a6c9c06e816..d69ffb43362 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21" + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 5664d736c56..aa7c60c44cd 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21" + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index a96ff53ceeb..d495edbabb5 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21" + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index d31b82d0bc4..e1cc2c3d728 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21" + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index abc5b138925..efdde184150 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.21", - "@tanstack/svelte-query-devtools": "^6.1.21" + "@tanstack/svelte-query": "^6.1.22", + "@tanstack/svelte-query-devtools": "^6.1.22" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 8063a2a3407..972d87fcfef 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.2", - "@tanstack/vue-query-devtools": "^6.1.21", + "@tanstack/vue-query": "^5.100.3", + "@tanstack/vue-query-devtools": "^6.1.22", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 571821415ed..f778427fdf1 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.2", + "@tanstack/vue-query": "^5.100.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 1f1c4781249..cd987dffc94 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.2", - "@tanstack/query-persist-client-core": "^5.100.2", - "@tanstack/query-sync-storage-persister": "^5.100.2", - "@tanstack/vue-query": "^5.100.2", + "@tanstack/query-core": "^5.100.3", + "@tanstack/query-persist-client-core": "^5.100.3", + "@tanstack/query-sync-storage-persister": "^5.100.3", + "@tanstack/vue-query": "^5.100.3", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 30627e68416..918ba380ff5 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.2", - "@tanstack/vue-query-devtools": "^6.1.21", + "@tanstack/vue-query": "^5.100.3", + "@tanstack/vue-query-devtools": "^6.1.22", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 7d9e6c7d1fb..e514bc9d805 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.2", + "@tanstack/angular-query-experimental": "^5.100.3", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 93b917ba12a..b32cc25b12c 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index b8f03a51907..e90cff8ffc4 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.2", + "version": "5.100.3", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 9bb9fbc3141..a17761bd976 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.3 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.3 + - @tanstack/query-persist-client-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 8d567cf8353..6fa096a2fd0 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.2", + "version": "5.100.3", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index fa297dbe93b..d896dacd93b 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.3 + ## 5.100.2 ## 5.100.1 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index fb179c94753..c42a3b68a85 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.2", + "version": "5.100.3", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 43a26d4b8e3..166921780da 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.3 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.3 + - @tanstack/query-devtools@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index c121b9d764e..8f653799501 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.2", + "version": "5.100.3", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 68efae92777..d65884ee8e3 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.3 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.3 + - @tanstack/query-persist-client-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 2f51df4153b..295263321ef 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.2", + "version": "5.100.3", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 4a3cee907d0..3f0c4c8979a 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index f25bcc9ba55..09b29c257b8 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.2", + "version": "5.100.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index f44f16d0344..468fe9ea4c6 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + - @tanstack/query-persist-client-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 47d136795ad..44b9fd7292f 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.2", + "version": "5.100.3", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 24f7ed22121..9108eeeea99 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index f32871d857a..77e93890d51 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.2", + "version": "5.100.3", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index bda2629e682..3141b29e861 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.100.3 + +### Patch Changes + +- fix(suspense): skip calling combine when queries would suspend ([#10576](https://github.com/TanStack/query/pull/10576)) + ## 5.100.2 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a148b5e0c21..74979e04aa6 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.2", + "version": "5.100.3", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index d49818bfdfe..e2d2e15f26e 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.3 + ## 5.100.2 ## 5.100.1 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 4424b54c74a..9a7bd1cb44a 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.2", + "version": "5.100.3", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 6c940ef2403..f0bb176795f 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index b2ad8c2ef99..7b2720a436c 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.2", + "version": "5.100.3", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 6240ef09039..acae0a75cde 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + - @tanstack/query-persist-client-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 67f8b1120b9..0d5d3ab6083 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.2", + "version": "5.100.3", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index ff1b18470a1..c2d713cf16e 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/react-query@5.100.3 + - @tanstack/query-devtools@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index d2f5b27e9b8..e6c3ec93cc2 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.2", + "version": "5.100.3", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 9d32e7df280..878439353a5 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/react-query@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 05b4ed074f2..22106d53ecb 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.2", + "version": "5.100.3", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 529a740259c..244b5d32d38 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/react-query@5.100.3 + - @tanstack/query-persist-client-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index c3b20476633..3dcf8373061 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.2", + "version": "5.100.3", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index eb97ea613ab..18eaa779525 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/react-query +## 5.100.3 + +### Patch Changes + +- fix(suspense): skip calling combine when queries would suspend ([#10576](https://github.com/TanStack/query/pull/10576)) + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 8ee78e734b8..458804be029 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.2", + "version": "5.100.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index b9c5689b3ca..707bd716294 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.3 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.3 + - @tanstack/solid-query@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 93da8de645e..6a1c49cdaff 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.2", + "version": "5.100.3", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 7c962f9de18..c44b508dcab 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.3 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.3 + - @tanstack/solid-query@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 4bfd76c7386..bd02baef9dc 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.2", + "version": "5.100.3", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 28155eee26d..640bfd97a63 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index e24a7e57c99..3dbe1cd4d3f 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.2", + "version": "5.100.3", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 2c159699e89..ec65484f97a 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.22 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.3 + - @tanstack/svelte-query@6.1.22 + ## 6.1.21 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c1dd443ebdd..b5a180957b0 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.21", + "version": "6.1.22", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index fc129959778..ab7987594ae 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.22 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.3 + - @tanstack/svelte-query@6.1.22 + ## 6.1.21 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index cbd8625bcd3..d529edf5f98 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.21", + "version": "6.1.22", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 25519c65459..ebbc7611751 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.22 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 6.1.21 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 1b250e66eef..65cb6f08c78 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.21", + "version": "6.1.22", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 54756c20b66..54387fd9621 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.22 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.3 + - @tanstack/vue-query@5.100.3 + ## 6.1.21 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index acf6a7899a5..76b9d9512fe 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.21", + "version": "6.1.22", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 94e0027a475..6ffd7d86bd5 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.3 + +### Patch Changes + +- Updated dependencies [[`f85d825`](https://github.com/TanStack/query/commit/f85d825e02efbbff02e2081528ed28f5e5382f7a)]: + - @tanstack/query-core@5.100.3 + ## 5.100.2 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 02709657ef7..b1e8fb9fa24 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.2", + "version": "5.100.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da089f93f37..3a821b66d6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.21 + specifier: ^6.1.22 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.2 + specifier: ^5.100.3 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 3d1a62e63bd864359e369bb21356fa80d043f2ba Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Sat, 25 Apr 2026 16:40:17 +0100 Subject: [PATCH 181/414] =?UTF-8?q?fix(devtools):=20change=20onClose=20cal?= =?UTF-8?q?lback=20type=20from=20()=20=3D>=20unknown=20to=20()=20=E2=80=A6?= =?UTF-8?q?=20(#10118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(devtools): change onClose callback type from () => unknown to () => void * Fix onClose callback type in devtools Updated onClose callback type in devtools to improve type safety. * chore(changeset): fixed truncated changeset description --------- Co-authored-by: Dominik Dorfmeister --- .changeset/chatty-socks-act.md | 10 ++++++++++ docs/framework/react/devtools.md | 2 +- docs/framework/vue/devtools.md | 2 +- .../src/devtools-panel/types.ts | 2 +- packages/query-devtools/src/Devtools.tsx | 2 +- .../query-devtools/src/TanstackQueryDevtoolsPanel.tsx | 2 +- .../src/contexts/QueryDevtoolsContext.ts | 2 +- .../src/ReactQueryDevtoolsPanel.tsx | 2 +- packages/solid-query-devtools/src/devtoolsPanel.tsx | 2 +- packages/vue-query-devtools/src/types.ts | 2 +- 10 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 .changeset/chatty-socks-act.md diff --git a/.changeset/chatty-socks-act.md b/.changeset/chatty-socks-act.md new file mode 100644 index 00000000000..7826f84b7a3 --- /dev/null +++ b/.changeset/chatty-socks-act.md @@ -0,0 +1,10 @@ +--- +"@tanstack/angular-query-experimental": patch +"@tanstack/query-devtools": patch +"@tanstack/react-query-devtools": patch +"@tanstack/solid-query-devtools": patch +"@tanstack/vue-query-devtools": patch +--- + +fix(devtools): change onClose callback type from () => unknown to () => void + diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md index b1d49d37fdc..63df459e80c 100644 --- a/docs/framework/react/devtools.md +++ b/docs/framework/react/devtools.md @@ -124,7 +124,7 @@ function App() { - Default: `{ height: '500px' }` - Example: `{ height: '100%' }` - Example: `{ height: '100%', width: '100%' }` -- `onClose?: () => unknown` +- `onClose?: () => void` - Callback function that is called when the devtools panel is closed - `client?: QueryClient`, - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index 666058e27a9..091d9f280b5 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -110,7 +110,7 @@ function toggleDevtools() { - Default: `{ height: '500px' }` - Example: `{ height: '100%' }` - Example: `{ height: '100%', width: '100%' }` -- `onClose?: () => unknown` +- `onClose?: () => void` - Callback function that is called when the devtools panel is closed - `client?: QueryClient`, - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. diff --git a/packages/angular-query-experimental/src/devtools-panel/types.ts b/packages/angular-query-experimental/src/devtools-panel/types.ts index b87373ad953..f91974ee403 100644 --- a/packages/angular-query-experimental/src/devtools-panel/types.ts +++ b/packages/angular-query-experimental/src/devtools-panel/types.ts @@ -42,7 +42,7 @@ export interface DevtoolsPanelOptions { /** * Callback function that is called when the devtools panel is closed */ - onClose?: () => unknown + onClose?: () => void /** * Element where to render the devtools panel. When set to undefined or null, the devtools panel will not be created, or destroyed if existing. diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index 62b531a8ff3..8e9b1f4a321 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -89,7 +89,7 @@ interface ContentViewProps { localStore: StorageObject setLocalStore: StorageSetter showPanelViewOnly?: boolean - onClose?: () => unknown + onClose?: () => void } interface QueryStatusProps { diff --git a/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx b/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx index 699a64dbc15..6294a6de659 100644 --- a/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx +++ b/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx @@ -18,7 +18,7 @@ import type { Signal } from 'solid-js' export interface TanstackQueryDevtoolsPanelConfig extends QueryDevtoolsProps { styleNonce?: string shadowDOMTarget?: ShadowRoot - onClose?: () => unknown + onClose?: () => void } class TanstackQueryDevtoolsPanel { diff --git a/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts b/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts index 77969931cb6..5546c2d8285 100644 --- a/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts +++ b/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts @@ -29,7 +29,7 @@ export interface QueryDevtoolsProps { initialIsOpen?: boolean errorTypes?: Array shadowDOMTarget?: ShadowRoot - onClose?: () => unknown + onClose?: () => void hideDisabledQueries?: boolean theme?: Theme } diff --git a/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx b/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx index 8ff179ea3dd..316119ce39a 100644 --- a/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx +++ b/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx @@ -34,7 +34,7 @@ export interface DevtoolsPanelOptions { /** * Callback function that is called when the devtools panel is closed */ - onClose?: () => unknown + onClose?: () => void /** * Set this to true to hide disabled queries from the devtools panel. */ diff --git a/packages/solid-query-devtools/src/devtoolsPanel.tsx b/packages/solid-query-devtools/src/devtoolsPanel.tsx index 1288b031e74..0b7596ab50b 100644 --- a/packages/solid-query-devtools/src/devtoolsPanel.tsx +++ b/packages/solid-query-devtools/src/devtoolsPanel.tsx @@ -34,7 +34,7 @@ export interface DevtoolsPanelOptions { /** * Callback function that is called when the devtools panel is closed */ - onClose?: () => unknown + onClose?: () => void /** * Set this to true to hide disabled queries from the devtools panel. */ diff --git a/packages/vue-query-devtools/src/types.ts b/packages/vue-query-devtools/src/types.ts index f5057ab70ac..bf896240e9e 100644 --- a/packages/vue-query-devtools/src/types.ts +++ b/packages/vue-query-devtools/src/types.ts @@ -79,7 +79,7 @@ export interface DevtoolsPanelOptions { /** * Callback function that is called when the devtools panel is closed */ - onClose?: () => unknown + onClose?: () => void /** * Set this to true to hide disabled queries from the devtools panel. */ From 55afb3e6fb631d684e9448b8265c68a4185c76b3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 25 Apr 2026 17:51:28 +0200 Subject: [PATCH 182/414] ci: Version Packages (#10581) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/chatty-socks-act.md | 10 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 9 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 6 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 10 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 10 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 10 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 447 insertions(+), 280 deletions(-) delete mode 100644 .changeset/chatty-socks-act.md diff --git a/.changeset/chatty-socks-act.md b/.changeset/chatty-socks-act.md deleted file mode 100644 index 7826f84b7a3..00000000000 --- a/.changeset/chatty-socks-act.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@tanstack/angular-query-experimental": patch -"@tanstack/query-devtools": patch -"@tanstack/react-query-devtools": patch -"@tanstack/solid-query-devtools": patch -"@tanstack/vue-query-devtools": patch ---- - -fix(devtools): change onClose callback type from () => unknown to () => void - diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 4b9508a1b43..521758458c0 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index a1633d00ff7..74eca70198d 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", - "@tanstack/angular-query-persist-client": "^5.100.3", - "@tanstack/query-async-storage-persister": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-persist-client": "^5.100.4", + "@tanstack/query-async-storage-persister": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index ce3a3ad546c..9bad47b936b 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 4f628137f75..54af58b454b 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 37fa4323a43..0a515a36249 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index af678145e90..5fed0a7f78d 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 9732cee520f..79124b2d193 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index af9791db34b..c8e9bc88064 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index bc253cb025f..999f6391f78 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index aa8004589ce..66b23a69784 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 5172209e6bf..4a08161db14 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index a6a8b4a609b..2064ba6f44d 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.3", + "@tanstack/preact-query": "^5.100.4", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 629ea32b761..d71bc55e1c9 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.3", + "@tanstack/eslint-plugin-query": "^5.100.4", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 96875e1838a..3976e59abf3 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 4649993a210..cdd1a36f01e 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 4ce76c6138c..610423c101e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.3", - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", - "@tanstack/react-query-persist-client": "^5.100.3", + "@tanstack/query-async-storage-persister": "^5.100.4", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query-persist-client": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.3", + "@tanstack/eslint-plugin-query": "^5.100.4", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index f0455a5d55b..e81b8d695ba 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 762633b4801..ab705df0551 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index b57249ed69c..49327eafa8d 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index dfd81f55400..f8ceb5a7fed 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.3", - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", - "@tanstack/react-query-persist-client": "^5.100.3", + "@tanstack/query-async-storage-persister": "^5.100.4", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query-persist-client": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.3", + "@tanstack/eslint-plugin-query": "^5.100.4", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index b9a5dd9f30e..939956f50f4 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", + "@tanstack/react-query": "^5.100.4", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.3", + "@tanstack/eslint-plugin-query": "^5.100.4", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 3ddabffe226..86e97c56518 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 32d142e3e70..15d4a6b55aa 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 459884dc5d6..2e0dae04f39 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 96c210f0ba8..313239fd0af 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", - "@tanstack/react-query-next-experimental": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query-next-experimental": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 42e94aa91c6..208f48953fa 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 0dba103fd50..b8915e7e6e7 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.3", + "@tanstack/query-async-storage-persister": "^5.100.4", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", - "@tanstack/react-query-persist-client": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query-persist-client": "^5.100.4", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 9afb59ec524..6ef154b6d92 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 3e026dc9f6c..717342554f3 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 33f4023cd11..7b11056a499 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index d11e001695f..9aa0d11d4aa 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index c6de00fc6a6..a71ac13b6fc 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 11e3565dec9..7073ef83e24 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index c6c2b27bc96..cd9b3d28726 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 07c4f4b429c..aa01d823288 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 1b710fea093..fc21956c977 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 21156bafe78..99e4f59c493 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index b480f9544e7..31e20bf0465 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 9bf53645fd4..213fb22651a 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.3", - "@tanstack/react-query-devtools": "^5.100.3", + "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query-devtools": "^5.100.4", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index d954692e067..8b4b1eee01c 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.3", - "@tanstack/solid-query-devtools": "^5.100.3", + "@tanstack/solid-query": "^5.100.4", + "@tanstack/solid-query-devtools": "^5.100.4", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 9102438330b..213de8259ac 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.3", - "@tanstack/solid-query-devtools": "^5.100.3", + "@tanstack/solid-query": "^5.100.4", + "@tanstack/solid-query-devtools": "^5.100.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 3d8ec4b7c95..04ccf08f804 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.3", - "@tanstack/solid-query-devtools": "^5.100.3", + "@tanstack/solid-query": "^5.100.4", + "@tanstack/solid-query-devtools": "^5.100.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 51abf47ecf0..cd2e122f39e 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.3", - "@tanstack/solid-query-devtools": "^5.100.3", + "@tanstack/solid-query": "^5.100.4", + "@tanstack/solid-query-devtools": "^5.100.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 672ffd22792..a2118d05da2 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.3", - "@tanstack/solid-query": "^5.100.3", - "@tanstack/solid-query-devtools": "^5.100.3", - "@tanstack/solid-query-persist-client": "^5.100.3", + "@tanstack/query-async-storage-persister": "^5.100.4", + "@tanstack/solid-query": "^5.100.4", + "@tanstack/solid-query-devtools": "^5.100.4", + "@tanstack/solid-query-persist-client": "^5.100.4", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 84df731dc06..53bde92cfaf 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.3", - "@tanstack/solid-query-devtools": "^5.100.3", + "@tanstack/solid-query": "^5.100.4", + "@tanstack/solid-query-devtools": "^5.100.4", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.3", + "@tanstack/eslint-plugin-query": "^5.100.4", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 7d5503103f6..4894b460d0d 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.3", - "@tanstack/solid-query-devtools": "^5.100.3", + "@tanstack/solid-query": "^5.100.4", + "@tanstack/solid-query-devtools": "^5.100.4", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 56f7d96241e..7ba4d605d43 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22" + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index f9640a4b676..a7cf58840e0 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.3", - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22", - "@tanstack/svelte-query-persist-client": "^6.1.22" + "@tanstack/query-async-storage-persister": "^5.100.4", + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23", + "@tanstack/svelte-query-persist-client": "^6.1.23" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 2bd3c7d8512..fadda253f60 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22" + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index d69ffb43362..5d4acb6965f 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22" + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index aa7c60c44cd..78b866d2c4b 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22" + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index d495edbabb5..264601c527b 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22" + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index e1cc2c3d728..66a308223b0 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22" + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index efdde184150..cb101e1ec70 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.22", - "@tanstack/svelte-query-devtools": "^6.1.22" + "@tanstack/svelte-query": "^6.1.23", + "@tanstack/svelte-query-devtools": "^6.1.23" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 972d87fcfef..bff71f4f3fc 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.3", - "@tanstack/vue-query-devtools": "^6.1.22", + "@tanstack/vue-query": "^5.100.4", + "@tanstack/vue-query-devtools": "^6.1.23", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index f778427fdf1..46aa0a32f14 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.3", + "@tanstack/vue-query": "^5.100.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index cd987dffc94..66968adf377 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.3", - "@tanstack/query-persist-client-core": "^5.100.3", - "@tanstack/query-sync-storage-persister": "^5.100.3", - "@tanstack/vue-query": "^5.100.3", + "@tanstack/query-core": "^5.100.4", + "@tanstack/query-persist-client-core": "^5.100.4", + "@tanstack/query-sync-storage-persister": "^5.100.4", + "@tanstack/vue-query": "^5.100.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 918ba380ff5..e7e306894ff 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.3", - "@tanstack/vue-query-devtools": "^6.1.22", + "@tanstack/vue-query": "^5.100.4", + "@tanstack/vue-query-devtools": "^6.1.23", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index e514bc9d805..91e9b68562d 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.3", + "@tanstack/angular-query-experimental": "^5.100.4", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index b32cc25b12c..a213d136583 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/angular-query-experimental +## 5.100.4 + +### Patch Changes + +- fix(devtools): change onClose callback type from () => unknown to () => void ([#10118](https://github.com/TanStack/query/pull/10118)) + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index e90cff8ffc4..7bb99aa9e4f 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.3", + "version": "5.100.4", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index a17761bd976..6535c4c13a8 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.4 + +### Patch Changes + +- Updated dependencies [[`3d1a62e`](https://github.com/TanStack/query/commit/3d1a62e63bd864359e369bb21356fa80d043f2ba)]: + - @tanstack/angular-query-experimental@5.100.4 + - @tanstack/query-persist-client-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 6fa096a2fd0..0d078d556b8 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.3", + "version": "5.100.4", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index d896dacd93b..abdc7886b0b 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.4 + ## 5.100.3 ## 5.100.2 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index c42a3b68a85..89e23bf54f4 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.3", + "version": "5.100.4", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 166921780da..33656ac44d7 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.4 + +### Patch Changes + +- Updated dependencies [[`3d1a62e`](https://github.com/TanStack/query/commit/3d1a62e63bd864359e369bb21356fa80d043f2ba)]: + - @tanstack/query-devtools@5.100.4 + - @tanstack/preact-query@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 8f653799501..dd01f7b8ee5 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.3", + "version": "5.100.4", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index d65884ee8e3..c1ceea141af 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.4 + - @tanstack/query-persist-client-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 295263321ef..202dbf81ff1 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.3", + "version": "5.100.4", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 3f0c4c8979a..b9684e7d9a5 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 09b29c257b8..d3b88b2f6b0 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.3", + "version": "5.100.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 468fe9ea4c6..1ac5c00a58a 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + - @tanstack/query-persist-client-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 44b9fd7292f..9521aeb6431 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.3", + "version": "5.100.4", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 9108eeeea99..52eca83bb73 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 77e93890d51..16c9d4ba216 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.3", + "version": "5.100.4", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 3141b29e861..a3245777657 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 74979e04aa6..5d6c0812494 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.3", + "version": "5.100.4", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index e2d2e15f26e..000160b1594 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-devtools +## 5.100.4 + +### Patch Changes + +- fix(devtools): change onClose callback type from () => unknown to () => void ([#10118](https://github.com/TanStack/query/pull/10118)) + ## 5.100.3 ## 5.100.2 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 9a7bd1cb44a..c1c57ed37fb 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.3", + "version": "5.100.4", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index f0bb176795f..6f4114625f2 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 7b2720a436c..3f3334823b5 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.3", + "version": "5.100.4", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index acae0a75cde..d74d87e092c 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + - @tanstack/query-persist-client-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 0d5d3ab6083..c6ae3627d1d 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.3", + "version": "5.100.4", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index c2d713cf16e..0cbd0b3b961 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/react-query-devtools +## 5.100.4 + +### Patch Changes + +- fix(devtools): change onClose callback type from () => unknown to () => void ([#10118](https://github.com/TanStack/query/pull/10118)) + +- Updated dependencies [[`3d1a62e`](https://github.com/TanStack/query/commit/3d1a62e63bd864359e369bb21356fa80d043f2ba)]: + - @tanstack/query-devtools@5.100.4 + - @tanstack/react-query@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index e6c3ec93cc2..df64f7b820b 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.3", + "version": "5.100.4", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 878439353a5..542f02b1521 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 22106d53ecb..a93813ab234 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.3", + "version": "5.100.4", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 244b5d32d38..2154abac718 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.4 + - @tanstack/react-query@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3dcf8373061..97bc2bc0a97 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.3", + "version": "5.100.4", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 18eaa779525..1796fe0af90 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 458804be029..f2c2b7fb1ef 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.3", + "version": "5.100.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 707bd716294..9a06341f3f1 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-devtools +## 5.100.4 + +### Patch Changes + +- fix(devtools): change onClose callback type from () => unknown to () => void ([#10118](https://github.com/TanStack/query/pull/10118)) + +- Updated dependencies [[`3d1a62e`](https://github.com/TanStack/query/commit/3d1a62e63bd864359e369bb21356fa80d043f2ba)]: + - @tanstack/query-devtools@5.100.4 + - @tanstack/solid-query@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 6a1c49cdaff..84f36d4f335 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.3", + "version": "5.100.4", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index c44b508dcab..33f03c89e96 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.4 + - @tanstack/solid-query@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index bd02baef9dc..85bec789a85 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.3", + "version": "5.100.4", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 640bfd97a63..7c222fe3dee 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 3dbe1cd4d3f..bb2f690b8d1 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.3", + "version": "5.100.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index ec65484f97a..8966b6e7950 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.23 + +### Patch Changes + +- Updated dependencies [[`3d1a62e`](https://github.com/TanStack/query/commit/3d1a62e63bd864359e369bb21356fa80d043f2ba)]: + - @tanstack/query-devtools@5.100.4 + - @tanstack/svelte-query@6.1.23 + ## 6.1.22 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index b5a180957b0..ec2c6a4839d 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.22", + "version": "6.1.23", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index ab7987594ae..25404e547d0 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.23 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.4 + - @tanstack/svelte-query@6.1.23 + ## 6.1.22 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index d529edf5f98..0f61999ee2c 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.22", + "version": "6.1.23", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index ebbc7611751..0211020197f 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.23 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 6.1.22 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 65cb6f08c78..eb725da8fae 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.22", + "version": "6.1.23", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 54387fd9621..3fa8c91e9c8 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/vue-query-devtools +## 6.1.23 + +### Patch Changes + +- fix(devtools): change onClose callback type from () => unknown to () => void ([#10118](https://github.com/TanStack/query/pull/10118)) + +- Updated dependencies [[`3d1a62e`](https://github.com/TanStack/query/commit/3d1a62e63bd864359e369bb21356fa80d043f2ba)]: + - @tanstack/query-devtools@5.100.4 + - @tanstack/vue-query@5.100.4 + ## 6.1.22 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 76b9d9512fe..e4ea069131d 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.22", + "version": "6.1.23", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 6ffd7d86bd5..0e6c1627a48 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.4 + ## 5.100.3 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index b1e8fb9fa24..61ef6ad2ec3 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.3", + "version": "5.100.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a821b66d6b..4e37fa6675d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.22 + specifier: ^6.1.23 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.3 + specifier: ^5.100.4 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 672c3193db259ba5e9631d29f3c5d825d9ca6cd2 Mon Sep 17 00:00:00 2001 From: Cocoon-Break <54054995+kuishou68@users.noreply.github.com> Date: Sun, 26 Apr 2026 01:00:45 +0800 Subject: [PATCH 183/414] fix(query-core): propagate AbortSignal reason in infiniteQueryBehavior fetchPage cancellation (#10476) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: propagate AbortSignal reason when cancelling infinite query fetchPage (Closes #10475) Signed-off-by: Cocoon-Break <54054995+kuishou68@users.noreply.github.com> * add a test --------- Signed-off-by: Cocoon-Break <54054995+kuishou68@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister 🔮 --- .../__tests__/infiniteQueryBehavior.test.tsx | 41 +++++++++++++++++++ .../query-core/src/infiniteQueryBehavior.ts | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index 28d45735ce4..1a4bf1bee30 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -1,6 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { CancelledError, InfiniteQueryObserver, QueryClient } from '..' +import { infiniteQueryBehavior } from '../infiniteQueryBehavior' import type { InfiniteData, InfiniteQueryObserverResult, QueryCache } from '..' describe('InfiniteQueryBehavior', () => { @@ -332,6 +333,46 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) + it('should surface the abort reason when cancellation happens between refetched pages', async () => { + const key = queryKey() + const abortController = new AbortController() + const queryFn = vi.fn().mockImplementation(({ pageParam, signal }) => { + void signal.aborted + + if (pageParam === 1) { + abortController.abort() + } + + return pageParam + }) + + const behavior = infiniteQueryBehavior() + const context = { + client: queryClient, + queryKey: key, + fetchOptions: undefined, + options: { + queryKey: key, + queryFn, + initialPageParam: 1, + getNextPageParam: (lastPage: number) => lastPage + 1, + }, + state: { + data: { + pages: [1, 2], + pageParams: [1, 2], + }, + }, + fetchFn: () => Promise.resolve(), + signal: abortController.signal, + } + + behavior.onFetch(context as any, {} as any) + + await expect(context.fetchFn()).rejects.toBe(abortController.signal.reason) + expect(queryFn).toHaveBeenCalledTimes(1) + }) + it('should not enter an infinite loop when a page errors while retry is on #8046', async () => { let errorCount = 0 const key = queryKey() diff --git a/packages/query-core/src/infiniteQueryBehavior.ts b/packages/query-core/src/infiniteQueryBehavior.ts index af9c50e5503..2d87db5a5a9 100644 --- a/packages/query-core/src/infiniteQueryBehavior.ts +++ b/packages/query-core/src/infiniteQueryBehavior.ts @@ -44,7 +44,7 @@ export function infiniteQueryBehavior( previous?: boolean, ): Promise> => { if (cancelled) { - return Promise.reject() + return Promise.reject(context.signal.reason) } if (param == null && data.pages.length) { From a53ef97f87decb8ea2431710f5199431d3c94c8d Mon Sep 17 00:00:00 2001 From: TkDodo Date: Sat, 25 Apr 2026 19:03:12 +0200 Subject: [PATCH 184/414] fix: add missing changeset --- .changeset/solid-hounds-hammer.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/solid-hounds-hammer.md diff --git a/.changeset/solid-hounds-hammer.md b/.changeset/solid-hounds-hammer.md new file mode 100644 index 00000000000..397c48a88d2 --- /dev/null +++ b/.changeset/solid-hounds-hammer.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +fix(core): propagate AbortSignal reason in infinite queries From 441204b9d22d1dcfc7ac85b04c21ce017a28603e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 25 Apr 2026 19:25:49 +0200 Subject: [PATCH 185/414] ci: Version Packages (#10582) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/solid-hounds-hammer.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 439 insertions(+), 275 deletions(-) delete mode 100644 .changeset/solid-hounds-hammer.md diff --git a/.changeset/solid-hounds-hammer.md b/.changeset/solid-hounds-hammer.md deleted file mode 100644 index 397c48a88d2..00000000000 --- a/.changeset/solid-hounds-hammer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -fix(core): propagate AbortSignal reason in infinite queries diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 521758458c0..ab43fd6446e 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 74eca70198d..255aa68f3e7 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", - "@tanstack/angular-query-persist-client": "^5.100.4", - "@tanstack/query-async-storage-persister": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-persist-client": "^5.100.5", + "@tanstack/query-async-storage-persister": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 9bad47b936b..b308f4c22ec 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 54af58b454b..7ffab3e4c3f 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 0a515a36249..f89cfa79623 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 5fed0a7f78d..ceed1684ae7 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 79124b2d193..9b6c5b3b8d5 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index c8e9bc88064..bdc64f2a06f 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 999f6391f78..7c9d063336f 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 66b23a69784..3cdfc2e2d03 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 4a08161db14..7eeea2abf88 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 2064ba6f44d..144103d9611 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.4", + "@tanstack/preact-query": "^5.100.5", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index d71bc55e1c9..597c7a086c0 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.4", + "@tanstack/eslint-plugin-query": "^5.100.5", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 3976e59abf3..c885083fb6c 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index cdd1a36f01e..13fbf3bc541 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 610423c101e..a13b5802f28 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.4", - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", - "@tanstack/react-query-persist-client": "^5.100.4", + "@tanstack/query-async-storage-persister": "^5.100.5", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query-persist-client": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.4", + "@tanstack/eslint-plugin-query": "^5.100.5", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index e81b8d695ba..9a67cd35a4d 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index ab705df0551..01b6f76efa4 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 49327eafa8d..892c3cb3275 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index f8ceb5a7fed..6e48888d8b0 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.4", - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", - "@tanstack/react-query-persist-client": "^5.100.4", + "@tanstack/query-async-storage-persister": "^5.100.5", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query-persist-client": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.4", + "@tanstack/eslint-plugin-query": "^5.100.5", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 939956f50f4..f765ff82475 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", + "@tanstack/react-query": "^5.100.5", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.4", + "@tanstack/eslint-plugin-query": "^5.100.5", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 86e97c56518..a945f59c3fe 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 15d4a6b55aa..18e3d9d4f10 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 2e0dae04f39..74ca23b27ae 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 313239fd0af..052f1bd312f 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", - "@tanstack/react-query-next-experimental": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query-next-experimental": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 208f48953fa..7fc7f80625f 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index b8915e7e6e7..95cd9973c9a 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.4", + "@tanstack/query-async-storage-persister": "^5.100.5", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", - "@tanstack/react-query-persist-client": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query-persist-client": "^5.100.5", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 6ef154b6d92..45282741dc0 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 717342554f3..a530b8436b3 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 7b11056a499..b5113a42fc5 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 9aa0d11d4aa..74757046eb3 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index a71ac13b6fc..25486e1c764 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 7073ef83e24..8eadc225b7b 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index cd9b3d28726..eb2066c3c1b 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index aa01d823288..9233224dad2 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index fc21956c977..2d5a7dfa5ef 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 99e4f59c493..8ec8c83f2c0 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 31e20bf0465..2339e53852f 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 213fb22651a..8df19921932 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.4", - "@tanstack/react-query-devtools": "^5.100.4", + "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query-devtools": "^5.100.5", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 8b4b1eee01c..23cb6297df8 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.4", - "@tanstack/solid-query-devtools": "^5.100.4", + "@tanstack/solid-query": "^5.100.5", + "@tanstack/solid-query-devtools": "^5.100.5", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 213de8259ac..7ca5432b74e 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.4", - "@tanstack/solid-query-devtools": "^5.100.4", + "@tanstack/solid-query": "^5.100.5", + "@tanstack/solid-query-devtools": "^5.100.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 04ccf08f804..016d6078d6a 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.4", - "@tanstack/solid-query-devtools": "^5.100.4", + "@tanstack/solid-query": "^5.100.5", + "@tanstack/solid-query-devtools": "^5.100.5", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index cd2e122f39e..29c7856a7ef 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.4", - "@tanstack/solid-query-devtools": "^5.100.4", + "@tanstack/solid-query": "^5.100.5", + "@tanstack/solid-query-devtools": "^5.100.5", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index a2118d05da2..b97308dea85 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.4", - "@tanstack/solid-query": "^5.100.4", - "@tanstack/solid-query-devtools": "^5.100.4", - "@tanstack/solid-query-persist-client": "^5.100.4", + "@tanstack/query-async-storage-persister": "^5.100.5", + "@tanstack/solid-query": "^5.100.5", + "@tanstack/solid-query-devtools": "^5.100.5", + "@tanstack/solid-query-persist-client": "^5.100.5", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 53bde92cfaf..b192201536c 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.4", - "@tanstack/solid-query-devtools": "^5.100.4", + "@tanstack/solid-query": "^5.100.5", + "@tanstack/solid-query-devtools": "^5.100.5", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.4", + "@tanstack/eslint-plugin-query": "^5.100.5", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 4894b460d0d..503811b5562 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.4", - "@tanstack/solid-query-devtools": "^5.100.4", + "@tanstack/solid-query": "^5.100.5", + "@tanstack/solid-query-devtools": "^5.100.5", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 7ba4d605d43..ab6327adefb 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23" + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index a7cf58840e0..31a2186c1bb 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.4", - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23", - "@tanstack/svelte-query-persist-client": "^6.1.23" + "@tanstack/query-async-storage-persister": "^5.100.5", + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24", + "@tanstack/svelte-query-persist-client": "^6.1.24" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index fadda253f60..b680eeb203b 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23" + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 5d4acb6965f..da470ceca88 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23" + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 78b866d2c4b..41c3298592f 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23" + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 264601c527b..269daa38d16 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23" + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 66a308223b0..e91c0315493 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23" + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index cb101e1ec70..ceb27da366c 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.23", - "@tanstack/svelte-query-devtools": "^6.1.23" + "@tanstack/svelte-query": "^6.1.24", + "@tanstack/svelte-query-devtools": "^6.1.24" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index bff71f4f3fc..7f25ab97dfd 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.4", - "@tanstack/vue-query-devtools": "^6.1.23", + "@tanstack/vue-query": "^5.100.5", + "@tanstack/vue-query-devtools": "^6.1.24", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 46aa0a32f14..c54c1756e94 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.4", + "@tanstack/vue-query": "^5.100.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 66968adf377..fc4e0be1fe1 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.4", - "@tanstack/query-persist-client-core": "^5.100.4", - "@tanstack/query-sync-storage-persister": "^5.100.4", - "@tanstack/vue-query": "^5.100.4", + "@tanstack/query-core": "^5.100.5", + "@tanstack/query-persist-client-core": "^5.100.5", + "@tanstack/query-sync-storage-persister": "^5.100.5", + "@tanstack/vue-query": "^5.100.5", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index e7e306894ff..18ba642c3ae 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.4", - "@tanstack/vue-query-devtools": "^6.1.23", + "@tanstack/vue-query": "^5.100.5", + "@tanstack/vue-query-devtools": "^6.1.24", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 91e9b68562d..d934319273c 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.4", + "@tanstack/angular-query-experimental": "^5.100.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index a213d136583..72edf28162c 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 7bb99aa9e4f..7e44a56fc1a 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.4", + "version": "5.100.5", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 6535c4c13a8..076e19244d1 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.5 + - @tanstack/query-persist-client-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 0d078d556b8..b996b80529c 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.4", + "version": "5.100.5", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index abdc7886b0b..cda33e3c341 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.5 + ## 5.100.4 ## 5.100.3 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 89e23bf54f4..55ab9921602 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.4", + "version": "5.100.5", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 33656ac44d7..5ae55a88efb 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.5 + - @tanstack/query-devtools@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index dd01f7b8ee5..9ffbd498428 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.4", + "version": "5.100.5", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index c1ceea141af..f6fd18b5138 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.5 + - @tanstack/query-persist-client-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 202dbf81ff1..507f097bea7 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.4", + "version": "5.100.5", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index b9684e7d9a5..f9a0dfb691c 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index d3b88b2f6b0..a8307f6821b 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.4", + "version": "5.100.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 1ac5c00a58a..71ba69cedf2 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + - @tanstack/query-persist-client-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 9521aeb6431..db7f80ff6f1 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.4", + "version": "5.100.5", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 52eca83bb73..e805bba3646 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 16c9d4ba216..e8b3585f923 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.4", + "version": "5.100.5", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index a3245777657..392b70d7782 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.100.5 + +### Patch Changes + +- fix(core): propagate AbortSignal reason in infinite queries ([`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)) + ## 5.100.4 ## 5.100.3 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 5d6c0812494..5533e81abad 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.4", + "version": "5.100.5", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 000160b1594..9f79063505f 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index c1c57ed37fb..d3e378186d7 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.4", + "version": "5.100.5", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 6f4114625f2..505c310d38b 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 3f3334823b5..51bf90c706b 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.4", + "version": "5.100.5", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index d74d87e092c..6687041449d 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + - @tanstack/query-persist-client-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index c6ae3627d1d..7d35c7bc102 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.4", + "version": "5.100.5", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 0cbd0b3b961..f54706b409f 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.5 + - @tanstack/react-query@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index df64f7b820b..414a0b51cbd 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.4", + "version": "5.100.5", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 542f02b1521..07e4e3fd0bd 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index a93813ab234..32b30fe084b 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.4", + "version": "5.100.5", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 2154abac718..1175f5b5394 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.5 + - @tanstack/react-query@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 97bc2bc0a97..bb20a9c68cb 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.4", + "version": "5.100.5", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 1796fe0af90..4b508a0ebd5 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index f2c2b7fb1ef..cc2586c11a9 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.4", + "version": "5.100.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 9a06341f3f1..ee25ab915f4 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.5 + - @tanstack/solid-query@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 84f36d4f335..c771c24c395 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.4", + "version": "5.100.5", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 33f03c89e96..f5ee9b48e16 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.5 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.5 + - @tanstack/solid-query@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 85bec789a85..37b5bcf8979 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.4", + "version": "5.100.5", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 7c222fe3dee..aaff162ce2e 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index bb2f690b8d1..eefec4e70b5 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.4", + "version": "5.100.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 8966b6e7950..2c80db448d5 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.24 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.5 + - @tanstack/svelte-query@6.1.24 + ## 6.1.23 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index ec2c6a4839d..02c1aea5b76 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.23", + "version": "6.1.24", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 25404e547d0..1f2e9ea33ab 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.24 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.5 + - @tanstack/svelte-query@6.1.24 + ## 6.1.23 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 0f61999ee2c..2abbec49de1 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.23", + "version": "6.1.24", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 0211020197f..884c3348994 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.24 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 6.1.23 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index eb725da8fae..85c2f124c38 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.23", + "version": "6.1.24", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 3fa8c91e9c8..f2146ff93ef 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.24 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.5 + - @tanstack/vue-query@5.100.5 + ## 6.1.23 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index e4ea069131d..dfc3cc8bcd6 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.23", + "version": "6.1.24", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 0e6c1627a48..94b2e3f6ca0 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.5 + +### Patch Changes + +- Updated dependencies [[`a53ef97`](https://github.com/TanStack/query/commit/a53ef97f87decb8ea2431710f5199431d3c94c8d)]: + - @tanstack/query-core@5.100.5 + ## 5.100.4 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 61ef6ad2ec3..df1331450c4 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.4", + "version": "5.100.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e37fa6675d..ec72cce9dd4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.23 + specifier: ^6.1.24 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.4 + specifier: ^5.100.5 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 20fc6c290805c29957cc3fc91b93df8d30ab1249 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 14:09:31 +0900 Subject: [PATCH 186/414] test(angular-query-experimental/injectInfiniteQuery): add test for error state when 'queryFn' rejects (#10585) --- .../__tests__/inject-infinite-query.test.ts | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index e3c3744d563..f1f38acc7a6 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -66,6 +66,44 @@ describe('injectInfiniteQuery', () => { ).toBeInTheDocument() }) + it('should reject and update signal', async () => { + const key = queryKey() + + @Component({ + template: ` +
status: {{ query.status() }}
+
pages: {{ query.data()?.pages?.join(', ') ?? 'none' }}
+
error: {{ query.error()?.message ?? 'none' }}
+
isError: {{ query.isError() }}
+
failureCount: {{ query.failureCount() }}
+ `, + }) + class Page { + readonly query = injectInfiniteQuery(() => ({ + retry: false, + queryKey: key, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Some error'))), + initialPageParam: 0, + getNextPageParam: () => 12, + })) + } + + const rendered = await render(Page) + + expect(rendered.getByText('status: pending')).toBeInTheDocument() + expect(rendered.getByText('pages: none')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + + expect(rendered.getByText('status: error')).toBeInTheDocument() + expect(rendered.getByText('pages: none')).toBeInTheDocument() + expect(rendered.getByText('error: Some error')).toBeInTheDocument() + expect(rendered.getByText('isError: true')).toBeInTheDocument() + expect(rendered.getByText('failureCount: 1')).toBeInTheDocument() + }) + describe('injection context', () => { it('should throw NG0203 with descriptive error outside injection context', () => { const key = queryKey() From 4f373699e05fd23c574a7dfe0b627b7652d3bc0c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 14:21:24 +0900 Subject: [PATCH 187/414] test(angular-query-experimental/injectQuery): add test for 'select' option transforming 'queryFn' data (#10586) --- .../src/__tests__/inject-query.test.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 82eb8f0f343..1254564a8bd 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -356,6 +356,30 @@ describe('injectQuery', () => { expect(rendered.getByText('failureReason: Some error')).toBeInTheDocument() }) + it('should be able to select a part of the data with select', async () => { + const key = queryKey() + + @Component({ + template: `
data: {{ query.data() ?? 'none' }}
`, + }) + class Page { + readonly query = injectQuery<{ name: string }, Error, string>(() => ({ + queryKey: key, + queryFn: () => sleep(10).then(() => ({ name: 'test' })), + select: (data) => data.name, + })) + } + + const rendered = await render(Page) + + expect(rendered.getByText('data: none')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + + expect(rendered.getByText('data: test')).toBeInTheDocument() + }) + it('should update query on options contained signal change', async () => { const key1 = queryKey() const key2 = queryKey() From 76161b7a6b403dad448b75bc15f06b86effb2283 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 14:42:26 +0900 Subject: [PATCH 188/414] test(angular-query-experimental/injectQuery): add test for 'placeholderData' lifecycle (#10587) --- .../src/__tests__/inject-query.test.ts | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 1254564a8bd..4ff82e2250a 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -380,6 +380,38 @@ describe('injectQuery', () => { expect(rendered.getByText('data: test')).toBeInTheDocument() }) + it('should show placeholderData until queryFn resolves and then expose real data', async () => { + const key = queryKey() + + @Component({ + template: ` +
data: {{ query.data() }}
+
isPlaceholderData: {{ query.isPlaceholderData() }}
+
isSuccess: {{ query.isSuccess() }}
+ `, + }) + class Page { + readonly query = injectQuery(() => ({ + queryKey: key, + queryFn: () => sleep(10).then(() => 'real-data'), + placeholderData: 'placeholder', + })) + } + + const rendered = await render(Page) + + expect(rendered.getByText('data: placeholder')).toBeInTheDocument() + expect(rendered.getByText('isPlaceholderData: true')).toBeInTheDocument() + expect(rendered.getByText('isSuccess: true')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + + expect(rendered.getByText('data: real-data')).toBeInTheDocument() + expect(rendered.getByText('isPlaceholderData: false')).toBeInTheDocument() + expect(rendered.getByText('isSuccess: true')).toBeInTheDocument() + }) + it('should update query on options contained signal change', async () => { const key1 = queryKey() const key2 = queryKey() From d78883bff0a0b950fa1385588def01db99397aaa Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 14:53:07 +0900 Subject: [PATCH 189/414] test(angular-query-experimental/injectQuery): remove duplicate error test already covered by 'should reject and update signal' (#10588) --- .../src/__tests__/inject-query.test.ts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 4ff82e2250a..a8bff8527bb 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -604,24 +604,6 @@ describe('injectQuery', () => { }) }) - it('should set state to error when queryFn returns reject promise', async () => { - const key = queryKey() - const query = TestBed.runInInjectionContext(() => { - return injectQuery(() => ({ - retry: false, - queryKey: key, - queryFn: () => - sleep(10).then(() => Promise.reject(new Error('Some error'))), - })) - }) - - expect(query.status()).toBe('pending') - - await vi.advanceTimersByTimeAsync(11) - - expect(query.status()).toBe('error') - }) - it('should render with required signal inputs', async () => { @Component({ selector: 'app-fake', From e69e5d2a07cc8ac661b1a2d926b8409b155a2e22 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 15:03:29 +0900 Subject: [PATCH 190/414] test(angular-query-experimental/injectMutation): switch 'error' test to '@Component' + 'render' pattern (#10589) --- .../src/__tests__/inject-mutation.test.ts | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index b9d3eea6e12..c1023a53915 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -72,25 +72,36 @@ describe('injectMutation', () => { }) it('should return error when request fails', async () => { - const mutation = TestBed.runInInjectionContext(() => { - return injectMutation(() => ({ + @Component({ + template: ` +
isIdle: {{ mutation.isIdle() }}
+
isPending: {{ mutation.isPending() }}
+
isError: {{ mutation.isError() }}
+
isSuccess: {{ mutation.isSuccess() }}
+
data: {{ mutation.data() ?? 'none' }}
+
error: {{ mutation.error()?.message ?? 'none' }}
+ `, + }) + class Page { + readonly mutation = injectMutation(() => ({ mutationFn: () => sleep(10).then(() => Promise.reject(new Error('Some error'))), })) - }) + } - mutation.mutate() + const rendered = await render(Page) + + rendered.fixture.componentInstance.mutation.mutate() await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() - expectSignals(mutation, { - isIdle: false, - isPending: false, - isError: true, - isSuccess: false, - data: undefined, - error: Error('Some error'), - }) + expect(rendered.getByText('isIdle: false')).toBeInTheDocument() + expect(rendered.getByText('isPending: false')).toBeInTheDocument() + expect(rendered.getByText('isError: true')).toBeInTheDocument() + expect(rendered.getByText('isSuccess: false')).toBeInTheDocument() + expect(rendered.getByText('data: none')).toBeInTheDocument() + expect(rendered.getByText('error: Some error')).toBeInTheDocument() }) it('should return data when request succeeds', async () => { From 72a15ae4d9f6fe262cb1bd72107f9862291c1e9d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 15:31:53 +0900 Subject: [PATCH 191/414] test(angular-query-experimental/injectMutation): switch 'pending' test to '@Component' + 'render' pattern (#10590) --- .../src/__tests__/inject-mutation.test.ts | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index c1023a53915..fd32ee09b80 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -50,25 +50,34 @@ describe('injectMutation', () => { it('should change state after invoking mutate', async () => { const result = 'Mock data' - const mutation = TestBed.runInInjectionContext(() => { - return injectMutation(() => ({ + @Component({ + template: ` +
isIdle: {{ mutation.isIdle() }}
+
isPending: {{ mutation.isPending() }}
+
isError: {{ mutation.isError() }}
+
isSuccess: {{ mutation.isSuccess() }}
+
data: {{ mutation.data() ?? 'none' }}
+
error: {{ mutation.error()?.message ?? 'none' }}
+ `, + }) + class Page { + readonly mutation = injectMutation(() => ({ mutationFn: (params: string) => sleep(10).then(() => params), })) - }) + } - TestBed.tick() + const rendered = await render(Page) - mutation.mutate(result) + rendered.fixture.componentInstance.mutation.mutate(result) await vi.advanceTimersByTimeAsync(0) + rendered.fixture.detectChanges() - expectSignals(mutation, { - isIdle: false, - isPending: true, - isError: false, - isSuccess: false, - data: undefined, - error: null, - }) + expect(rendered.getByText('isIdle: false')).toBeInTheDocument() + expect(rendered.getByText('isPending: true')).toBeInTheDocument() + expect(rendered.getByText('isError: false')).toBeInTheDocument() + expect(rendered.getByText('isSuccess: false')).toBeInTheDocument() + expect(rendered.getByText('data: none')).toBeInTheDocument() + expect(rendered.getByText('error: none')).toBeInTheDocument() }) it('should return error when request fails', async () => { From 51ef23f46b23f9f7fd858386e42bfbb3adb5e49d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 17:28:05 +0900 Subject: [PATCH 192/414] test(angular-query-experimental/injectMutation): add test for 'mutateAsync' resolving with 'mutationFn' return value (#10591) --- .../src/__tests__/inject-mutation.test.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index fd32ee09b80..f0c53602b1d 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -518,6 +518,21 @@ describe('injectMutation', () => { await expect(() => mutateAsync()).rejects.toThrow(err) }) + it('should resolve mutateAsync with the value returned from mutationFn', async () => { + const key = queryKey() + const { mutateAsync } = TestBed.runInInjectionContext(() => { + return injectMutation(() => ({ + mutationKey: key, + mutationFn: (params: string) => sleep(10).then(() => params), + })) + }) + + const promise = mutateAsync('Mock data') + await vi.advanceTimersByTimeAsync(11) + + await expect(promise).resolves.toBe('Mock data') + }) + describe('injection context', () => { it('should throw NG0203 with descriptive error outside injection context', () => { const key = queryKey() From 7a5b53c4ea6e912a53ddc5cb0059155f5ff3f8be Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 17:46:11 +0900 Subject: [PATCH 193/414] test(angular-query-experimental/injectIsFetching): add filter test by 'queryKey' (#10594) --- .../src/__tests__/inject-is-fetching.test.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index ad29c381bb0..db1f7aeea11 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -60,6 +60,36 @@ describe('injectIsFetching', () => { expect(rendered.getByText('fetching: 0')).toBeInTheDocument() }) + it('should be able to filter by queryKey', async () => { + const key1 = queryKey() + const key2 = queryKey() + + @Component({ + template: `
fetching: {{ isFetching() }}
`, + }) + class Page { + readonly query1 = injectQuery(() => ({ + queryKey: key1, + queryFn: () => sleep(10).then(() => 'test1'), + })) + readonly query2 = injectQuery(() => ({ + queryKey: key2, + queryFn: () => sleep(100).then(() => 'test2'), + })) + readonly isFetching = injectIsFetching({ queryKey: key1 }) + } + + const rendered = await render(Page) + + await vi.advanceTimersByTimeAsync(0) + rendered.fixture.detectChanges() + expect(rendered.getByText('fetching: 1')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + expect(rendered.getByText('fetching: 0')).toBeInTheDocument() + }) + describe('injection context', () => { it('should throw NG0203 with descriptive error outside injection context', () => { expect(() => { From c9755be3edc28bce37d10e2a8caaac12428e7646 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 17:54:35 +0900 Subject: [PATCH 194/414] test(angular-query-experimental/injectIsMutating): add filter test by 'mutationKey' (#10595) --- .../src/__tests__/inject-is-mutating.test.ts | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 91d3e89afb6..66fe678d03a 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -62,6 +62,39 @@ describe('injectIsMutating', () => { expect(rendered.getByText('mutating: 0')).toBeInTheDocument() }) + it('should be able to filter by mutationKey', async () => { + const key1 = queryKey() + const key2 = queryKey() + + @Component({ + template: `
mutating: {{ isMutating() }}
`, + }) + class Page { + readonly mutation1 = injectMutation(() => ({ + mutationKey: key1, + mutationFn: () => sleep(10).then(() => 'data1'), + })) + readonly mutation2 = injectMutation(() => ({ + mutationKey: key2, + mutationFn: () => sleep(100).then(() => 'data2'), + })) + readonly isMutating = injectIsMutating({ mutationKey: key1 }) + } + + const rendered = await render(Page) + + rendered.fixture.componentInstance.mutation1.mutate() + rendered.fixture.componentInstance.mutation2.mutate() + + await vi.advanceTimersByTimeAsync(0) + rendered.fixture.detectChanges() + expect(rendered.getByText('mutating: 1')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + expect(rendered.getByText('mutating: 0')).toBeInTheDocument() + }) + describe('injection context', () => { it('should throw NG0203 with descriptive error outside injection context', () => { expect(() => { From 3547f86e13419771cf7aee7d76a64c84fe10c53c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 18:09:51 +0900 Subject: [PATCH 195/414] test(angular-query-experimental/injectIsRestoring): add test for reactively reflecting changes to the provided signal (#10596) --- .../src/__tests__/inject-is-restoring.test.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts index 0b74019b3a7..73659d74a5f 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts @@ -43,6 +43,26 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(true) }) + it('should reactively reflect changes to the provided signal', () => { + const restoringSignal = signal(true) + + TestBed.configureTestingModule({ + providers: [provideIsRestoring(restoringSignal.asReadonly())], + }) + + const isRestoring = TestBed.runInInjectionContext(() => { + return injectIsRestoring() + }) + + expect(isRestoring()).toBe(true) + + restoringSignal.set(false) + expect(isRestoring()).toBe(false) + + restoringSignal.set(true) + expect(isRestoring()).toBe(true) + }) + it('should be usable outside injection context when passing an injector', () => { const isRestoring = injectIsRestoring({ injector: TestBed.inject(Injector), From dd901aef9803226a791f3f858114171ddeae7d70 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 26 Apr 2026 18:18:41 +0900 Subject: [PATCH 196/414] test(angular-query-experimental/injectQueries): add test for error state when one of the queries rejects (#10597) --- .../src/__tests__/inject-queries.test.ts | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts index 2d3560b99b8..523bda69f06 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -136,6 +136,50 @@ describe('injectQueries', () => { expect(results.length).toBeGreaterThanOrEqual(2) }) + it('should reflect error state when one of the queries rejects', async () => { + const key1 = queryKey() + const key2 = queryKey() + + @Component({ + template: ` +
+ status1: {{ result()[0].status() }}, error1: + {{ result()[0].error()?.message ?? 'none' }} +
+
+ status2: {{ result()[1].status() }}, data2: + {{ result()[1].data() ?? 'none' }} +
+ `, + }) + class Page { + readonly result = injectQueries(() => ({ + queries: [ + { + queryKey: key1, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Some error'))), + retry: false, + }, + { + queryKey: key2, + queryFn: () => sleep(10).then(() => 2), + }, + ], + })) + } + + const rendered = await render(Page) + + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + + expect( + rendered.getByText('status1: error, error1: Some error'), + ).toBeInTheDocument() + expect(rendered.getByText('status2: success, data2: 2')).toBeInTheDocument() + }) + describe('isRestoring', () => { it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { const key1 = queryKey() From f88a608c590038882399cfe996565c8e9477a3a4 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 29 Apr 2026 00:48:22 +0900 Subject: [PATCH 197/414] test(angular-query-experimental/injectIsRestoring): add test for resolving 'provideIsRestoring' value with 'injector' option (#10599) --- .../src/__tests__/inject-is-restoring.test.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts index 73659d74a5f..72ca01f9d69 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-restoring.test.ts @@ -71,6 +71,20 @@ describe('injectIsRestoring', () => { expect(isRestoring()).toBe(false) }) + it('should return the provided signal value when using injector option', () => { + const restoringSignal = signal(true) + + TestBed.configureTestingModule({ + providers: [provideIsRestoring(restoringSignal.asReadonly())], + }) + + const isRestoring = injectIsRestoring({ + injector: TestBed.inject(Injector), + }) + + expect(isRestoring()).toBe(true) + }) + it('should throw NG0203 with descriptive error outside injection context', () => { expect(() => { injectIsRestoring() From 3af3a5ded3fbaf5a06403d7561b83124dbbcb243 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 29 Apr 2026 01:25:53 +0900 Subject: [PATCH 198/414] refactor(solid-query): remove 'Solid' prefix from 'SolidQueryOptions', 'SolidInfiniteQueryOptions', and 'SolidMutationOptions' (#10500) * refactor(solid-query): remove 'Solid' prefix from 'SolidQueryOptions', 'SolidInfiniteQueryOptions', and 'SolidMutationOptions' * ci: apply automated fixes * chore(changeset): add changeset for 'Solid' prefix removal --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/five-lizards-camp.md | 5 +++++ .../src/__tests__/mutationOptions.test-d.tsx | 9 +++------ .../src/__tests__/useQueries.test-d.tsx | 6 +++--- .../src/__tests__/useQueries.test.tsx | 6 ++---- packages/solid-query/src/index.ts | 6 +++--- .../solid-query/src/infiniteQueryOptions.ts | 18 +++--------------- packages/solid-query/src/mutationOptions.ts | 14 +++++++------- packages/solid-query/src/queryOptions.ts | 6 +++--- packages/solid-query/src/types.ts | 12 ++++++------ packages/solid-query/src/useQueries.ts | 4 ++-- 10 files changed, 37 insertions(+), 49 deletions(-) create mode 100644 .changeset/five-lizards-camp.md diff --git a/.changeset/five-lizards-camp.md b/.changeset/five-lizards-camp.md new file mode 100644 index 00000000000..7f96b1bdc0f --- /dev/null +++ b/.changeset/five-lizards-camp.md @@ -0,0 +1,5 @@ +--- +'@tanstack/solid-query': patch +--- + +refactor(solid-query): remove 'Solid' prefix from 'SolidQueryOptions', 'SolidInfiniteQueryOptions', and 'SolidMutationOptions' diff --git a/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx b/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx index 1649db1e019..58cb139bd98 100644 --- a/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/mutationOptions.test-d.tsx @@ -9,7 +9,7 @@ import type { MutationState, WithRequired, } from '@tanstack/query-core' -import type { SolidMutationOptions, UseMutationResult } from '../types' +import type { MutationOptions, UseMutationResult } from '../types' describe('mutationOptions', () => { it('should not allow excess properties', () => { @@ -119,10 +119,7 @@ describe('mutationOptions', () => { }, }), ).toEqualTypeOf< - WithRequired< - SolidMutationOptions, - 'mutationKey' - > + WithRequired, 'mutationKey'> >() expectTypeOf( mutationOptions({ @@ -132,7 +129,7 @@ describe('mutationOptions', () => { }, }), ).toEqualTypeOf< - Omit, 'mutationKey'> + Omit, 'mutationKey'> >() }) diff --git a/packages/solid-query/src/__tests__/useQueries.test-d.tsx b/packages/solid-query/src/__tests__/useQueries.test-d.tsx index 3567f77bfc6..9526923872e 100644 --- a/packages/solid-query/src/__tests__/useQueries.test-d.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test-d.tsx @@ -5,7 +5,7 @@ import { queryOptions, useQueries } from '..' import { QueryClient } from '../QueryClient' import type { OmitKeyof } from '@tanstack/query-core' import type { UseQueryResult } from '..' -import type { SolidQueryOptions } from '../types' +import type { QueryOptions } from '../types' describe('useQueries', () => { it('TData should have undefined in the union even when initialData is provided as an object', () => { @@ -164,11 +164,11 @@ describe('useQueries', () => { }) describe('custom hook', () => { - it('should allow custom hooks using SolidQueryOptions', () => { + it('should allow custom hooks using QueryOptions', () => { type Data = string const useCustomQueries = ( - options?: OmitKeyof, 'queryKey' | 'queryFn'>, + options?: OmitKeyof, 'queryKey' | 'queryFn'>, ) => { return useQueries(() => ({ queries: [ diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index 2f8e61a7402..2f683626690 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -22,7 +22,7 @@ import type { QueryFunction, QueryFunctionContext, QueryKey, - SolidQueryOptions, + QueryOptions, UseQueryResult, } from '..' @@ -585,9 +585,7 @@ describe('useQueries', () => { TError, TData, TQueryKey extends QueryKey, - >( - queries: Array>, - ) { + >(queries: Array>) { return useQueries(() => ({ queries: queries.map( // no need to type the mapped query diff --git a/packages/solid-query/src/index.ts b/packages/solid-query/src/index.ts index cc5cee0635a..4d4400f2abe 100644 --- a/packages/solid-query/src/index.ts +++ b/packages/solid-query/src/index.ts @@ -15,9 +15,9 @@ export type { DefinedUseBaseQueryResult, DefinedUseInfiniteQueryResult, DefinedUseQueryResult, - SolidInfiniteQueryOptions, - SolidMutationOptions, - SolidQueryOptions, + InfiniteQueryOptions, + MutationOptions, + QueryOptions, UseBaseMutationResult, UseBaseQueryOptions, UseBaseQueryResult, diff --git a/packages/solid-query/src/infiniteQueryOptions.ts b/packages/solid-query/src/infiniteQueryOptions.ts index de4991d0b78..6f4885d999f 100644 --- a/packages/solid-query/src/infiniteQueryOptions.ts +++ b/packages/solid-query/src/infiniteQueryOptions.ts @@ -5,7 +5,7 @@ import type { NonUndefinedGuard, QueryKey, } from '@tanstack/query-core' -import type { SolidInfiniteQueryOptions } from './types' +import type { InfiniteQueryOptions } from './types' import type { Accessor } from 'solid-js' export type UndefinedInitialDataInfiniteOptions< @@ -15,13 +15,7 @@ export type UndefinedInitialDataInfiniteOptions< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = Accessor< - SolidInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam - > & { + InfiniteQueryOptions & { initialData?: undefined } > @@ -34,13 +28,7 @@ export type DefinedInitialDataInfiniteOptions< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = Accessor< - SolidInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam - > & { + InfiniteQueryOptions & { initialData: | NonUndefinedGuard> | (() => NonUndefinedGuard>) diff --git a/packages/solid-query/src/mutationOptions.ts b/packages/solid-query/src/mutationOptions.ts index d29ff290f46..91caa28d44e 100644 --- a/packages/solid-query/src/mutationOptions.ts +++ b/packages/solid-query/src/mutationOptions.ts @@ -1,5 +1,5 @@ import type { DefaultError, WithRequired } from '@tanstack/query-core' -import type { SolidMutationOptions } from './types' +import type { MutationOptions } from './types' export function mutationOptions< TData = unknown, @@ -8,11 +8,11 @@ export function mutationOptions< TOnMutateResult = unknown, >( options: WithRequired< - SolidMutationOptions, + MutationOptions, 'mutationKey' >, ): WithRequired< - SolidMutationOptions, + MutationOptions, 'mutationKey' > export function mutationOptions< @@ -22,11 +22,11 @@ export function mutationOptions< TOnMutateResult = unknown, >( options: Omit< - SolidMutationOptions, + MutationOptions, 'mutationKey' >, ): Omit< - SolidMutationOptions, + MutationOptions, 'mutationKey' > export function mutationOptions< @@ -35,7 +35,7 @@ export function mutationOptions< TVariables = void, TOnMutateResult = unknown, >( - options: SolidMutationOptions, -): SolidMutationOptions { + options: MutationOptions, +): MutationOptions { return options } diff --git a/packages/solid-query/src/queryOptions.ts b/packages/solid-query/src/queryOptions.ts index 04bd2b9c80b..fea9db1e1f3 100644 --- a/packages/solid-query/src/queryOptions.ts +++ b/packages/solid-query/src/queryOptions.ts @@ -1,5 +1,5 @@ import type { DataTag, DefaultError, QueryKey } from '@tanstack/query-core' -import type { SolidQueryOptions } from './types' +import type { QueryOptions } from './types' import type { Accessor } from 'solid-js' export type UndefinedInitialDataOptions< @@ -8,7 +8,7 @@ export type UndefinedInitialDataOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = Accessor< - SolidQueryOptions & { + QueryOptions & { initialData?: undefined } > @@ -19,7 +19,7 @@ export type DefinedInitialDataOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = Accessor< - SolidQueryOptions & { + QueryOptions & { initialData: TQueryFnData | (() => TQueryFnData) } > diff --git a/packages/solid-query/src/types.ts b/packages/solid-query/src/types.ts index 697177772cd..1c5bd10a24d 100644 --- a/packages/solid-query/src/types.ts +++ b/packages/solid-query/src/types.ts @@ -44,7 +44,7 @@ export interface UseBaseQueryOptions< suspense?: boolean } -export interface SolidQueryOptions< +export interface QueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, @@ -62,7 +62,7 @@ export type UseQueryOptions< TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = Accessor> +> = Accessor> /* --- Create Query and Create Base Query Types --- */ @@ -87,7 +87,7 @@ export type DefinedUseQueryResult< > = DefinedUseBaseQueryResult /* --- Create Infinite Queries Types --- */ -export interface SolidInfiniteQueryOptions< +export interface InfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, @@ -126,7 +126,7 @@ export type UseInfiniteQueryOptions< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = Accessor< - SolidInfiniteQueryOptions + InfiniteQueryOptions > export type UseInfiniteQueryResult< @@ -140,7 +140,7 @@ export type DefinedUseInfiniteQueryResult< > = DefinedInfiniteQueryObserverResult /* --- Create Mutation Types --- */ -export interface SolidMutationOptions< +export interface MutationOptions< TData = unknown, TError = DefaultError, TVariables = void, @@ -155,7 +155,7 @@ export type UseMutationOptions< TError = DefaultError, TVariables = void, TOnMutateResult = unknown, -> = Accessor> +> = Accessor> export type UseMutateFunction< TData = unknown, diff --git a/packages/solid-query/src/useQueries.ts b/packages/solid-query/src/useQueries.ts index 1e5592775db..bf0a17cd6ad 100644 --- a/packages/solid-query/src/useQueries.ts +++ b/packages/solid-query/src/useQueries.ts @@ -13,7 +13,7 @@ import { } from 'solid-js' import { useQueryClient } from './QueryClientProvider' import { useIsRestoring } from './isRestoring' -import type { SolidQueryOptions, UseQueryResult } from './types' +import type { QueryOptions, UseQueryResult } from './types' import type { Accessor } from 'solid-js' import type { QueryClient } from './QueryClient' import type { @@ -36,7 +36,7 @@ type UseQueryOptionsForUseQueries< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = OmitKeyof< - SolidQueryOptions, + QueryOptions, 'placeholderData' | 'suspense' > & { placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction From 87f7ccf580d7c12c527ce922a43977c9c653f897 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 01:36:20 +0900 Subject: [PATCH 199/414] ci: Version Packages (#10604) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/five-lizards-camp.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 9 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 437 insertions(+), 275 deletions(-) delete mode 100644 .changeset/five-lizards-camp.md diff --git a/.changeset/five-lizards-camp.md b/.changeset/five-lizards-camp.md deleted file mode 100644 index 7f96b1bdc0f..00000000000 --- a/.changeset/five-lizards-camp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/solid-query': patch ---- - -refactor(solid-query): remove 'Solid' prefix from 'SolidQueryOptions', 'SolidInfiniteQueryOptions', and 'SolidMutationOptions' diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index ab43fd6446e..f0b84c5ffe7 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 255aa68f3e7..73bfc4b67fc 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", - "@tanstack/angular-query-persist-client": "^5.100.5", - "@tanstack/query-async-storage-persister": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-persist-client": "^5.100.6", + "@tanstack/query-async-storage-persister": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index b308f4c22ec..c15d13cf2a5 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 7ffab3e4c3f..78e2ae6ab05 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index f89cfa79623..9692795cb41 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index ceed1684ae7..03fff010ab2 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 9b6c5b3b8d5..5d6737eaaea 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index bdc64f2a06f..e2f62734066 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 7c9d063336f..85edbce4451 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 3cdfc2e2d03..dd6a09c63a8 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 7eeea2abf88..3eb04bffb8a 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 144103d9611..2c9a75e9dbb 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.5", + "@tanstack/preact-query": "^5.100.6", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 597c7a086c0..9f9b78219e9 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.5", + "@tanstack/eslint-plugin-query": "^5.100.6", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index c885083fb6c..38ae5f5456a 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 13fbf3bc541..1da8bd65870 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index a13b5802f28..d69112b7159 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.5", - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", - "@tanstack/react-query-persist-client": "^5.100.5", + "@tanstack/query-async-storage-persister": "^5.100.6", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query-persist-client": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.5", + "@tanstack/eslint-plugin-query": "^5.100.6", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 9a67cd35a4d..74ded65ae75 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 01b6f76efa4..2be06746ad9 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 892c3cb3275..983144f96b3 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6e48888d8b0..9f2ede17aff 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.5", - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", - "@tanstack/react-query-persist-client": "^5.100.5", + "@tanstack/query-async-storage-persister": "^5.100.6", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query-persist-client": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.5", + "@tanstack/eslint-plugin-query": "^5.100.6", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index f765ff82475..6ea26c62d70 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", + "@tanstack/react-query": "^5.100.6", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.5", + "@tanstack/eslint-plugin-query": "^5.100.6", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index a945f59c3fe..a4b670e9259 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 18e3d9d4f10..5cca82b5708 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 74ca23b27ae..414e95d61cb 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 052f1bd312f..98f5b778e9a 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", - "@tanstack/react-query-next-experimental": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query-next-experimental": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 7fc7f80625f..2fbe9bb9dbc 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 95cd9973c9a..59448ef9bcc 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.5", + "@tanstack/query-async-storage-persister": "^5.100.6", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", - "@tanstack/react-query-persist-client": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query-persist-client": "^5.100.6", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 45282741dc0..8e7e1119bfd 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index a530b8436b3..2dbdbe1d1eb 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index b5113a42fc5..6e9cae3e898 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 74757046eb3..4d5984590a0 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 25486e1c764..3205731d836 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 8eadc225b7b..07620a73afd 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index eb2066c3c1b..dc6722f0a40 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 9233224dad2..616129a7849 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 2d5a7dfa5ef..129d487d353 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 8ec8c83f2c0..a88eecf71ff 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 2339e53852f..8658daa0f84 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 8df19921932..6ef71b4ab32 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.5", - "@tanstack/react-query-devtools": "^5.100.5", + "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query-devtools": "^5.100.6", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 23cb6297df8..a886a703902 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.5", - "@tanstack/solid-query-devtools": "^5.100.5", + "@tanstack/solid-query": "^5.100.6", + "@tanstack/solid-query-devtools": "^5.100.6", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 7ca5432b74e..63a65206db6 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.5", - "@tanstack/solid-query-devtools": "^5.100.5", + "@tanstack/solid-query": "^5.100.6", + "@tanstack/solid-query-devtools": "^5.100.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 016d6078d6a..5679d401118 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.5", - "@tanstack/solid-query-devtools": "^5.100.5", + "@tanstack/solid-query": "^5.100.6", + "@tanstack/solid-query-devtools": "^5.100.6", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 29c7856a7ef..ef4aad7cbc1 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.5", - "@tanstack/solid-query-devtools": "^5.100.5", + "@tanstack/solid-query": "^5.100.6", + "@tanstack/solid-query-devtools": "^5.100.6", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index b97308dea85..ae6b973ba96 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.5", - "@tanstack/solid-query": "^5.100.5", - "@tanstack/solid-query-devtools": "^5.100.5", - "@tanstack/solid-query-persist-client": "^5.100.5", + "@tanstack/query-async-storage-persister": "^5.100.6", + "@tanstack/solid-query": "^5.100.6", + "@tanstack/solid-query-devtools": "^5.100.6", + "@tanstack/solid-query-persist-client": "^5.100.6", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index b192201536c..39a2b892e2a 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.5", - "@tanstack/solid-query-devtools": "^5.100.5", + "@tanstack/solid-query": "^5.100.6", + "@tanstack/solid-query-devtools": "^5.100.6", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.5", + "@tanstack/eslint-plugin-query": "^5.100.6", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 503811b5562..11b03d99f8f 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.5", - "@tanstack/solid-query-devtools": "^5.100.5", + "@tanstack/solid-query": "^5.100.6", + "@tanstack/solid-query-devtools": "^5.100.6", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index ab6327adefb..6e4ef0daa3f 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24" + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 31a2186c1bb..f9f2bc60ec5 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.5", - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24", - "@tanstack/svelte-query-persist-client": "^6.1.24" + "@tanstack/query-async-storage-persister": "^5.100.6", + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25", + "@tanstack/svelte-query-persist-client": "^6.1.25" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index b680eeb203b..72d8fb17b17 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24" + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index da470ceca88..64d4ae6fc75 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24" + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 41c3298592f..c644aa95186 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24" + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 269daa38d16..68cd3047c6f 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24" + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index e91c0315493..c9bb2995d29 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24" + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index ceb27da366c..f289ec38257 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.24", - "@tanstack/svelte-query-devtools": "^6.1.24" + "@tanstack/svelte-query": "^6.1.25", + "@tanstack/svelte-query-devtools": "^6.1.25" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 7f25ab97dfd..9900eeec009 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.5", - "@tanstack/vue-query-devtools": "^6.1.24", + "@tanstack/vue-query": "^5.100.6", + "@tanstack/vue-query-devtools": "^6.1.25", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index c54c1756e94..b0ec27b0d30 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.5", + "@tanstack/vue-query": "^5.100.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index fc4e0be1fe1..cadc860b772 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.5", - "@tanstack/query-persist-client-core": "^5.100.5", - "@tanstack/query-sync-storage-persister": "^5.100.5", - "@tanstack/vue-query": "^5.100.5", + "@tanstack/query-core": "^5.100.6", + "@tanstack/query-persist-client-core": "^5.100.6", + "@tanstack/query-sync-storage-persister": "^5.100.6", + "@tanstack/vue-query": "^5.100.6", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 18ba642c3ae..c2bccdc2cc4 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.5", - "@tanstack/vue-query-devtools": "^6.1.24", + "@tanstack/vue-query": "^5.100.6", + "@tanstack/vue-query-devtools": "^6.1.25", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index d934319273c..0b454d0efb9 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.5", + "@tanstack/angular-query-experimental": "^5.100.6", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 72edf28162c..9561a24ff91 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 7e44a56fc1a..9577b812974 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.5", + "version": "5.100.6", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 076e19244d1..a794fde5dc5 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.6 + - @tanstack/query-persist-client-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index b996b80529c..5e67146fd96 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.5", + "version": "5.100.6", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index cda33e3c341..1c29582329a 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.6 + ## 5.100.5 ## 5.100.4 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 55ab9921602..abb7e6cf802 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.5", + "version": "5.100.6", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 5ae55a88efb..dd175b37485 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.6 + - @tanstack/query-devtools@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 9ffbd498428..32bcfa9b237 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.5", + "version": "5.100.6", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index f6fd18b5138..6965f01fda1 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.6 + - @tanstack/query-persist-client-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 507f097bea7..41b88fdbfd0 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.5", + "version": "5.100.6", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index f9a0dfb691c..f96698dca85 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index a8307f6821b..1aa8378405a 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.5", + "version": "5.100.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 71ba69cedf2..8012304c430 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + - @tanstack/query-persist-client-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index db7f80ff6f1..d1a97292d50 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.5", + "version": "5.100.6", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index e805bba3646..85e6d78f3cf 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index e8b3585f923..050b9ab9620 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.5", + "version": "5.100.6", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 392b70d7782..5ae51e6bddf 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 5533e81abad..2c7ec7853d3 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.5", + "version": "5.100.6", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 9f79063505f..21dca2f5ca9 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.6 + ## 5.100.5 ## 5.100.4 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index d3e378186d7..a8fae541078 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.5", + "version": "5.100.6", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 505c310d38b..2d5b6cfbe82 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 51bf90c706b..50c3f63903f 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.5", + "version": "5.100.6", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 6687041449d..e80b32ad323 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + - @tanstack/query-persist-client-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 7d35c7bc102..bf99d1e1a7a 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.5", + "version": "5.100.6", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index f54706b409f..58365dd3f02 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.6 + - @tanstack/react-query@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 414a0b51cbd..8ee1bf4cba9 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.5", + "version": "5.100.6", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 07e4e3fd0bd..0ca74fadd89 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 32b30fe084b..dad40c3b123 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.5", + "version": "5.100.6", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 1175f5b5394..f4bbe05955a 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.6 + - @tanstack/react-query@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index bb20a9c68cb..94a79037902 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.5", + "version": "5.100.6", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 4b508a0ebd5..672d2524e8e 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index cc2586c11a9..4e2411f7c4d 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.5", + "version": "5.100.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index ee25ab915f4..85a28173f15 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.6 + +### Patch Changes + +- Updated dependencies [[`3af3a5d`](https://github.com/TanStack/query/commit/3af3a5ded3fbaf5a06403d7561b83124dbbcb243)]: + - @tanstack/solid-query@5.100.6 + - @tanstack/query-devtools@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index c771c24c395..84761f61ea2 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.5", + "version": "5.100.6", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index f5ee9b48e16..5a7fada7a1d 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.6 + +### Patch Changes + +- Updated dependencies [[`3af3a5d`](https://github.com/TanStack/query/commit/3af3a5ded3fbaf5a06403d7561b83124dbbcb243)]: + - @tanstack/solid-query@5.100.6 + - @tanstack/query-persist-client-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 37b5bcf8979..855aa53e4ce 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.5", + "version": "5.100.6", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index aaff162ce2e..faa814fe06b 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/solid-query +## 5.100.6 + +### Patch Changes + +- refactor(solid-query): remove 'Solid' prefix from 'SolidQueryOptions', 'SolidInfiniteQueryOptions', and 'SolidMutationOptions' ([#10500](https://github.com/TanStack/query/pull/10500)) + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index eefec4e70b5..3e050f147b5 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.5", + "version": "5.100.6", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 2c80db448d5..2e3141db97f 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.25 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.6 + - @tanstack/svelte-query@6.1.25 + ## 6.1.24 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 02c1aea5b76..528bbb654ff 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.24", + "version": "6.1.25", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 1f2e9ea33ab..5d6b0ca0b1e 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.25 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.6 + - @tanstack/svelte-query@6.1.25 + ## 6.1.24 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 2abbec49de1..3b8f12e654f 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.24", + "version": "6.1.25", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 884c3348994..3e1024fc14a 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.25 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 6.1.24 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 85c2f124c38..c1781589eba 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.24", + "version": "6.1.25", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index f2146ff93ef..a26deca1c42 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.25 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.6 + - @tanstack/vue-query@5.100.6 + ## 6.1.24 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index dfc3cc8bcd6..1b77b8cd610 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.24", + "version": "6.1.25", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 94b2e3f6ca0..7ce8d2f9049 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.6 + ## 5.100.5 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index df1331450c4..9c3dfe183ad 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.5", + "version": "5.100.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec72cce9dd4..d875a7417e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.24 + specifier: ^6.1.25 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.5 + specifier: ^5.100.6 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From c5ab5a1065ebb6a2a6e2802f974df10b527c1db9 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 29 Apr 2026 03:18:28 +0900 Subject: [PATCH 200/414] test(preact-query/ErrorBoundary): replace British 'behaviour' with American 'behavior' (#10605) --- .../preact-query/src/__tests__/ErrorBoundary/ErrorBoundary.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/preact-query/src/__tests__/ErrorBoundary/ErrorBoundary.ts b/packages/preact-query/src/__tests__/ErrorBoundary/ErrorBoundary.ts index c4465e214cc..fb1d0bcb8cb 100644 --- a/packages/preact-query/src/__tests__/ErrorBoundary/ErrorBoundary.ts +++ b/packages/preact-query/src/__tests__/ErrorBoundary/ErrorBoundary.ts @@ -49,7 +49,7 @@ export class ErrorBoundary extends Component< componentDidCatch(error: Error, info: ErrorInfo) { /** - * To emulate the react behaviour of console.error + * To emulate the react behavior of console.error * we add one here to show that the errors bubble up * to the system and can be seen in the console */ From 4ef364ac3d21881d9137e1ebdfb0172add17ae18 Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Wed, 29 Apr 2026 15:29:29 +0100 Subject: [PATCH 201/414] docs(devtools): add 'relative' to Vue/Solid 'buttonPosition' and fix Vue 'style' type (#10608) docs(devtools): align Vue and Solid option types --- docs/framework/solid/devtools.md | 2 +- docs/framework/vue/devtools.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index 97b465d6727..68f6fcf1160 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -70,7 +70,7 @@ function App() { - `initialIsOpen: boolean` - Set this `true` if you want the dev tools to default to being open -- `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right"` +- `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"` - Defaults to `bottom-right` - The position of the Solid Query logo to open and close the devtools panel - `position?: "top" | "bottom" | "left" | "right"` diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index 091d9f280b5..add5f8bdbfd 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -65,7 +65,7 @@ import { VueQueryDevtools } from '@tanstack/vue-query-devtools' - `initialIsOpen: boolean` - Set this `true` if you want the dev tools to default to being open. -- `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right"` +- `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"` - Defaults to `bottom-right`. - The position of the React Query logo to open and close the devtools panel. - `position?: "top" | "bottom" | "left" | "right"` @@ -105,7 +105,7 @@ function toggleDevtools() { ### Options -- `style?: React.CSSProperties` +- `style?: Partial` - Custom styles for the devtools panel - Default: `{ height: '500px' }` - Example: `{ height: '100%' }` From 0694696025ba86459eb03a563bed4a3ee219dc53 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 29 Apr 2026 23:41:15 +0900 Subject: [PATCH 202/414] docs(preact-query/devtools): add missing 'relative' to 'buttonPosition' (#10611) --- docs/framework/preact/devtools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/preact/devtools.md b/docs/framework/preact/devtools.md index 4ea851d0fa6..951c57cbaac 100644 --- a/docs/framework/preact/devtools.md +++ b/docs/framework/preact/devtools.md @@ -70,7 +70,7 @@ function App() { - `initialIsOpen: boolean` - Set this `true` if you want the dev tools to default to being open -- `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right"` +- `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"` - Defaults to `bottom-right` - The position of the Preact Query logo to open and close the devtools panel - `position?: "top" | "bottom" | "left" | "right"` From 3c24ff3ba284aad7898890d24ef2929b72b741ff Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 1 May 2026 14:49:50 +0900 Subject: [PATCH 203/414] ci(labeler-config): add missing 'preact-query-devtools' and 'preact-query-persist-client' package labels (#10618) --- labeler-config.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/labeler-config.yml b/labeler-config.yml index fa4596076b9..d3f7712547c 100644 --- a/labeler-config.yml +++ b/labeler-config.yml @@ -13,6 +13,12 @@ 'package: preact-query': - changed-files: - any-glob-to-any-file: 'packages/preact-query/**/*' +'package: preact-query-devtools': + - changed-files: + - any-glob-to-any-file: 'packages/preact-query-devtools/**/*' +'package: preact-query-persist-client': + - changed-files: + - any-glob-to-any-file: 'packages/preact-query-persist-client/**/*' 'package: query-async-storage-persister': - changed-files: - any-glob-to-any-file: 'packages/query-async-storage-persister/**/*' From 868577d5daa6de7dc7698f8b41ad5cf225606d05 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 1 May 2026 16:34:40 +0900 Subject: [PATCH 204/414] docs(devtools): align logo, panel, and option union descriptions across docs and JSDoc (#10617) * docs(devtools): replace framework-specific logo with 'TanStack logo' to match the actual rendered component * docs(vue-query/devtools): replace 'React Query' panel leftover with 'Vue Query' * docs(devtools): replace framework-specific logo with 'TanStack logo' and use adapter naming for 'devtools panel' in JSDoc * docs(devtools): add missing 'relative' to JSDoc 'buttonPosition' union * chore(.changeset): add changeset for devtools logo, panel, and 'buttonPosition' union alignment * docs(preact-query-devtools): add missing 'position' union to JSDoc --- .changeset/good-pots-brush.md | 10 ++++++++++ docs/framework/preact/devtools.md | 2 +- docs/framework/react/devtools.md | 2 +- docs/framework/solid/devtools.md | 2 +- docs/framework/vue/devtools.md | 4 ++-- .../angular-query-experimental/src/devtools/types.ts | 2 +- .../preact-query-devtools/src/PreactQueryDevtools.tsx | 2 ++ .../react-query-devtools/src/ReactQueryDevtools.tsx | 4 ++-- packages/solid-query-devtools/src/devtools.tsx | 6 +++--- packages/svelte-query-devtools/src/Devtools.svelte | 6 +++--- packages/vue-query-devtools/src/types.ts | 6 +++--- 11 files changed, 29 insertions(+), 17 deletions(-) create mode 100644 .changeset/good-pots-brush.md diff --git a/.changeset/good-pots-brush.md b/.changeset/good-pots-brush.md new file mode 100644 index 00000000000..b4163808742 --- /dev/null +++ b/.changeset/good-pots-brush.md @@ -0,0 +1,10 @@ +--- +'@tanstack/angular-query-experimental': patch +'@tanstack/preact-query-devtools': patch +'@tanstack/svelte-query-devtools': patch +'@tanstack/react-query-devtools': patch +'@tanstack/solid-query-devtools': patch +'@tanstack/vue-query-devtools': patch +--- + +docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc diff --git a/docs/framework/preact/devtools.md b/docs/framework/preact/devtools.md index 951c57cbaac..7305b99dd5e 100644 --- a/docs/framework/preact/devtools.md +++ b/docs/framework/preact/devtools.md @@ -72,7 +72,7 @@ function App() { - Set this `true` if you want the dev tools to default to being open - `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"` - Defaults to `bottom-right` - - The position of the Preact Query logo to open and close the devtools panel + - The position of the TanStack logo to open and close the devtools panel - `position?: "top" | "bottom" | "left" | "right"` - Defaults to `bottom` - The position of the Preact Query devtools panel diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md index 63df459e80c..d4ffa1ee7b9 100644 --- a/docs/framework/react/devtools.md +++ b/docs/framework/react/devtools.md @@ -78,7 +78,7 @@ function App() { - Set this `true` if you want the dev tools to default to being open - `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"` - Defaults to `bottom-right` - - The position of the React Query logo to open and close the devtools panel + - The position of the TanStack logo to open and close the devtools panel - If `relative`, the button is placed in the location that you render the devtools. - `position?: "top" | "bottom" | "left" | "right"` - Defaults to `bottom` diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index 68f6fcf1160..7a4b6677106 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -72,7 +72,7 @@ function App() { - Set this `true` if you want the dev tools to default to being open - `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"` - Defaults to `bottom-right` - - The position of the Solid Query logo to open and close the devtools panel + - The position of the TanStack logo to open and close the devtools panel - `position?: "top" | "bottom" | "left" | "right"` - Defaults to `bottom` - The position of the Solid Query devtools panel diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index add5f8bdbfd..a19f9ad4347 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -67,10 +67,10 @@ import { VueQueryDevtools } from '@tanstack/vue-query-devtools' - Set this `true` if you want the dev tools to default to being open. - `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"` - Defaults to `bottom-right`. - - The position of the React Query logo to open and close the devtools panel. + - The position of the TanStack logo to open and close the devtools panel. - `position?: "top" | "bottom" | "left" | "right"` - Defaults to `bottom`. - - The position of the React Query devtools panel. + - The position of the Vue Query devtools panel. - `client?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. - `errorTypes?: { name: string; initializer: (query: Query) => TError}` diff --git a/packages/angular-query-experimental/src/devtools/types.ts b/packages/angular-query-experimental/src/devtools/types.ts index 614c6f95fd1..8e533783721 100644 --- a/packages/angular-query-experimental/src/devtools/types.ts +++ b/packages/angular-query-experimental/src/devtools/types.ts @@ -50,7 +50,7 @@ export interface DevtoolsOptions { */ buttonPosition?: DevtoolsButtonPosition /** - * The position of the TanStack Query devtools panel. + * The position of the Angular Query devtools panel. * `top` | `bottom` | `left` | `right` * Defaults to `bottom`. */ diff --git a/packages/preact-query-devtools/src/PreactQueryDevtools.tsx b/packages/preact-query-devtools/src/PreactQueryDevtools.tsx index e8186ccda15..8d1e479bd8b 100644 --- a/packages/preact-query-devtools/src/PreactQueryDevtools.tsx +++ b/packages/preact-query-devtools/src/PreactQueryDevtools.tsx @@ -17,11 +17,13 @@ export interface DevtoolsOptions { initialIsOpen?: boolean /** * The position of the TanStack logo to open and close the devtools panel. + * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'relative' * Defaults to 'bottom-right'. */ buttonPosition?: DevtoolsButtonPosition /** * The position of the Preact Query devtools panel. + * 'top' | 'bottom' | 'left' | 'right' * Defaults to 'bottom'. */ position?: DevtoolsPosition diff --git a/packages/react-query-devtools/src/ReactQueryDevtools.tsx b/packages/react-query-devtools/src/ReactQueryDevtools.tsx index 959d5a739be..936664f9035 100644 --- a/packages/react-query-devtools/src/ReactQueryDevtools.tsx +++ b/packages/react-query-devtools/src/ReactQueryDevtools.tsx @@ -16,8 +16,8 @@ export interface DevtoolsOptions { */ initialIsOpen?: boolean /** - * The position of the React Query logo to open and close the devtools panel. - * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' + * The position of the TanStack logo to open and close the devtools panel. + * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'relative' * Defaults to 'bottom-right'. */ buttonPosition?: DevtoolsButtonPosition diff --git a/packages/solid-query-devtools/src/devtools.tsx b/packages/solid-query-devtools/src/devtools.tsx index 079f8bf95d8..2b441583959 100644 --- a/packages/solid-query-devtools/src/devtools.tsx +++ b/packages/solid-query-devtools/src/devtools.tsx @@ -15,13 +15,13 @@ interface DevtoolsOptions { */ initialIsOpen?: boolean /** - * The position of the React Query logo to open and close the devtools panel. - * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' + * The position of the TanStack logo to open and close the devtools panel. + * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'relative' * Defaults to 'bottom-right'. */ buttonPosition?: DevtoolsButtonPosition /** - * The position of the React Query devtools panel. + * The position of the Solid Query devtools panel. * 'top' | 'bottom' | 'left' | 'right' * Defaults to 'bottom'. */ diff --git a/packages/svelte-query-devtools/src/Devtools.svelte b/packages/svelte-query-devtools/src/Devtools.svelte index e80064de68f..d0df767098e 100644 --- a/packages/svelte-query-devtools/src/Devtools.svelte +++ b/packages/svelte-query-devtools/src/Devtools.svelte @@ -16,13 +16,13 @@ */ initialIsOpen?: boolean /** - * The position of the TanStack Query logo to open and close the devtools panel. - * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' + * The position of the TanStack logo to open and close the devtools panel. + * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'relative' * Defaults to 'bottom-right'. */ buttonPosition?: DevtoolsButtonPosition /** - * The position of the TanStack Query devtools panel. + * The position of the Svelte Query devtools panel. * 'top' | 'bottom' | 'left' | 'right' * Defaults to 'bottom'. */ diff --git a/packages/vue-query-devtools/src/types.ts b/packages/vue-query-devtools/src/types.ts index bf896240e9e..f45ba725682 100644 --- a/packages/vue-query-devtools/src/types.ts +++ b/packages/vue-query-devtools/src/types.ts @@ -12,13 +12,13 @@ export interface DevtoolsOptions { */ initialIsOpen?: boolean /** - * The position of the React Query logo to open and close the devtools panel. - * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' + * The position of the TanStack logo to open and close the devtools panel. + * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'relative' * Defaults to 'bottom-right'. */ buttonPosition?: DevtoolsButtonPosition /** - * The position of the React Query devtools panel. + * The position of the Vue Query devtools panel. * 'top' | 'bottom' | 'left' | 'right' * Defaults to 'bottom'. */ From 3ae42619e5713b2fd6916760e84f7c9ddaa7a317 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 16:42:23 +0900 Subject: [PATCH 205/414] ci: Version Packages (#10620) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/good-pots-brush.md | 10 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 9 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 10 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 10 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 10 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 10 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 10 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 447 insertions(+), 280 deletions(-) delete mode 100644 .changeset/good-pots-brush.md diff --git a/.changeset/good-pots-brush.md b/.changeset/good-pots-brush.md deleted file mode 100644 index b4163808742..00000000000 --- a/.changeset/good-pots-brush.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@tanstack/angular-query-experimental': patch -'@tanstack/preact-query-devtools': patch -'@tanstack/svelte-query-devtools': patch -'@tanstack/react-query-devtools': patch -'@tanstack/solid-query-devtools': patch -'@tanstack/vue-query-devtools': patch ---- - -docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index f0b84c5ffe7..3cbcd86c850 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 73bfc4b67fc..3fcefdc0a69 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", - "@tanstack/angular-query-persist-client": "^5.100.6", - "@tanstack/query-async-storage-persister": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-persist-client": "^5.100.7", + "@tanstack/query-async-storage-persister": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index c15d13cf2a5..792666737b7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 78e2ae6ab05..5e1b39ee85d 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 9692795cb41..ae505471b0c 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 03fff010ab2..77a6eb0b0c8 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 5d6737eaaea..79ddd70c250 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index e2f62734066..85632ccf06c 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 85edbce4451..04bcd5f1a96 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index dd6a09c63a8..e4ec81b0eda 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 3eb04bffb8a..ef012d25a1d 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 2c9a75e9dbb..49c36529a95 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.6", + "@tanstack/preact-query": "^5.100.7", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 9f9b78219e9..7b0f6c76afe 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.6", + "@tanstack/eslint-plugin-query": "^5.100.7", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 38ae5f5456a..0652d547047 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 1da8bd65870..d44bd3610a5 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index d69112b7159..192475f3fa2 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.6", - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", - "@tanstack/react-query-persist-client": "^5.100.6", + "@tanstack/query-async-storage-persister": "^5.100.7", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query-persist-client": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.6", + "@tanstack/eslint-plugin-query": "^5.100.7", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 74ded65ae75..feb1a1ac5fd 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 2be06746ad9..465c1c4923a 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 983144f96b3..edbbdc6b125 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 9f2ede17aff..ee626e6d2e8 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.6", - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", - "@tanstack/react-query-persist-client": "^5.100.6", + "@tanstack/query-async-storage-persister": "^5.100.7", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query-persist-client": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.6", + "@tanstack/eslint-plugin-query": "^5.100.7", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 6ea26c62d70..cbac9b77515 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", + "@tanstack/react-query": "^5.100.7", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.6", + "@tanstack/eslint-plugin-query": "^5.100.7", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index a4b670e9259..18ac30fdc51 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 5cca82b5708..00dc3b80c86 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 414e95d61cb..b040508bfc3 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 98f5b778e9a..bce256fd4b7 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", - "@tanstack/react-query-next-experimental": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query-next-experimental": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 2fbe9bb9dbc..8c8fd33e36d 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 59448ef9bcc..3865e422461 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.6", + "@tanstack/query-async-storage-persister": "^5.100.7", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", - "@tanstack/react-query-persist-client": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query-persist-client": "^5.100.7", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 8e7e1119bfd..d01472a0eff 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 2dbdbe1d1eb..cacf7be141d 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 6e9cae3e898..33800cc4008 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 4d5984590a0..ba9500dc759 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 3205731d836..5227c88c3dc 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 07620a73afd..89ddfa03699 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index dc6722f0a40..a3496517e18 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 616129a7849..31def107de7 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 129d487d353..b36328fabad 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index a88eecf71ff..4e72622336b 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 8658daa0f84..8ce11552262 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 6ef71b4ab32..a65a56892ed 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query-devtools": "^5.100.7", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a886a703902..a27fbb15469 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.6", - "@tanstack/solid-query-devtools": "^5.100.6", + "@tanstack/solid-query": "^5.100.7", + "@tanstack/solid-query-devtools": "^5.100.7", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 63a65206db6..7da3b159ea3 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.6", - "@tanstack/solid-query-devtools": "^5.100.6", + "@tanstack/solid-query": "^5.100.7", + "@tanstack/solid-query-devtools": "^5.100.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 5679d401118..80f97545e67 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.6", - "@tanstack/solid-query-devtools": "^5.100.6", + "@tanstack/solid-query": "^5.100.7", + "@tanstack/solid-query-devtools": "^5.100.7", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index ef4aad7cbc1..2e1592d8ef6 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.6", - "@tanstack/solid-query-devtools": "^5.100.6", + "@tanstack/solid-query": "^5.100.7", + "@tanstack/solid-query-devtools": "^5.100.7", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index ae6b973ba96..fb7d1150c02 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.6", - "@tanstack/solid-query": "^5.100.6", - "@tanstack/solid-query-devtools": "^5.100.6", - "@tanstack/solid-query-persist-client": "^5.100.6", + "@tanstack/query-async-storage-persister": "^5.100.7", + "@tanstack/solid-query": "^5.100.7", + "@tanstack/solid-query-devtools": "^5.100.7", + "@tanstack/solid-query-persist-client": "^5.100.7", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 39a2b892e2a..a0d620b78fd 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.6", - "@tanstack/solid-query-devtools": "^5.100.6", + "@tanstack/solid-query": "^5.100.7", + "@tanstack/solid-query-devtools": "^5.100.7", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.6", + "@tanstack/eslint-plugin-query": "^5.100.7", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 11b03d99f8f..f174e862c9c 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.6", - "@tanstack/solid-query-devtools": "^5.100.6", + "@tanstack/solid-query": "^5.100.7", + "@tanstack/solid-query-devtools": "^5.100.7", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 6e4ef0daa3f..153b66c3e5c 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25" + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index f9f2bc60ec5..8891f33d53d 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.6", - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25", - "@tanstack/svelte-query-persist-client": "^6.1.25" + "@tanstack/query-async-storage-persister": "^5.100.7", + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26", + "@tanstack/svelte-query-persist-client": "^6.1.26" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 72d8fb17b17..705712a11e2 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25" + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 64d4ae6fc75..a82df5d724d 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25" + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index c644aa95186..2c92d23ac4d 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25" + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 68cd3047c6f..d3c104e9f08 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25" + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index c9bb2995d29..749e5765cbf 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25" + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index f289ec38257..f87ff5ddaff 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.25", - "@tanstack/svelte-query-devtools": "^6.1.25" + "@tanstack/svelte-query": "^6.1.26", + "@tanstack/svelte-query-devtools": "^6.1.26" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 9900eeec009..5b141f404de 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.6", - "@tanstack/vue-query-devtools": "^6.1.25", + "@tanstack/vue-query": "^5.100.7", + "@tanstack/vue-query-devtools": "^6.1.26", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index b0ec27b0d30..0eef2cf1a6b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.6", + "@tanstack/vue-query": "^5.100.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index cadc860b772..13412afbb32 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.6", - "@tanstack/query-persist-client-core": "^5.100.6", - "@tanstack/query-sync-storage-persister": "^5.100.6", - "@tanstack/vue-query": "^5.100.6", + "@tanstack/query-core": "^5.100.7", + "@tanstack/query-persist-client-core": "^5.100.7", + "@tanstack/query-sync-storage-persister": "^5.100.7", + "@tanstack/vue-query": "^5.100.7", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index c2bccdc2cc4..41e575be4b8 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.6", - "@tanstack/vue-query-devtools": "^6.1.25", + "@tanstack/vue-query": "^5.100.7", + "@tanstack/vue-query-devtools": "^6.1.26", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 0b454d0efb9..e79141ff65c 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.6", + "@tanstack/angular-query-experimental": "^5.100.7", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 9561a24ff91..78bbaad9047 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/angular-query-experimental +## 5.100.7 + +### Patch Changes + +- docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc ([#10617](https://github.com/TanStack/query/pull/10617)) + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 9577b812974..fed633ad97d 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.6", + "version": "5.100.7", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index a794fde5dc5..191bd9e01fa 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.7 + +### Patch Changes + +- Updated dependencies [[`868577d`](https://github.com/TanStack/query/commit/868577d5daa6de7dc7698f8b41ad5cf225606d05)]: + - @tanstack/angular-query-experimental@5.100.7 + - @tanstack/query-persist-client-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 5e67146fd96..719d80907c3 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.6", + "version": "5.100.7", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 1c29582329a..8ddc62db4c8 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.7 + ## 5.100.6 ## 5.100.5 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index abb7e6cf802..45057f3542f 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.6", + "version": "5.100.7", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index dd175b37485..baecc5d3e80 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/preact-query-devtools +## 5.100.7 + +### Patch Changes + +- docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc ([#10617](https://github.com/TanStack/query/pull/10617)) + +- Updated dependencies []: + - @tanstack/preact-query@5.100.7 + - @tanstack/query-devtools@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 32bcfa9b237..1485f9caad3 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.6", + "version": "5.100.7", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 6965f01fda1..805a9c6d324 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.7 + - @tanstack/query-persist-client-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 41b88fdbfd0..50c99a795f7 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.6", + "version": "5.100.7", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index f96698dca85..53e36bb9f85 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 1aa8378405a..9a71367b20f 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.6", + "version": "5.100.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 8012304c430..d6c36da9204 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + - @tanstack/query-persist-client-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index d1a97292d50..4429650b7ba 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.6", + "version": "5.100.7", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 85e6d78f3cf..7150d9fef09 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 050b9ab9620..394f05afde5 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.6", + "version": "5.100.7", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 5ae51e6bddf..0faf9e74a8f 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.7 + ## 5.100.6 ## 5.100.5 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 2c7ec7853d3..33c3c7e40a5 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.6", + "version": "5.100.7", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 21dca2f5ca9..618ee25da30 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.7 + ## 5.100.6 ## 5.100.5 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index a8fae541078..9e3c39ed681 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.6", + "version": "5.100.7", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 2d5b6cfbe82..c915996acdf 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 50c3f63903f..1fd0ca4fefb 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.6", + "version": "5.100.7", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index e80b32ad323..cc5bb6e7872 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + - @tanstack/query-persist-client-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index bf99d1e1a7a..79bd7d8beb5 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.6", + "version": "5.100.7", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 58365dd3f02..b87aeb3cec3 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/react-query-devtools +## 5.100.7 + +### Patch Changes + +- docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc ([#10617](https://github.com/TanStack/query/pull/10617)) + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.7 + - @tanstack/react-query@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 8ee1bf4cba9..4f3fe971d61 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.6", + "version": "5.100.7", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 0ca74fadd89..17b273b7341 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index dad40c3b123..8c7653ce9f2 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.6", + "version": "5.100.7", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index f4bbe05955a..8f78061c2c4 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.7 + - @tanstack/react-query@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 94a79037902..0c207309999 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.6", + "version": "5.100.7", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 672d2524e8e..944a007eae6 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 4e2411f7c4d..ccea69469a8 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.6", + "version": "5.100.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 85a28173f15..b2eeae1e195 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-devtools +## 5.100.7 + +### Patch Changes + +- docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc ([#10617](https://github.com/TanStack/query/pull/10617)) + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.7 + - @tanstack/solid-query@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 84761f61ea2..9b396985d05 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.6", + "version": "5.100.7", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 5a7fada7a1d..eb55ec4c785 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.7 + - @tanstack/solid-query@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 855aa53e4ce..3da5626a7cd 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.6", + "version": "5.100.7", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index faa814fe06b..fe2a9ce22c7 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 3e050f147b5..243b6a13cca 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.6", + "version": "5.100.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 2e3141db97f..b5f0cbcbe04 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/svelte-query-devtools +## 6.1.26 + +### Patch Changes + +- docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc ([#10617](https://github.com/TanStack/query/pull/10617)) + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.7 + - @tanstack/svelte-query@6.1.26 + ## 6.1.25 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 528bbb654ff..c8491d21214 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.25", + "version": "6.1.26", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 5d6b0ca0b1e..71a0c727faf 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.26 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.7 + - @tanstack/svelte-query@6.1.26 + ## 6.1.25 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 3b8f12e654f..682e13f3c11 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.25", + "version": "6.1.26", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 3e1024fc14a..65cf0b75502 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.26 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 6.1.25 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index c1781589eba..c65c935a6a3 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.25", + "version": "6.1.26", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index a26deca1c42..3a515ce7bee 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/vue-query-devtools +## 6.1.26 + +### Patch Changes + +- docs(devtools): align logo, panel, and 'buttonPosition' union descriptions across docs and JSDoc ([#10617](https://github.com/TanStack/query/pull/10617)) + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.7 + - @tanstack/vue-query@5.100.7 + ## 6.1.25 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 1b77b8cd610..55d6f87c1fb 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.25", + "version": "6.1.26", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 7ce8d2f9049..35f26f44e19 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.7 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.7 + ## 5.100.6 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 9c3dfe183ad..06945d6da64 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.6", + "version": "5.100.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d875a7417e6..f4ad36cfef7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.25 + specifier: ^6.1.26 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.6 + specifier: ^5.100.7 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From bf2546feb0e89eb6ee0d4d95ba6433ac334facff Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 2 May 2026 10:50:20 +0900 Subject: [PATCH 206/414] docs(devtools): add missing 'theme' option (#10621) --- docs/framework/preact/devtools.md | 3 +++ docs/framework/react/devtools.md | 6 ++++++ docs/framework/solid/devtools.md | 3 +++ docs/framework/vue/devtools.md | 6 ++++++ 4 files changed, 18 insertions(+) diff --git a/docs/framework/preact/devtools.md b/docs/framework/preact/devtools.md index 7305b99dd5e..25b16da9e6d 100644 --- a/docs/framework/preact/devtools.md +++ b/docs/framework/preact/devtools.md @@ -85,3 +85,6 @@ function App() { - `shadowDOMTarget?: ShadowRoot` - Default behavior will apply the devtool's styles to the head tag within the DOM. - Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM. +- `theme?: "light" | "dark" | "system"` + - Defaults to `system`. + - Set this to change the theme of the devtools panel. diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md index d4ffa1ee7b9..ccdde019087 100644 --- a/docs/framework/react/devtools.md +++ b/docs/framework/react/devtools.md @@ -92,6 +92,9 @@ function App() { - `shadowDOMTarget?: ShadowRoot` - Default behavior will apply the devtool's styles to the head tag within the DOM. - Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM. +- `theme?: "light" | "dark" | "system"` + - Defaults to `system`. + - Set this to change the theme of the devtools panel. ## Embedded Mode @@ -135,6 +138,9 @@ function App() { - `shadowDOMTarget?: ShadowRoot` - Default behavior will apply the devtool's styles to the head tag within the DOM. - Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM. +- `theme?: "light" | "dark" | "system"` + - Defaults to `system`. + - Set this to change the theme of the devtools panel. ## Devtools in production diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index 7a4b6677106..fe11b1bca84 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -85,3 +85,6 @@ function App() { - `shadowDOMTarget?: ShadowRoot` - Default behavior will apply the devtool's styles to the head tag within the DOM. - Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM. +- `theme?: "light" | "dark" | "system"` + - Defaults to `system`. + - Set this to change the theme of the devtools panel. diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index a19f9ad4347..1dc8e678188 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -80,6 +80,9 @@ import { VueQueryDevtools } from '@tanstack/vue-query-devtools' - `shadowDOMTarget?: ShadowRoot` - Default behavior will apply the devtool's styles to the head tag within the DOM. - Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM. +- `theme?: "light" | "dark" | "system"` + - Defaults to `system`. + - Set this to change the theme of the devtools panel. ## Embedded Mode @@ -121,6 +124,9 @@ function toggleDevtools() { - `shadowDOMTarget?: ShadowRoot` - Default behavior will apply the devtool's styles to the head tag within the DOM. - Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM. +- `theme?: "light" | "dark" | "system"` + - Defaults to `system`. + - Set this to change the theme of the devtools panel. ## Traditional Devtools From 60b4416a1589831003620b05e841d81636ba885d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 2 May 2026 13:03:29 +0900 Subject: [PATCH 207/414] refactor(preact-query-devtools): replace deprecated 'JSX.CSSProperties' with 'CSSProperties' from Preact namespace (#10622) * refactor(preact-query-devtools): replace deprecated 'JSX.CSSProperties' with 'CSSProperties' from Preact namespace * chore(.changeset): add changeset for 'JSX.CSSProperties' refactor --- .changeset/cyan-words-hunt.md | 5 +++++ .../preact-query-devtools/src/PreactQueryDevtoolsPanel.tsx | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/cyan-words-hunt.md diff --git a/.changeset/cyan-words-hunt.md b/.changeset/cyan-words-hunt.md new file mode 100644 index 00000000000..644946293ff --- /dev/null +++ b/.changeset/cyan-words-hunt.md @@ -0,0 +1,5 @@ +--- +'@tanstack/preact-query-devtools': patch +--- + +refactor(preact-query-devtools): replace deprecated 'JSX.CSSProperties' with 'CSSProperties' from Preact namespace diff --git a/packages/preact-query-devtools/src/PreactQueryDevtoolsPanel.tsx b/packages/preact-query-devtools/src/PreactQueryDevtoolsPanel.tsx index 2070f14603a..dc22578d991 100644 --- a/packages/preact-query-devtools/src/PreactQueryDevtoolsPanel.tsx +++ b/packages/preact-query-devtools/src/PreactQueryDevtoolsPanel.tsx @@ -3,7 +3,7 @@ import { onlineManager, useQueryClient } from '@tanstack/preact-query' import { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools' import type { DevtoolsErrorType, Theme } from '@tanstack/query-devtools' import type { QueryClient } from '@tanstack/preact-query' -import type { JSX, VNode } from 'preact' +import type { CSSProperties, VNode } from 'preact' export interface DevtoolsPanelOptions { /** @@ -28,7 +28,7 @@ export interface DevtoolsPanelOptions { /** * Custom styles for the devtools panel container. */ - style?: JSX.CSSProperties + style?: CSSProperties /** * Callback function when the devtools panel is closed. */ From 9800c8f1a3f7907956410c23426a26d981e7d694 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 13:08:18 +0900 Subject: [PATCH 208/414] ci: Version Packages (#10623) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/cyan-words-hunt.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 10 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 109 files changed, 437 insertions(+), 275 deletions(-) delete mode 100644 .changeset/cyan-words-hunt.md diff --git a/.changeset/cyan-words-hunt.md b/.changeset/cyan-words-hunt.md deleted file mode 100644 index 644946293ff..00000000000 --- a/.changeset/cyan-words-hunt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/preact-query-devtools': patch ---- - -refactor(preact-query-devtools): replace deprecated 'JSX.CSSProperties' with 'CSSProperties' from Preact namespace diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 3cbcd86c850..6e00366439e 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 3fcefdc0a69..d79a88dd14e 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", - "@tanstack/angular-query-persist-client": "^5.100.7", - "@tanstack/query-async-storage-persister": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-persist-client": "^5.100.8", + "@tanstack/query-async-storage-persister": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 792666737b7..de52ce3c013 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 5e1b39ee85d..693fe3519eb 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index ae505471b0c..dc5bdc2fa0b 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 77a6eb0b0c8..64cd8d2c412 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 79ddd70c250..9434347fcda 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 85632ccf06c..003b231285c 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 04bcd5f1a96..083a41a54c6 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index e4ec81b0eda..5a8459bc51f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index ef012d25a1d..3feba380802 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 49c36529a95..4d5a96bbad2 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.7", + "@tanstack/preact-query": "^5.100.8", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 7b0f6c76afe..873238b6211 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.7", + "@tanstack/eslint-plugin-query": "^5.100.8", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 0652d547047..cd4e0b75bd1 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index d44bd3610a5..481c4891cbd 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 192475f3fa2..d6e44141401 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.7", - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", - "@tanstack/react-query-persist-client": "^5.100.7", + "@tanstack/query-async-storage-persister": "^5.100.8", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query-persist-client": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.7", + "@tanstack/eslint-plugin-query": "^5.100.8", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index feb1a1ac5fd..8a61bbdee9d 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 465c1c4923a..36dff590ba2 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index edbbdc6b125..82754c16386 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index ee626e6d2e8..f5a45e8ce2a 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.7", - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", - "@tanstack/react-query-persist-client": "^5.100.7", + "@tanstack/query-async-storage-persister": "^5.100.8", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query-persist-client": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.7", + "@tanstack/eslint-plugin-query": "^5.100.8", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index cbac9b77515..ceb6d91c6d1 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", + "@tanstack/react-query": "^5.100.8", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.7", + "@tanstack/eslint-plugin-query": "^5.100.8", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 18ac30fdc51..23ef1744953 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 00dc3b80c86..c143427fff5 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index b040508bfc3..91851a0f312 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index bce256fd4b7..8183aa587b6 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", - "@tanstack/react-query-next-experimental": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query-next-experimental": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 8c8fd33e36d..138b9c0b5ce 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 3865e422461..83fd4b831f4 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.7", + "@tanstack/query-async-storage-persister": "^5.100.8", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", - "@tanstack/react-query-persist-client": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query-persist-client": "^5.100.8", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index d01472a0eff..bb9b5fae806 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index cacf7be141d..f724967b98d 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 33800cc4008..715484d74be 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index ba9500dc759..8f35fcfcc8b 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 5227c88c3dc..31a32575454 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 89ddfa03699..d3a3653df21 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index a3496517e18..ef2f5c58fe7 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 31def107de7..4e7b2d223ea 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index b36328fabad..7ac49ef0bfc 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 4e72622336b..a4e063bc5fd 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 8ce11552262..b9f389f3aca 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index a65a56892ed..5cef629d30a 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.7", - "@tanstack/react-query-devtools": "^5.100.7", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a27fbb15469..a52ec3e51a5 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.7", - "@tanstack/solid-query-devtools": "^5.100.7", + "@tanstack/solid-query": "^5.100.8", + "@tanstack/solid-query-devtools": "^5.100.8", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 7da3b159ea3..3162dd9d2b9 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.7", - "@tanstack/solid-query-devtools": "^5.100.7", + "@tanstack/solid-query": "^5.100.8", + "@tanstack/solid-query-devtools": "^5.100.8", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 80f97545e67..647fb12569b 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.7", - "@tanstack/solid-query-devtools": "^5.100.7", + "@tanstack/solid-query": "^5.100.8", + "@tanstack/solid-query-devtools": "^5.100.8", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 2e1592d8ef6..5616b86ef0d 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.7", - "@tanstack/solid-query-devtools": "^5.100.7", + "@tanstack/solid-query": "^5.100.8", + "@tanstack/solid-query-devtools": "^5.100.8", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index fb7d1150c02..987ffe1ca48 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.7", - "@tanstack/solid-query": "^5.100.7", - "@tanstack/solid-query-devtools": "^5.100.7", - "@tanstack/solid-query-persist-client": "^5.100.7", + "@tanstack/query-async-storage-persister": "^5.100.8", + "@tanstack/solid-query": "^5.100.8", + "@tanstack/solid-query-devtools": "^5.100.8", + "@tanstack/solid-query-persist-client": "^5.100.8", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index a0d620b78fd..fd25c55fff7 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.7", - "@tanstack/solid-query-devtools": "^5.100.7", + "@tanstack/solid-query": "^5.100.8", + "@tanstack/solid-query-devtools": "^5.100.8", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.7", + "@tanstack/eslint-plugin-query": "^5.100.8", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index f174e862c9c..883881d10a0 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.7", - "@tanstack/solid-query-devtools": "^5.100.7", + "@tanstack/solid-query": "^5.100.8", + "@tanstack/solid-query-devtools": "^5.100.8", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 153b66c3e5c..ee0cc0203b0 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26" + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 8891f33d53d..08afdab39f5 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.7", - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26", - "@tanstack/svelte-query-persist-client": "^6.1.26" + "@tanstack/query-async-storage-persister": "^5.100.8", + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27", + "@tanstack/svelte-query-persist-client": "^6.1.27" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 705712a11e2..3b1b35a6c38 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26" + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index a82df5d724d..245c848b14b 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26" + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 2c92d23ac4d..9659ad8ebb2 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26" + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index d3c104e9f08..e1469b7be9a 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26" + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 749e5765cbf..2369d96dd83 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26" + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index f87ff5ddaff..c2970d4fb52 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.26", - "@tanstack/svelte-query-devtools": "^6.1.26" + "@tanstack/svelte-query": "^6.1.27", + "@tanstack/svelte-query-devtools": "^6.1.27" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 5b141f404de..bc59c664d4d 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.7", - "@tanstack/vue-query-devtools": "^6.1.26", + "@tanstack/vue-query": "^5.100.8", + "@tanstack/vue-query-devtools": "^6.1.27", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 0eef2cf1a6b..84cb21eaa47 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.7", + "@tanstack/vue-query": "^5.100.8", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 13412afbb32..69ea340579e 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.7", - "@tanstack/query-persist-client-core": "^5.100.7", - "@tanstack/query-sync-storage-persister": "^5.100.7", - "@tanstack/vue-query": "^5.100.7", + "@tanstack/query-core": "^5.100.8", + "@tanstack/query-persist-client-core": "^5.100.8", + "@tanstack/query-sync-storage-persister": "^5.100.8", + "@tanstack/vue-query": "^5.100.8", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 41e575be4b8..c6d22859f80 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.7", - "@tanstack/vue-query-devtools": "^6.1.26", + "@tanstack/vue-query": "^5.100.8", + "@tanstack/vue-query-devtools": "^6.1.27", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index e79141ff65c..d8e45f0d79c 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.7", + "@tanstack/angular-query-experimental": "^5.100.8", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index 78bbaad9047..a6abe7c8b2f 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index fed633ad97d..8cf20f8026b 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.7", + "version": "5.100.8", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 191bd9e01fa..2412ff1a89c 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.8 + - @tanstack/query-persist-client-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 719d80907c3..1d1eb2384e3 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.7", + "version": "5.100.8", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 8ddc62db4c8..d4035f42d69 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.8 + ## 5.100.7 ## 5.100.6 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 45057f3542f..66a21d47301 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.7", + "version": "5.100.8", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index baecc5d3e80..39f5b2094a5 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/preact-query-devtools +## 5.100.8 + +### Patch Changes + +- refactor(preact-query-devtools): replace deprecated 'JSX.CSSProperties' with 'CSSProperties' from Preact namespace ([#10622](https://github.com/TanStack/query/pull/10622)) + +- Updated dependencies []: + - @tanstack/preact-query@5.100.8 + - @tanstack/query-devtools@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 1485f9caad3..cbcbe3f9493 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.7", + "version": "5.100.8", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 805a9c6d324..6278b39cedb 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.8 + - @tanstack/query-persist-client-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 50c99a795f7..899a8d49a63 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.7", + "version": "5.100.8", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 53e36bb9f85..a15dc47db88 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 9a71367b20f..63cec462dc9 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.7", + "version": "5.100.8", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index d6c36da9204..ed021e2a910 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + - @tanstack/query-persist-client-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 4429650b7ba..d9e0205079b 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.7", + "version": "5.100.8", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 7150d9fef09..a9d968ac6f1 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 394f05afde5..0f7f113c8ec 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.7", + "version": "5.100.8", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 0faf9e74a8f..97b2fce6536 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.8 + ## 5.100.7 ## 5.100.6 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 33c3c7e40a5..a8c128b2b61 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.7", + "version": "5.100.8", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 618ee25da30..ed86f3dfa08 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.8 + ## 5.100.7 ## 5.100.6 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 9e3c39ed681..f9a9f954184 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.7", + "version": "5.100.8", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index c915996acdf..a62e4c35211 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 1fd0ca4fefb..8a5862e94b5 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.7", + "version": "5.100.8", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index cc5bb6e7872..c802fbb248c 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + - @tanstack/query-persist-client-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 79bd7d8beb5..69cefc8c7b3 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.7", + "version": "5.100.8", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index b87aeb3cec3..82e57bba3ca 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.8 + - @tanstack/react-query@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 4f3fe971d61..81b5eb9c0be 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.7", + "version": "5.100.8", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 17b273b7341..a38c1eeb7f3 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 8c7653ce9f2..4fb07ad7128 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.7", + "version": "5.100.8", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 8f78061c2c4..b68a1f4dda1 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.8 + - @tanstack/react-query@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 0c207309999..2811fe8fdad 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.7", + "version": "5.100.8", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 944a007eae6..e87cba998b0 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index ccea69469a8..6649d5a1f7e 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.7", + "version": "5.100.8", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index b2eeae1e195..fa58466f057 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.8 + - @tanstack/solid-query@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 9b396985d05..2882d21905e 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.7", + "version": "5.100.8", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index eb55ec4c785..21ddf48a422 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.8 + - @tanstack/solid-query@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 3da5626a7cd..c64ec594e8f 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.7", + "version": "5.100.8", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index fe2a9ce22c7..0fa2373f949 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 243b6a13cca..14785e074db 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.7", + "version": "5.100.8", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index b5f0cbcbe04..5bcb8d3f867 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.27 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.8 + - @tanstack/svelte-query@6.1.27 + ## 6.1.26 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c8491d21214..79cca89edbe 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.26", + "version": "6.1.27", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 71a0c727faf..ea4cf0c1496 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.27 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.8 + - @tanstack/svelte-query@6.1.27 + ## 6.1.26 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 682e13f3c11..22971fa53b5 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.26", + "version": "6.1.27", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 65cf0b75502..674afa1ba3f 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.27 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 6.1.26 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index c65c935a6a3..fbd54b3e830 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.26", + "version": "6.1.27", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 3a515ce7bee..40351dbf71d 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.27 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.8 + - @tanstack/vue-query@5.100.8 + ## 6.1.26 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 55d6f87c1fb..2ec2f6cf996 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.26", + "version": "6.1.27", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 35f26f44e19..945a34d5290 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.8 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.8 + ## 5.100.7 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 06945d6da64..c6fab852ce8 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.7", + "version": "5.100.8", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4ad36cfef7..258ab23246e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.26 + specifier: ^6.1.27 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.7 + specifier: ^5.100.8 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 529e590c28b01cd20dce616a83d79dc85f7c8b92 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 3 May 2026 10:25:44 +0900 Subject: [PATCH 209/414] chore(svelte-query-devtools): set up vitest environment with '@testing-library/svelte' and a smoke test (#10624) --- packages/svelte-query-devtools/package.json | 3 +++ .../tests/Devtools.svelte.test.ts | 18 +++++++++++++++++ .../svelte-query-devtools/tests/test-setup.ts | 1 + packages/svelte-query-devtools/tsconfig.json | 2 +- packages/svelte-query-devtools/vite.config.ts | 20 +++++++++++++++++-- pnpm-lock.yaml | 3 +++ 6 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 packages/svelte-query-devtools/tests/Devtools.svelte.test.ts create mode 100644 packages/svelte-query-devtools/tests/test-setup.ts diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 79cca89edbe..c6b58ea9a25 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -24,6 +24,8 @@ "compile": "tsc --build", "test:types": "svelte-check --tsconfig ./tsconfig.json", "test:eslint": "eslint --concurrency=auto ./src", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", "build": "svelte-package --input ./src --output ./dist" }, @@ -53,6 +55,7 @@ "@sveltejs/package": "^2.4.0", "@sveltejs/vite-plugin-svelte": "^5.1.1", "@tanstack/svelte-query": "workspace:*", + "@testing-library/svelte": "^5.2.8", "@typescript-eslint/parser": "^8.48.0", "eslint-plugin-svelte": "^3.11.0", "svelte": "^5.39.3", diff --git a/packages/svelte-query-devtools/tests/Devtools.svelte.test.ts b/packages/svelte-query-devtools/tests/Devtools.svelte.test.ts new file mode 100644 index 00000000000..6808633dad1 --- /dev/null +++ b/packages/svelte-query-devtools/tests/Devtools.svelte.test.ts @@ -0,0 +1,18 @@ +import { describe, expect, it } from 'vitest' +import { render } from '@testing-library/svelte' +import { QueryClient } from '@tanstack/svelte-query' +import SvelteQueryDevtools from '../src/Devtools.svelte' + +describe('SvelteQueryDevtools', () => { + it('should render the parent container without throwing in non-development environments', () => { + const queryClient = new QueryClient() + + const { container } = render(SvelteQueryDevtools, { + props: { client: queryClient }, + }) + + expect( + container.querySelector('.tsqd-parent-container'), + ).toBeInTheDocument() + }) +}) diff --git a/packages/svelte-query-devtools/tests/test-setup.ts b/packages/svelte-query-devtools/tests/test-setup.ts new file mode 100644 index 00000000000..a9d0dd31aa6 --- /dev/null +++ b/packages/svelte-query-devtools/tests/test-setup.ts @@ -0,0 +1 @@ +import '@testing-library/jest-dom/vitest' diff --git a/packages/svelte-query-devtools/tsconfig.json b/packages/svelte-query-devtools/tsconfig.json index 773fd3d525d..cce7cfa8c38 100644 --- a/packages/svelte-query-devtools/tsconfig.json +++ b/packages/svelte-query-devtools/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "tests", "*.config.*", "package.json"], "references": [{ "path": "../query-devtools" }, { "path": "../svelte-query" }] } diff --git a/packages/svelte-query-devtools/vite.config.ts b/packages/svelte-query-devtools/vite.config.ts index 01ebc554bd3..5b2d97f30f2 100644 --- a/packages/svelte-query-devtools/vite.config.ts +++ b/packages/svelte-query-devtools/vite.config.ts @@ -1,8 +1,11 @@ import { svelte } from '@sveltejs/vite-plugin-svelte' -import { defineConfig } from 'vite' +import { defineConfig } from 'vitest/config' +import { svelteTesting } from '@testing-library/svelte/vite' + +import packageJson from './package.json' export default defineConfig({ - plugins: [svelte()], + plugins: [svelte(), svelteTesting()], // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { conditions: ['@tanstack/custom-condition'], @@ -14,4 +17,17 @@ export default defineConfig({ }, }, }, + test: { + name: packageJson.name, + dir: './tests', + watch: false, + environment: 'jsdom', + setupFiles: ['./tests/test-setup.ts'], + coverage: { + enabled: true, + provider: 'istanbul', + include: ['src/**/*'], + }, + typecheck: { enabled: true }, + }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 258ab23246e..82cb34c9228 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2936,6 +2936,9 @@ importers: '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query + '@testing-library/svelte': + specifier: ^5.2.8 + version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) '@typescript-eslint/parser': specifier: 8.58.1 version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) From 3f0948b51b81209540ef0c48d2c6e0cae2b8d8d8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 3 May 2026 10:58:53 +0900 Subject: [PATCH 210/414] test(svelte-query-devtools): add tests for missing 'QueryClient', context provider, and 'client' prop (#10625) --- .../tests/Devtools.svelte.test.ts | 21 +++++++++++++++++++ .../tests/Wrapper.svelte | 15 +++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 packages/svelte-query-devtools/tests/Wrapper.svelte diff --git a/packages/svelte-query-devtools/tests/Devtools.svelte.test.ts b/packages/svelte-query-devtools/tests/Devtools.svelte.test.ts index 6808633dad1..dc773f54309 100644 --- a/packages/svelte-query-devtools/tests/Devtools.svelte.test.ts +++ b/packages/svelte-query-devtools/tests/Devtools.svelte.test.ts @@ -2,6 +2,7 @@ import { describe, expect, it } from 'vitest' import { render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/svelte-query' import SvelteQueryDevtools from '../src/Devtools.svelte' +import Wrapper from './Wrapper.svelte' describe('SvelteQueryDevtools', () => { it('should render the parent container without throwing in non-development environments', () => { @@ -15,4 +16,24 @@ describe('SvelteQueryDevtools', () => { container.querySelector('.tsqd-parent-container'), ).toBeInTheDocument() }) + + it('should throw an error if no query client has been set', () => { + expect(() => render(SvelteQueryDevtools)).toThrow( + 'No QueryClient was found in Svelte context. Did you forget to wrap your component with QueryClientProvider?', + ) + }) + + it('should not throw an error if query client is provided via context', () => { + const queryClient = new QueryClient() + + expect(() => render(Wrapper, { props: { queryClient } })).not.toThrow() + }) + + it('should not throw an error if query client is provided via props', () => { + const queryClient = new QueryClient() + + expect(() => + render(SvelteQueryDevtools, { props: { client: queryClient } }), + ).not.toThrow() + }) }) diff --git a/packages/svelte-query-devtools/tests/Wrapper.svelte b/packages/svelte-query-devtools/tests/Wrapper.svelte new file mode 100644 index 00000000000..35c5cf15176 --- /dev/null +++ b/packages/svelte-query-devtools/tests/Wrapper.svelte @@ -0,0 +1,15 @@ + + + + + From d5d69cbfcea0f6e189ea85c4d49dc65751929d72 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 3 May 2026 13:50:27 +0900 Subject: [PATCH 211/414] test(preact-query-devtools): add tests for missing 'QueryClient', context provider, 'client' prop, and production fallback (#10626) * test(preact-query-devtools): add tests for missing 'QueryClient', context provider, 'client' prop, and production fallback * ci: apply automated fixes * test(preact-query-devtools): assert 'mount' call in client provisioning tests --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/preact-query-devtools/package.json | 2 + .../__tests__/PreactQueryDevtools.test.tsx | 71 ++++++++++++++++++ .../PreactQueryDevtoolsPanel.test.tsx | 72 +++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx create mode 100644 packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index cbcbe3f9493..f9a03c29dee 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -27,6 +27,8 @@ "test:types:ts59": "node ../../node_modules/typescript59/lib/tsc.js --build tsconfig.legacy.json", "test:types:tscurrent": "tsc --build", "test:types:ts60": "node ../../node_modules/typescript60/lib/tsc.js --build tsconfig.legacy.json", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", "build": "tsup --tsconfig tsconfig.prod.json", "build:dev": "tsup --watch" diff --git a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx new file mode 100644 index 00000000000..ad60e9c3d0d --- /dev/null +++ b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx @@ -0,0 +1,71 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/preact' +import { QueryClient, QueryClientProvider } from '@tanstack/preact-query' +import type { TanstackQueryDevtools } from '@tanstack/query-devtools' + +const mountMock = vi.fn() +const unmountMock = vi.fn() +const setClientMock = vi.fn() +const setButtonPositionMock = vi.fn() +const setPositionMock = vi.fn() +const setInitialIsOpenMock = vi.fn() +const setErrorTypesMock = vi.fn() +const setThemeMock = vi.fn() + +vi.mock('@tanstack/query-devtools', () => ({ + TanstackQueryDevtools: vi.fn(function (this: TanstackQueryDevtools) { + this.mount = mountMock + this.unmount = unmountMock + this.setClient = setClientMock + this.setButtonPosition = setButtonPositionMock + this.setPosition = setPositionMock + this.setInitialIsOpen = setInitialIsOpenMock + this.setErrorTypes = setErrorTypesMock + this.setTheme = setThemeMock + }), +})) + +describe('PreactQueryDevtools', () => { + beforeEach(() => { + vi.clearAllMocks() + }) + + it('should throw an error if no query client has been set', async () => { + const { PreactQueryDevtools } = await import('../PreactQueryDevtools') + + expect(() => render()).toThrow( + 'No QueryClient set, use QueryClientProvider to set one', + ) + }) + + it('should not throw an error if query client is provided via context', async () => { + const { PreactQueryDevtools } = await import('../PreactQueryDevtools') + const queryClient = new QueryClient() + + expect(() => + render( + + + , + ), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should not throw an error if query client is provided via props', async () => { + const { PreactQueryDevtools } = await import('../PreactQueryDevtools') + const queryClient = new QueryClient() + + expect(() => + render(), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should return null in non-development environments', async () => { + const { PreactQueryDevtools } = await import('..') + + expect(process.env.NODE_ENV).not.toBe('development') + expect(PreactQueryDevtools({})).toBeNull() + }) +}) diff --git a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx new file mode 100644 index 00000000000..66930e5bd5a --- /dev/null +++ b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx @@ -0,0 +1,72 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/preact' +import { QueryClient, QueryClientProvider } from '@tanstack/preact-query' +import type { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools' + +const mountMock = vi.fn() +const unmountMock = vi.fn() +const setClientMock = vi.fn() +const setOnCloseMock = vi.fn() +const setErrorTypesMock = vi.fn() +const setThemeMock = vi.fn() + +vi.mock('@tanstack/query-devtools', () => ({ + TanstackQueryDevtoolsPanel: vi.fn(function ( + this: TanstackQueryDevtoolsPanel, + ) { + this.mount = mountMock + this.unmount = unmountMock + this.setClient = setClientMock + this.setOnClose = setOnCloseMock + this.setErrorTypes = setErrorTypesMock + this.setTheme = setThemeMock + }), +})) + +describe('PreactQueryDevtoolsPanel', () => { + beforeEach(() => { + vi.clearAllMocks() + }) + + it('should throw an error if no query client has been set', async () => { + const { PreactQueryDevtoolsPanel } = + await import('../PreactQueryDevtoolsPanel') + + expect(() => render()).toThrow( + 'No QueryClient set, use QueryClientProvider to set one', + ) + }) + + it('should not throw an error if query client is provided via context', async () => { + const { PreactQueryDevtoolsPanel } = + await import('../PreactQueryDevtoolsPanel') + const queryClient = new QueryClient() + + expect(() => + render( + + + , + ), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should not throw an error if query client is provided via props', async () => { + const { PreactQueryDevtoolsPanel } = + await import('../PreactQueryDevtoolsPanel') + const queryClient = new QueryClient() + + expect(() => + render(), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should return null in non-development environments', async () => { + const { PreactQueryDevtoolsPanel } = await import('..') + + expect(process.env.NODE_ENV).not.toBe('development') + expect(PreactQueryDevtoolsPanel({})).toBeNull() + }) +}) From 03eba38ae9f9367022316d802d827a8460edcab7 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 3 May 2026 14:19:43 +0900 Subject: [PATCH 212/414] test(react-query-devtools): add tests for missing 'QueryClient', context provider, 'client' prop, and production fallback (#10627) * test(react-query-devtools): add tests for missing 'QueryClient', context provider, 'client' prop, and production fallback * ci: apply automated fixes * test(react-query-devtools): make production fallback test deterministic with 'vi.stubEnv' and 'vi.resetModules' --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/ReactQueryDevtools.test.tsx | 77 ++++++++++++++++++ .../ReactQueryDevtoolsPanel.test.tsx | 78 +++++++++++++++++++ .../src/__tests__/devtools.test.tsx | 7 -- .../src/__tests__/not-development.test.tsx | 9 --- 4 files changed, 155 insertions(+), 16 deletions(-) create mode 100644 packages/react-query-devtools/src/__tests__/ReactQueryDevtools.test.tsx create mode 100644 packages/react-query-devtools/src/__tests__/ReactQueryDevtoolsPanel.test.tsx delete mode 100644 packages/react-query-devtools/src/__tests__/devtools.test.tsx delete mode 100644 packages/react-query-devtools/src/__tests__/not-development.test.tsx diff --git a/packages/react-query-devtools/src/__tests__/ReactQueryDevtools.test.tsx b/packages/react-query-devtools/src/__tests__/ReactQueryDevtools.test.tsx new file mode 100644 index 00000000000..0d48c3d173d --- /dev/null +++ b/packages/react-query-devtools/src/__tests__/ReactQueryDevtools.test.tsx @@ -0,0 +1,77 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/react' +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import type { TanstackQueryDevtools } from '@tanstack/query-devtools' + +const mountMock = vi.fn() +const unmountMock = vi.fn() +const setClientMock = vi.fn() +const setButtonPositionMock = vi.fn() +const setPositionMock = vi.fn() +const setInitialIsOpenMock = vi.fn() +const setErrorTypesMock = vi.fn() +const setThemeMock = vi.fn() + +vi.mock('@tanstack/query-devtools', () => ({ + TanstackQueryDevtools: vi.fn(function (this: TanstackQueryDevtools) { + this.mount = mountMock + this.unmount = unmountMock + this.setClient = setClientMock + this.setButtonPosition = setButtonPositionMock + this.setPosition = setPositionMock + this.setInitialIsOpen = setInitialIsOpenMock + this.setErrorTypes = setErrorTypesMock + this.setTheme = setThemeMock + }), +})) + +describe('ReactQueryDevtools', () => { + beforeEach(() => { + vi.clearAllMocks() + }) + + it('should throw an error if no query client has been set', async () => { + const { ReactQueryDevtools } = await import('../ReactQueryDevtools') + + expect(() => render()).toThrow( + 'No QueryClient set, use QueryClientProvider to set one', + ) + }) + + it('should not throw an error if query client is provided via context', async () => { + const { ReactQueryDevtools } = await import('../ReactQueryDevtools') + const queryClient = new QueryClient() + + expect(() => + render( + + + , + ), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should not throw an error if query client is provided via props', async () => { + const { ReactQueryDevtools } = await import('../ReactQueryDevtools') + const queryClient = new QueryClient() + + expect(() => + render(), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should return null in non-development environments', async () => { + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() + + try { + const { ReactQueryDevtools } = await import('..') + expect(ReactQueryDevtools({})).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } + }) +}) diff --git a/packages/react-query-devtools/src/__tests__/ReactQueryDevtoolsPanel.test.tsx b/packages/react-query-devtools/src/__tests__/ReactQueryDevtoolsPanel.test.tsx new file mode 100644 index 00000000000..4beb7d99c02 --- /dev/null +++ b/packages/react-query-devtools/src/__tests__/ReactQueryDevtoolsPanel.test.tsx @@ -0,0 +1,78 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/react' +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import type { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools' + +const mountMock = vi.fn() +const unmountMock = vi.fn() +const setClientMock = vi.fn() +const setOnCloseMock = vi.fn() +const setErrorTypesMock = vi.fn() +const setThemeMock = vi.fn() + +vi.mock('@tanstack/query-devtools', () => ({ + TanstackQueryDevtoolsPanel: vi.fn(function ( + this: TanstackQueryDevtoolsPanel, + ) { + this.mount = mountMock + this.unmount = unmountMock + this.setClient = setClientMock + this.setOnClose = setOnCloseMock + this.setErrorTypes = setErrorTypesMock + this.setTheme = setThemeMock + }), +})) + +describe('ReactQueryDevtoolsPanel', () => { + beforeEach(() => { + vi.clearAllMocks() + }) + + it('should throw an error if no query client has been set', async () => { + const { ReactQueryDevtoolsPanel } = + await import('../ReactQueryDevtoolsPanel') + + expect(() => render()).toThrow( + 'No QueryClient set, use QueryClientProvider to set one', + ) + }) + + it('should not throw an error if query client is provided via context', async () => { + const { ReactQueryDevtoolsPanel } = + await import('../ReactQueryDevtoolsPanel') + const queryClient = new QueryClient() + + expect(() => + render( + + + , + ), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should not throw an error if query client is provided via props', async () => { + const { ReactQueryDevtoolsPanel } = + await import('../ReactQueryDevtoolsPanel') + const queryClient = new QueryClient() + + expect(() => + render(), + ).not.toThrow() + expect(mountMock).toHaveBeenCalled() + }) + + it('should return null in non-development environments', async () => { + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() + + try { + const { ReactQueryDevtoolsPanel } = await import('..') + expect(ReactQueryDevtoolsPanel({})).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } + }) +}) diff --git a/packages/react-query-devtools/src/__tests__/devtools.test.tsx b/packages/react-query-devtools/src/__tests__/devtools.test.tsx deleted file mode 100644 index 0e44d74db67..00000000000 --- a/packages/react-query-devtools/src/__tests__/devtools.test.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { describe, expect, it } from 'vitest' - -describe('ReactQueryDevtools', () => { - it('should be able to open and close devtools', () => { - expect(1).toBe(1) - }) -}) diff --git a/packages/react-query-devtools/src/__tests__/not-development.test.tsx b/packages/react-query-devtools/src/__tests__/not-development.test.tsx deleted file mode 100644 index 6353147ed4d..00000000000 --- a/packages/react-query-devtools/src/__tests__/not-development.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { ReactQueryDevtools } from '..' - -describe('ReactQueryDevtools not in process.env.NODE_ENV=development', () => { - it('should return null', () => { - expect(process.env.NODE_ENV).not.toBe('development') - expect(ReactQueryDevtools({})).toBeNull() - }) -}) From 9b879f14211390dd5a66db69ef920b0631311b7e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 3 May 2026 14:20:03 +0900 Subject: [PATCH 213/414] test(preact-query-devtools): make production fallback test deterministic with 'vi.stubEnv' and 'vi.resetModules' (#10628) --- .../src/__tests__/PreactQueryDevtools.test.tsx | 12 +++++++++--- .../src/__tests__/PreactQueryDevtoolsPanel.test.tsx | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx index ad60e9c3d0d..25fd5c41698 100644 --- a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx +++ b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx @@ -63,9 +63,15 @@ describe('PreactQueryDevtools', () => { }) it('should return null in non-development environments', async () => { - const { PreactQueryDevtools } = await import('..') + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() - expect(process.env.NODE_ENV).not.toBe('development') - expect(PreactQueryDevtools({})).toBeNull() + try { + const { PreactQueryDevtools } = await import('..') + expect(PreactQueryDevtools({})).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } }) }) diff --git a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx index 66930e5bd5a..cc03560a367 100644 --- a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx +++ b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx @@ -64,9 +64,15 @@ describe('PreactQueryDevtoolsPanel', () => { }) it('should return null in non-development environments', async () => { - const { PreactQueryDevtoolsPanel } = await import('..') + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() - expect(process.env.NODE_ENV).not.toBe('development') - expect(PreactQueryDevtoolsPanel({})).toBeNull() + try { + const { PreactQueryDevtoolsPanel } = await import('..') + expect(PreactQueryDevtoolsPanel({})).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } }) }) From fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380 Mon Sep 17 00:00:00 2001 From: Neef Rehman Date: Sun, 3 May 2026 13:34:10 +0100 Subject: [PATCH 214/414] fix(query-core): restore NoInfer on persister's TQueryKey (#10601) Follow-up to #10510. That PR removed NoInfer from all three persister generics to fix TQueryFnData inference when the companion queryFn declares a parameter (#7842). Keeping NoInfer on TQueryKey preserves that fix while preventing the persister slot from widening TQueryKey inference. Without NoInfer on TQueryKey, the persister slot contributes to TQueryKey inference. When Register.queryKey is augmented to a narrowed constraint, TQueryKey widens to that constraint instead of the literal passed to queryKey. Wrappers that brand their return with DataTag then produce a brand on the wider type, which a plain literal tuple can no longer satisfy in contravariant positions (vi.mocked(...).mockReturnValue, typed variable assignments, etc.). TQueryFnData still participates in inference, so #10510's positive and negative type tests continue to pass. Co-authored-by: Wonsuk Choi --- .changeset/fix-persister-query-key-infer.md | 5 +++++ packages/query-core/src/types.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/fix-persister-query-key-infer.md diff --git a/.changeset/fix-persister-query-key-infer.md b/.changeset/fix-persister-query-key-infer.md new file mode 100644 index 00000000000..e721d6dcfb9 --- /dev/null +++ b/.changeset/fix-persister-query-key-infer.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-core': patch +--- + +fix(query-core): wrap `persister`'s `TQueryKey` in `NoInfer` so that the `persister` slot no longer contributes to `TQueryKey` inference. Follow-up to #10510, which removed `NoInfer` on all three `persister` generics. Preserving `NoInfer` keeps that fix's benefit for `TQueryFnData` while preventing `TQueryKey` from widening to the augmented constraint when `Register.queryKey` is narrowed — which made `DataTag`-branded wrapper returns un-assignable in contravariant slots. diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 6e26b02746a..dcd5f7e9e2e 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -246,7 +246,7 @@ export interface QueryOptions< */ gcTime?: number queryFn?: QueryFunction | SkipToken - persister?: QueryPersister + persister?: QueryPersister, TPageParam> queryHash?: string queryKey?: TQueryKey queryKeyHashFn?: QueryKeyHashFunction From 3d21cacdec3028b700c4c2e3e0ff8dbe7a235e8c Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Sun, 3 May 2026 14:13:30 +0100 Subject: [PATCH 215/414] fix(query-devtools): align onClose setter type (#10607) --- .changeset/query-devtools-onclose-setter-type.md | 5 +++++ packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/query-devtools-onclose-setter-type.md diff --git a/.changeset/query-devtools-onclose-setter-type.md b/.changeset/query-devtools-onclose-setter-type.md new file mode 100644 index 00000000000..1e615ae3b67 --- /dev/null +++ b/.changeset/query-devtools-onclose-setter-type.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-devtools': patch +--- + +Update the devtools panel `setOnClose` callback type to return `void`. diff --git a/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx b/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx index 6294a6de659..42ee5631961 100644 --- a/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx +++ b/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx @@ -34,7 +34,7 @@ class TanstackQueryDevtoolsPanel { #initialIsOpen: Signal #errorTypes: Signal | undefined> #hideDisabledQueries: Signal - #onClose: Signal<(() => unknown) | undefined> + #onClose: Signal<(() => void) | undefined> #Component: DevtoolsComponentType | undefined #theme: Signal #dispose?: () => void @@ -90,7 +90,7 @@ class TanstackQueryDevtoolsPanel { this.#client[1](client) } - setOnClose(onClose: () => unknown) { + setOnClose(onClose: () => void) { this.#onClose[1](() => onClose) } From 14926b7615c0a8df5f8d765b18910c3676e42f8a Mon Sep 17 00:00:00 2001 From: Matt Cowley Date: Sun, 3 May 2026 14:16:06 +0100 Subject: [PATCH 216/414] docs: remove typo in QueryOptions#retry JSDoc (#10606) fix: remove typo in QueryOptions#retry JSDoc --- packages/query-core/src/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index dcd5f7e9e2e..6cfe16484e5 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -231,7 +231,7 @@ export interface QueryOptions< > { /** * If `false`, failed queries will not retry by default. - * If `true`, failed queries will retry infinitely., failureCount: num + * If `true`, failed queries will retry infinitely. * If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number. * If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false. */ From bf902df59dcc3196cbc4a379c43ee55200c75a0a Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Sun, 3 May 2026 15:22:29 +0100 Subject: [PATCH 217/414] feat(angular-query): add devtools theme option (#10609) * feat(angular-query): add devtools theme option * chore: apply review feedback --- .changeset/angular-devtools-theme-option.md | 5 +++++ packages/angular-query-experimental/src/devtools/types.ts | 6 ++++++ .../src/devtools/with-devtools.ts | 2 ++ 3 files changed, 13 insertions(+) create mode 100644 .changeset/angular-devtools-theme-option.md diff --git a/.changeset/angular-devtools-theme-option.md b/.changeset/angular-devtools-theme-option.md new file mode 100644 index 00000000000..f7de35e5c3a --- /dev/null +++ b/.changeset/angular-devtools-theme-option.md @@ -0,0 +1,5 @@ +--- +'@tanstack/angular-query-experimental': patch +--- + +Add theme option support to Angular floating devtools. diff --git a/packages/angular-query-experimental/src/devtools/types.ts b/packages/angular-query-experimental/src/devtools/types.ts index 8e533783721..2dd870b3738 100644 --- a/packages/angular-query-experimental/src/devtools/types.ts +++ b/packages/angular-query-experimental/src/devtools/types.ts @@ -3,6 +3,7 @@ import type { DevtoolsButtonPosition, DevtoolsErrorType, DevtoolsPosition, + Theme, } from '@tanstack/query-devtools' import type { DevtoolsFeature } from '../providers' @@ -75,6 +76,11 @@ export interface DevtoolsOptions { * Set this to true to hide disabled queries from the devtools panel. */ hideDisabledQueries?: boolean + /** + * Set this to 'light', 'dark', or 'system' to change the theme of the devtools panel. + * Defaults to 'system'. + */ + theme?: Theme /** * Whether the developer tools should load. diff --git a/packages/angular-query-experimental/src/devtools/with-devtools.ts b/packages/angular-query-experimental/src/devtools/with-devtools.ts index 22ee80c1ca1..4d4b861c7f2 100644 --- a/packages/angular-query-experimental/src/devtools/with-devtools.ts +++ b/packages/angular-query-experimental/src/devtools/with-devtools.ts @@ -126,6 +126,7 @@ export const withDevtools: WithDevtools = ( errorTypes, buttonPosition, initialIsOpen, + theme, } = devtoolsOptions() if (!shouldLoadTools) { @@ -142,6 +143,7 @@ export const withDevtools: WithDevtools = ( buttonPosition && devtools.setButtonPosition(buttonPosition) typeof initialIsOpen === 'boolean' && devtools.setInitialIsOpen(initialIsOpen) + theme && devtools.setTheme(theme) return } From 8c3d523d0ab0b3f8fad28fbaae6807e7aca7eb54 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 16:45:38 +0200 Subject: [PATCH 218/414] ci: Version Packages (#10630) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/angular-devtools-theme-option.md | 5 - .changeset/fix-persister-query-key-infer.md | 5 - .../query-devtools-onclose-setter-type.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 9 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 6 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 246 +++++++++--------- 111 files changed, 445 insertions(+), 285 deletions(-) delete mode 100644 .changeset/angular-devtools-theme-option.md delete mode 100644 .changeset/fix-persister-query-key-infer.md delete mode 100644 .changeset/query-devtools-onclose-setter-type.md diff --git a/.changeset/angular-devtools-theme-option.md b/.changeset/angular-devtools-theme-option.md deleted file mode 100644 index f7de35e5c3a..00000000000 --- a/.changeset/angular-devtools-theme-option.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/angular-query-experimental': patch ---- - -Add theme option support to Angular floating devtools. diff --git a/.changeset/fix-persister-query-key-infer.md b/.changeset/fix-persister-query-key-infer.md deleted file mode 100644 index e721d6dcfb9..00000000000 --- a/.changeset/fix-persister-query-key-infer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-core': patch ---- - -fix(query-core): wrap `persister`'s `TQueryKey` in `NoInfer` so that the `persister` slot no longer contributes to `TQueryKey` inference. Follow-up to #10510, which removed `NoInfer` on all three `persister` generics. Preserving `NoInfer` keeps that fix's benefit for `TQueryFnData` while preventing `TQueryKey` from widening to the augmented constraint when `Register.queryKey` is narrowed — which made `DataTag`-branded wrapper returns un-assignable in contravariant slots. diff --git a/.changeset/query-devtools-onclose-setter-type.md b/.changeset/query-devtools-onclose-setter-type.md deleted file mode 100644 index 1e615ae3b67..00000000000 --- a/.changeset/query-devtools-onclose-setter-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/query-devtools': patch ---- - -Update the devtools panel `setOnClose` callback type to return `void`. diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 6e00366439e..f988901de9d 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index d79a88dd14e..8b853f641e9 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", - "@tanstack/angular-query-persist-client": "^5.100.8", - "@tanstack/query-async-storage-persister": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-persist-client": "^5.100.9", + "@tanstack/query-async-storage-persister": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index de52ce3c013..31fb026a713 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 693fe3519eb..3f7d1b06440 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index dc5bdc2fa0b..c39a3c494a0 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 64cd8d2c412..6b0d148f7aa 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 9434347fcda..1ed91a94070 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 003b231285c..aa3160f4edc 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 083a41a54c6..543d2682777 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 5a8459bc51f..35fde314745 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 3feba380802..c418732f2a8 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 4d5a96bbad2..86223b0868b 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.8", + "@tanstack/preact-query": "^5.100.9", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 873238b6211..c13cfcf5c3d 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.8", + "@tanstack/eslint-plugin-query": "^5.100.9", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index cd4e0b75bd1..8e226cf0fd7 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 481c4891cbd..d1ecf28a949 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index d6e44141401..c3855a7f956 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.8", - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", - "@tanstack/react-query-persist-client": "^5.100.8", + "@tanstack/query-async-storage-persister": "^5.100.9", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query-persist-client": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.8", + "@tanstack/eslint-plugin-query": "^5.100.9", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 8a61bbdee9d..415c9375f37 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 36dff590ba2..c8f50f0748f 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 82754c16386..faa247b3b16 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index f5a45e8ce2a..c69ffb3a398 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.8", - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", - "@tanstack/react-query-persist-client": "^5.100.8", + "@tanstack/query-async-storage-persister": "^5.100.9", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query-persist-client": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.8", + "@tanstack/eslint-plugin-query": "^5.100.9", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index ceb6d91c6d1..de3f0626b9f 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query": "^5.100.9", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.8", + "@tanstack/eslint-plugin-query": "^5.100.9", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 23ef1744953..1cefd73f488 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index c143427fff5..7cd254a2144 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 91851a0f312..74bd39d97ce 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 8183aa587b6..12b889ffedf 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", - "@tanstack/react-query-next-experimental": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query-next-experimental": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 138b9c0b5ce..a8d83578c96 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 83fd4b831f4..3433b941da6 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.8", + "@tanstack/query-async-storage-persister": "^5.100.9", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", - "@tanstack/react-query-persist-client": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query-persist-client": "^5.100.9", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index bb9b5fae806..11e95eb159c 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index f724967b98d..af5d17a9ae6 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 715484d74be..4a2ae608479 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 8f35fcfcc8b..35b8d6d3f9c 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 31a32575454..db628368c99 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index d3a3653df21..0f87dba153c 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index ef2f5c58fe7..0cfa6554a70 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 4e7b2d223ea..5556af2151c 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 7ac49ef0bfc..aaae403079b 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index a4e063bc5fd..45df8b1a8b3 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index b9f389f3aca..01395cb48ca 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 5cef629d30a..af80c7f20b0 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.8", - "@tanstack/react-query-devtools": "^5.100.8", + "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query-devtools": "^5.100.9", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a52ec3e51a5..0bbf957668a 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.8", - "@tanstack/solid-query-devtools": "^5.100.8", + "@tanstack/solid-query": "^5.100.9", + "@tanstack/solid-query-devtools": "^5.100.9", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 3162dd9d2b9..52bfb0169fb 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.8", - "@tanstack/solid-query-devtools": "^5.100.8", + "@tanstack/solid-query": "^5.100.9", + "@tanstack/solid-query-devtools": "^5.100.9", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 647fb12569b..ac4878d7974 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.8", - "@tanstack/solid-query-devtools": "^5.100.8", + "@tanstack/solid-query": "^5.100.9", + "@tanstack/solid-query-devtools": "^5.100.9", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 5616b86ef0d..fe86f182aa7 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.8", - "@tanstack/solid-query-devtools": "^5.100.8", + "@tanstack/solid-query": "^5.100.9", + "@tanstack/solid-query-devtools": "^5.100.9", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 987ffe1ca48..eaf52ba1bac 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.8", - "@tanstack/solid-query": "^5.100.8", - "@tanstack/solid-query-devtools": "^5.100.8", - "@tanstack/solid-query-persist-client": "^5.100.8", + "@tanstack/query-async-storage-persister": "^5.100.9", + "@tanstack/solid-query": "^5.100.9", + "@tanstack/solid-query-devtools": "^5.100.9", + "@tanstack/solid-query-persist-client": "^5.100.9", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index fd25c55fff7..d81197fb71f 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.8", - "@tanstack/solid-query-devtools": "^5.100.8", + "@tanstack/solid-query": "^5.100.9", + "@tanstack/solid-query-devtools": "^5.100.9", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.8", + "@tanstack/eslint-plugin-query": "^5.100.9", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 883881d10a0..cc58d4a4022 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.8", - "@tanstack/solid-query-devtools": "^5.100.8", + "@tanstack/solid-query": "^5.100.9", + "@tanstack/solid-query-devtools": "^5.100.9", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index ee0cc0203b0..29b1b2a8242 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27" + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 08afdab39f5..b76ac810aee 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.8", - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27", - "@tanstack/svelte-query-persist-client": "^6.1.27" + "@tanstack/query-async-storage-persister": "^5.100.9", + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28", + "@tanstack/svelte-query-persist-client": "^6.1.28" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 3b1b35a6c38..948e177cb08 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27" + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 245c848b14b..ff34104352e 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27" + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 9659ad8ebb2..9636442ca01 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27" + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index e1469b7be9a..8011617c086 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27" + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 2369d96dd83..c2149d068a6 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27" + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index c2970d4fb52..521bd92bb2a 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.27", - "@tanstack/svelte-query-devtools": "^6.1.27" + "@tanstack/svelte-query": "^6.1.28", + "@tanstack/svelte-query-devtools": "^6.1.28" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index bc59c664d4d..f89f8a67702 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.8", - "@tanstack/vue-query-devtools": "^6.1.27", + "@tanstack/vue-query": "^5.100.9", + "@tanstack/vue-query-devtools": "^6.1.28", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 84cb21eaa47..481d79dd3d8 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.8", + "@tanstack/vue-query": "^5.100.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 69ea340579e..e7f289cae3a 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.8", - "@tanstack/query-persist-client-core": "^5.100.8", - "@tanstack/query-sync-storage-persister": "^5.100.8", - "@tanstack/vue-query": "^5.100.8", + "@tanstack/query-core": "^5.100.9", + "@tanstack/query-persist-client-core": "^5.100.9", + "@tanstack/query-sync-storage-persister": "^5.100.9", + "@tanstack/vue-query": "^5.100.9", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index c6d22859f80..18578df831a 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.8", - "@tanstack/vue-query-devtools": "^6.1.27", + "@tanstack/vue-query": "^5.100.9", + "@tanstack/vue-query-devtools": "^6.1.28", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index d8e45f0d79c..f1ee0989fde 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.8", + "@tanstack/angular-query-experimental": "^5.100.9", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index a6abe7c8b2f..bf657b9ec42 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/angular-query-experimental +## 5.100.9 + +### Patch Changes + +- Add theme option support to Angular floating devtools. ([#10609](https://github.com/TanStack/query/pull/10609)) + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 8cf20f8026b..a0aaedd2dc1 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.8", + "version": "5.100.9", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 2412ff1a89c..6a2b42e13c4 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`bf902df`](https://github.com/TanStack/query/commit/bf902df59dcc3196cbc4a379c43ee55200c75a0a)]: + - @tanstack/angular-query-experimental@5.100.9 + - @tanstack/query-persist-client-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 1d1eb2384e3..1b2615fcf22 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.8", + "version": "5.100.9", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index d4035f42d69..0269a5a7142 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.9 + ## 5.100.8 ## 5.100.7 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 66a21d47301..76fe6d1b1f2 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.8", + "version": "5.100.9", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 39f5b2094a5..d73e420601d 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`3d21cac`](https://github.com/TanStack/query/commit/3d21cacdec3028b700c4c2e3e0ff8dbe7a235e8c)]: + - @tanstack/query-devtools@5.100.9 + - @tanstack/preact-query@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index f9a03c29dee..656d2042628 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.8", + "version": "5.100.9", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 6278b39cedb..9c36e566788 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.9 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.9 + - @tanstack/query-persist-client-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 899a8d49a63..1d520655cb6 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.8", + "version": "5.100.9", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index a15dc47db88..3f4f86b8cd3 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 63cec462dc9..7f699082adb 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.8", + "version": "5.100.9", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index ed021e2a910..c416dc71a76 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + - @tanstack/query-persist-client-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index d9e0205079b..75bb6dc5fd2 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.8", + "version": "5.100.9", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index a9d968ac6f1..d8aad9b8ae0 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 0f7f113c8ec..229ba288d8c 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.8", + "version": "5.100.9", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 97b2fce6536..a7336ada909 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.100.9 + +### Patch Changes + +- fix(query-core): wrap `persister`'s `TQueryKey` in `NoInfer` so that the `persister` slot no longer contributes to `TQueryKey` inference. Follow-up to #10510, which removed `NoInfer` on all three `persister` generics. Preserving `NoInfer` keeps that fix's benefit for `TQueryFnData` while preventing `TQueryKey` from widening to the augmented constraint when `Register.queryKey` is narrowed — which made `DataTag`-branded wrapper returns un-assignable in contravariant slots. ([#10601](https://github.com/TanStack/query/pull/10601)) + ## 5.100.8 ## 5.100.7 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a8c128b2b61..cdae9991458 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.8", + "version": "5.100.9", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index ed86f3dfa08..44c3a500dc4 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-devtools +## 5.100.9 + +### Patch Changes + +- Update the devtools panel `setOnClose` callback type to return `void`. ([#10607](https://github.com/TanStack/query/pull/10607)) + ## 5.100.8 ## 5.100.7 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index f9a9f954184..a848954962d 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.8", + "version": "5.100.9", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index a62e4c35211..595d2a10247 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 8a5862e94b5..0494af120b8 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.8", + "version": "5.100.9", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index c802fbb248c..3b419e32056 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + - @tanstack/query-persist-client-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 69cefc8c7b3..4605e424659 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.8", + "version": "5.100.9", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 82e57bba3ca..14da0cf7afd 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`3d21cac`](https://github.com/TanStack/query/commit/3d21cacdec3028b700c4c2e3e0ff8dbe7a235e8c)]: + - @tanstack/query-devtools@5.100.9 + - @tanstack/react-query@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 81b5eb9c0be..20d1f9f6574 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.8", + "version": "5.100.9", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index a38c1eeb7f3..3b7efa697fc 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.9 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 4fb07ad7128..855b63cfd6e 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.8", + "version": "5.100.9", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index b68a1f4dda1..2f36d714602 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.9 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.9 + - @tanstack/react-query@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 2811fe8fdad..d57d54a6834 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.8", + "version": "5.100.9", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index e87cba998b0..ffc74af463a 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 6649d5a1f7e..84f805e77db 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.8", + "version": "5.100.9", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index fa58466f057..b541271993d 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`3d21cac`](https://github.com/TanStack/query/commit/3d21cacdec3028b700c4c2e3e0ff8dbe7a235e8c)]: + - @tanstack/query-devtools@5.100.9 + - @tanstack/solid-query@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 2882d21905e..0034c33bc61 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.8", + "version": "5.100.9", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 21ddf48a422..3d2d2209e81 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.9 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.9 + - @tanstack/solid-query@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index c64ec594e8f..48d1d0c7ded 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.8", + "version": "5.100.9", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 0fa2373f949..1e5ec8cdd03 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 14785e074db..39eae9d0e7c 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.8", + "version": "5.100.9", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 5bcb8d3f867..02362000d71 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.28 + +### Patch Changes + +- Updated dependencies [[`3d21cac`](https://github.com/TanStack/query/commit/3d21cacdec3028b700c4c2e3e0ff8dbe7a235e8c)]: + - @tanstack/query-devtools@5.100.9 + - @tanstack/svelte-query@6.1.28 + ## 6.1.27 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c6b58ea9a25..52f566209f4 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.27", + "version": "6.1.28", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index ea4cf0c1496..38b81b9920e 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.28 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.9 + - @tanstack/svelte-query@6.1.28 + ## 6.1.27 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 22971fa53b5..8c7f0aa1134 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.27", + "version": "6.1.28", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 674afa1ba3f..88ef97be835 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.28 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 6.1.27 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index fbd54b3e830..9e6a96da00c 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.27", + "version": "6.1.28", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 40351dbf71d..b16f0a20396 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.28 + +### Patch Changes + +- Updated dependencies [[`3d21cac`](https://github.com/TanStack/query/commit/3d21cacdec3028b700c4c2e3e0ff8dbe7a235e8c)]: + - @tanstack/query-devtools@5.100.9 + - @tanstack/vue-query@5.100.9 + ## 6.1.27 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 2ec2f6cf996..9f135bfe1d8 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.27", + "version": "6.1.28", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 945a34d5290..115dbc47054 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.9 + +### Patch Changes + +- Updated dependencies [[`fcee7bd`](https://github.com/TanStack/query/commit/fcee7bdc429385ae8ffa224fa8a7a9ec7b8ee380)]: + - @tanstack/query-core@5.100.9 + ## 5.100.8 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index c6fab852ce8..a87e455a0dd 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.8", + "version": "5.100.9", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82cb34c9228..dbc3059310b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,7 +618,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -646,10 +646,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -659,7 +659,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -680,10 +680,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -708,16 +708,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -727,7 +727,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -748,10 +748,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -776,10 +776,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -807,10 +807,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -832,10 +832,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -857,16 +857,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -876,7 +876,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -897,14 +897,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -919,10 +919,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -947,10 +947,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -978,10 +978,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1006,10 +1006,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1034,13 +1034,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1065,19 +1065,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1105,10 +1105,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1133,10 +1133,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1161,10 +1161,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1189,10 +1189,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1214,10 +1214,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1251,10 +1251,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1303,10 +1303,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1355,10 +1355,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1392,10 +1392,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1423,10 +1423,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1448,10 +1448,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1485,10 +1485,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1531,10 +1531,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1552,10 +1552,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1574,10 +1574,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1602,10 +1602,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1624,16 +1624,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1655,17 +1655,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1689,10 +1689,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1704,10 +1704,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1735,16 +1735,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1772,10 +1772,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1803,10 +1803,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1834,10 +1834,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1865,10 +1865,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1893,10 +1893,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1924,10 +1924,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1961,10 +1961,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -1983,7 +1983,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2002,16 +2002,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2033,10 +2033,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.27 + specifier: ^6.1.28 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2073,7 +2073,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.8 + specifier: ^5.100.9 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 74fa05eb1b16f40ea7068afd0e5e082687d22338 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 4 May 2026 03:24:13 +0900 Subject: [PATCH 219/414] chore(tsconfig.json): narrow 'include' pattern to prevent TS6053 race conditions from tsup bundled config files (#10522) * chore(tsconfig.json): exclude tsup bundled config files to prevent TS6053 race conditions * chore(tsconfig.json): narrow 'include' pattern to specific config extensions * ci: apply automated fixes * chore(tsconfig.json): replace brace expansion with explicit '*.config.ts' and '*.config.js' patterns * chore(tsconfig.json): use single-line 'include' arrays for consistency * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/angular-query-experimental/tsconfig.json | 9 ++++++++- packages/angular-query-persist-client/tsconfig.json | 8 +++++++- packages/eslint-plugin-query/tsconfig.json | 2 +- packages/preact-query-devtools/tsconfig.json | 8 +++++++- packages/preact-query-persist-client/tsconfig.json | 8 +++++++- packages/preact-query/tsconfig.json | 8 +++++++- packages/query-async-storage-persister/tsconfig.json | 2 +- .../query-broadcast-client-experimental/tsconfig.json | 8 +++++++- packages/query-codemods/tsconfig.json | 2 +- packages/query-core/tsconfig.json | 2 +- packages/query-devtools/tsconfig.json | 2 +- packages/query-persist-client-core/tsconfig.json | 2 +- packages/query-sync-storage-persister/tsconfig.json | 2 +- packages/query-test-utils/tsconfig.json | 2 +- packages/react-query-devtools/tsconfig.json | 8 +++++++- packages/react-query-next-experimental/tsconfig.json | 2 +- packages/react-query-persist-client/tsconfig.json | 8 +++++++- packages/react-query/tsconfig.json | 8 +++++++- packages/solid-query-devtools/tsconfig.json | 2 +- packages/solid-query-persist-client/tsconfig.json | 8 +++++++- packages/solid-query/tsconfig.json | 8 +++++++- packages/svelte-query-devtools/tsconfig.json | 2 +- packages/svelte-query-persist-client/tsconfig.json | 2 +- packages/svelte-query/tsconfig.json | 2 +- packages/vue-query-devtools/tsconfig.json | 2 +- packages/vue-query/tsconfig.json | 8 +++++++- 26 files changed, 99 insertions(+), 26 deletions(-) diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 2aecb185457..bcf51c2ffe5 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -14,6 +14,13 @@ "strictStandalone": true, "strictTemplates": true }, - "include": ["src", "scripts", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "scripts", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [{ "path": "../query-core" }, { "path": "../query-devtools" }] } diff --git a/packages/angular-query-persist-client/tsconfig.json b/packages/angular-query-persist-client/tsconfig.json index 63b0ee37e8d..b1366ab7700 100644 --- a/packages/angular-query-persist-client/tsconfig.json +++ b/packages/angular-query-persist-client/tsconfig.json @@ -7,7 +7,13 @@ "useDefineForClassFields": false, "target": "ES2022" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [ { "path": "../angular-query-experimental" }, { "path": "../query-persist-client-core" } diff --git a/packages/eslint-plugin-query/tsconfig.json b/packages/eslint-plugin-query/tsconfig.json index bcd89cd0c8e..0cc454b2a77 100644 --- a/packages/eslint-plugin-query/tsconfig.json +++ b/packages/eslint-plugin-query/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"] + "include": ["src", "*.config.ts", "*.config.js", "package.json"] } diff --git a/packages/preact-query-devtools/tsconfig.json b/packages/preact-query-devtools/tsconfig.json index 26cd88c4183..61684571df5 100644 --- a/packages/preact-query-devtools/tsconfig.json +++ b/packages/preact-query-devtools/tsconfig.json @@ -6,6 +6,12 @@ "jsx": "react-jsx", "jsxImportSource": "preact" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [{ "path": "../query-devtools" }, { "path": "../preact-query" }] } diff --git a/packages/preact-query-persist-client/tsconfig.json b/packages/preact-query-persist-client/tsconfig.json index 7551d3b9cf4..6ed1d7a193c 100644 --- a/packages/preact-query-persist-client/tsconfig.json +++ b/packages/preact-query-persist-client/tsconfig.json @@ -6,7 +6,13 @@ "jsx": "react-jsx", "jsxImportSource": "preact" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [ { "path": "../query-persist-client-core" }, { "path": "../preact-query" } diff --git a/packages/preact-query/tsconfig.json b/packages/preact-query/tsconfig.json index bf43c5a1e32..1f11f0d58da 100644 --- a/packages/preact-query/tsconfig.json +++ b/packages/preact-query/tsconfig.json @@ -6,5 +6,11 @@ "jsx": "react-jsx", "jsxImportSource": "preact" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"] + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ] } diff --git a/packages/query-async-storage-persister/tsconfig.json b/packages/query-async-storage-persister/tsconfig.json index acf3142c14e..cfe5fad906a 100644 --- a/packages/query-async-storage-persister/tsconfig.json +++ b/packages/query-async-storage-persister/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../query-persist-client-core" }] } diff --git a/packages/query-broadcast-client-experimental/tsconfig.json b/packages/query-broadcast-client-experimental/tsconfig.json index 06504fba344..f2244eacf3a 100644 --- a/packages/query-broadcast-client-experimental/tsconfig.json +++ b/packages/query-broadcast-client-experimental/tsconfig.json @@ -4,6 +4,12 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [{ "path": "../query-core" }] } diff --git a/packages/query-codemods/tsconfig.json b/packages/query-codemods/tsconfig.json index bcd89cd0c8e..0cc454b2a77 100644 --- a/packages/query-codemods/tsconfig.json +++ b/packages/query-codemods/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"] + "include": ["src", "*.config.ts", "*.config.js", "package.json"] } diff --git a/packages/query-core/tsconfig.json b/packages/query-core/tsconfig.json index bcd89cd0c8e..0cc454b2a77 100644 --- a/packages/query-core/tsconfig.json +++ b/packages/query-core/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"] + "include": ["src", "*.config.ts", "*.config.js", "package.json"] } diff --git a/packages/query-devtools/tsconfig.json b/packages/query-devtools/tsconfig.json index 29985608e27..c9589abaae9 100644 --- a/packages/query-devtools/tsconfig.json +++ b/packages/query-devtools/tsconfig.json @@ -6,6 +6,6 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/query-persist-client-core/tsconfig.json b/packages/query-persist-client-core/tsconfig.json index ff4f60d51db..95f60370902 100644 --- a/packages/query-persist-client-core/tsconfig.json +++ b/packages/query-persist-client-core/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/query-sync-storage-persister/tsconfig.json b/packages/query-sync-storage-persister/tsconfig.json index e7004c08d72..c9b33d25932 100644 --- a/packages/query-sync-storage-persister/tsconfig.json +++ b/packages/query-sync-storage-persister/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "*.config.ts", "*.config.js", "package.json"], "references": [ { "path": "../query-core" }, { "path": "../query-persist-client-core" } diff --git a/packages/query-test-utils/tsconfig.json b/packages/query-test-utils/tsconfig.json index bcd89cd0c8e..0cc454b2a77 100644 --- a/packages/query-test-utils/tsconfig.json +++ b/packages/query-test-utils/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"] + "include": ["src", "*.config.ts", "*.config.js", "package.json"] } diff --git a/packages/react-query-devtools/tsconfig.json b/packages/react-query-devtools/tsconfig.json index d8a2b59ae9e..03d5e6eead3 100644 --- a/packages/react-query-devtools/tsconfig.json +++ b/packages/react-query-devtools/tsconfig.json @@ -5,6 +5,12 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [{ "path": "../query-devtools" }, { "path": "../react-query" }] } diff --git a/packages/react-query-next-experimental/tsconfig.json b/packages/react-query-next-experimental/tsconfig.json index 1e87386f2fb..a58a2a96464 100644 --- a/packages/react-query-next-experimental/tsconfig.json +++ b/packages/react-query-next-experimental/tsconfig.json @@ -5,6 +5,6 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../react-query" }] } diff --git a/packages/react-query-persist-client/tsconfig.json b/packages/react-query-persist-client/tsconfig.json index af91bf735d5..0546d2393c3 100644 --- a/packages/react-query-persist-client/tsconfig.json +++ b/packages/react-query-persist-client/tsconfig.json @@ -5,7 +5,13 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [ { "path": "../query-persist-client-core" }, { "path": "../react-query" } diff --git a/packages/react-query/tsconfig.json b/packages/react-query/tsconfig.json index 68d785f0c07..4ad3357ad95 100644 --- a/packages/react-query/tsconfig.json +++ b/packages/react-query/tsconfig.json @@ -5,5 +5,11 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"] + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ] } diff --git a/packages/solid-query-devtools/tsconfig.json b/packages/solid-query-devtools/tsconfig.json index 19cb99564de..23e421b5861 100644 --- a/packages/solid-query-devtools/tsconfig.json +++ b/packages/solid-query-devtools/tsconfig.json @@ -6,6 +6,6 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../query-devtools" }, { "path": "../solid-query" }] } diff --git a/packages/solid-query-persist-client/tsconfig.json b/packages/solid-query-persist-client/tsconfig.json index 7ce26ae4c32..45d41a75eb9 100644 --- a/packages/solid-query-persist-client/tsconfig.json +++ b/packages/solid-query-persist-client/tsconfig.json @@ -6,7 +6,13 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [ { "path": "../query-persist-client-core" }, { "path": "../solid-query" } diff --git a/packages/solid-query/tsconfig.json b/packages/solid-query/tsconfig.json index a0238fb35db..7f3c629b174 100644 --- a/packages/solid-query/tsconfig.json +++ b/packages/solid-query/tsconfig.json @@ -6,6 +6,12 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [{ "path": "../query-core" }] } diff --git a/packages/svelte-query-devtools/tsconfig.json b/packages/svelte-query-devtools/tsconfig.json index cce7cfa8c38..b2330be45f0 100644 --- a/packages/svelte-query-devtools/tsconfig.json +++ b/packages/svelte-query-devtools/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "tests", "*.config.*", "package.json"], + "include": ["src", "tests", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../query-devtools" }, { "path": "../svelte-query" }] } diff --git a/packages/svelte-query-persist-client/tsconfig.json b/packages/svelte-query-persist-client/tsconfig.json index 20b4a12c42d..b1f862b9476 100644 --- a/packages/svelte-query-persist-client/tsconfig.json +++ b/packages/svelte-query-persist-client/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "tests", "*.config.*", "package.json"], + "include": ["src", "tests", "*.config.ts", "*.config.js", "package.json"], "references": [ { "path": "../query-persist-client-core" }, { "path": "../svelte-query" } diff --git a/packages/svelte-query/tsconfig.json b/packages/svelte-query/tsconfig.json index 4c9e052f883..25d5b262726 100644 --- a/packages/svelte-query/tsconfig.json +++ b/packages/svelte-query/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "tests", "*.config.*", "package.json"], + "include": ["src", "tests", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/vue-query-devtools/tsconfig.json b/packages/vue-query-devtools/tsconfig.json index 7a3ba21d328..28a9d01e8a9 100644 --- a/packages/vue-query-devtools/tsconfig.json +++ b/packages/vue-query-devtools/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.*", "package.json"], + "include": ["src", "*.config.ts", "*.config.js", "package.json"], "references": [{ "path": "../vue-query" }, { "path": "../query-devtools" }] } diff --git a/packages/vue-query/tsconfig.json b/packages/vue-query/tsconfig.json index 06504fba344..f2244eacf3a 100644 --- a/packages/vue-query/tsconfig.json +++ b/packages/vue-query/tsconfig.json @@ -4,6 +4,12 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "test-setup.ts", "*.config.*", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [{ "path": "../query-core" }] } From c8e1bde575d85290930e44e636ce91eea3c0df1c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 4 May 2026 18:31:15 +0900 Subject: [PATCH 220/414] chore(vue-query-devtools): set up vitest environment with production fallback test (#10629) * test(vue-query-devtools): set up vitest environment with production fallback test * chore(vue-query-devtools): unify 'defineConfig' and 'mergeConfig' import from 'vitest/config' --- packages/vue-query-devtools/package.json | 2 ++ .../src/__tests__/VueQueryDevtools.test.ts | 16 ++++++++++++++++ .../__tests__/VueQueryDevtoolsPanel.test.ts | 16 ++++++++++++++++ packages/vue-query-devtools/vite.config.ts | 18 +++++++++++++++++- 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 packages/vue-query-devtools/src/__tests__/VueQueryDevtools.test.ts create mode 100644 packages/vue-query-devtools/src/__tests__/VueQueryDevtoolsPanel.test.ts diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 9f135bfe1d8..bd8dad300ff 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -19,6 +19,8 @@ "compile": "vue-tsc --build", "test:eslint": "eslint --concurrency=auto ./src", "test:types": "vue-tsc --build", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", "build": "pnpm run compile && vite build" }, diff --git a/packages/vue-query-devtools/src/__tests__/VueQueryDevtools.test.ts b/packages/vue-query-devtools/src/__tests__/VueQueryDevtools.test.ts new file mode 100644 index 00000000000..9d31e6c380e --- /dev/null +++ b/packages/vue-query-devtools/src/__tests__/VueQueryDevtools.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it, vi } from 'vitest' + +describe('VueQueryDevtools', () => { + it('should return null in non-development environments', async () => { + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() + + try { + const { VueQueryDevtools } = await import('..') + expect((VueQueryDevtools as unknown as () => null)()).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } + }) +}) diff --git a/packages/vue-query-devtools/src/__tests__/VueQueryDevtoolsPanel.test.ts b/packages/vue-query-devtools/src/__tests__/VueQueryDevtoolsPanel.test.ts new file mode 100644 index 00000000000..5b9dfa09e65 --- /dev/null +++ b/packages/vue-query-devtools/src/__tests__/VueQueryDevtoolsPanel.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it, vi } from 'vitest' + +describe('VueQueryDevtoolsPanel', () => { + it('should return null in non-development environments', async () => { + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() + + try { + const { VueQueryDevtoolsPanel } = await import('..') + expect((VueQueryDevtoolsPanel as unknown as () => null)()).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } + }) +}) diff --git a/packages/vue-query-devtools/vite.config.ts b/packages/vue-query-devtools/vite.config.ts index 7f66d0e5001..443d097a0a6 100644 --- a/packages/vue-query-devtools/vite.config.ts +++ b/packages/vue-query-devtools/vite.config.ts @@ -1,7 +1,9 @@ -import { defineConfig, mergeConfig } from 'vite' +import { defineConfig, mergeConfig } from 'vitest/config' import vue from '@vitejs/plugin-vue' import { tanstackViteConfig } from '@tanstack/vite-config' +import packageJson from './package.json' + const config = defineConfig({ plugins: [vue()], // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 @@ -15,6 +17,20 @@ const config = defineConfig({ }, }, }, + test: { + name: packageJson.name, + dir: './src', + watch: false, + environment: 'jsdom', + coverage: { + enabled: true, + provider: 'istanbul', + include: ['src/**/*'], + exclude: ['src/__tests__/**'], + }, + typecheck: { enabled: true }, + restoreMocks: true, + }, }) export default mergeConfig( From 0d63459555af4be67ae9927deb4ae8f55e51d1a6 Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Tue, 5 May 2026 04:08:07 +0100 Subject: [PATCH 221/414] docs(devtools): correct 'errorTypes' type to array (#10634) docs(devtools): document errorTypes as array --- docs/framework/preact/devtools.md | 2 +- docs/framework/solid/devtools.md | 2 +- docs/framework/svelte/devtools.md | 2 +- docs/framework/vue/devtools.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/framework/preact/devtools.md b/docs/framework/preact/devtools.md index 25b16da9e6d..43bdc493dac 100644 --- a/docs/framework/preact/devtools.md +++ b/docs/framework/preact/devtools.md @@ -78,7 +78,7 @@ function App() { - The position of the Preact Query devtools panel - `client?: QueryClient`, - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. -- `errorTypes?: { name: string; initializer: (query: Query) => TError}` +- `errorTypes?: { name: string; initializer: (query: Query) => TError}[]` - Use this to predefine some errors that can be triggered on your queries. Initializer will be called (with the specific query) when that error is toggled on from the UI. It must return an Error. - `styleNonce?: string` - Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index fe11b1bca84..e43c79a0786 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -78,7 +78,7 @@ function App() { - The position of the Solid Query devtools panel - `client?: QueryClient`, - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. -- `errorTypes?: { name: string; initializer: (query: Query) => TError}` +- `errorTypes?: { name: string; initializer: (query: Query) => TError}[]` - Use this to predefine some errors that can be triggered on your queries. Initializer will be called (with the specific query) when that error is toggled on from the UI. It must return an Error. - `styleNonce?: string` - Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. diff --git a/docs/framework/svelte/devtools.md b/docs/framework/svelte/devtools.md index efdb77e922d..179690c2a63 100644 --- a/docs/framework/svelte/devtools.md +++ b/docs/framework/svelte/devtools.md @@ -72,7 +72,7 @@ Place the following code as high in your Svelte app as you can. The closer it is - The position of the Svelte Query devtools panel - `client?: QueryClient`, - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. -- `errorTypes?: { name: string; initializer: (query: Query) => TError}` +- `errorTypes?: { name: string; initializer: (query: Query) => TError}[]` - Use this to predefine some errors that can be triggered on your queries. Initializer will be called (with the specific query) when that error is toggled on from the UI. It must return an Error. - `styleNonce?: string` - Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index 1dc8e678188..1392f2d2dc1 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -73,7 +73,7 @@ import { VueQueryDevtools } from '@tanstack/vue-query-devtools' - The position of the Vue Query devtools panel. - `client?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. -- `errorTypes?: { name: string; initializer: (query: Query) => TError}` +- `errorTypes?: { name: string; initializer: (query: Query) => TError}[]` - Use this to predefine some errors that can be triggered on your queries. The initializer will be called (with the specific query) when that error is toggled on from the UI. It must return an Error. - `styleNonce?: string` - Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. From 589227986ba27ef039226a8089d697758b04b88d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 5 May 2026 21:36:49 +0900 Subject: [PATCH 222/414] test(query-devtools/TanstackQueryDevtools): replace placeholder with 'mount' and 'unmount' lifecycle tests (#10639) --- .../__tests__/TanstackQueryDevtools.test.tsx | 59 +++++++++++++++++++ .../src/__tests__/devtools.test.tsx | 7 --- 2 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx delete mode 100644 packages/query-devtools/src/__tests__/devtools.test.tsx diff --git a/packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx b/packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx new file mode 100644 index 00000000000..01c8969f3ae --- /dev/null +++ b/packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx @@ -0,0 +1,59 @@ +import { beforeEach, describe, expect, it } from 'vitest' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import { TanstackQueryDevtools } from '..' + +describe('TanstackQueryDevtools', () => { + let devtools: TanstackQueryDevtools + + beforeEach(() => { + devtools = new TanstackQueryDevtools({ + client: new QueryClient(), + queryFlavor: 'TanStack Query', + version: '5', + onlineManager, + }) + }) + + describe('mount', () => { + it('should mount devtools to the provided element', () => { + const el = document.createElement('div') + + expect(() => devtools.mount(el)).not.toThrow() + + devtools.unmount() + }) + + it('should throw if mount is called twice without unmount', () => { + const el = document.createElement('div') + devtools.mount(el) + + expect(() => devtools.mount(el)).toThrow('Devtools is already mounted') + + devtools.unmount() + }) + }) + + describe('unmount', () => { + it('should unmount devtools and allow remounting', () => { + const el = document.createElement('div') + devtools.mount(el) + + expect(() => devtools.unmount()).not.toThrow() + expect(() => devtools.mount(el)).not.toThrow() + + devtools.unmount() + }) + + it('should throw if unmount is called before mount', () => { + expect(() => devtools.unmount()).toThrow('Devtools is not mounted') + }) + + it('should throw if unmount is called twice', () => { + const el = document.createElement('div') + devtools.mount(el) + devtools.unmount() + + expect(() => devtools.unmount()).toThrow('Devtools is not mounted') + }) + }) +}) diff --git a/packages/query-devtools/src/__tests__/devtools.test.tsx b/packages/query-devtools/src/__tests__/devtools.test.tsx deleted file mode 100644 index 0e44d74db67..00000000000 --- a/packages/query-devtools/src/__tests__/devtools.test.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { describe, expect, it } from 'vitest' - -describe('ReactQueryDevtools', () => { - it('should be able to open and close devtools', () => { - expect(1).toBe(1) - }) -}) From 0d8d64b9efec6c7f1b56a127a155fa4605b511e8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 5 May 2026 21:55:25 +0900 Subject: [PATCH 223/414] test(query-devtools/TanstackQueryDevtoolsPanel): add 'mount' and 'unmount' lifecycle tests (#10640) --- .../TanstackQueryDevtoolsPanel.test.tsx | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx diff --git a/packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx b/packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx new file mode 100644 index 00000000000..1993ef67798 --- /dev/null +++ b/packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx @@ -0,0 +1,59 @@ +import { beforeEach, describe, expect, it } from 'vitest' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import { TanstackQueryDevtoolsPanel } from '..' + +describe('TanstackQueryDevtoolsPanel', () => { + let devtools: TanstackQueryDevtoolsPanel + + beforeEach(() => { + devtools = new TanstackQueryDevtoolsPanel({ + client: new QueryClient(), + queryFlavor: 'TanStack Query', + version: '5', + onlineManager, + }) + }) + + describe('mount', () => { + it('should mount devtools to the provided element', () => { + const el = document.createElement('div') + + expect(() => devtools.mount(el)).not.toThrow() + + devtools.unmount() + }) + + it('should throw if mount is called twice without unmount', () => { + const el = document.createElement('div') + devtools.mount(el) + + expect(() => devtools.mount(el)).toThrow('Devtools is already mounted') + + devtools.unmount() + }) + }) + + describe('unmount', () => { + it('should unmount devtools and allow remounting', () => { + const el = document.createElement('div') + devtools.mount(el) + + expect(() => devtools.unmount()).not.toThrow() + expect(() => devtools.mount(el)).not.toThrow() + + devtools.unmount() + }) + + it('should throw if unmount is called before mount', () => { + expect(() => devtools.unmount()).toThrow('Devtools is not mounted') + }) + + it('should throw if unmount is called twice', () => { + const el = document.createElement('div') + devtools.mount(el) + devtools.unmount() + + expect(() => devtools.unmount()).toThrow('Devtools is not mounted') + }) + }) +}) From f4a365f6d2a86b351acfd92d09016bc4d7c0d719 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 6 May 2026 03:03:15 +0900 Subject: [PATCH 224/414] test(query-devtools/utils): add tests for 'getMutationStatusColor' and 'getQueryStatusColorByLabel' (#10645) * test(query-devtools/utils): add tests for 'getMutationStatusColor' and 'getQueryStatusColorByLabel' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/utils.test.ts | 73 ++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 60fbcf130ec..7f67f52e2f1 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -1,5 +1,11 @@ import { describe, expect, it } from 'vitest' -import { deleteNestedDataByPath, updateNestedDataByPath } from '../utils' +import { + deleteNestedDataByPath, + getMutationStatusColor, + getQueryStatusColorByLabel, + updateNestedDataByPath, +} from '../utils' +import type { MutationStatus } from '@tanstack/query-core' describe('Utils tests', () => { describe('updatedNestedDataByPath', () => { @@ -729,4 +735,69 @@ describe('Utils tests', () => { }) }) }) + + describe('getMutationStatusColor', () => { + const cases: Array<{ + label: string + status: MutationStatus + isPaused: boolean + expected: string + }> = [ + { + label: 'paused', + status: 'pending', + isPaused: true, + expected: 'purple', + }, + { + label: 'paused even when status is "error"', + status: 'error', + isPaused: true, + expected: 'purple', + }, + { label: '"error"', status: 'error', isPaused: false, expected: 'red' }, + { + label: '"pending"', + status: 'pending', + isPaused: false, + expected: 'yellow', + }, + { + label: '"success"', + status: 'success', + isPaused: false, + expected: 'green', + }, + { label: '"idle"', status: 'idle', isPaused: false, expected: 'gray' }, + ] + + it.each(cases)( + 'should return "$expected" when mutation is $label', + ({ status, isPaused, expected }) => { + expect(getMutationStatusColor({ status, isPaused })).toBe(expected) + }, + ) + }) + + describe('getQueryStatusColorByLabel', () => { + it('should return "green" for "fresh"', () => { + expect(getQueryStatusColorByLabel('fresh')).toBe('green') + }) + + it('should return "yellow" for "stale"', () => { + expect(getQueryStatusColorByLabel('stale')).toBe('yellow') + }) + + it('should return "purple" for "paused"', () => { + expect(getQueryStatusColorByLabel('paused')).toBe('purple') + }) + + it('should return "gray" for "inactive"', () => { + expect(getQueryStatusColorByLabel('inactive')).toBe('gray') + }) + + it('should return "blue" for "fetching"', () => { + expect(getQueryStatusColorByLabel('fetching')).toBe('blue') + }) + }) }) From 3c24bc865e5a058b44e7baea37f3a2dbaa5ed7e0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 6 May 2026 03:18:32 +0900 Subject: [PATCH 225/414] test(query-devtools/utils): add tests for 'displayValue' (#10646) --- .../src/__tests__/utils.test.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 7f67f52e2f1..019063e6986 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' import { deleteNestedDataByPath, + displayValue, getMutationStatusColor, getQueryStatusColorByLabel, updateNestedDataByPath, @@ -800,4 +801,30 @@ describe('Utils tests', () => { expect(getQueryStatusColorByLabel('fetching')).toBe('blue') }) }) + + describe('displayValue', () => { + it('should stringify a primitive value', () => { + expect(displayValue('hello')).toBe('"hello"') + }) + + it('should stringify a number', () => { + expect(displayValue(42)).toBe('42') + }) + + it('should serialize an object using superjson and discard meta', () => { + expect(displayValue({ a: 1, b: 'two' })).toBe('{"a":1,"b":"two"}') + }) + + it('should return "null" for "undefined" since only the json part is used', () => { + expect(displayValue(undefined)).toBe('null') + }) + + it('should return a single-line string by default', () => { + expect(displayValue({ a: 1 })).toBe('{"a":1}') + }) + + it('should return an indented multi-line string when "beautify" is true', () => { + expect(displayValue({ a: 1 }, true)).toBe('{\n "a": 1\n}') + }) + }) }) From 8a5d1897bf363b0186074d75e260ec5ef43f8156 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 6 May 2026 03:35:51 +0900 Subject: [PATCH 226/414] test(query-devtools/utils): add tests for 'getSidedProp' (#10647) --- .../src/__tests__/utils.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 019063e6986..1c30c5e9182 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -4,6 +4,7 @@ import { displayValue, getMutationStatusColor, getQueryStatusColorByLabel, + getSidedProp, updateNestedDataByPath, } from '../utils' import type { MutationStatus } from '@tanstack/query-core' @@ -827,4 +828,22 @@ describe('Utils tests', () => { expect(displayValue({ a: 1 }, true)).toBe('{\n "a": 1\n}') }) }) + + describe('getSidedProp', () => { + it('should append capitalized "top" to the prop', () => { + expect(getSidedProp('margin', 'top')).toBe('marginTop') + }) + + it('should append capitalized "bottom" to the prop', () => { + expect(getSidedProp('margin', 'bottom')).toBe('marginBottom') + }) + + it('should append capitalized "left" to the prop', () => { + expect(getSidedProp('padding', 'left')).toBe('paddingLeft') + }) + + it('should append capitalized "right" to the prop', () => { + expect(getSidedProp('padding', 'right')).toBe('paddingRight') + }) + }) }) From 24d0834f684967b98d97e1624462681ec882bb72 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 6 May 2026 10:33:06 +0900 Subject: [PATCH 227/414] test(query-devtools/utils): add tests for 'convertRemToPixels' (#10648) --- .../src/__tests__/utils.test.ts | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 1c30c5e9182..d6d0a97aafd 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -1,5 +1,6 @@ -import { describe, expect, it } from 'vitest' +import { afterEach, beforeEach, describe, expect, it } from 'vitest' import { + convertRemToPixels, deleteNestedDataByPath, displayValue, getMutationStatusColor, @@ -846,4 +847,44 @@ describe('Utils tests', () => { expect(getSidedProp('padding', 'right')).toBe('paddingRight') }) }) + + describe('convertRemToPixels', () => { + beforeEach(() => { + document.documentElement.style.fontSize = '16px' + }) + + afterEach(() => { + document.documentElement.style.fontSize = '' + }) + + it('should convert 1 rem to the document root font size in pixels', () => { + expect(convertRemToPixels(1)).toBe(16) + }) + + it('should return 0 for 0 rem', () => { + expect(convertRemToPixels(0)).toBe(0) + }) + + it('should multiply rem by the document root font size', () => { + expect(convertRemToPixels(2)).toBe(32) + }) + + it('should support decimal rem values', () => { + expect(convertRemToPixels(0.5)).toBe(8) + }) + + it('should reflect the current document root font size', () => { + document.documentElement.style.fontSize = '20px' + expect(convertRemToPixels(1)).toBe(20) + }) + + it('should support negative rem values', () => { + expect(convertRemToPixels(-1)).toBe(-16) + }) + + it('should support non-integer font sizes', () => { + document.documentElement.style.fontSize = '15.5px' + expect(convertRemToPixels(1)).toBe(15.5) + }) + }) }) From 150300f6cb836bbc6ad1fe9bfceb589d7dded743 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 6 May 2026 12:25:04 +0900 Subject: [PATCH 228/414] test(query-devtools/utils): add tests for 'setupStyleSheet' (#10649) --- .../src/__tests__/utils.test.ts | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index d6d0a97aafd..30178af5ad9 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -6,6 +6,7 @@ import { getMutationStatusColor, getQueryStatusColorByLabel, getSidedProp, + setupStyleSheet, updateNestedDataByPath, } from '../utils' import type { MutationStatus } from '@tanstack/query-core' @@ -887,4 +888,69 @@ describe('Utils tests', () => { expect(convertRemToPixels(1)).toBe(15.5) }) }) + + describe('setupStyleSheet', () => { + afterEach(() => { + document.head.querySelector('#_goober')?.remove() + }) + + it('should not insert any style tag when "nonce" is missing', () => { + setupStyleSheet() + + expect(document.head.querySelector('#_goober')).toBeNull() + }) + + it('should not insert any style tag when "nonce" is an empty string', () => { + setupStyleSheet('') + + expect(document.head.querySelector('#_goober')).toBeNull() + }) + + it('should append a style tag with id "_goober" to "document.head"', () => { + setupStyleSheet('test-nonce') + + const styleTag = document.head.querySelector('#_goober') + expect(styleTag).not.toBeNull() + expect(styleTag?.tagName).toBe('STYLE') + }) + + it('should set the "nonce" attribute on the inserted style tag', () => { + setupStyleSheet('test-nonce') + + expect( + document.head.querySelector('#_goober')?.getAttribute('nonce'), + ).toBe('test-nonce') + }) + + it('should not insert a duplicate style tag when "document.head" already has one', () => { + setupStyleSheet('first-nonce') + setupStyleSheet('second-nonce') + + const styleTags = document.head.querySelectorAll('#_goober') + expect(styleTags).toHaveLength(1) + expect(styleTags[0]?.getAttribute('nonce')).toBe('first-nonce') + }) + + it('should append the style tag to the provided "ShadowRoot" target', () => { + const host = document.createElement('div') + const shadow = host.attachShadow({ mode: 'open' }) + + setupStyleSheet('test-nonce', shadow) + + expect(shadow.querySelector('#_goober')).not.toBeNull() + expect(document.head.querySelector('#_goober')).toBeNull() + }) + + it('should not insert a duplicate style tag when the target already has one', () => { + const host = document.createElement('div') + const shadow = host.attachShadow({ mode: 'open' }) + + setupStyleSheet('first-nonce', shadow) + setupStyleSheet('second-nonce', shadow) + + const styleTags = shadow.querySelectorAll('#_goober') + expect(styleTags).toHaveLength(1) + expect(styleTags[0]?.getAttribute('nonce')).toBe('first-nonce') + }) + }) }) From 0db5b904237dcd8ec2080dda2e39645b6ddf1719 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 6 May 2026 16:21:24 +0900 Subject: [PATCH 229/414] test(query-devtools/utils): add tests for 'sortFns' (#10650) --- .../src/__tests__/utils.test.ts | 116 +++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 30178af5ad9..d11b957a0c8 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -1,4 +1,5 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest' +import { QueryClient, QueryObserver } from '@tanstack/query-core' import { convertRemToPixels, deleteNestedDataByPath, @@ -7,9 +8,10 @@ import { getQueryStatusColorByLabel, getSidedProp, setupStyleSheet, + sortFns, updateNestedDataByPath, } from '../utils' -import type { MutationStatus } from '@tanstack/query-core' +import type { MutationStatus, Query } from '@tanstack/query-core' describe('Utils tests', () => { describe('updatedNestedDataByPath', () => { @@ -953,4 +955,116 @@ describe('Utils tests', () => { expect(styleTags[0]?.getAttribute('nonce')).toBe('first-nonce') }) }) + + describe('sortFns', () => { + let queryClient: QueryClient + + function buildQuery( + queryKey: ReadonlyArray, + state?: Partial, + ): Query { + const query = queryClient.getQueryCache().build(queryClient, { queryKey }) + if (state) { + query.setState(state) + } + return query + } + + beforeEach(() => { + queryClient = new QueryClient() + }) + + afterEach(() => { + queryClient.clear() + }) + + describe("'last updated'", () => { + const dateSort = sortFns['last updated']! + + it('should place the more recently updated query first', () => { + const older = buildQuery(['a'], { dataUpdatedAt: 100 }) + const newer = buildQuery(['b'], { dataUpdatedAt: 200 }) + + expect(dateSort(older, newer)).toBe(1) + expect(dateSort(newer, older)).toBe(-1) + }) + }) + + describe("'query hash'", () => { + const queryHashSort = sortFns['query hash']! + + it('should sort queries by query hash alphabetically', () => { + const a = buildQuery(['a']) + const b = buildQuery(['b']) + + expect(queryHashSort(a, b)).toBeLessThan(0) + expect(queryHashSort(b, a)).toBeGreaterThan(0) + }) + + it('should return 0 when query hashes are identical', () => { + const a = buildQuery(['same']) + const b = buildQuery(['same']) + + expect(queryHashSort(a, b)).toBe(0) + }) + }) + + describe("'status'", () => { + const statusSort = sortFns['status']! + + function addObserver(query: Query) { + const observer = new QueryObserver(queryClient, { + queryKey: query.queryKey, + enabled: false, + }) + return observer.subscribe(() => {}) + } + + it('should place a fetching query before an idle one', () => { + const fetching = buildQuery(['fetching'], { + fetchStatus: 'fetching', + dataUpdatedAt: 100, + }) + const idle = buildQuery(['idle'], { + fetchStatus: 'idle', + dataUpdatedAt: 100, + }) + const unsubscribe = addObserver(idle) + + try { + expect(statusSort(fetching, idle)).toBe(-1) + expect(statusSort(idle, fetching)).toBe(1) + } finally { + unsubscribe() + } + }) + + it('should place an inactive (no observers) query last', () => { + const active = buildQuery(['active'], { + fetchStatus: 'idle', + dataUpdatedAt: 100, + }) + const inactive = buildQuery(['inactive'], { + fetchStatus: 'idle', + dataUpdatedAt: 100, + }) + const unsubscribe = addObserver(active) + + try { + expect(statusSort(active, inactive)).toBe(-1) + expect(statusSort(inactive, active)).toBe(1) + } finally { + unsubscribe() + } + }) + + it('should fall back to "last updated" sort within the same status rank', () => { + const older = buildQuery(['older'], { dataUpdatedAt: 100 }) + const newer = buildQuery(['newer'], { dataUpdatedAt: 200 }) + + expect(statusSort(older, newer)).toBe(1) + expect(statusSort(newer, older)).toBe(-1) + }) + }) + }) }) From 9d1ce70b39d91271356432147d16f5441f9fa892 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 6 May 2026 21:35:44 +0900 Subject: [PATCH 230/414] test(query-devtools/utils): add tests for 'mutationSortFns' (#10651) --- .../src/__tests__/utils.test.ts | 113 +++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index d11b957a0c8..de95407155f 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -7,11 +7,12 @@ import { getMutationStatusColor, getQueryStatusColorByLabel, getSidedProp, + mutationSortFns, setupStyleSheet, sortFns, updateNestedDataByPath, } from '../utils' -import type { MutationStatus, Query } from '@tanstack/query-core' +import type { Mutation, MutationStatus, Query } from '@tanstack/query-core' describe('Utils tests', () => { describe('updatedNestedDataByPath', () => { @@ -1067,4 +1068,114 @@ describe('Utils tests', () => { }) }) }) + + describe('mutationSortFns', () => { + let queryClient: QueryClient + + const defaultMutationState: Mutation['state'] = { + context: undefined, + data: undefined, + error: null, + failureCount: 0, + failureReason: null, + isPaused: false, + status: 'idle', + variables: undefined, + submittedAt: 0, + } + + function buildMutation(overrides: Partial): Mutation { + return queryClient + .getMutationCache() + .build(queryClient, {}, { ...defaultMutationState, ...overrides }) + } + + beforeEach(() => { + queryClient = new QueryClient() + }) + + afterEach(() => { + queryClient.clear() + }) + + describe("'last updated'", () => { + const mutationDateSort = mutationSortFns['last updated']! + + it('should place the more recently submitted mutation first', () => { + const older = buildMutation({ submittedAt: 100 }) + const newer = buildMutation({ submittedAt: 200 }) + + expect(mutationDateSort(older, newer)).toBe(1) + expect(mutationDateSort(newer, older)).toBe(-1) + }) + }) + + describe("'status'", () => { + const mutationStatusSort = mutationSortFns['status']! + + it('should place a paused mutation first', () => { + const paused = buildMutation({ + isPaused: true, + status: 'pending', + submittedAt: 100, + }) + const pending = buildMutation({ + isPaused: false, + status: 'pending', + submittedAt: 100, + }) + + expect(mutationStatusSort(paused, pending)).toBe(-1) + expect(mutationStatusSort(pending, paused)).toBe(1) + }) + + it('should place a pending mutation before a successful one', () => { + const pending = buildMutation({ + isPaused: false, + status: 'pending', + submittedAt: 100, + }) + const success = buildMutation({ + isPaused: false, + status: 'success', + submittedAt: 100, + }) + + expect(mutationStatusSort(pending, success)).toBe(-1) + expect(mutationStatusSort(success, pending)).toBe(1) + }) + + it('should place an errored mutation before a successful one', () => { + const error = buildMutation({ + isPaused: false, + status: 'error', + submittedAt: 100, + }) + const success = buildMutation({ + isPaused: false, + status: 'success', + submittedAt: 100, + }) + + expect(mutationStatusSort(error, success)).toBe(-1) + expect(mutationStatusSort(success, error)).toBe(1) + }) + + it('should fall back to "last updated" sort within the same status rank', () => { + const older = buildMutation({ + isPaused: false, + status: 'success', + submittedAt: 100, + }) + const newer = buildMutation({ + isPaused: false, + status: 'success', + submittedAt: 200, + }) + + expect(mutationStatusSort(older, newer)).toBe(1) + expect(mutationStatusSort(newer, older)).toBe(-1) + }) + }) + }) }) From 3d1ee9d18080a5dc083b06eebb48cfc888ab3822 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 8 May 2026 09:52:27 +0900 Subject: [PATCH 231/414] test(query-devtools/utils): add tests for 'getPreferredColorScheme' (#10654) --- .../src/__tests__/utils.test.ts | 116 +++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index de95407155f..c620a9e05b3 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -1,10 +1,12 @@ -import { afterEach, beforeEach, describe, expect, it } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryClient, QueryObserver } from '@tanstack/query-core' +import { createRoot } from 'solid-js' import { convertRemToPixels, deleteNestedDataByPath, displayValue, getMutationStatusColor, + getPreferredColorScheme, getQueryStatusColorByLabel, getSidedProp, mutationSortFns, @@ -1178,4 +1180,116 @@ describe('Utils tests', () => { }) }) }) + + describe('getPreferredColorScheme', () => { + type MatchMediaListener = (event: MediaQueryListEvent) => void + + function setupMatchMediaMock(initialMatches: boolean) { + const listeners = new Set() + const matchMedia: typeof window.matchMedia = vi.fn( + (query: string): MediaQueryList => ({ + matches: initialMatches, + media: query, + onchange: null, + addEventListener: vi.fn( + (_event: string, listener: MatchMediaListener) => { + listeners.add(listener) + }, + ) as MediaQueryList['addEventListener'], + removeEventListener: vi.fn( + (_event: string, listener: MatchMediaListener) => { + listeners.delete(listener) + }, + ) as MediaQueryList['removeEventListener'], + dispatchEvent: vi.fn(() => true), + addListener: vi.fn(), + removeListener: vi.fn(), + }), + ) + vi.stubGlobal('matchMedia', matchMedia) + return { + matchMedia, + emit(matches: boolean) { + listeners.forEach((listener) => + listener({ matches } as MediaQueryListEvent), + ) + }, + listenerCount: () => listeners.size, + } + } + + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.unstubAllGlobals() + vi.useRealTimers() + }) + + it('should return "dark" before "onMount" runs', () => { + setupMatchMediaMock(false) + + createRoot((dispose) => { + const colorScheme = getPreferredColorScheme() + expect(colorScheme()).toBe('dark') + dispose() + }) + }) + + it('should reflect "matchMedia.matches" after "onMount" runs', async () => { + const { matchMedia, listenerCount } = setupMatchMediaMock(true) + + await createRoot(async (dispose) => { + const colorScheme = getPreferredColorScheme() + await vi.advanceTimersByTimeAsync(0) + expect(matchMedia).toHaveBeenCalledWith('(prefers-color-scheme: dark)') + expect(listenerCount()).toBe(1) + expect(colorScheme()).toBe('dark') + dispose() + }) + }) + + it('should reflect "light" when "matchMedia.matches" is false after "onMount" runs', async () => { + setupMatchMediaMock(false) + + await createRoot(async (dispose) => { + const colorScheme = getPreferredColorScheme() + await vi.advanceTimersByTimeAsync(0) + expect(colorScheme()).toBe('light') + dispose() + }) + }) + + it('should update the signal when the "change" event fires', async () => { + const { emit } = setupMatchMediaMock(false) + + await createRoot(async (dispose) => { + const colorScheme = getPreferredColorScheme() + await vi.advanceTimersByTimeAsync(0) + expect(colorScheme()).toBe('light') + + emit(true) + expect(colorScheme()).toBe('dark') + + emit(false) + expect(colorScheme()).toBe('light') + + dispose() + }) + }) + + it('should remove the "change" listener on cleanup', async () => { + const { listenerCount } = setupMatchMediaMock(false) + + await createRoot(async (dispose) => { + getPreferredColorScheme() + await vi.advanceTimersByTimeAsync(0) + expect(listenerCount()).toBe(1) + + dispose() + expect(listenerCount()).toBe(0) + }) + }) + }) }) From 4082894509f31376ebeb8514cc3e167bbbfc7c46 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Fri, 8 May 2026 18:48:50 +0530 Subject: [PATCH 232/414] feat: lit query adapter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat lit-query: add initial lit-query package * remove internal docs from initial PR * fix review issues * align scripts with monorepo Nx targets and use workspace:* for query-core * feat(lit-query): fix type inference and monorepo integration - Fix createQueriesController tuple type inference with recursive types - Add DataTag support to queryOptions - Fix build config and vitest custom-condition resolution - Fix example install scripts for standalone bootstrap * fix(lit-query): polish package validation and examples * ci: apply automated fixes * lit-query: preserve provider handshake ordering in BaseController * Update .changeset/lemon-memes-divide.md Co-authored-by: Dominik Dorfmeister 🔮 * removing prettier config from adapter, so that global config from the monorepo is used * removed the package local format scripts so formatting stays centralized at the monorepo root * removing like other adapters keep build and test:build as separate targets * Compared against the other adapters and removed the lit-query-only aliases/gates, keeping the standard Nx target names so root CI can pick them up consistently * package:check has been removed. The CJS smoke check is still needed because lit-query publishes custom CJS output/types * fix(lit-query): align lit examples and integration with monorepo conventions * chore(lit-query): clean up stale package checks * fix(lit-query): address review feedback for lit examples and lifecycle tests * chore: fix lockfile * fix: add customCondition * docs(lit-query): add Lit docs and generated reference * docs(lit-query): fix Lit docs review comment and align examples --------- Co-authored-by: gauravchugh Co-authored-by: Dominik Dorfmeister 🔮 Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/lemon-memes-divide.md | 5 + .gitignore | 1 + docs/config.json | 156 ++ docs/framework/lit/guides/infinite-queries.md | 87 ++ docs/framework/lit/guides/mutations.md | 166 +++ docs/framework/lit/guides/parallel-queries.md | 134 ++ docs/framework/lit/guides/queries.md | 141 ++ docs/framework/lit/guides/query-functions.md | 81 + .../lit/guides/query-invalidation.md | 83 ++ docs/framework/lit/guides/query-keys.md | 85 ++ .../guides/reactive-controllers-vs-hooks.md | 111 ++ docs/framework/lit/guides/ssr.md | 145 ++ docs/framework/lit/installation.md | 109 ++ docs/framework/lit/overview.md | 93 ++ docs/framework/lit/quick-start.md | 83 ++ .../reference/classes/QueryClientProvider.md | 98 ++ .../createInfiniteQueryController.md | 104 ++ .../functions/createMutationController.md | 96 ++ .../functions/createQueriesController.md | 90 ++ .../functions/createQueryController.md | 97 ++ .../functions/getDefaultQueryClient.md | 22 + .../functions/infiniteQueryOptions.md | 63 + .../reference/functions/mutationOptions.md | 57 + .../lit/reference/functions/queryOptions.md | 147 ++ .../functions/registerDefaultQueryClient.md | 30 + .../reference/functions/resolveQueryClient.md | 29 + .../functions/unregisterDefaultQueryClient.md | 29 + .../lit/reference/functions/useIsFetching.md | 67 + .../lit/reference/functions/useIsMutating.md | 67 + .../reference/functions/useMutationState.md | 75 + .../lit/reference/functions/useQueryClient.md | 25 + docs/framework/lit/reference/index.md | 59 + .../lit/reference/type-aliases/Accessor.md | 30 + .../CreateInfiniteQueryOptions.md | 39 + .../type-aliases/CreateMutationOptions.md | 35 + .../CreateQueriesControllerOptions.md | 64 + .../type-aliases/CreateQueriesInput.md | 35 + .../type-aliases/CreateQueryOptions.md | 40 + .../type-aliases/DefinedInitialDataOptions.md | 48 + .../InfiniteQueryControllerOptions.md | 36 + .../InfiniteQueryResultAccessor.md | 66 + .../type-aliases/IsFetchingAccessor.md | 29 + .../type-aliases/IsMutatingAccessor.md | 29 + .../type-aliases/MutationControllerOptions.md | 32 + .../type-aliases/MutationControllerResult.md | 32 + .../type-aliases/MutationResultAccessor.md | 91 ++ .../type-aliases/MutationStateAccessor.md | 37 + .../type-aliases/MutationStateOptions.md | 54 + .../type-aliases/QueriesControllerOptions.md | 24 + .../type-aliases/QueriesResultAccessor.md | 37 + .../type-aliases/QueryControllerOptions.md | 36 + .../type-aliases/QueryControllerResult.md | 24 + .../type-aliases/QueryResultAccessor.md | 61 + .../UndefinedInitialDataOptions.md | 42 + .../type-aliases/UnusedSkipTokenOptions.md | 40 + .../reference/type-aliases/ValueAccessor.md | 39 + .../reference/variables/queryClientContext.md | 18 + docs/framework/lit/typescript.md | 132 ++ examples/lit/basic/README.md | 5 + examples/lit/basic/basic-query.html | 12 + examples/lit/basic/config/port.d.ts | 1 + examples/lit/basic/config/port.js | 22 + examples/lit/basic/index.html | 12 + examples/lit/basic/lifecycle-contract.html | 12 + examples/lit/basic/mutation.html | 12 + examples/lit/basic/package.json | 20 + examples/lit/basic/src/basic-query.ts | 90 ++ examples/lit/basic/src/lifecycle-contract.ts | 223 +++ examples/lit/basic/src/main.ts | 274 ++++ examples/lit/basic/src/mutation.ts | 139 ++ examples/lit/basic/src/todoApi.ts | 77 + examples/lit/basic/tsconfig.json | 14 + examples/lit/basic/vite.config.ts | 15 + examples/lit/pagination/README.md | 5 + examples/lit/pagination/config/ports.d.ts | 2 + examples/lit/pagination/config/ports.js | 26 + examples/lit/pagination/index.html | 12 + examples/lit/pagination/package.json | 20 + examples/lit/pagination/scripts/dev.mjs | 80 + examples/lit/pagination/server/index.mjs | 340 +++++ examples/lit/pagination/src/api.ts | 166 +++ examples/lit/pagination/src/main.ts | 585 ++++++++ examples/lit/pagination/src/vite-env.d.ts | 9 + examples/lit/pagination/tsconfig.json | 14 + examples/lit/pagination/vite.config.ts | 15 + examples/lit/ssr/README.md | 5 + examples/lit/ssr/config/ports.d.ts | 5 + examples/lit/ssr/config/ports.js | 63 + examples/lit/ssr/index.html | 15 + examples/lit/ssr/package.json | 22 + examples/lit/ssr/scripts/dev.mjs | 51 + examples/lit/ssr/server/index.mjs | 308 ++++ examples/lit/ssr/src/api.ts | 69 + examples/lit/ssr/src/app.ts | 167 +++ examples/lit/ssr/src/main.ts | 63 + examples/lit/ssr/tsconfig.json | 14 + examples/lit/ssr/vite.config.ts | 18 + integrations/lit-vite/index.html | 13 + integrations/lit-vite/package.json | 17 + integrations/lit-vite/src/main.ts | 56 + integrations/lit-vite/tsconfig.json | 14 + integrations/lit-vite/vite.config.ts | 3 + knip.json | 3 + labeler-config.yml | 3 + packages/lit-query/.editorconfig | 9 + packages/lit-query/.npmignore | 2 + packages/lit-query/.prettierignore | 10 + packages/lit-query/README.md | 127 ++ packages/lit-query/eslint.config.js | 52 + packages/lit-query/package.json | 64 + .../scripts/check-cjs-types-smoke.mjs | 137 ++ packages/lit-query/scripts/l3-stress.mjs | 124 ++ packages/lit-query/scripts/measure-bundle.mjs | 43 + .../lit-query/scripts/write-cjs-package.mjs | 73 + packages/lit-query/src/QueryClientProvider.ts | 174 +++ packages/lit-query/src/accessor.ts | 43 + packages/lit-query/src/context.ts | 120 ++ .../src/controllers/BaseController.ts | 284 ++++ .../src/createInfiniteQueryController.ts | 394 +++++ .../lit-query/src/createMutationController.ts | 361 +++++ .../lit-query/src/createQueriesController.ts | 633 ++++++++ .../lit-query/src/createQueryController.ts | 342 +++++ packages/lit-query/src/index.ts | 72 + .../lit-query/src/infiniteQueryOptions.ts | 48 + packages/lit-query/src/mutationOptions.ts | 31 + packages/lit-query/src/queryOptions.ts | 143 ++ .../src/tests/base-controller.test.ts | 111 ++ .../tests/client-switch-controllers.test.ts | 482 ++++++ .../src/tests/context-provider.test.ts | 213 +++ .../src/tests/counters-and-state.test.ts | 648 ++++++++ .../src/tests/infinite-and-options.test.ts | 423 ++++++ .../src/tests/mutation-controller.test.ts | 472 ++++++ .../src/tests/queries-controller.test.ts | 705 +++++++++ .../src/tests/query-controller.test.ts | 1326 +++++++++++++++++ packages/lit-query/src/tests/testHost.ts | 117 ++ .../src/tests/type-inference.test.ts | 210 +++ packages/lit-query/src/types.ts | 77 + packages/lit-query/src/useIsFetching.ts | 159 ++ packages/lit-query/src/useIsMutating.ts | 159 ++ packages/lit-query/src/useMutationState.ts | 201 +++ packages/lit-query/tsconfig.build.cjs.json | 12 + packages/lit-query/tsconfig.build.json | 15 + packages/lit-query/tsconfig.json | 24 + packages/lit-query/vitest.config.ts | 26 + pnpm-lock.yaml | 1126 ++++++++++---- pnpm-workspace.yaml | 1 + scripts/generate-docs.ts | 216 ++- 147 files changed, 16593 insertions(+), 312 deletions(-) create mode 100644 .changeset/lemon-memes-divide.md create mode 100644 docs/framework/lit/guides/infinite-queries.md create mode 100644 docs/framework/lit/guides/mutations.md create mode 100644 docs/framework/lit/guides/parallel-queries.md create mode 100644 docs/framework/lit/guides/queries.md create mode 100644 docs/framework/lit/guides/query-functions.md create mode 100644 docs/framework/lit/guides/query-invalidation.md create mode 100644 docs/framework/lit/guides/query-keys.md create mode 100644 docs/framework/lit/guides/reactive-controllers-vs-hooks.md create mode 100644 docs/framework/lit/guides/ssr.md create mode 100644 docs/framework/lit/installation.md create mode 100644 docs/framework/lit/overview.md create mode 100644 docs/framework/lit/quick-start.md create mode 100644 docs/framework/lit/reference/classes/QueryClientProvider.md create mode 100644 docs/framework/lit/reference/functions/createInfiniteQueryController.md create mode 100644 docs/framework/lit/reference/functions/createMutationController.md create mode 100644 docs/framework/lit/reference/functions/createQueriesController.md create mode 100644 docs/framework/lit/reference/functions/createQueryController.md create mode 100644 docs/framework/lit/reference/functions/getDefaultQueryClient.md create mode 100644 docs/framework/lit/reference/functions/infiniteQueryOptions.md create mode 100644 docs/framework/lit/reference/functions/mutationOptions.md create mode 100644 docs/framework/lit/reference/functions/queryOptions.md create mode 100644 docs/framework/lit/reference/functions/registerDefaultQueryClient.md create mode 100644 docs/framework/lit/reference/functions/resolveQueryClient.md create mode 100644 docs/framework/lit/reference/functions/unregisterDefaultQueryClient.md create mode 100644 docs/framework/lit/reference/functions/useIsFetching.md create mode 100644 docs/framework/lit/reference/functions/useIsMutating.md create mode 100644 docs/framework/lit/reference/functions/useMutationState.md create mode 100644 docs/framework/lit/reference/functions/useQueryClient.md create mode 100644 docs/framework/lit/reference/index.md create mode 100644 docs/framework/lit/reference/type-aliases/Accessor.md create mode 100644 docs/framework/lit/reference/type-aliases/CreateInfiniteQueryOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/CreateMutationOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/CreateQueriesControllerOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/CreateQueriesInput.md create mode 100644 docs/framework/lit/reference/type-aliases/CreateQueryOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/DefinedInitialDataOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/InfiniteQueryControllerOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/InfiniteQueryResultAccessor.md create mode 100644 docs/framework/lit/reference/type-aliases/IsFetchingAccessor.md create mode 100644 docs/framework/lit/reference/type-aliases/IsMutatingAccessor.md create mode 100644 docs/framework/lit/reference/type-aliases/MutationControllerOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/MutationControllerResult.md create mode 100644 docs/framework/lit/reference/type-aliases/MutationResultAccessor.md create mode 100644 docs/framework/lit/reference/type-aliases/MutationStateAccessor.md create mode 100644 docs/framework/lit/reference/type-aliases/MutationStateOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/QueriesControllerOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/QueriesResultAccessor.md create mode 100644 docs/framework/lit/reference/type-aliases/QueryControllerOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/QueryControllerResult.md create mode 100644 docs/framework/lit/reference/type-aliases/QueryResultAccessor.md create mode 100644 docs/framework/lit/reference/type-aliases/UndefinedInitialDataOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/UnusedSkipTokenOptions.md create mode 100644 docs/framework/lit/reference/type-aliases/ValueAccessor.md create mode 100644 docs/framework/lit/reference/variables/queryClientContext.md create mode 100644 docs/framework/lit/typescript.md create mode 100644 examples/lit/basic/README.md create mode 100644 examples/lit/basic/basic-query.html create mode 100644 examples/lit/basic/config/port.d.ts create mode 100644 examples/lit/basic/config/port.js create mode 100644 examples/lit/basic/index.html create mode 100644 examples/lit/basic/lifecycle-contract.html create mode 100644 examples/lit/basic/mutation.html create mode 100644 examples/lit/basic/package.json create mode 100644 examples/lit/basic/src/basic-query.ts create mode 100644 examples/lit/basic/src/lifecycle-contract.ts create mode 100644 examples/lit/basic/src/main.ts create mode 100644 examples/lit/basic/src/mutation.ts create mode 100644 examples/lit/basic/src/todoApi.ts create mode 100644 examples/lit/basic/tsconfig.json create mode 100644 examples/lit/basic/vite.config.ts create mode 100644 examples/lit/pagination/README.md create mode 100644 examples/lit/pagination/config/ports.d.ts create mode 100644 examples/lit/pagination/config/ports.js create mode 100644 examples/lit/pagination/index.html create mode 100644 examples/lit/pagination/package.json create mode 100644 examples/lit/pagination/scripts/dev.mjs create mode 100644 examples/lit/pagination/server/index.mjs create mode 100644 examples/lit/pagination/src/api.ts create mode 100644 examples/lit/pagination/src/main.ts create mode 100644 examples/lit/pagination/src/vite-env.d.ts create mode 100644 examples/lit/pagination/tsconfig.json create mode 100644 examples/lit/pagination/vite.config.ts create mode 100644 examples/lit/ssr/README.md create mode 100644 examples/lit/ssr/config/ports.d.ts create mode 100644 examples/lit/ssr/config/ports.js create mode 100644 examples/lit/ssr/index.html create mode 100644 examples/lit/ssr/package.json create mode 100644 examples/lit/ssr/scripts/dev.mjs create mode 100644 examples/lit/ssr/server/index.mjs create mode 100644 examples/lit/ssr/src/api.ts create mode 100644 examples/lit/ssr/src/app.ts create mode 100644 examples/lit/ssr/src/main.ts create mode 100644 examples/lit/ssr/tsconfig.json create mode 100644 examples/lit/ssr/vite.config.ts create mode 100644 integrations/lit-vite/index.html create mode 100644 integrations/lit-vite/package.json create mode 100644 integrations/lit-vite/src/main.ts create mode 100644 integrations/lit-vite/tsconfig.json create mode 100644 integrations/lit-vite/vite.config.ts create mode 100644 packages/lit-query/.editorconfig create mode 100644 packages/lit-query/.npmignore create mode 100644 packages/lit-query/.prettierignore create mode 100644 packages/lit-query/README.md create mode 100644 packages/lit-query/eslint.config.js create mode 100644 packages/lit-query/package.json create mode 100644 packages/lit-query/scripts/check-cjs-types-smoke.mjs create mode 100644 packages/lit-query/scripts/l3-stress.mjs create mode 100644 packages/lit-query/scripts/measure-bundle.mjs create mode 100644 packages/lit-query/scripts/write-cjs-package.mjs create mode 100644 packages/lit-query/src/QueryClientProvider.ts create mode 100644 packages/lit-query/src/accessor.ts create mode 100644 packages/lit-query/src/context.ts create mode 100644 packages/lit-query/src/controllers/BaseController.ts create mode 100644 packages/lit-query/src/createInfiniteQueryController.ts create mode 100644 packages/lit-query/src/createMutationController.ts create mode 100644 packages/lit-query/src/createQueriesController.ts create mode 100644 packages/lit-query/src/createQueryController.ts create mode 100644 packages/lit-query/src/index.ts create mode 100644 packages/lit-query/src/infiniteQueryOptions.ts create mode 100644 packages/lit-query/src/mutationOptions.ts create mode 100644 packages/lit-query/src/queryOptions.ts create mode 100644 packages/lit-query/src/tests/base-controller.test.ts create mode 100644 packages/lit-query/src/tests/client-switch-controllers.test.ts create mode 100644 packages/lit-query/src/tests/context-provider.test.ts create mode 100644 packages/lit-query/src/tests/counters-and-state.test.ts create mode 100644 packages/lit-query/src/tests/infinite-and-options.test.ts create mode 100644 packages/lit-query/src/tests/mutation-controller.test.ts create mode 100644 packages/lit-query/src/tests/queries-controller.test.ts create mode 100644 packages/lit-query/src/tests/query-controller.test.ts create mode 100644 packages/lit-query/src/tests/testHost.ts create mode 100644 packages/lit-query/src/tests/type-inference.test.ts create mode 100644 packages/lit-query/src/types.ts create mode 100644 packages/lit-query/src/useIsFetching.ts create mode 100644 packages/lit-query/src/useIsMutating.ts create mode 100644 packages/lit-query/src/useMutationState.ts create mode 100644 packages/lit-query/tsconfig.build.cjs.json create mode 100644 packages/lit-query/tsconfig.build.json create mode 100644 packages/lit-query/tsconfig.json create mode 100644 packages/lit-query/vitest.config.ts diff --git a/.changeset/lemon-memes-divide.md b/.changeset/lemon-memes-divide.md new file mode 100644 index 00000000000..c1f3e131b70 --- /dev/null +++ b/.changeset/lemon-memes-divide.md @@ -0,0 +1,5 @@ +--- +'@tanstack/lit-query': minor +--- + +Add initial @tanstack/lit-query package diff --git a/.gitignore b/.gitignore index 6e71fdf278c..638a5ac304f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ yarn.lock build coverage dist +dist-cjs dist-ts # misc diff --git a/docs/config.json b/docs/config.json index 13d211f7520..2b1561d691a 100644 --- a/docs/config.json +++ b/docs/config.json @@ -135,6 +135,27 @@ } ] }, + { + "label": "lit", + "children": [ + { + "label": "Overview", + "to": "framework/lit/overview" + }, + { + "label": "Installation", + "to": "framework/lit/installation" + }, + { + "label": "Quick Start", + "to": "framework/lit/quick-start" + }, + { + "label": "TypeScript", + "to": "framework/lit/typescript" + } + ] + }, { "label": "angular", "children": [ @@ -759,6 +780,47 @@ } ] }, + { + "label": "lit", + "children": [ + { + "label": "Reactive Controllers vs Hooks", + "to": "framework/lit/guides/reactive-controllers-vs-hooks" + }, + { + "label": "Queries", + "to": "framework/lit/guides/queries" + }, + { + "label": "Parallel Queries", + "to": "framework/lit/guides/parallel-queries" + }, + { + "label": "Query Keys", + "to": "framework/lit/guides/query-keys" + }, + { + "label": "Query Functions", + "to": "framework/lit/guides/query-functions" + }, + { + "label": "Mutations", + "to": "framework/lit/guides/mutations" + }, + { + "label": "Query Invalidation", + "to": "framework/lit/guides/query-invalidation" + }, + { + "label": "Infinite Queries", + "to": "framework/lit/guides/infinite-queries" + }, + { + "label": "SSR", + "to": "framework/lit/guides/ssr" + } + ] + }, { "label": "preact", "children": [ @@ -1183,6 +1245,83 @@ } ] }, + { + "label": "lit", + "children": [ + { + "label": "Lit Reference", + "to": "framework/lit/reference/index" + }, + { + "label": "QueryClientProvider", + "to": "framework/lit/reference/classes/QueryClientProvider" + }, + { + "label": "Functions / createQueryController", + "to": "framework/lit/reference/functions/createQueryController" + }, + { + "label": "Functions / createQueriesController", + "to": "framework/lit/reference/functions/createQueriesController" + }, + { + "label": "Functions / createInfiniteQueryController", + "to": "framework/lit/reference/functions/createInfiniteQueryController" + }, + { + "label": "Functions / createMutationController", + "to": "framework/lit/reference/functions/createMutationController" + }, + { + "label": "Functions / useIsFetching", + "to": "framework/lit/reference/functions/useIsFetching" + }, + { + "label": "Functions / useIsMutating", + "to": "framework/lit/reference/functions/useIsMutating" + }, + { + "label": "Functions / useMutationState", + "to": "framework/lit/reference/functions/useMutationState" + }, + { + "label": "Functions / useQueryClient", + "to": "framework/lit/reference/functions/useQueryClient" + }, + { + "label": "Functions / queryOptions", + "to": "framework/lit/reference/functions/queryOptions" + }, + { + "label": "Functions / infiniteQueryOptions", + "to": "framework/lit/reference/functions/infiniteQueryOptions" + }, + { + "label": "Functions / mutationOptions", + "to": "framework/lit/reference/functions/mutationOptions" + }, + { + "label": "Context / queryClientContext", + "to": "framework/lit/reference/variables/queryClientContext" + }, + { + "label": "Context / getDefaultQueryClient", + "to": "framework/lit/reference/functions/getDefaultQueryClient" + }, + { + "label": "Context / registerDefaultQueryClient", + "to": "framework/lit/reference/functions/registerDefaultQueryClient" + }, + { + "label": "Context / unregisterDefaultQueryClient", + "to": "framework/lit/reference/functions/unregisterDefaultQueryClient" + }, + { + "label": "Context / resolveQueryClient", + "to": "framework/lit/reference/functions/resolveQueryClient" + } + ] + }, { "label": "angular", "children": [ @@ -1532,6 +1671,23 @@ } ] }, + { + "label": "lit", + "children": [ + { + "label": "Basic", + "to": "framework/lit/examples/basic" + }, + { + "label": "Pagination", + "to": "framework/lit/examples/pagination" + }, + { + "label": "SSR", + "to": "framework/lit/examples/ssr" + } + ] + }, { "label": "angular", "children": [ diff --git a/docs/framework/lit/guides/infinite-queries.md b/docs/framework/lit/guides/infinite-queries.md new file mode 100644 index 00000000000..ab70c03178b --- /dev/null +++ b/docs/framework/lit/guides/infinite-queries.md @@ -0,0 +1,87 @@ +--- +id: infinite-queries +title: Infinite Queries +--- + +Infinite queries are for lists that load more data into one cache entry. Use [`createInfiniteQueryController`](../reference/functions/createInfiniteQueryController.md). + +An infinite query result contains: + +- `data.pages`: fetched pages +- `data.pageParams`: page parameters used for those pages +- `fetchNextPage` and `fetchPreviousPage` +- `hasNextPage` and `hasPreviousPage` +- `isFetchingNextPage` and `isFetchingPreviousPage` + +## Load More Example + +```ts +import { LitElement, html } from 'lit' +import { createInfiniteQueryController } from '@tanstack/lit-query' + +class ProjectsList extends LitElement { + private readonly projects = createInfiniteQueryController(this, { + queryKey: ['projects'], + queryFn: ({ pageParam }) => fetchProjectsPage(pageParam), + initialPageParam: 1, + getNextPageParam: (lastPage) => + lastPage.hasMore ? lastPage.page + 1 : undefined, + }) + + render() { + const query = this.projects() + + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error: ${query.error.message}` + + return html` + ${query.data.pages.map( + (page) => html` + ${page.projects.map((project) => html`

${project.name}

`)} + `, + )} + + + ` + } +} +``` + +## Page Parameters + +`initialPageParam` is required. `getNextPageParam` decides whether another page exists and what value should be passed as `pageParam` to the next query function call. + +```ts +createInfiniteQueryController(this, { + queryKey: ['projects'], + queryFn: ({ pageParam }) => fetchProjectsPage(pageParam), + initialPageParam: 1, + getNextPageParam: (lastPage) => + lastPage.hasMore ? lastPage.page + 1 : undefined, +}) +``` + +Returning `undefined` or `null` means there is no next page. + +## Avoid Overlapping Fetches + +There is one ongoing fetch for an infinite query cache entry. If you call `fetchNextPage` while a background refetch is running, you can overwrite data. Disable the button or check `!query.isFetching` before loading more: + +```ts +if (query.hasNextPage && !query.isFetching) { + this.projects.fetchNextPage() +} +``` + +## Paginated Alternative + +If your UI shows one page at a time, a normal query with a page in the key can be a better fit. The [Pagination example](../examples/pagination) uses `createQueryController`, `placeholderData: keepPreviousData`, prefetching, and mutations to demonstrate that pattern. diff --git a/docs/framework/lit/guides/mutations.md b/docs/framework/lit/guides/mutations.md new file mode 100644 index 00000000000..8e5c3fdfa42 --- /dev/null +++ b/docs/framework/lit/guides/mutations.md @@ -0,0 +1,166 @@ +--- +id: mutations +title: Mutations +--- + +Unlike queries, mutations are used to create, update, delete, or otherwise perform server side effects. In Lit, use [`createMutationController`](../reference/functions/createMutationController.md). + +```ts +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createMutationController, + createQueryController, +} from '@tanstack/lit-query' + +const queryClient = new QueryClient() + +class AppQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } +} + +customElements.define('app-query-provider', AppQueryProvider) + +class TodosView extends LitElement { + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodos, + }) + + private readonly addTodo = createMutationController(this, { + mutationFn: createTodo, + onSuccess: async () => { + await queryClient.invalidateQueries({ queryKey: ['todos'] }) + }, + }) + + render() { + const query = this.todos() + const mutation = this.addTodo() + const todos = query.data ?? [] + + return html` + ${mutation.isError ? html`

${mutation.error.message}

` : null} + ${mutation.isSuccess ? html`

Todo added

` : null} + + + +
    + ${todos.map((todo) => html`
  • ${todo.title}
  • `)} +
+ ` + } +} + +customElements.define('todos-view', TodosView) +``` + +Render the element under the provider so the controllers can resolve the same `QueryClient` from Lit context: + +```html + + + +``` + +## Mutation States + +A mutation can be in one of these primary states: + +- `isIdle` or `status === 'idle'`: no mutation has run or it has been reset +- `isPending` or `status === 'pending'`: the mutation is running +- `isError` or `status === 'error'`: the mutation failed and `error` is available +- `isSuccess` or `status === 'success'`: the mutation finished and `data` is available + +## Variables + +Pass variables to the mutation function by calling `mutate`: + +```ts +this.addTodo.mutate({ + title: this.nextTitle, +}) +``` + +`mutate` throws synchronously if the controller cannot resolve a `QueryClient`, such as when the element is not under a connected `QueryClientProvider` and no explicit client was passed. `mutateAsync` reports the same setup problem as a rejected promise. + +Use `mutateAsync` when you want a promise: + +```ts +try { + const created = await this.addTodo.mutateAsync({ title: this.nextTitle }) + this.nextTitle = created.title +} catch (error) { + this.errorMessage = String(error) +} +``` + +## Resetting Mutation State + +The accessor includes `reset`: + +```ts +html` + ${mutation.isError + ? html`` + : null} +` +``` + +## Side Effects + +Mutation options support `onMutate`, `onError`, `onSuccess`, and `onSettled`. The pagination example passes an explicit `queryClient` to the controller and uses the same in-scope client for optimistic updates and rollback: + +```ts +private readonly favoriteMutation = createMutationController( + this, + { + mutationKey: ['toggle-project-favorite'], + mutationFn: async (input) => { + const response = await toggleProjectFavoriteOnServer(input) + return response.project + }, + onMutate: async (variables) => { + await queryClient.cancelQueries({ queryKey: ['projects'] }) + const snapshots = queryClient.getQueriesData({ + queryKey: ['projects'], + }) + + for (const [key, existing] of snapshots) { + if (!existing) continue + + queryClient.setQueryData(key, { + ...existing, + projects: existing.projects.map((project) => + project.id === variables.id + ? { ...project, isFavorite: variables.isFavorite } + : project, + ), + }) + } + + return { snapshots } + }, + onError: (_error, _variables, context) => { + for (const [key, snapshot] of context?.snapshots ?? []) { + queryClient.setQueryData(key, snapshot) + } + }, + onSettled: async () => { + await queryClient.invalidateQueries({ queryKey: ['projects'] }) + }, + }, + queryClient, +) +``` + +For the exact runnable flow, see the [Pagination example](../examples/pagination). diff --git a/docs/framework/lit/guides/parallel-queries.md b/docs/framework/lit/guides/parallel-queries.md new file mode 100644 index 00000000000..2d9bf967f7b --- /dev/null +++ b/docs/framework/lit/guides/parallel-queries.md @@ -0,0 +1,134 @@ +--- +id: parallel-queries +title: Parallel Queries +--- + +Parallel queries are queries that run at the same time so the UI does not wait for one request before starting the next. + +## Manual Parallel Queries + +When the number of queries is fixed, create multiple query controllers on the same host. They will all subscribe when the host connects. + +```ts +import { LitElement, html } from 'lit' +import { createQueryController } from '@tanstack/lit-query' + +class DashboardView extends LitElement { + private readonly users = createQueryController(this, { + queryKey: ['users'], + queryFn: fetchUsers, + }) + + private readonly teams = createQueryController(this, { + queryKey: ['teams'], + queryFn: fetchTeams, + }) + + private readonly projects = createQueryController(this, { + queryKey: ['projects'], + queryFn: fetchProjects, + }) + + render() { + const users = this.users() + const teams = this.teams() + const projects = this.projects() + + if (users.isPending || teams.isPending || projects.isPending) { + return html`Loading...` + } + + if (users.isError || teams.isError || projects.isError) { + return html`Unable to load dashboard` + } + + return html` + + ` + } +} +``` + +Each controller receives the same `ReactiveControllerHost`. If no explicit `QueryClient` is passed, each controller resolves the nearest connected `QueryClientProvider`. + +## Dynamic Parallel Queries + +When the number of queries changes with host state, use [`createQueriesController`](../reference/functions/createQueriesController.md). It accepts a `queries` array and returns an accessor for the array of query results. + +Use an options getter when the query list depends on reactive host fields: + +```ts +import { LitElement, html } from 'lit' +import { createQueriesController } from '@tanstack/lit-query' + +class UsersDetails extends LitElement { + static properties = { + userIds: { attribute: false }, + } + + userIds: Array = [] + + private readonly users = createQueriesController(this, () => ({ + queries: this.userIds.map((id) => ({ + queryKey: ['user', id], + queryFn: () => fetchUserById(id), + })), + })) + + render() { + const userQueries = this.users() + + return html` +
    + ${userQueries.map((query, index) => { + if (query.isPending) return html`
  • Loading...
  • ` + if (query.isError) return html`
  • Error loading user
  • ` + + return html`
  • ${this.userIds[index]}: ${query.data.name}
  • ` + })} +
+ ` + } +} +``` + +The order of the results matches the order of the input queries. + +## Combining Results + +Use `combine` when a component wants one derived value instead of an array of query results: + +```ts +private readonly dashboard = createQueriesController(this, { + queries: [ + { queryKey: ['stats'], queryFn: fetchStats }, + { queryKey: ['projects'], queryFn: fetchProjects }, + ], + combine: ([stats, projects]) => ({ + activeUsers: stats.data?.activeUsers ?? 0, + projects: projects.data ?? [], + isPending: stats.isPending || projects.isPending, + isError: stats.isError || projects.isError, + }), +}) +``` + +```ts +render() { + const dashboard = this.dashboard() + + if (dashboard.isPending) return html`Loading...` + if (dashboard.isError) return html`Unable to load dashboard` + + return html` +

Total projects: ${dashboard.projects.length}

+

Active users: ${dashboard.activeUsers}

+ ` +} +``` + +Having the same query key more than once in the `queries` array can cause those entries to share cached data. Deduplicate repeated keys first if each rendered row needs independent query state. diff --git a/docs/framework/lit/guides/queries.md b/docs/framework/lit/guides/queries.md new file mode 100644 index 00000000000..592cdcfd029 --- /dev/null +++ b/docs/framework/lit/guides/queries.md @@ -0,0 +1,141 @@ +--- +id: queries +title: Queries +--- + +New to Lit Query? Start with [Installation](../installation.md) and [Quick Start](../quick-start.md) before wiring query controllers into your elements. + +## Query Basics + +A query is a declarative dependency on an asynchronous source of data tied to a unique key. Use queries for reading server state. If a function creates, updates, or deletes server data, use a [mutation](./mutations.md) instead. + +In Lit, subscribe to a query with [`createQueryController`](../reference/functions/createQueryController.md): + +```ts +import { LitElement, html } from 'lit' +import { createQueryController } from '@tanstack/lit-query' + +class TodosView extends LitElement { + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodos, + }) + + render() { + const query = this.todos() + + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error: ${query.error.message}` + + return html` +
    + ${query.data.map((todo) => html`
  • ${todo.title}
  • `)} +
+ ` + } +} +``` + +The controller needs: + +- A `ReactiveControllerHost`, usually `this` inside a `LitElement` +- A unique `queryKey` +- A `queryFn` that returns a promise and throws on errors + +The returned accessor exposes the current `QueryObserverResult`. Call it in `render`, or read `.current`: + +```ts +const query = this.todos() +const sameQuery = this.todos.current +``` + +## Query States + +A query can be in one primary state at a time: + +- `isPending` or `status === 'pending'`: no data is available yet +- `isError` or `status === 'error'`: the query failed and `error` is available +- `isSuccess` or `status === 'success'`: data is available + +The result also includes `isFetching`, which can be true during the initial load or a background refetch. + +```ts +render() { + const query = this.todos() + + if (query.status === 'pending') { + return html`Loading...` + } + + if (query.status === 'error') { + return html`Error: ${query.error.message}` + } + + return html`` +} +``` + +TypeScript will narrow `query.data` after you check `pending` and `error` before reading it. + +## Fetch Status + +The `status` field describes whether data is available. The `fetchStatus` field describes what the query function is doing: + +- `fetchStatus === 'fetching'`: the query is currently fetching. +- `fetchStatus === 'paused'`: the query wanted to fetch, but fetching is paused. +- `fetchStatus === 'idle'`: the query is not fetching. + +These states are intentionally separate. Background refetching and stale-while-revalidate behavior can produce combinations like: + +- A successful query with cached data can have `status === 'success'` and `fetchStatus === 'fetching'` while a background refetch is running. +- A query with no data can have `status === 'pending'` and `fetchStatus === 'paused'` if fetching cannot start yet. + +Use `status` when deciding whether data can be rendered, and use `fetchStatus` or `isFetching` when deciding whether to show a network activity indicator: + +```ts +render() { + const query = this.todos() + + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error: ${query.error.message}` + + return html` + ${query.fetchStatus === 'fetching' + ? html`Refreshing...` + : null} + + ` +} +``` + +## Reactive Query Options + +Use an options getter when the query key or query function depends on host state: + +```ts +class UserTodos extends LitElement { + static properties = { + userId: { type: String }, + } + + userId = '' + + private readonly todos = createQueryController(this, () => ({ + queryKey: ['todos', this.userId], + queryFn: () => fetchTodos(this.userId), + enabled: this.userId.length > 0, + })) +} +``` + +The query key is used for caching, refetching, and sharing data between controllers. + +## Refetching + +The accessor includes `refetch`: + +```ts +html`` +``` + +For multiple queries that should run at the same time, see [Parallel Queries](./parallel-queries.md). diff --git a/docs/framework/lit/guides/query-functions.md b/docs/framework/lit/guides/query-functions.md new file mode 100644 index 00000000000..74845737e82 --- /dev/null +++ b/docs/framework/lit/guides/query-functions.md @@ -0,0 +1,81 @@ +--- +id: query-functions +title: Query Functions +--- + +A query function can be any function that returns a promise. The promise should resolve data or throw an error. + +```ts +createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodos, +}) + +createQueryController(this, () => ({ + queryKey: ['todo', this.todoId], + queryFn: () => fetchTodo(this.todoId), +})) +``` + +## Handling Errors + +TanStack Query needs failed query functions to throw or return a rejected promise. Some clients do that automatically. The browser `fetch` API does not, so check `response.ok` yourself: + +```ts +async function fetchTodos(): Promise { + const response = await fetch('/api/todos') + + if (!response.ok) { + throw new Error('Failed to fetch todos') + } + + return response.json() as Promise +} +``` + +The thrown error is available on the query result: + +```ts +const query = this.todos() + +if (query.isError) { + return html`Error: ${query.error.message}` +} +``` + +## Query Function Context + +TanStack Query passes a context object to every query function. It includes: + +- `queryKey`: the current query key +- `client`: the `QueryClient` +- `signal`: an `AbortSignal` for cancellation +- `meta`: optional query metadata + +```ts +createQueryController(this, { + queryKey: ['todos', { status: 'open' }], + queryFn: async ({ queryKey, signal }) => { + const [, filters] = queryKey + const response = await fetch(`/api/todos?status=${filters.status}`, { + signal, + }) + if (!response.ok) throw new Error('Failed to fetch todos') + return response.json() as Promise + }, +}) +``` + +Infinite query functions also receive `pageParam`: + +```ts +createInfiniteQueryController(this, { + queryKey: ['projects'], + queryFn: ({ pageParam }) => fetchProjectsPage(pageParam), + initialPageParam: 1, + getNextPageParam: (lastPage) => + lastPage.hasMore ? lastPage.page + 1 : undefined, +}) +``` + +See [Infinite Queries](./infinite-queries.md) for the controller-specific behavior. diff --git a/docs/framework/lit/guides/query-invalidation.md b/docs/framework/lit/guides/query-invalidation.md new file mode 100644 index 00000000000..0227469ad41 --- /dev/null +++ b/docs/framework/lit/guides/query-invalidation.md @@ -0,0 +1,83 @@ +--- +id: query-invalidation +title: Query Invalidation +--- + +Waiting for queries to become stale is not always enough. After a mutation succeeds, you often know that related cached data is out of date. Use `queryClient.invalidateQueries` to mark matching queries stale and refetch active observers. + +```ts +queryClient.invalidateQueries() + +queryClient.invalidateQueries({ + queryKey: ['todos'], +}) +``` + +When a query is invalidated: + +- It is marked stale, overriding any `staleTime` +- If a matching query is active in a controller, it can refetch in the background + +## Invalidation from Mutations + +```ts +private readonly addTodo = createMutationController(this, { + mutationFn: addTodo, + onSuccess: async () => { + await queryClient.invalidateQueries({ queryKey: ['todos'] }) + }, +}) +``` + +Use this pattern when the mutation result tells you related cached data is stale. The [Pagination example](../examples/pagination) shows invalidation after project mutations. + +## Query Matching + +Match a group of queries by prefix: + +```ts +queryClient.invalidateQueries({ queryKey: ['projects'] }) +``` + +Both of these query keys match: + +```ts +const projectsListKey = ['projects'] +const projectsPageKey = ['projects', 1, 250, false] +``` + +Use a more specific key when only one slice should be invalidated: + +```ts +queryClient.invalidateQueries({ + queryKey: ['projects', this.page], +}) +``` + +Use `exact: true` to match only the exact key: + +```ts +queryClient.invalidateQueries({ + queryKey: ['projects'], + exact: true, +}) +``` + +## Manual Cache Updates + +Invalidation is usually simpler than normalized cache updates. When you do need immediate UI updates, combine targeted cache writes with invalidation: + +```ts +queryClient.setQueryData(['todos'], (existing) => { + if (!existing) return existing + + return { + ...existing, + items: [...existing.items, createdTodo], + } +}) + +await queryClient.invalidateQueries({ queryKey: ['todos'] }) +``` + +For rollback with optimistic updates, see the mutation guide and the [Pagination example](../examples/pagination). diff --git a/docs/framework/lit/guides/query-keys.md b/docs/framework/lit/guides/query-keys.md new file mode 100644 index 00000000000..8a532e93e7e --- /dev/null +++ b/docs/framework/lit/guides/query-keys.md @@ -0,0 +1,85 @@ +--- +id: query-keys +title: Query Keys +--- + +TanStack Query manages caching by query key. Query keys must be arrays at the top level, and they should uniquely describe the data returned by the query function. + +## Simple Keys + +Use simple keys for list resources or non-hierarchical data: + +```ts +createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodos, +}) + +createQueryController(this, { + queryKey: ['settings'], + queryFn: fetchSettings, +}) +``` + +## Keys with Variables + +Include variables when they change what the query fetches: + +```ts +createQueryController(this, () => ({ + queryKey: ['todo', this.todoId], + queryFn: () => fetchTodo(this.todoId), +})) + +createQueryController(this, () => ({ + queryKey: ['projects', { page: this.page, filter: this.filter }], + queryFn: () => fetchProjects({ page: this.page, filter: this.filter }), +})) +``` + +The pagination example uses a key shaped like this: + +```ts +type ProjectsQueryKey = readonly ['projects', number, number, boolean] + +function projectsQueryKey( + page: number, + delayMs: number, + forceError: boolean, +): ProjectsQueryKey { + return ['projects', page, delayMs, forceError] as const +} +``` + +## Deterministic Hashing + +Object key order does not matter inside a query key: + +```ts +const keyA = ['todos', { status, page }] +const keyB = ['todos', { page, status }] +``` + +Array item order does matter: + +```ts +const keyA = ['todos', status, page] +const keyB = ['todos', page, status] +``` + +## Query Keys as Dependencies + +If your query function reads a reactive host property, include that value in the query key: + +```ts +class UserTodos extends LitElement { + userId = '' + + private readonly todos = createQueryController(this, () => ({ + queryKey: ['todos', this.userId], + queryFn: () => fetchTodos(this.userId), + })) +} +``` + +This lets Lit Query cache each user's todos separately and refetch when the host state changes. diff --git a/docs/framework/lit/guides/reactive-controllers-vs-hooks.md b/docs/framework/lit/guides/reactive-controllers-vs-hooks.md new file mode 100644 index 00000000000..0cb0530ed0b --- /dev/null +++ b/docs/framework/lit/guides/reactive-controllers-vs-hooks.md @@ -0,0 +1,111 @@ +--- +id: reactive-controllers-vs-hooks +title: Reactive Controllers vs Hooks +--- + +React Query examples use hooks. Lit Query uses reactive controllers. + +The job is similar: subscribe a component to a `QueryClient`, read the latest result, and update the component when the cache changes. The integration point is different because Lit components use the `ReactiveControllerHost` interface instead of React's render and hook system. + +## Mapping the Concepts + +| React Query | Lit Query | +| --------------------------- | ---------------------------------------------- | +| `useQuery(options)` | `createQueryController(this, options)` | +| `useQueries(options)` | `createQueriesController(this, options)` | +| `useMutation(options)` | `createMutationController(this, options)` | +| `useInfiniteQuery(options)` | `createInfiniteQueryController(this, options)` | +| `useIsFetching(options)` | `useIsFetching(this, options)` | +| `useIsMutating(options)` | `useIsMutating(this, options)` | +| `useMutationState(options)` | `useMutationState(this, options)` | +| Hook result object | Callable result accessor | +| React context provider | `QueryClientProvider` custom element | +| Component render rerun | `host.requestUpdate()` | + +## Host-Bound APIs + +Lit APIs that subscribe a component to query or mutation state receive a `host` as the first argument: + +```ts +class TodosView extends LitElement { + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodos, + }) +} +``` + +`this` is valid because `LitElement` implements `ReactiveControllerHost`. The controller attaches to the host, subscribes when the host connects, requests updates when the query result changes, and unsubscribes when the host disconnects. + +The host-bound APIs are [`createQueryController`](../reference/functions/createQueryController.md), [`createQueriesController`](../reference/functions/createQueriesController.md), [`createInfiniteQueryController`](../reference/functions/createInfiniteQueryController.md), [`createMutationController`](../reference/functions/createMutationController.md), [`useIsFetching`](../reference/functions/useIsFetching.md), [`useIsMutating`](../reference/functions/useIsMutating.md), and [`useMutationState`](../reference/functions/useMutationState.md). + +[`useQueryClient`](../reference/functions/useQueryClient.md) is different. It is not a reactive controller, does not accept a host, does not subscribe, and throws synchronously if no single default client is available. Use it only for imperative code that runs while exactly one `QueryClientProvider` is connected. Inside host-bound APIs, prefer the provider context or pass an explicit `QueryClient`. + +## Reading Results + +Lit Query controller creators return a callable accessor with a `current` property: + +```ts +const query = this.todos() +const sameQuery = this.todos.current +``` + +Render methods normally call the accessor: + +```ts +render() { + const query = this.todos() + + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error: ${query.error.message}` + + return html`` +} +``` + +## Reactive Options + +If query options depend on host state, pass a function. Lit Query re-reads function accessors during host updates: + +```ts +class ProjectView extends LitElement { + static properties = { + projectId: { type: Number }, + } + + projectId = 1 + + private readonly project = createQueryController(this, () => ({ + queryKey: ['project', this.projectId], + queryFn: () => fetchProject(this.projectId), + })) +} +``` + +If options are static, pass an object. If you mutate a static options object yourself, call the controller helper that causes the observer to see the new options, such as `refetch`, or prefer a function accessor for reactive state. + +## Provider Context + +Host-bound APIs can receive an explicit `QueryClient`, but most apps render under [`QueryClientProvider`](../reference/classes/QueryClientProvider.md). The provider uses Lit context to deliver the client to descendant controllers. + +```ts +customElements.define('query-client-provider', QueryClientProvider) +``` + +```ts +html` + + + +` +``` + +Custom element registration is always the application's responsibility. + +`QueryClientProvider` also registers its client in a process-local fallback store for [`useQueryClient`](../reference/functions/useQueryClient.md) and [`resolveQueryClient`](../reference/functions/resolveQueryClient.md). That fallback is intentionally conservative: + +- If no provider is connected, `useQueryClient()` throws. +- If exactly one distinct client is connected, `useQueryClient()` returns it. +- If multiple distinct clients are connected in the same JavaScript context, `useQueryClient()` and `resolveQueryClient()` throw because the fallback would be ambiguous. + +Multiple roots, micro-frontends, test suites with shared modules, and nested apps should avoid relying on the process-local fallback. Render host-bound controllers under the right provider, pass an explicit `QueryClient` to the controller, or cleanly disconnect providers between tests. diff --git a/docs/framework/lit/guides/ssr.md b/docs/framework/lit/guides/ssr.md new file mode 100644 index 00000000000..0c6cce2e476 --- /dev/null +++ b/docs/framework/lit/guides/ssr.md @@ -0,0 +1,145 @@ +--- +id: ssr +title: Server Rendering & Hydration +--- + +Lit Query can be used with server rendering by combining Lit SSR with TanStack Query Core hydration APIs re-exported from `@tanstack/lit-query`. + +The runnable source for this guide is the [SSR example](../examples/ssr). + +## Flow + +Server rendering has three phases: + +1. Create a per-request `QueryClient`. +2. Prefetch queries on the server and render Lit HTML with that client. +3. Dehydrate the cache into the HTML, then hydrate a browser `QueryClient` before the client app renders. + +Never share one server `QueryClient` between users or requests. + +## Server Prefetch and Render + +```ts +import { render } from '@lit-labs/ssr' +import { collectResult } from '@lit-labs/ssr/lib/render-result.js' +import { html } from 'lit' +import { QueryClient, dehydrate } from '@tanstack/lit-query' +import { createDataQueryOptions } from './api.js' +import './app.js' + +async function renderPage() { + const apiBaseUrl = 'https://example.com' + const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 30_000, + }, + }, + }) + + await queryClient.prefetchQuery(createDataQueryOptions(apiBaseUrl)) + + const appHtml = await collectResult( + render( + html``, + ), + ) + + const dehydratedState = dehydrate(queryClient) + + return { appHtml, dehydratedState } +} +``` + +The server passes the same client into the Lit element with a property binding. This lets `createQueryController` read the prefetched cache during server render. If your query function calls `fetch` during SSR, pass an absolute API origin instead of relying on a browser-relative URL. + +## Client Hydration + +```ts +import '@lit-labs/ssr-client/lit-element-hydrate-support.js' +import { QueryClient, hydrate, type DehydratedState } from '@tanstack/lit-query' + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 30_000, + }, + }, +}) + +const dehydratedState = JSON.parse( + document.getElementById('__QUERY_STATE__')?.textContent ?? 'null', +) as DehydratedState + +queryClient.mount() +hydrate(queryClient, dehydratedState) + +const appElement = document.querySelector('ssr-app') as + | (HTMLElement & { queryClient?: QueryClient }) + | null + +if (!appElement) { + throw new Error('Expected the SSR app element to exist before hydration.') +} + +appElement.queryClient = queryClient +await import('./app.js') +``` + +Unmount the client when the page is unloaded if you mounted it manually: + +```ts +window.addEventListener( + 'pagehide', + () => { + queryClient.unmount() + }, + { once: true }, +) +``` + +## Component Pattern + +The SSR example creates its controller only after a `queryClient` property is available: + +```ts +import { LitElement } from 'lit' +import { + createQueryController, + type QueryClient, + type QueryResultAccessor, +} from '@tanstack/lit-query' +import { createDataQueryOptions, type DataResponse } from './api.js' + +class SsrApp extends LitElement { + static properties = { + apiBaseUrl: { attribute: 'api-base-url' }, + queryClient: { attribute: false }, + } + + apiBaseUrl = '' + queryClient?: QueryClient + private dataQuery?: QueryResultAccessor + + protected override willUpdate(): void { + if (!this.dataQuery && this.queryClient) { + this.dataQuery = createQueryController( + this, + createDataQueryOptions(this.apiBaseUrl), + this.queryClient, + ) + } + } +} +``` + +This explicit-client pattern is useful for SSR because the client is created by the renderer rather than discovered from a connected DOM provider. + +## Serialization + +Embed dehydrated state as JSON in the HTML and escape characters that can break out of a script tag. The example server uses a small serializer before replacing `__QUERY_STATE_JSON__` in the built HTML template. + +Lit Query re-exports `dehydrate` and `hydrate` from TanStack Query Core. Use `dehydrate(queryClient)` after server prefetching to capture the cache state. In the browser, parse that state, create a fresh `QueryClient`, call `hydrate(queryClient, dehydratedState)`, assign the client to the server-rendered element, and only then import the Lit component so it upgrades with the prefetched cache available. diff --git a/docs/framework/lit/installation.md b/docs/framework/lit/installation.md new file mode 100644 index 00000000000..dacbadb9e58 --- /dev/null +++ b/docs/framework/lit/installation.md @@ -0,0 +1,109 @@ +--- +id: installation +title: Installation +--- + +> IMPORTANT: The Lit adapter is currently experimental and v0.1. Pin exact versions if you need extra release stability while the API is early. + +Install Lit Query with Lit and TanStack Query Core: + +```bash +npm i @tanstack/lit-query @tanstack/query-core lit +``` + +or + +```bash +pnpm add @tanstack/lit-query @tanstack/query-core lit +``` + +or + +```bash +yarn add @tanstack/lit-query @tanstack/query-core lit +``` + +or + +```bash +bun add @tanstack/lit-query @tanstack/query-core lit +``` + +`@tanstack/query-core` is a peer dependency of `@tanstack/lit-query`. Even though the Lit docs import user-facing APIs from `@tanstack/lit-query`, your app should install `@tanstack/query-core` explicitly. + +## Requirements + +Lit Query is intended for Lit 2.8 and newer, including Lit 3. It uses Lit reactive controllers and Lit context, so query consumers should be `ReactiveControllerHost` instances such as `LitElement`. + +TanStack Query is optimized for modern browsers: + +```txt +Chrome >= 91 +Firefox >= 90 +Edge >= 91 +Safari >= 15 +iOS >= 15 +Opera >= 77 +``` + +## Provider Setup + +Create a `QueryClient`, provide it with `QueryClientProvider`, and register your custom element. The package exports the provider class but does not call `customElements.define` for you. + +### Subclass Pattern + +```ts +import { QueryClient, QueryClientProvider } from '@tanstack/lit-query' + +const queryClient = new QueryClient() + +class AppQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } +} + +customElements.define('app-query-provider', AppQueryProvider) +``` + +```html + + + +``` + +### Direct Provider Element + +You can register the provider class directly and bind its `client` property from a Lit template. The dot is important: `.client=${queryClient}` is a property binding, not an HTML attribute. + +```ts +import { LitElement, html } from 'lit' +import { QueryClient, QueryClientProvider } from '@tanstack/lit-query' + +const queryClient = new QueryClient() + +customElements.define('query-client-provider', QueryClientProvider) + +class AppRoot extends LitElement { + render() { + return html` + + + + ` + } +} +``` + +If a connected provider has no `client`, it throws. See the generated [`QueryClientProvider` reference](./reference/classes/QueryClientProvider.md) for the full contract. + +## Render Roots + +The snippets in these docs use Lit's default shadow DOM. Lit Query controllers and `QueryClientProvider` work with shadow DOM and light DOM because they use the host lifecycle and Lit context, not global selectors. + +Some runnable examples override `createRenderRoot()` and return `this` so their demo markup stays in light DOM for shared page styles and test selectors. That override is not required for Lit Query. Use light DOM only when your app has a separate reason to expose a component's internal markup to global CSS, tests, or non-shadow-DOM integration code. + +## Devtools Status + +Lit Devtools are not available yet. This is a current adapter limitation, not an installation step. diff --git a/docs/framework/lit/overview.md b/docs/framework/lit/overview.md new file mode 100644 index 00000000000..354848d6231 --- /dev/null +++ b/docs/framework/lit/overview.md @@ -0,0 +1,93 @@ +--- +id: overview +title: Overview +--- + +> IMPORTANT: The `@tanstack/lit-query` package is currently experimental and v0.1. Expect the Lit adapter API and docs to keep evolving. If you use it in production while it is early, pin the package to a patch version and upgrade deliberately. + +The `@tanstack/lit-query` package is the Lit adapter for TanStack Query. It gives Lit applications reactive controller APIs for fetching, caching, synchronizing, and updating server state. + +TanStack Query manages server state: data that is owned by a remote system, fetched asynchronously, shared across screens, and potentially changed by someone else at any time. It handles caching, request deduplication, stale data, background refetching, mutations, invalidation, pagination, and garbage collection. + +Lit Query exposes those features through [Lit reactive controllers](https://lit.dev/docs/composition/controllers/). A Lit reactive controller is attached to a `ReactiveControllerHost`, usually a `LitElement`. Lit Query controllers subscribe to the `QueryClient`, request host updates when results change, and are cleaned up with the host lifecycle. + +## Core APIs + +Most Lit applications use these APIs: + +- [`QueryClientProvider`](./reference/classes/QueryClientProvider.md) to provide a `QueryClient` through Lit context +- [`createQueryController`](./reference/functions/createQueryController.md) for queries +- [`createQueriesController`](./reference/functions/createQueriesController.md) for dynamic parallel queries +- [`createMutationController`](./reference/functions/createMutationController.md) for mutations +- [`createInfiniteQueryController`](./reference/functions/createInfiniteQueryController.md) for infinite queries +- [`useIsFetching`](./reference/functions/useIsFetching.md), [`useIsMutating`](./reference/functions/useIsMutating.md), and [`useMutationState`](./reference/functions/useMutationState.md) for cache state indicators + +The adapter also re-exports TanStack Query Core APIs from `@tanstack/lit-query`, so examples in the Lit docs use `@tanstack/lit-query` as the user-facing import path. + +## A First Query + +```ts +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createQueryController, +} from '@tanstack/lit-query' + +const queryClient = new QueryClient() + +class AppQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } +} + +customElements.define('app-query-provider', AppQueryProvider) + +class RepoStats extends LitElement { + private readonly repo = createQueryController(this, { + queryKey: ['repoData'], + queryFn: async () => { + const response = await fetch( + 'https://api.github.com/repos/TanStack/query', + ) + if (!response.ok) throw new Error('Failed to fetch repo data') + return response.json() as Promise<{ + name: string + description: string + stargazers_count: number + }> + }, + }) + + render() { + const query = this.repo() + + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error: ${query.error.message}` + + return html` +

${query.data.name}

+

${query.data.description}

+ ${query.data.stargazers_count} stars + ` + } +} + +customElements.define('repo-stats', RepoStats) +``` + +Render the provider above your query consumers: + +```html + + + +``` + +## Status Notes + +Lit Devtools are not available yet. Use the cache APIs and the generated API reference while the adapter matures. + +Start with [Installation](./installation.md), then [Quick Start](./quick-start.md), and use the [Reactive Controllers vs Hooks](./guides/reactive-controllers-vs-hooks.md) guide if you are coming from React Query. diff --git a/docs/framework/lit/quick-start.md b/docs/framework/lit/quick-start.md new file mode 100644 index 00000000000..69bff6c8f11 --- /dev/null +++ b/docs/framework/lit/quick-start.md @@ -0,0 +1,83 @@ +--- +id: quick-start +title: Quick Start +--- + +This snippet shows the three core Lit Query concepts: + +- [Queries](./guides/queries.md) +- [Mutations](./guides/mutations.md) +- [Query Invalidation](./guides/query-invalidation.md) + +For complete runnable examples, see [Basic](./examples/basic), [Pagination](./examples/pagination), and [SSR](./examples/ssr). + +```ts +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createMutationController, + createQueryController, +} from '@tanstack/lit-query' +import { addTodo, getTodos } from './api' + +const queryClient = new QueryClient() + +class AppQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } +} + +customElements.define('app-query-provider', AppQueryProvider) + +class TodosView extends LitElement { + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: getTodos, + }) + + private readonly createTodo = createMutationController(this, { + mutationFn: addTodo, + onSuccess: async () => { + await queryClient.invalidateQueries({ queryKey: ['todos'] }) + }, + }) + + render() { + const query = this.todos() + const mutation = this.createTodo() + + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error: ${query.error.message}` + + return html` +
    + ${query.data.map((todo) => html`
  • ${todo.title}
  • `)} +
+ + + ` + } +} + +customElements.define('todos-view', TodosView) +``` + +Mount the provider around your component: + +```html + + + +``` + +The controllers are created with `this` because a `LitElement` is a `ReactiveControllerHost`. Lit Query uses the host lifecycle to subscribe, request updates, and clean up when the element disconnects. + +Continue with [Reactive Controllers vs Hooks](./guides/reactive-controllers-vs-hooks.md) if you know React Query, or go straight to [Queries](./guides/queries.md). diff --git a/docs/framework/lit/reference/classes/QueryClientProvider.md b/docs/framework/lit/reference/classes/QueryClientProvider.md new file mode 100644 index 00000000000..df14c2769bb --- /dev/null +++ b/docs/framework/lit/reference/classes/QueryClientProvider.md @@ -0,0 +1,98 @@ +--- +id: QueryClientProvider +title: QueryClientProvider +--- + +# Class: QueryClientProvider + +Defined in: [packages/lit-query/src/QueryClientProvider.ts:64](https://github.com/TanStack/query/blob/main/packages/lit-query/src/QueryClientProvider.ts#L64) + +Lit element that provides a `QueryClient` to descendant Lit Query +controllers through Lit context. + +The `client` is a property, not an attribute. When rendering this element in +a Lit template, bind it with property binding: `.client=${queryClient}`. +The provider throws if it connects without a client, or if an already +connected provider has its client cleared. + +This class is not registered as a custom element by the package. Applications +must register either a subclass or the class itself with +`customElements.define`. + +## Examples + +```ts +import { html, LitElement } from 'lit' +import { QueryClient, QueryClientProvider } from '@tanstack/lit-query' + +const queryClient = new QueryClient() + +class AppQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } +} + +customElements.define('app-query-provider', AppQueryProvider) + +class AppRoot extends LitElement { + render() { + return html`` + } +} +``` + +```ts +import { html } from 'lit' +import { QueryClient, QueryClientProvider } from '@tanstack/lit-query' + +const queryClient = new QueryClient() + +customElements.define('query-client-provider', QueryClientProvider) + +const view = html` + + + +` +``` + +## Extends + +- `LitElement` + +## Constructors + +### Constructor + +```ts +new QueryClientProvider(): QueryClientProvider; +``` + +Defined in: [packages/lit-query/src/QueryClientProvider.ts:82](https://github.com/TanStack/query/blob/main/packages/lit-query/src/QueryClientProvider.ts#L82) + +#### Returns + +`QueryClientProvider` + +#### Overrides + +```ts +LitElement.constructor +``` + +## Properties + +### client + +```ts +client: QueryClient; +``` + +Defined in: [packages/lit-query/src/QueryClientProvider.ts:76](https://github.com/TanStack/query/blob/main/packages/lit-query/src/QueryClientProvider.ts#L76) + +The `QueryClient` provided to descendant controllers and global fallback +helpers while this provider is connected. + +Bind this as a property in Lit templates with `.client=${queryClient}`. diff --git a/docs/framework/lit/reference/functions/createInfiniteQueryController.md b/docs/framework/lit/reference/functions/createInfiniteQueryController.md new file mode 100644 index 00000000000..63bccc835af --- /dev/null +++ b/docs/framework/lit/reference/functions/createInfiniteQueryController.md @@ -0,0 +1,104 @@ +--- +id: createInfiniteQueryController +title: createInfiniteQueryController +--- + +# Function: createInfiniteQueryController() + +```ts +function createInfiniteQueryController( + host, + options, +queryClient?): InfiniteQueryResultAccessor; +``` + +Defined in: [packages/lit-query/src/createInfiniteQueryController.ts:364](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createInfiniteQueryController.ts#L364) + +Creates a Lit reactive controller that subscribes the host to an infinite +query. + +The returned accessor is callable and also exposes `current`, `refetch`, +`fetchNextPage`, `fetchPreviousPage`, and `destroy`. When `options` is a +function, it is re-read during host updates so query keys and options can +follow reactive host state. + +If `queryClient` is omitted, the controller resolves the client from the +nearest connected `QueryClientProvider`. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `Error` + +### TData + +`TData` = `InfiniteData`\<`TQueryFnData`, `unknown`\> + +### TQueryKey + +`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[] + +### TPageParam + +`TPageParam` = `unknown` + +## Parameters + +### host + +`ReactiveControllerHost` + +The Lit reactive controller host that owns the infinite query +subscription. + +### options + +[`Accessor`](../type-aliases/Accessor.md)\<[`CreateInfiniteQueryOptions`](../type-aliases/CreateInfiniteQueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>\> + +Infinite query observer options, or a getter that returns +options. + +### queryClient? + +`QueryClient` + +Optional explicit query client. Provide this for +controllers that should not resolve a client from Lit context. + +## Returns + +[`InfiniteQueryResultAccessor`](../type-aliases/InfiniteQueryResultAccessor.md)\<`TData`, `TError`\> + +An accessor for the latest infinite query result with page helper +methods. + +## Example + +```ts +import { LitElement, html } from 'lit' +import { createInfiniteQueryController } from '@tanstack/lit-query' + +class ProjectsView extends LitElement { + private readonly projects = createInfiniteQueryController(this, { + queryKey: ['projects'], + queryFn: ({ pageParam }) => fetchProjects(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, + }) + + render() { + const query = this.projects() + + return html` + + ` + } +} +``` diff --git a/docs/framework/lit/reference/functions/createMutationController.md b/docs/framework/lit/reference/functions/createMutationController.md new file mode 100644 index 00000000000..3c870e06fe2 --- /dev/null +++ b/docs/framework/lit/reference/functions/createMutationController.md @@ -0,0 +1,96 @@ +--- +id: createMutationController +title: createMutationController +--- + +# Function: createMutationController() + +```ts +function createMutationController( + host, + options, +queryClient?): MutationResultAccessor; +``` + +Defined in: [packages/lit-query/src/createMutationController.ts:338](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createMutationController.ts#L338) + +Creates a Lit reactive controller that subscribes the host to a mutation. + +The returned accessor is callable and also exposes `current`, `mutate`, +`mutateAsync`, `reset`, and `destroy`. When `options` is a function, it is +re-read during host updates so mutation options can follow reactive host +state. + +If `queryClient` is omitted, the controller resolves the client from the +nearest connected `QueryClientProvider`. + +## Type Parameters + +### TData + +`TData` = `unknown` + +### TError + +`TError` = `Error` + +### TVariables + +`TVariables` = `void` + +### TOnMutateResult + +`TOnMutateResult` = `unknown` + +## Parameters + +### host + +`ReactiveControllerHost` + +The Lit reactive controller host that owns the mutation +subscription. + +### options + +[`Accessor`](../type-aliases/Accessor.md)\<[`CreateMutationOptions`](../type-aliases/CreateMutationOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>\> + +Mutation observer options, or a getter that returns options. + +### queryClient? + +`QueryClient` + +Optional explicit query client. Provide this for +controllers that should not resolve a client from Lit context. + +## Returns + +[`MutationResultAccessor`](../type-aliases/MutationResultAccessor.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\> + +An accessor for the latest mutation result with mutation helper +methods. + +## Example + +```ts +import { LitElement, html } from 'lit' +import { createMutationController } from '@tanstack/lit-query' + +class AddTodoForm extends LitElement { + private readonly addTodo = createMutationController(this, { + mutationFn: (title: string) => + fetch('/api/todos', { method: 'POST', body: JSON.stringify({ title }) }), + }) + + render() { + const mutation = this.addTodo() + + return html` + + ` + } +} +``` diff --git a/docs/framework/lit/reference/functions/createQueriesController.md b/docs/framework/lit/reference/functions/createQueriesController.md new file mode 100644 index 00000000000..db5e74399cb --- /dev/null +++ b/docs/framework/lit/reference/functions/createQueriesController.md @@ -0,0 +1,90 @@ +--- +id: createQueriesController +title: createQueriesController +--- + +# Function: createQueriesController() + +```ts +function createQueriesController( + host, + options, +queryClient?): QueriesResultAccessor; +``` + +Defined in: [packages/lit-query/src/createQueriesController.ts:615](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueriesController.ts#L615) + +Creates a Lit reactive controller that subscribes the host to multiple +queries. + +The returned accessor is callable and also exposes `current` and `destroy`. +When `options` or `options.queries` is a function, it is re-read during host +updates so the query list can follow reactive host state. + +If `queryClient` is omitted, the controller resolves the client from the +nearest connected `QueryClientProvider`. + +## Type Parameters + +### TQueryOptions + +`TQueryOptions` *extends* `any`[] + +### TCombinedResult + +`TCombinedResult` = `CreateQueriesResults`\<`TQueryOptions`\> + +## Parameters + +### host + +`ReactiveControllerHost` + +The Lit reactive controller host that owns the queries +subscription. + +### options + +[`Accessor`](../type-aliases/Accessor.md)\<[`CreateQueriesControllerOptions`](../type-aliases/CreateQueriesControllerOptions.md)\<`TQueryOptions`, `TCombinedResult`\>\> + +Queries controller options, or a getter that returns options. + +### queryClient? + +`QueryClient` + +Optional explicit query client. Provide this for +controllers that should not resolve a client from Lit context. + +## Returns + +[`QueriesResultAccessor`](../type-aliases/QueriesResultAccessor.md)\<`TCombinedResult`\> + +An accessor for the latest query results, or the value returned by +`combine`. + +## Example + +```ts +import { LitElement, html } from 'lit' +import { createQueriesController } from '@tanstack/lit-query' + +class DashboardView extends LitElement { + private readonly dashboard = createQueriesController(this, { + queries: [ + { queryKey: ['stats'], queryFn: fetchStats }, + { queryKey: ['projects'], queryFn: fetchProjects }, + ], + combine: ([stats, projects]) => ({ + stats: stats.data, + projects: projects.data ?? [], + isPending: stats.isPending || projects.isPending, + }), + }) + + render() { + const dashboard = this.dashboard() + return html`

Projects: ${dashboard.projects.length}

` + } +} +``` diff --git a/docs/framework/lit/reference/functions/createQueryController.md b/docs/framework/lit/reference/functions/createQueryController.md new file mode 100644 index 00000000000..11e52770bbd --- /dev/null +++ b/docs/framework/lit/reference/functions/createQueryController.md @@ -0,0 +1,97 @@ +--- +id: createQueryController +title: createQueryController +--- + +# Function: createQueryController() + +```ts +function createQueryController( + host, + options, +queryClient?): QueryResultAccessor; +``` + +Defined in: [packages/lit-query/src/createQueryController.ts:319](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueryController.ts#L319) + +Creates a Lit reactive controller that subscribes the host to a single query. + +The returned accessor is callable and also exposes `current`, `refetch`, +`suspense`, and `destroy`. When `options` is a function, it is re-read during +host updates so query keys and options can follow reactive host state. + +If `queryClient` is omitted, the controller resolves the client from the +nearest connected `QueryClientProvider`. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `Error` + +### TData + +`TData` = `TQueryFnData` + +### TQueryData + +`TQueryData` = `TQueryFnData` + +### TQueryKey + +`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[] + +## Parameters + +### host + +`ReactiveControllerHost` + +The Lit reactive controller host that owns the query +subscription. + +### options + +[`Accessor`](../type-aliases/Accessor.md)\<[`CreateQueryOptions`](../type-aliases/CreateQueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>\> + +Query observer options, or a getter that returns options. + +### queryClient? + +`QueryClient` + +Optional explicit query client. Provide this for +controllers that should not resolve a client from Lit context. + +## Returns + +[`QueryResultAccessor`](../type-aliases/QueryResultAccessor.md)\<`TData`, `TError`\> + +An accessor for the latest query result with query helper methods. + +## Example + +```ts +import { LitElement, html } from 'lit' +import { createQueryController } from '@tanstack/lit-query' + +class TodosView extends LitElement { + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: async () => fetch('/api/todos').then((r) => r.json()), + }) + + render() { + const query = this.todos() + + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error` + + return html`
    ${query.data.map((todo) => html`
  • ${todo.title}
  • `)}
` + } +} +``` diff --git a/docs/framework/lit/reference/functions/getDefaultQueryClient.md b/docs/framework/lit/reference/functions/getDefaultQueryClient.md new file mode 100644 index 00000000000..4c9ff19db48 --- /dev/null +++ b/docs/framework/lit/reference/functions/getDefaultQueryClient.md @@ -0,0 +1,22 @@ +--- +id: getDefaultQueryClient +title: getDefaultQueryClient +--- + +# Function: getDefaultQueryClient() + +```ts +function getDefaultQueryClient(): QueryClient | undefined; +``` + +Defined in: [packages/lit-query/src/context.ts:72](https://github.com/TanStack/query/blob/main/packages/lit-query/src/context.ts#L72) + +Returns the registered default `QueryClient`, if exactly one default client is +available. + +## Returns + +`QueryClient` \| `undefined` + +The default query client, or `undefined` when there is no registered +client or more than one registered client. diff --git a/docs/framework/lit/reference/functions/infiniteQueryOptions.md b/docs/framework/lit/reference/functions/infiniteQueryOptions.md new file mode 100644 index 00000000000..3ac26702f12 --- /dev/null +++ b/docs/framework/lit/reference/functions/infiniteQueryOptions.md @@ -0,0 +1,63 @@ +--- +id: infiniteQueryOptions +title: infiniteQueryOptions +--- + +# Function: infiniteQueryOptions() + +```ts +function infiniteQueryOptions(options): InfiniteQueryObserverOptions; +``` + +Defined in: [packages/lit-query/src/infiniteQueryOptions.ts:26](https://github.com/TanStack/query/blob/main/packages/lit-query/src/infiniteQueryOptions.ts#L26) + +Preserves and types infinite query options for reuse across Lit Query APIs. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `Error` + +### TData + +`TData` = `InfiniteData`\<`TQueryFnData`, `unknown`\> + +### TQueryKey + +`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[] + +### TPageParam + +`TPageParam` = `unknown` + +## Parameters + +### options + +`InfiniteQueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> + +Infinite query options to preserve. + +## Returns + +`InfiniteQueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> + +The same options object. + +## Example + +```ts +import { infiniteQueryOptions } from '@tanstack/lit-query' + +const projectsOptions = infiniteQueryOptions({ + queryKey: ['projects'], + queryFn: ({ pageParam }) => fetchProjects(pageParam), + initialPageParam: 0, + getNextPageParam: (lastPage) => lastPage.nextCursor, +}) +``` diff --git a/docs/framework/lit/reference/functions/mutationOptions.md b/docs/framework/lit/reference/functions/mutationOptions.md new file mode 100644 index 00000000000..966fb849098 --- /dev/null +++ b/docs/framework/lit/reference/functions/mutationOptions.md @@ -0,0 +1,57 @@ +--- +id: mutationOptions +title: mutationOptions +--- + +# Function: mutationOptions() + +```ts +function mutationOptions(options): MutationObserverOptions; +``` + +Defined in: [packages/lit-query/src/mutationOptions.ts:22](https://github.com/TanStack/query/blob/main/packages/lit-query/src/mutationOptions.ts#L22) + +Preserves and types mutation options for reuse across Lit Query APIs. + +## Type Parameters + +### TData + +`TData` = `unknown` + +### TError + +`TError` = `Error` + +### TVariables + +`TVariables` = `void` + +### TOnMutateResult + +`TOnMutateResult` = `unknown` + +## Parameters + +### options + +`MutationObserverOptions`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\> + +Mutation options to preserve. + +## Returns + +`MutationObserverOptions`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\> + +The same options object. + +## Example + +```ts +import { mutationOptions } from '@tanstack/lit-query' + +const addTodoOptions = mutationOptions({ + mutationKey: ['add-todo'], + mutationFn: (title: string) => addTodo(title), +}) +``` diff --git a/docs/framework/lit/reference/functions/queryOptions.md b/docs/framework/lit/reference/functions/queryOptions.md new file mode 100644 index 00000000000..2c43233ca26 --- /dev/null +++ b/docs/framework/lit/reference/functions/queryOptions.md @@ -0,0 +1,147 @@ +--- +id: queryOptions +title: queryOptions +--- + +# Function: queryOptions() + +## Call Signature + +```ts +function queryOptions(options): Omit, "queryFn"> & object & object; +``` + +Defined in: [packages/lit-query/src/queryOptions.ts:94](https://github.com/TanStack/query/blob/main/packages/lit-query/src/queryOptions.ts#L94) + +Brands query options so the `queryKey` carries the query function data and +error types across TanStack Query APIs. + +### Type Parameters + +#### TQueryFnData + +`TQueryFnData` = `unknown` + +#### TError + +`TError` = `Error` + +#### TData + +`TData` = `TQueryFnData` + +#### TQueryKey + +`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[] + +### Parameters + +#### options + +[`DefinedInitialDataOptions`](../type-aliases/DefinedInitialDataOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> + +Query options to preserve and brand. + +### Returns + +`Omit`\<`QueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `never`\>, `"queryFn"`\> & `object` & `object` + +The same options object with a typed `queryKey`. + +### Example + +```ts +import { queryOptions } from '@tanstack/lit-query' + +const todosOptions = queryOptions({ + queryKey: ['todos'], + queryFn: fetchTodos, + initialData: [], +}) +``` + +## Call Signature + +```ts +function queryOptions(options): OmitKeyof, "queryFn"> & object & object; +``` + +Defined in: [packages/lit-query/src/queryOptions.ts:112](https://github.com/TanStack/query/blob/main/packages/lit-query/src/queryOptions.ts#L112) + +Brands query options so the `queryKey` carries the query function data and +error types across TanStack Query APIs. + +### Type Parameters + +#### TQueryFnData + +`TQueryFnData` = `unknown` + +#### TError + +`TError` = `Error` + +#### TData + +`TData` = `TQueryFnData` + +#### TQueryKey + +`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[] + +### Parameters + +#### options + +[`UnusedSkipTokenOptions`](../type-aliases/UnusedSkipTokenOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> + +Query options to preserve and brand. + +### Returns + +`OmitKeyof`\<`QueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `never`\>, `"queryFn"`\> & `object` & `object` + +The same options object with a typed `queryKey`. + +## Call Signature + +```ts +function queryOptions(options): QueryObserverOptions & object & object; +``` + +Defined in: [packages/lit-query/src/queryOptions.ts:130](https://github.com/TanStack/query/blob/main/packages/lit-query/src/queryOptions.ts#L130) + +Brands query options so the `queryKey` carries the query function data and +error types across TanStack Query APIs. + +### Type Parameters + +#### TQueryFnData + +`TQueryFnData` = `unknown` + +#### TError + +`TError` = `Error` + +#### TData + +`TData` = `TQueryFnData` + +#### TQueryKey + +`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[] + +### Parameters + +#### options + +[`UndefinedInitialDataOptions`](../type-aliases/UndefinedInitialDataOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> + +Query options to preserve and brand. + +### Returns + +`QueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `never`\> & `object` & `object` + +The same options object with a typed `queryKey`. diff --git a/docs/framework/lit/reference/functions/registerDefaultQueryClient.md b/docs/framework/lit/reference/functions/registerDefaultQueryClient.md new file mode 100644 index 00000000000..d3174f600ca --- /dev/null +++ b/docs/framework/lit/reference/functions/registerDefaultQueryClient.md @@ -0,0 +1,30 @@ +--- +id: registerDefaultQueryClient +title: registerDefaultQueryClient +--- + +# Function: registerDefaultQueryClient() + +```ts +function registerDefaultQueryClient(client): void; +``` + +Defined in: [packages/lit-query/src/context.ts:32](https://github.com/TanStack/query/blob/main/packages/lit-query/src/context.ts#L32) + +Registers a `QueryClient` as a process-local fallback for APIs that resolve a +client without an explicit argument. + +`QueryClientProvider` calls this automatically while it is connected. Prefer +passing an explicit client or rendering under a provider when possible. + +## Parameters + +### client + +`QueryClient` + +The query client to register as the current default. + +## Returns + +`void` diff --git a/docs/framework/lit/reference/functions/resolveQueryClient.md b/docs/framework/lit/reference/functions/resolveQueryClient.md new file mode 100644 index 00000000000..cfb0ba226ac --- /dev/null +++ b/docs/framework/lit/reference/functions/resolveQueryClient.md @@ -0,0 +1,29 @@ +--- +id: resolveQueryClient +title: resolveQueryClient +--- + +# Function: resolveQueryClient() + +```ts +function resolveQueryClient(explicit?): QueryClient; +``` + +Defined in: [packages/lit-query/src/context.ts:118](https://github.com/TanStack/query/blob/main/packages/lit-query/src/context.ts#L118) + +Resolves an explicit `QueryClient` or falls back to `useQueryClient`. + +## Parameters + +### explicit? + +`QueryClient` + +Optional client supplied by the caller. + +## Returns + +`QueryClient` + +The explicit client when provided, otherwise the current default +client. diff --git a/docs/framework/lit/reference/functions/unregisterDefaultQueryClient.md b/docs/framework/lit/reference/functions/unregisterDefaultQueryClient.md new file mode 100644 index 00000000000..8c82f497c35 --- /dev/null +++ b/docs/framework/lit/reference/functions/unregisterDefaultQueryClient.md @@ -0,0 +1,29 @@ +--- +id: unregisterDefaultQueryClient +title: unregisterDefaultQueryClient +--- + +# Function: unregisterDefaultQueryClient() + +```ts +function unregisterDefaultQueryClient(client): void; +``` + +Defined in: [packages/lit-query/src/context.ts:45](https://github.com/TanStack/query/blob/main/packages/lit-query/src/context.ts#L45) + +Unregisters a client previously registered with +`registerDefaultQueryClient`. + +`QueryClientProvider` calls this automatically when it disconnects. + +## Parameters + +### client + +`QueryClient` + +The query client registration to release. + +## Returns + +`void` diff --git a/docs/framework/lit/reference/functions/useIsFetching.md b/docs/framework/lit/reference/functions/useIsFetching.md new file mode 100644 index 00000000000..6cfd72bb4e5 --- /dev/null +++ b/docs/framework/lit/reference/functions/useIsFetching.md @@ -0,0 +1,67 @@ +--- +id: useIsFetching +title: useIsFetching +--- + +# Function: useIsFetching() + +```ts +function useIsFetching( + host, + filters, + queryClient?): IsFetchingAccessor; +``` + +Defined in: [packages/lit-query/src/useIsFetching.ts:147](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useIsFetching.ts#L147) + +Creates a Lit reactive controller that tracks how many matching queries are +currently fetching. + +When `filters` is a function, it is re-read during host updates so the count +can follow reactive host state. If `queryClient` is omitted, the controller +resolves the client from the nearest connected `QueryClientProvider`. + +## Parameters + +### host + +`ReactiveControllerHost` + +The Lit reactive controller host that owns the cache +subscription. + +### filters + +[`Accessor`](../type-aliases/Accessor.md)\<`QueryFilters`\\> = `{}` + +Query filters, or a getter that returns query filters. + +### queryClient? + +`QueryClient` + +Optional explicit query client. Provide this for +controllers that should not resolve a client from Lit context. + +## Returns + +[`IsFetchingAccessor`](../type-aliases/IsFetchingAccessor.md) + +An accessor for the current number of matching fetching queries. + +## Example + +```ts +import { LitElement, html } from 'lit' +import { useIsFetching } from '@tanstack/lit-query' + +class TodosStatus extends LitElement { + private readonly todosFetching = useIsFetching(this, { + queryKey: ['todos'], + }) + + render() { + return html`${this.todosFetching()} active todo fetches` + } +} +``` diff --git a/docs/framework/lit/reference/functions/useIsMutating.md b/docs/framework/lit/reference/functions/useIsMutating.md new file mode 100644 index 00000000000..1991ee25266 --- /dev/null +++ b/docs/framework/lit/reference/functions/useIsMutating.md @@ -0,0 +1,67 @@ +--- +id: useIsMutating +title: useIsMutating +--- + +# Function: useIsMutating() + +```ts +function useIsMutating( + host, + filters, + queryClient?): IsMutatingAccessor; +``` + +Defined in: [packages/lit-query/src/useIsMutating.ts:147](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useIsMutating.ts#L147) + +Creates a Lit reactive controller that tracks how many matching mutations are +currently pending. + +When `filters` is a function, it is re-read during host updates so the count +can follow reactive host state. If `queryClient` is omitted, the controller +resolves the client from the nearest connected `QueryClientProvider`. + +## Parameters + +### host + +`ReactiveControllerHost` + +The Lit reactive controller host that owns the cache +subscription. + +### filters + +[`Accessor`](../type-aliases/Accessor.md)\<`MutationFilters`\<`unknown`, `Error`, `unknown`, `unknown`\>\> = `{}` + +Mutation filters, or a getter that returns mutation filters. + +### queryClient? + +`QueryClient` + +Optional explicit query client. Provide this for +controllers that should not resolve a client from Lit context. + +## Returns + +[`IsMutatingAccessor`](../type-aliases/IsMutatingAccessor.md) + +An accessor for the current number of matching pending mutations. + +## Example + +```ts +import { LitElement, html } from 'lit' +import { useIsMutating } from '@tanstack/lit-query' + +class MutationStatus extends LitElement { + private readonly savesPending = useIsMutating(this, { + mutationKey: ['save-project'], + }) + + render() { + return html`${this.savesPending()} saves pending` + } +} +``` diff --git a/docs/framework/lit/reference/functions/useMutationState.md b/docs/framework/lit/reference/functions/useMutationState.md new file mode 100644 index 00000000000..f12f55d38b2 --- /dev/null +++ b/docs/framework/lit/reference/functions/useMutationState.md @@ -0,0 +1,75 @@ +--- +id: useMutationState +title: useMutationState +--- + +# Function: useMutationState() + +```ts +function useMutationState( + host, + options, +queryClient?): MutationStateAccessor; +``` + +Defined in: [packages/lit-query/src/useMutationState.ts:187](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useMutationState.ts#L187) + +Creates a Lit reactive controller that selects state from matching mutations +in the mutation cache. + +When `options.filters` is a function, it is re-read during host updates so +the selection can follow reactive host state. If `queryClient` is omitted, +the controller resolves the client from the nearest connected +`QueryClientProvider`. + +## Type Parameters + +### TResult + +`TResult` = `MutationState`\<`unknown`, `unknown`, `unknown`, `unknown`\> + +## Parameters + +### host + +`ReactiveControllerHost` + +The Lit reactive controller host that owns the mutation cache +subscription. + +### options + +[`MutationStateOptions`](../type-aliases/MutationStateOptions.md)\<`TResult`\> = `{}` + +Mutation state filters and optional selector. + +### queryClient? + +`QueryClient` + +Optional explicit query client. Provide this for +controllers that should not resolve a client from Lit context. + +## Returns + +[`MutationStateAccessor`](../type-aliases/MutationStateAccessor.md)\<`TResult`\> + +An accessor for the selected mutation state array. + +## Example + +```ts +import { LitElement, html } from 'lit' +import { useMutationState } from '@tanstack/lit-query' + +class PendingUploads extends LitElement { + private readonly uploads = useMutationState(this, { + filters: { mutationKey: ['upload'], status: 'pending' }, + select: (mutation) => mutation.state.variables as File, + }) + + render() { + return html`${this.uploads().length} uploads pending` + } +} +``` diff --git a/docs/framework/lit/reference/functions/useQueryClient.md b/docs/framework/lit/reference/functions/useQueryClient.md new file mode 100644 index 00000000000..72db893d0d5 --- /dev/null +++ b/docs/framework/lit/reference/functions/useQueryClient.md @@ -0,0 +1,25 @@ +--- +id: useQueryClient +title: useQueryClient +--- + +# Function: useQueryClient() + +```ts +function useQueryClient(): QueryClient; +``` + +Defined in: [packages/lit-query/src/context.ts:98](https://github.com/TanStack/query/blob/main/packages/lit-query/src/context.ts#L98) + +Resolves the current default `QueryClient` registered by a connected +`QueryClientProvider`. + +This helper is useful outside a Lit reactive controller when a single +provider is mounted. It throws if no client is registered or if multiple +clients are mounted and the default would be ambiguous. + +## Returns + +`QueryClient` + +The single registered query client. diff --git a/docs/framework/lit/reference/index.md b/docs/framework/lit/reference/index.md new file mode 100644 index 00000000000..77ef5851377 --- /dev/null +++ b/docs/framework/lit/reference/index.md @@ -0,0 +1,59 @@ +--- +id: "@tanstack/lit-query" +title: "@tanstack/lit-query" +--- + +# @tanstack/lit-query + +## Classes + +- [QueryClientProvider](classes/QueryClientProvider.md) + +## Type Aliases + +- [Accessor](type-aliases/Accessor.md) +- [CreateInfiniteQueryOptions](type-aliases/CreateInfiniteQueryOptions.md) +- [CreateMutationOptions](type-aliases/CreateMutationOptions.md) +- [CreateQueriesControllerOptions](type-aliases/CreateQueriesControllerOptions.md) +- [CreateQueriesInput](type-aliases/CreateQueriesInput.md) +- [CreateQueryOptions](type-aliases/CreateQueryOptions.md) +- [DefinedInitialDataOptions](type-aliases/DefinedInitialDataOptions.md) +- [InfiniteQueryControllerOptions](type-aliases/InfiniteQueryControllerOptions.md) +- [InfiniteQueryResultAccessor](type-aliases/InfiniteQueryResultAccessor.md) +- [IsFetchingAccessor](type-aliases/IsFetchingAccessor.md) +- [IsMutatingAccessor](type-aliases/IsMutatingAccessor.md) +- [MutationControllerOptions](type-aliases/MutationControllerOptions.md) +- [MutationControllerResult](type-aliases/MutationControllerResult.md) +- [MutationResultAccessor](type-aliases/MutationResultAccessor.md) +- [MutationStateAccessor](type-aliases/MutationStateAccessor.md) +- [MutationStateOptions](type-aliases/MutationStateOptions.md) +- [QueriesControllerOptions](type-aliases/QueriesControllerOptions.md) +- [QueriesResultAccessor](type-aliases/QueriesResultAccessor.md) +- [QueryControllerOptions](type-aliases/QueryControllerOptions.md) +- [QueryControllerResult](type-aliases/QueryControllerResult.md) +- [QueryResultAccessor](type-aliases/QueryResultAccessor.md) +- [UndefinedInitialDataOptions](type-aliases/UndefinedInitialDataOptions.md) +- [UnusedSkipTokenOptions](type-aliases/UnusedSkipTokenOptions.md) +- [ValueAccessor](type-aliases/ValueAccessor.md) + +## Variables + +- [queryClientContext](variables/queryClientContext.md) + +## Functions + +- [createInfiniteQueryController](functions/createInfiniteQueryController.md) +- [createMutationController](functions/createMutationController.md) +- [createQueriesController](functions/createQueriesController.md) +- [createQueryController](functions/createQueryController.md) +- [getDefaultQueryClient](functions/getDefaultQueryClient.md) +- [infiniteQueryOptions](functions/infiniteQueryOptions.md) +- [mutationOptions](functions/mutationOptions.md) +- [queryOptions](functions/queryOptions.md) +- [registerDefaultQueryClient](functions/registerDefaultQueryClient.md) +- [resolveQueryClient](functions/resolveQueryClient.md) +- [unregisterDefaultQueryClient](functions/unregisterDefaultQueryClient.md) +- [useIsFetching](functions/useIsFetching.md) +- [useIsMutating](functions/useIsMutating.md) +- [useMutationState](functions/useMutationState.md) +- [useQueryClient](functions/useQueryClient.md) diff --git a/docs/framework/lit/reference/type-aliases/Accessor.md b/docs/framework/lit/reference/type-aliases/Accessor.md new file mode 100644 index 00000000000..95d77dee47a --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/Accessor.md @@ -0,0 +1,30 @@ +--- +id: Accessor +title: Accessor +--- + +# Type Alias: Accessor\ + +```ts +type Accessor = T | () => T; +``` + +Defined in: [packages/lit-query/src/accessor.ts:13](https://github.com/TanStack/query/blob/main/packages/lit-query/src/accessor.ts#L13) + +A value that can be passed directly or read from a zero-argument getter. + +Lit Query APIs read function accessors during host updates, so the getter can +depend on reactive host state. + +## Type Parameters + +### T + +`T` + +## Example + +```ts +const staticKey: Accessor = ['todos'] +const reactiveKey: Accessor = () => ['todos', this.userId] +``` diff --git a/docs/framework/lit/reference/type-aliases/CreateInfiniteQueryOptions.md b/docs/framework/lit/reference/type-aliases/CreateInfiniteQueryOptions.md new file mode 100644 index 00000000000..ba09bb1126c --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/CreateInfiniteQueryOptions.md @@ -0,0 +1,39 @@ +--- +id: CreateInfiniteQueryOptions +title: CreateInfiniteQueryOptions +--- + +# Type Alias: CreateInfiniteQueryOptions\ + +```ts +type CreateInfiniteQueryOptions = InfiniteQueryObserverOptions; +``` + +Defined in: [packages/lit-query/src/createInfiniteQueryController.ts:27](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createInfiniteQueryController.ts#L27) + +Options accepted by `createInfiniteQueryController`. + +This is the Lit adapter shape for `InfiniteQueryObserverOptions`. Pass it +directly or through an `Accessor` when the options depend on Lit host state. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `InfiniteData`\<`TQueryFnData`\> + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` + +### TPageParam + +`TPageParam` = `unknown` diff --git a/docs/framework/lit/reference/type-aliases/CreateMutationOptions.md b/docs/framework/lit/reference/type-aliases/CreateMutationOptions.md new file mode 100644 index 00000000000..94d611682b5 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/CreateMutationOptions.md @@ -0,0 +1,35 @@ +--- +id: CreateMutationOptions +title: CreateMutationOptions +--- + +# Type Alias: CreateMutationOptions\ + +```ts +type CreateMutationOptions = MutationObserverOptions; +``` + +Defined in: [packages/lit-query/src/createMutationController.ts:25](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createMutationController.ts#L25) + +Options accepted by `createMutationController`. + +This is the Lit adapter shape for `MutationObserverOptions`. Pass it directly +or through an `Accessor` when the options depend on Lit host state. + +## Type Parameters + +### TData + +`TData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TVariables + +`TVariables` = `void` + +### TOnMutateResult + +`TOnMutateResult` = `unknown` diff --git a/docs/framework/lit/reference/type-aliases/CreateQueriesControllerOptions.md b/docs/framework/lit/reference/type-aliases/CreateQueriesControllerOptions.md new file mode 100644 index 00000000000..1f69e15b84a --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/CreateQueriesControllerOptions.md @@ -0,0 +1,64 @@ +--- +id: CreateQueriesControllerOptions +title: CreateQueriesControllerOptions +--- + +# Type Alias: CreateQueriesControllerOptions\ + +```ts +type CreateQueriesControllerOptions = object; +``` + +Defined in: [packages/lit-query/src/createQueriesController.ts:194](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueriesController.ts#L194) + +Options accepted by `createQueriesController`. + +`queries` can be a static list or a getter that returns the current list. +`combine` can reshape the array of query results into a single value for the +returned accessor. + +## Type Parameters + +### TQueryOptions + +`TQueryOptions` *extends* `any`[] = `any`[] + +### TCombinedResult + +`TCombinedResult` = `CreateQueriesResults`\<`TQueryOptions`\> + +## Properties + +### combine()? + +```ts +optional combine: (result) => TCombinedResult; +``` + +Defined in: [packages/lit-query/src/createQueriesController.ts:208](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueriesController.ts#L208) + +Optional function that combines the query result array into one value. + +#### Parameters + +##### result + +`CreateQueriesResults`\<`TQueryOptions`\> + +#### Returns + +`TCombinedResult` + +*** + +### queries + +```ts +queries: Accessor< + | readonly [...CreateQueriesOptions] +| readonly [...{ [K in keyof TQueryOptions]: GetCreateQueriesInput }]>; +``` + +Defined in: [packages/lit-query/src/createQueriesController.ts:199](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueriesController.ts#L199) + +Query options to observe, or a getter that returns the current options. diff --git a/docs/framework/lit/reference/type-aliases/CreateQueriesInput.md b/docs/framework/lit/reference/type-aliases/CreateQueriesInput.md new file mode 100644 index 00000000000..0f698f79617 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/CreateQueriesInput.md @@ -0,0 +1,35 @@ +--- +id: CreateQueriesInput +title: CreateQueriesInput +--- + +# Type Alias: CreateQueriesInput\ + +```ts +type CreateQueriesInput = QueryObserverOptions; +``` + +Defined in: [packages/lit-query/src/createQueriesController.ts:30](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueriesController.ts#L30) + +Options for one query inside `createQueriesController`. + +This mirrors `QueryObserverOptions` and is used by the tuple inference that +maps each input query to its corresponding result. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `TQueryFnData` + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` diff --git a/docs/framework/lit/reference/type-aliases/CreateQueryOptions.md b/docs/framework/lit/reference/type-aliases/CreateQueryOptions.md new file mode 100644 index 00000000000..a967e779ac8 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/CreateQueryOptions.md @@ -0,0 +1,40 @@ +--- +id: CreateQueryOptions +title: CreateQueryOptions +--- + +# Type Alias: CreateQueryOptions\ + +```ts +type CreateQueryOptions = QueryObserverOptions; +``` + +Defined in: [packages/lit-query/src/createQueryController.ts:27](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueryController.ts#L27) + +Options accepted by `createQueryController`. + +This is the Lit adapter shape for `QueryObserverOptions`. It can be passed +directly to `createQueryController`, or wrapped in an `Accessor` when the +options depend on Lit host state. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `TQueryFnData` + +### TQueryData + +`TQueryData` = `TQueryFnData` + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` diff --git a/docs/framework/lit/reference/type-aliases/DefinedInitialDataOptions.md b/docs/framework/lit/reference/type-aliases/DefinedInitialDataOptions.md new file mode 100644 index 00000000000..b369207dbb3 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/DefinedInitialDataOptions.md @@ -0,0 +1,48 @@ +--- +id: DefinedInitialDataOptions +title: DefinedInitialDataOptions +--- + +# Type Alias: DefinedInitialDataOptions\ + +```ts +type DefinedInitialDataOptions = Omit, "queryFn"> & object; +``` + +Defined in: [packages/lit-query/src/queryOptions.ts:16](https://github.com/TanStack/query/blob/main/packages/lit-query/src/queryOptions.ts#L16) + +Query options with `initialData` that guarantees defined query data. + +## Type Declaration + +### initialData + +```ts +initialData: + | NonUndefinedGuard +| () => NonUndefinedGuard; +``` + +### queryFn? + +```ts +optional queryFn: QueryFunction; +``` + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `TQueryFnData` + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` diff --git a/docs/framework/lit/reference/type-aliases/InfiniteQueryControllerOptions.md b/docs/framework/lit/reference/type-aliases/InfiniteQueryControllerOptions.md new file mode 100644 index 00000000000..f2b6bbe0b58 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/InfiniteQueryControllerOptions.md @@ -0,0 +1,36 @@ +--- +id: InfiniteQueryControllerOptions +title: InfiniteQueryControllerOptions +--- + +# Type Alias: InfiniteQueryControllerOptions\ + +```ts +type InfiniteQueryControllerOptions = Accessor>; +``` + +Defined in: [packages/lit-query/src/types.ts:41](https://github.com/TanStack/query/blob/main/packages/lit-query/src/types.ts#L41) + +Accessor-wrapped options accepted by `createInfiniteQueryController`. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `InfiniteData`\<`TQueryFnData`\> + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` + +### TPageParam + +`TPageParam` = `unknown` diff --git a/docs/framework/lit/reference/type-aliases/InfiniteQueryResultAccessor.md b/docs/framework/lit/reference/type-aliases/InfiniteQueryResultAccessor.md new file mode 100644 index 00000000000..a45900de25f --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/InfiniteQueryResultAccessor.md @@ -0,0 +1,66 @@ +--- +id: InfiniteQueryResultAccessor +title: InfiniteQueryResultAccessor +--- + +# Type Alias: InfiniteQueryResultAccessor\ + +```ts +type InfiniteQueryResultAccessor = ValueAccessor> & object; +``` + +Defined in: [packages/lit-query/src/createInfiniteQueryController.ts:48](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createInfiniteQueryController.ts#L48) + +Accessor returned by `createInfiniteQueryController`. + +Call the accessor or read its `current` property to get the latest infinite +query result. The attached methods delegate to the active infinite query +observer. + +## Type Declaration + +### destroy() + +```ts +destroy: () => void; +``` + +Removes the controller from its Lit host and unsubscribes observers. + +#### Returns + +`void` + +### fetchNextPage + +```ts +fetchNextPage: InfiniteQueryObserverResult["fetchNextPage"]; +``` + +Fetches the next page for the current infinite query. + +### fetchPreviousPage + +```ts +fetchPreviousPage: InfiniteQueryObserverResult["fetchPreviousPage"]; +``` + +Fetches the previous page for the current infinite query. + +### refetch + +```ts +refetch: InfiniteQueryObserverResult["refetch"]; +``` + +Refetches the current infinite query. + +## Type Parameters + +### TData + +`TData` + +### TError + +`TError` diff --git a/docs/framework/lit/reference/type-aliases/IsFetchingAccessor.md b/docs/framework/lit/reference/type-aliases/IsFetchingAccessor.md new file mode 100644 index 00000000000..99c09c43502 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/IsFetchingAccessor.md @@ -0,0 +1,29 @@ +--- +id: IsFetchingAccessor +title: IsFetchingAccessor +--- + +# Type Alias: IsFetchingAccessor + +```ts +type IsFetchingAccessor = ValueAccessor & object; +``` + +Defined in: [packages/lit-query/src/useIsFetching.ts:17](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useIsFetching.ts#L17) + +Accessor returned by `useIsFetching`. + +Call the accessor or read its `current` property to get the number of +currently fetching queries that match the filters. + +## Type Declaration + +### destroy() + +```ts +destroy: () => void; +``` + +#### Returns + +`void` diff --git a/docs/framework/lit/reference/type-aliases/IsMutatingAccessor.md b/docs/framework/lit/reference/type-aliases/IsMutatingAccessor.md new file mode 100644 index 00000000000..1f0ff1194f7 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/IsMutatingAccessor.md @@ -0,0 +1,29 @@ +--- +id: IsMutatingAccessor +title: IsMutatingAccessor +--- + +# Type Alias: IsMutatingAccessor + +```ts +type IsMutatingAccessor = ValueAccessor & object; +``` + +Defined in: [packages/lit-query/src/useIsMutating.ts:17](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useIsMutating.ts#L17) + +Accessor returned by `useIsMutating`. + +Call the accessor or read its `current` property to get the number of +currently pending mutations that match the filters. + +## Type Declaration + +### destroy() + +```ts +destroy: () => void; +``` + +#### Returns + +`void` diff --git a/docs/framework/lit/reference/type-aliases/MutationControllerOptions.md b/docs/framework/lit/reference/type-aliases/MutationControllerOptions.md new file mode 100644 index 00000000000..6482d82a13a --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/MutationControllerOptions.md @@ -0,0 +1,32 @@ +--- +id: MutationControllerOptions +title: MutationControllerOptions +--- + +# Type Alias: MutationControllerOptions\ + +```ts +type MutationControllerOptions = Accessor>; +``` + +Defined in: [packages/lit-query/src/types.ts:54](https://github.com/TanStack/query/blob/main/packages/lit-query/src/types.ts#L54) + +Accessor-wrapped options accepted by `createMutationController`. + +## Type Parameters + +### TData + +`TData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TVariables + +`TVariables` = `void` + +### TOnMutateResult + +`TOnMutateResult` = `unknown` diff --git a/docs/framework/lit/reference/type-aliases/MutationControllerResult.md b/docs/framework/lit/reference/type-aliases/MutationControllerResult.md new file mode 100644 index 00000000000..8b63b098fba --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/MutationControllerResult.md @@ -0,0 +1,32 @@ +--- +id: MutationControllerResult +title: MutationControllerResult +--- + +# Type Alias: MutationControllerResult\ + +```ts +type MutationControllerResult = MutationObserverResult; +``` + +Defined in: [packages/lit-query/src/types.ts:64](https://github.com/TanStack/query/blob/main/packages/lit-query/src/types.ts#L64) + +Result object produced by a Lit mutation controller. + +## Type Parameters + +### TData + +`TData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TVariables + +`TVariables` = `void` + +### TOnMutateResult + +`TOnMutateResult` = `unknown` diff --git a/docs/framework/lit/reference/type-aliases/MutationResultAccessor.md b/docs/framework/lit/reference/type-aliases/MutationResultAccessor.md new file mode 100644 index 00000000000..6846aec42aa --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/MutationResultAccessor.md @@ -0,0 +1,91 @@ +--- +id: MutationResultAccessor +title: MutationResultAccessor +--- + +# Type Alias: MutationResultAccessor\ + +```ts +type MutationResultAccessor = ValueAccessor> & object; +``` + +Defined in: [packages/lit-query/src/createMutationController.ts:38](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createMutationController.ts#L38) + +Accessor returned by `createMutationController`. + +Call the accessor or read its `current` property to get the latest mutation +result. The attached methods delegate to the active mutation observer. + +## Type Declaration + +### destroy() + +```ts +destroy: () => void; +``` + +Removes the controller from its Lit host and unsubscribes observers. + +#### Returns + +`void` + +### mutate() + +```ts +mutate: (variables, options?) => void; +``` + +Starts the mutation and swallows the returned promise. + +Throws synchronously if no `QueryClient` can be resolved. + +#### Parameters + +##### variables + +`TVariables` + +##### options? + +`MutateOptions`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\> + +#### Returns + +`void` + +### mutateAsync + +```ts +mutateAsync: MutationObserverResult["mutate"]; +``` + +Starts the mutation and returns the observer promise. + +Rejects if no `QueryClient` can be resolved. + +### reset + +```ts +reset: MutationObserverResult["reset"]; +``` + +Resets the mutation observer to its idle state. + +## Type Parameters + +### TData + +`TData` + +### TError + +`TError` + +### TVariables + +`TVariables` + +### TOnMutateResult + +`TOnMutateResult` diff --git a/docs/framework/lit/reference/type-aliases/MutationStateAccessor.md b/docs/framework/lit/reference/type-aliases/MutationStateAccessor.md new file mode 100644 index 00000000000..6c9f9298caa --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/MutationStateAccessor.md @@ -0,0 +1,37 @@ +--- +id: MutationStateAccessor +title: MutationStateAccessor +--- + +# Type Alias: MutationStateAccessor\ + +```ts +type MutationStateAccessor = ValueAccessor & object; +``` + +Defined in: [packages/lit-query/src/useMutationState.ts:32](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useMutationState.ts#L32) + +Accessor returned by `useMutationState`. + +Call the accessor or read its `current` property to get the selected state for +matching mutations. + +## Type Declaration + +### destroy() + +```ts +destroy: () => void; +``` + +Removes the controller from its Lit host and unsubscribes observers. + +#### Returns + +`void` + +## Type Parameters + +### TResult + +`TResult` diff --git a/docs/framework/lit/reference/type-aliases/MutationStateOptions.md b/docs/framework/lit/reference/type-aliases/MutationStateOptions.md new file mode 100644 index 00000000000..7ae3228ea66 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/MutationStateOptions.md @@ -0,0 +1,54 @@ +--- +id: MutationStateOptions +title: MutationStateOptions +--- + +# Type Alias: MutationStateOptions\ + +```ts +type MutationStateOptions = object; +``` + +Defined in: [packages/lit-query/src/useMutationState.ts:19](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useMutationState.ts#L19) + +Options accepted by `useMutationState`. + +## Type Parameters + +### TResult + +`TResult` + +## Properties + +### filters? + +```ts +optional filters: Accessor; +``` + +Defined in: [packages/lit-query/src/useMutationState.ts:21](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useMutationState.ts#L21) + +Filters used to select mutations from the mutation cache. + +*** + +### select()? + +```ts +optional select: (mutation) => TResult; +``` + +Defined in: [packages/lit-query/src/useMutationState.ts:23](https://github.com/TanStack/query/blob/main/packages/lit-query/src/useMutationState.ts#L23) + +Maps each matching mutation to the value returned by the accessor. + +#### Parameters + +##### mutation + +`Mutation` + +#### Returns + +`TResult` diff --git a/docs/framework/lit/reference/type-aliases/QueriesControllerOptions.md b/docs/framework/lit/reference/type-aliases/QueriesControllerOptions.md new file mode 100644 index 00000000000..70ef5a77f2b --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/QueriesControllerOptions.md @@ -0,0 +1,24 @@ +--- +id: QueriesControllerOptions +title: QueriesControllerOptions +--- + +# Type Alias: QueriesControllerOptions\ + +```ts +type QueriesControllerOptions = Accessor>; +``` + +Defined in: [packages/lit-query/src/types.ts:74](https://github.com/TanStack/query/blob/main/packages/lit-query/src/types.ts#L74) + +Accessor-wrapped options accepted by `createQueriesController`. + +## Type Parameters + +### TQueryOptions + +`TQueryOptions` *extends* `any`[] = `any`[] + +### TCombinedResult + +`TCombinedResult` = `CreateQueriesResults`\<`TQueryOptions`\> diff --git a/docs/framework/lit/reference/type-aliases/QueriesResultAccessor.md b/docs/framework/lit/reference/type-aliases/QueriesResultAccessor.md new file mode 100644 index 00000000000..c780231ee2f --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/QueriesResultAccessor.md @@ -0,0 +1,37 @@ +--- +id: QueriesResultAccessor +title: QueriesResultAccessor +--- + +# Type Alias: QueriesResultAccessor\ + +```ts +type QueriesResultAccessor = ValueAccessor & object; +``` + +Defined in: [packages/lit-query/src/createQueriesController.ts:217](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueriesController.ts#L217) + +Accessor returned by `createQueriesController`. + +Call the accessor or read its `current` property to get the latest combined +value. + +## Type Declaration + +### destroy() + +```ts +destroy: () => void; +``` + +Removes the controller from its Lit host and unsubscribes observers. + +#### Returns + +`void` + +## Type Parameters + +### TCombinedResult + +`TCombinedResult` diff --git a/docs/framework/lit/reference/type-aliases/QueryControllerOptions.md b/docs/framework/lit/reference/type-aliases/QueryControllerOptions.md new file mode 100644 index 00000000000..104d98c5fb9 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/QueryControllerOptions.md @@ -0,0 +1,36 @@ +--- +id: QueryControllerOptions +title: QueryControllerOptions +--- + +# Type Alias: QueryControllerOptions\ + +```ts +type QueryControllerOptions = Accessor>; +``` + +Defined in: [packages/lit-query/src/types.ts:20](https://github.com/TanStack/query/blob/main/packages/lit-query/src/types.ts#L20) + +Accessor-wrapped options accepted by `createQueryController`. + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `TQueryFnData` + +### TQueryData + +`TQueryData` = `TQueryFnData` + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` diff --git a/docs/framework/lit/reference/type-aliases/QueryControllerResult.md b/docs/framework/lit/reference/type-aliases/QueryControllerResult.md new file mode 100644 index 00000000000..853212d0536 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/QueryControllerResult.md @@ -0,0 +1,24 @@ +--- +id: QueryControllerResult +title: QueryControllerResult +--- + +# Type Alias: QueryControllerResult\ + +```ts +type QueryControllerResult = QueryObserverResult; +``` + +Defined in: [packages/lit-query/src/types.ts:33](https://github.com/TanStack/query/blob/main/packages/lit-query/src/types.ts#L33) + +Result object produced by a Lit query controller. + +## Type Parameters + +### TData + +`TData` = `unknown` + +### TError + +`TError` = `DefaultError` diff --git a/docs/framework/lit/reference/type-aliases/QueryResultAccessor.md b/docs/framework/lit/reference/type-aliases/QueryResultAccessor.md new file mode 100644 index 00000000000..ce806098556 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/QueryResultAccessor.md @@ -0,0 +1,61 @@ +--- +id: QueryResultAccessor +title: QueryResultAccessor +--- + +# Type Alias: QueryResultAccessor\ + +```ts +type QueryResultAccessor = ValueAccessor> & object; +``` + +Defined in: [packages/lit-query/src/createQueryController.ts:41](https://github.com/TanStack/query/blob/main/packages/lit-query/src/createQueryController.ts#L41) + +Accessor returned by `createQueryController`. + +Call the accessor or read its `current` property to get the latest query +result. The attached methods delegate to the active query observer. + +## Type Declaration + +### destroy() + +```ts +destroy: () => void; +``` + +Removes the controller from its Lit host and unsubscribes observers. + +#### Returns + +`void` + +### refetch + +```ts +refetch: QueryObserverResult["refetch"]; +``` + +Refetches the current query. + +### suspense() + +```ts +suspense: () => Promise>; +``` + +Resolves with an optimistic query result, fetching first when needed. + +#### Returns + +`Promise`\<`QueryObserverResult`\<`TData`, `TError`\>\> + +## Type Parameters + +### TData + +`TData` + +### TError + +`TError` diff --git a/docs/framework/lit/reference/type-aliases/UndefinedInitialDataOptions.md b/docs/framework/lit/reference/type-aliases/UndefinedInitialDataOptions.md new file mode 100644 index 00000000000..75aa69f4139 --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/UndefinedInitialDataOptions.md @@ -0,0 +1,42 @@ +--- +id: UndefinedInitialDataOptions +title: UndefinedInitialDataOptions +--- + +# Type Alias: UndefinedInitialDataOptions\ + +```ts +type UndefinedInitialDataOptions = QueryObserverOptions & object; +``` + +Defined in: [packages/lit-query/src/queryOptions.ts:58](https://github.com/TanStack/query/blob/main/packages/lit-query/src/queryOptions.ts#L58) + +Query options where `initialData` can be omitted or undefined. + +## Type Declaration + +### initialData? + +```ts +optional initialData: + | InitialDataFunction> +| NonUndefinedGuard; +``` + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `TQueryFnData` + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` diff --git a/docs/framework/lit/reference/type-aliases/UnusedSkipTokenOptions.md b/docs/framework/lit/reference/type-aliases/UnusedSkipTokenOptions.md new file mode 100644 index 00000000000..53acb8d9f5c --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/UnusedSkipTokenOptions.md @@ -0,0 +1,40 @@ +--- +id: UnusedSkipTokenOptions +title: UnusedSkipTokenOptions +--- + +# Type Alias: UnusedSkipTokenOptions\ + +```ts +type UnusedSkipTokenOptions = OmitKeyof, "queryFn"> & object; +``` + +Defined in: [packages/lit-query/src/queryOptions.ts:34](https://github.com/TanStack/query/blob/main/packages/lit-query/src/queryOptions.ts#L34) + +Query options where `queryFn` is present and not a `skipToken`. + +## Type Declaration + +### queryFn? + +```ts +optional queryFn: Exclude["queryFn"], SkipToken | undefined>; +``` + +## Type Parameters + +### TQueryFnData + +`TQueryFnData` = `unknown` + +### TError + +`TError` = `DefaultError` + +### TData + +`TData` = `TQueryFnData` + +### TQueryKey + +`TQueryKey` *extends* `QueryKey` = `QueryKey` diff --git a/docs/framework/lit/reference/type-aliases/ValueAccessor.md b/docs/framework/lit/reference/type-aliases/ValueAccessor.md new file mode 100644 index 00000000000..642c42f37da --- /dev/null +++ b/docs/framework/lit/reference/type-aliases/ValueAccessor.md @@ -0,0 +1,39 @@ +--- +id: ValueAccessor +title: ValueAccessor +--- + +# Type Alias: ValueAccessor\ + +```ts +type ValueAccessor = () => T & object; +``` + +Defined in: [packages/lit-query/src/accessor.ts:32](https://github.com/TanStack/query/blob/main/packages/lit-query/src/accessor.ts#L32) + +A callable accessor with a `current` property for reading the latest +controller result. + +Controller creators and cache state helpers return this shape so render code +can use either `result()` or `result.current`. + +## Type Declaration + +### current + +```ts +readonly current: T; +``` + +## Type Parameters + +### T + +`T` + +## Example + +```ts +const query = this.todos() +const sameQuery = this.todos.current +``` diff --git a/docs/framework/lit/reference/variables/queryClientContext.md b/docs/framework/lit/reference/variables/queryClientContext.md new file mode 100644 index 00000000000..56395991d49 --- /dev/null +++ b/docs/framework/lit/reference/variables/queryClientContext.md @@ -0,0 +1,18 @@ +--- +id: queryClientContext +title: queryClientContext +--- + +# Variable: queryClientContext + +```ts +const queryClientContext: object; +``` + +Defined in: [packages/lit-query/src/context.ts:11](https://github.com/TanStack/query/blob/main/packages/lit-query/src/context.ts#L11) + +Lit context key used by `QueryClientProvider` and host-bound APIs to share a +`QueryClient` through the DOM tree. + +Most applications use `QueryClientProvider` instead of interacting with this +context directly. diff --git a/docs/framework/lit/typescript.md b/docs/framework/lit/typescript.md new file mode 100644 index 00000000000..6a59b09b1d7 --- /dev/null +++ b/docs/framework/lit/typescript.md @@ -0,0 +1,132 @@ +--- +id: typescript +title: TypeScript +--- + +Lit Query is written in TypeScript and reuses TanStack Query Core's type system. The most important rule is the same as every other adapter: give your query and mutation functions well-defined return types, and the result accessors will infer from them. + +## Query Inference + +```ts +import { LitElement } from 'lit' +import { createQueryController } from '@tanstack/lit-query' + +type Todo = { + id: number + title: string +} + +async function fetchTodos(): Promise { + const response = await fetch('/api/todos') + if (!response.ok) throw new Error('Failed to fetch todos') + return response.json() as Promise +} + +class TodosView extends LitElement { + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodos, + }) + + render() { + const query = this.todos() + // query.data is Todo[] | undefined until success is known. + } +} +``` + +Checking `isSuccess`, `isPending`, `isError`, or `status` narrows the result just like TanStack Query Core result types: + +```ts +const query = this.todos() + +if (query.isSuccess) { + query.data + // Todo[] +} +``` + +## Mutation Inference + +```ts +import { LitElement } from 'lit' +import { createMutationController } from '@tanstack/lit-query' + +type CreateTodoInput = { + title: string +} + +type Todo = { + id: number + title: string +} + +async function addTodo(input: CreateTodoInput): Promise { + const response = await fetch('/api/todos', { + method: 'POST', + body: JSON.stringify(input), + }) + if (!response.ok) throw new Error('Failed to create todo') + return response.json() as Promise +} + +class AddTodoButton extends LitElement { + private readonly mutation = createMutationController(this, { + mutationFn: addTodo, + }) + + private add() { + this.mutation.mutate({ title: 'Learn Lit Query' }) + } +} +``` + +## Extracting Options + +Use [`queryOptions`](./reference/functions/queryOptions.md), [`infiniteQueryOptions`](./reference/functions/infiniteQueryOptions.md), and [`mutationOptions`](./reference/functions/mutationOptions.md) when you want to share typed options between controllers and `QueryClient` calls. + +```ts +import { LitElement } from 'lit' +import { + QueryClient, + createQueryController, + queryOptions, +} from '@tanstack/lit-query' + +function todosOptions() { + return queryOptions({ + queryKey: ['todos'], + queryFn: fetchTodos, + staleTime: 5_000, + }) +} + +const queryClient = new QueryClient() + +class TodosView extends LitElement { + private readonly todos = createQueryController(this, todosOptions()) +} + +void queryClient.prefetchQuery(todosOptions()) +``` + +The branded `queryKey` returned from `queryOptions` also helps APIs like `queryClient.getQueryData` understand the data type. + +## Global Register Types + +Because `@tanstack/lit-query` re-exports TanStack Query Core, module augmentation is written against `@tanstack/lit-query` in Lit apps: + +```ts +import '@tanstack/lit-query' + +type AppQueryKey = ['todos' | 'projects', ...ReadonlyArray] + +declare module '@tanstack/lit-query' { + interface Register { + queryKey: AppQueryKey + mutationKey: AppQueryKey + } +} +``` + +See the generated reference for Lit-specific [option and result types](./reference/index.md). diff --git a/examples/lit/basic/README.md b/examples/lit/basic/README.md new file mode 100644 index 00000000000..6d79ad06c1a --- /dev/null +++ b/examples/lit/basic/README.md @@ -0,0 +1,5 @@ +# Example + +To run this example from the repo root: + +- `pnpm --dir examples/lit/basic run dev` diff --git a/examples/lit/basic/basic-query.html b/examples/lit/basic/basic-query.html new file mode 100644 index 00000000000..19de73348a1 --- /dev/null +++ b/examples/lit/basic/basic-query.html @@ -0,0 +1,12 @@ + + + + + + Lit Query Basic Example + + + + + + diff --git a/examples/lit/basic/config/port.d.ts b/examples/lit/basic/config/port.d.ts new file mode 100644 index 00000000000..12e9b85cc4d --- /dev/null +++ b/examples/lit/basic/config/port.d.ts @@ -0,0 +1 @@ +export const DEMO_PORT: number diff --git a/examples/lit/basic/config/port.js b/examples/lit/basic/config/port.js new file mode 100644 index 00000000000..bff39bff2ee --- /dev/null +++ b/examples/lit/basic/config/port.js @@ -0,0 +1,22 @@ +const DEFAULT_DEMO_PORT = 4173 +const envPort = process.env.DEMO_PORT + +function resolvePort() { + if (!envPort) { + return DEFAULT_DEMO_PORT + } + + const parsedPort = Number.parseInt(envPort, 10) + const isValidPort = + Number.isInteger(parsedPort) && parsedPort > 0 && parsedPort <= 65535 + + if (!isValidPort) { + throw new Error( + `Invalid DEMO_PORT "${envPort}". Expected an integer between 1 and 65535.`, + ) + } + + return parsedPort +} + +export const DEMO_PORT = resolvePort() diff --git a/examples/lit/basic/index.html b/examples/lit/basic/index.html new file mode 100644 index 00000000000..a2962e70475 --- /dev/null +++ b/examples/lit/basic/index.html @@ -0,0 +1,12 @@ + + + + + + TanStack Lit Query E2E Demo + + + + + + diff --git a/examples/lit/basic/lifecycle-contract.html b/examples/lit/basic/lifecycle-contract.html new file mode 100644 index 00000000000..5d0f5e5e5a1 --- /dev/null +++ b/examples/lit/basic/lifecycle-contract.html @@ -0,0 +1,12 @@ + + + + + + TanStack Lit Query Lifecycle Contract Fixture + + + + + + diff --git a/examples/lit/basic/mutation.html b/examples/lit/basic/mutation.html new file mode 100644 index 00000000000..1d5de500efb --- /dev/null +++ b/examples/lit/basic/mutation.html @@ -0,0 +1,12 @@ + + + + + + Lit Query Mutation Example + + + + + + diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json new file mode 100644 index 00000000000..969932dc834 --- /dev/null +++ b/examples/lit/basic/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/query-example-lit-basic", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tanstack/lit-query": "^0.1.0", + "@tanstack/query-core": "^5.99.0", + "lit": "^3.3.1" + }, + "devDependencies": { + "typescript": "5.8.3", + "vite": "^6.4.1" + } +} diff --git a/examples/lit/basic/src/basic-query.ts b/examples/lit/basic/src/basic-query.ts new file mode 100644 index 00000000000..5cc208d0174 --- /dev/null +++ b/examples/lit/basic/src/basic-query.ts @@ -0,0 +1,90 @@ +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createQueryController, +} from '@tanstack/lit-query' +import { fetchTodosFromServer, resetTodoApi } from './todoApi' +import type { TodosResponse } from './todoApi' + +resetTodoApi() + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { retry: false }, + }, +}) + +class BasicQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } +} + +customElements.define('basic-query-provider', BasicQueryProvider) + +class BasicQueryExample extends LitElement { + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodosFromServer, + }) + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + render() { + const query = this.todos() + return html` +
+

Basic Query Example

+

+ Status: ${query.status} +

+ + + ${query.isPending + ? html`

Loading...

` + : null} + ${query.isError + ? html`

Error: ${String(query.error)}

` + : null} + +
    + ${(query.data?.items ?? []).map( + (todo) => + html`
  • ${todo.title}
  • `, + )} +
+
+ ` + } +} + +customElements.define('basic-query-example', BasicQueryExample) + +class BasicQueryRoot extends LitElement { + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + render() { + return html` + + + + ` + } +} + +customElements.define('basic-query-root', BasicQueryRoot) diff --git a/examples/lit/basic/src/lifecycle-contract.ts b/examples/lit/basic/src/lifecycle-contract.ts new file mode 100644 index 00000000000..76f0027ba40 --- /dev/null +++ b/examples/lit/basic/src/lifecycle-contract.ts @@ -0,0 +1,223 @@ +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createQueryController, +} from '@tanstack/lit-query' + +type ContractProbeData = { + provider: 'provider-a' | 'provider-b' + payload: string +} + +type ContractTarget = 'orphan' | 'provider-a' | 'provider-b' + +const contractQueryKey = ['lifecycle-contract', 'provider-binding'] as const +let contractConsumerInstanceCount = 0 + +function createContractClient(data: ContractProbeData): QueryClient { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + staleTime: Number.POSITIVE_INFINITY, + }, + }, + }) + + client.setQueryData(contractQueryKey, data) + return client +} + +const contractClientA = createContractClient({ + provider: 'provider-a', + payload: 'provider-a cache', +}) + +const contractClientB = createContractClient({ + provider: 'provider-b', + payload: 'provider-b cache', +}) + +class ContractProviderA extends QueryClientProvider { + constructor() { + super() + this.client = contractClientA + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } +} + +if (!customElements.get('contract-provider-a')) { + customElements.define('contract-provider-a', ContractProviderA) +} + +class ContractProviderB extends QueryClientProvider { + constructor() { + super() + this.client = contractClientB + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } +} + +if (!customElements.get('contract-provider-b')) { + customElements.define('contract-provider-b', ContractProviderB) +} + +class LifecycleContractConsumer extends LitElement { + private readonly instanceId = ++contractConsumerInstanceCount + + private readonly query = createQueryController( + this, + { + queryKey: contractQueryKey, + queryFn: () => { + throw new Error( + 'Lifecycle contract fixture unexpectedly fetched from queryFn.', + ) + }, + retry: false, + staleTime: Number.POSITIVE_INFINITY, + }, + ) + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + private renderQueryState() { + try { + const query = this.query() + + return html` +
query: ${query.status}
+
+ provider: ${query.data?.provider ?? 'none'} +
+
+ payload: ${query.data?.payload ?? 'none'} +
+
+ error: ${query.error ? String(query.error) : 'none'} +
+ ` + } catch (error) { + const message = error instanceof Error ? error.message : String(error) + + return html` +
query: missing-client
+
provider: none
+
payload: none
+
error: ${message}
+ ` + } + } + + render() { + return html` +
instance: ${this.instanceId}
+ ${this.renderQueryState()} + ` + } +} + +if (!customElements.get('lifecycle-contract-consumer')) { + customElements.define( + 'lifecycle-contract-consumer', + LifecycleContractConsumer, + ) +} + +class LifecycleContractRoot extends LitElement { + static properties = { + currentTarget: { state: true }, + } + + private currentTarget: ContractTarget = 'orphan' + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + override firstUpdated(): void { + this.moveConsumerTo('orphan') + } + + moveConsumerTo(target: ContractTarget): void { + const consumer = this.ensureConsumer() + const destination = this.getContainer(target) + destination.appendChild(consumer) + this.currentTarget = target + this.requestUpdate() + } + + private ensureConsumer(): LifecycleContractConsumer { + const existing = this.querySelector( + 'lifecycle-contract-consumer', + ) + if (existing) { + return existing + } + + return document.createElement( + 'lifecycle-contract-consumer', + ) as LifecycleContractConsumer + } + + private getContainer(target: ContractTarget): HTMLElement { + const selector = + target === 'orphan' + ? '[data-contract-slot="orphan"]' + : target === 'provider-a' + ? 'contract-provider-a' + : 'contract-provider-b' + + const container = this.querySelector(selector) + if (!(container instanceof HTMLElement)) { + throw new Error( + `Lifecycle contract container not found for target "${target}".`, + ) + } + + return container + } + + render() { + return html` +
+

Lifecycle Contract Fixture

+

+ Exercises the same consumer across missing-provider and provider + switching flows. +

+
+ location: ${this.currentTarget} +
+ +
+

Orphan Zone

+
+
+ +
+

Provider A

+ +
+ +
+

Provider B

+ +
+
+ ` + } +} + +if (!customElements.get('lifecycle-contract-root')) { + customElements.define('lifecycle-contract-root', LifecycleContractRoot) +} diff --git a/examples/lit/basic/src/main.ts b/examples/lit/basic/src/main.ts new file mode 100644 index 00000000000..5f56e3be0f6 --- /dev/null +++ b/examples/lit/basic/src/main.ts @@ -0,0 +1,274 @@ +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createMutationController, + createQueryController, + useIsFetching, + useIsMutating, +} from '@tanstack/lit-query' +import { + addTodoOnServer, + failNextFetchRequest, + failNextMutationRequest, + fetchTodosFromServer, + resetTodoApi, +} from './todoApi' +import type { Todo, TodosResponse } from './todoApi' + +resetTodoApi() + +const demoQueryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + mutations: { + retry: false, + }, + }, +}) + +class DemoQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = demoQueryClient + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } +} + +customElements.define('demo-query-provider', DemoQueryProvider) + +class TanstackLitQueryDemo extends LitElement { + static properties = { + nextTodoTitle: { state: true }, + cacheSeedCount: { state: true }, + } + + private nextTodoTitle = 'Add mutation assertion' + private cacheSeedCount = 0 + + private readonly todosQuery = createQueryController( + this, + { + queryKey: ['todos'], + queryFn: fetchTodosFromServer, + }, + ) + + private readonly createTodoMutation = createMutationController< + Todo, + Error, + string + >(this, { + mutationKey: ['create-todo'], + mutationFn: addTodoOnServer, + onSuccess: (createdTodo) => { + demoQueryClient.setQueryData(['todos'], (existing) => { + if (!existing) { + return { + items: [createdTodo], + requestCount: 0, + source: 'cache', + } + } + + return { + items: [...existing.items, createdTodo], + requestCount: existing.requestCount, + source: 'cache', + } + }) + }, + }) + + private readonly isFetching = useIsFetching(this, { + queryKey: ['todos'], + }) + + private readonly isMutating = useIsMutating(this, { + mutationKey: ['create-todo'], + }) + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + private onTitleInput(event: Event): void { + const target = event.target as HTMLInputElement + this.nextTodoTitle = target.value + } + + private addTodo(): void { + const title = this.nextTodoTitle.trim() + if (!title) { + return + } + + this.createTodoMutation.mutate(title) + this.nextTodoTitle = '' + } + + private async invalidateTodos(): Promise { + await demoQueryClient.invalidateQueries({ queryKey: ['todos'] }) + } + + private seedCacheOnlyTodo(): void { + this.cacheSeedCount += 1 + + const seedTodo: Todo = { + id: 10_000 + this.cacheSeedCount, + title: `Seeded cache todo ${this.cacheSeedCount}`, + } + + demoQueryClient.setQueryData(['todos'], (existing) => { + if (!existing) { + return { + items: [seedTodo], + requestCount: 0, + source: 'cache', + } + } + + return { + items: [...existing.items, seedTodo], + requestCount: existing.requestCount, + source: 'cache', + } + }) + } + + private forceNextFetchFailure(): void { + failNextFetchRequest() + } + + private forceNextMutationFailure(): void { + failNextMutationRequest() + } + + private async resetDemoState(): Promise { + resetTodoApi() + this.cacheSeedCount = 0 + this.nextTodoTitle = 'Add mutation assertion' + + await demoQueryClient.resetQueries({ queryKey: ['todos'] }) + this.createTodoMutation.reset() + } + + render() { + const query = this.todosQuery() + const mutation = this.createTodoMutation() + const todos = query.data?.items ?? [] + + return html` +
+

TanStack Lit Query E2E Demo

+

Verifies integration between Lit, query-core, and this adapter.

+ +
+
query: ${query.status}
+
mutation: ${mutation.status}
+
fetches: ${this.isFetching()}
+
+ mutations: ${this.isMutating()} +
+
+ server-requests: ${query.data?.requestCount ?? 0} +
+
+ source: ${query.data?.source ?? 'none'} +
+
+ +
+ + + + + + +
+ +
+ + + +
+ + ${query.isError + ? html`
${String(query.error)}
` + : null} + ${mutation.isError + ? html`
+ ${String(mutation.error)} +
` + : null} + +
    + ${todos.map( + (todo) => + html`
  • ${todo.id}: ${todo.title}
  • `, + )} +
+
+ ` + } +} + +customElements.define('tanstack-lit-query-demo', TanstackLitQueryDemo) + +class DemoRoot extends LitElement { + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + render() { + return html` + + + + ` + } +} + +customElements.define('demo-root', DemoRoot) diff --git a/examples/lit/basic/src/mutation.ts b/examples/lit/basic/src/mutation.ts new file mode 100644 index 00000000000..422be660656 --- /dev/null +++ b/examples/lit/basic/src/mutation.ts @@ -0,0 +1,139 @@ +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createMutationController, + createQueryController, +} from '@tanstack/lit-query' +import { addTodoOnServer, fetchTodosFromServer, resetTodoApi } from './todoApi' +import type { Todo, TodosResponse } from './todoApi' + +resetTodoApi() + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { retry: false }, + mutations: { retry: false }, + }, +}) + +class MutationExampleProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } +} + +customElements.define('mutation-example-provider', MutationExampleProvider) + +class MutationExample extends LitElement { + static properties = { + nextTitle: { state: true }, + } + + private nextTitle = 'Created from mutation example' + + private readonly todos = createQueryController(this, { + queryKey: ['todos'], + queryFn: fetchTodosFromServer, + }) + + private readonly addTodo = createMutationController( + this, + { + mutationKey: ['create-todo'], + mutationFn: addTodoOnServer, + onSuccess: (created) => { + queryClient.setQueryData(['todos'], (existing) => { + if (!existing) { + return { + items: [created], + requestCount: 0, + source: 'cache', + } + } + + return { + items: [...existing.items, created], + requestCount: existing.requestCount, + source: 'cache', + } + }) + }, + }, + ) + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + private onInput(event: Event): void { + const target = event.target as HTMLInputElement + this.nextTitle = target.value + } + + private submit(): void { + const title = this.nextTitle.trim() + if (!title) return + this.addTodo.mutate(title) + this.nextTitle = '' + } + + render() { + const query = this.todos() + const mutation = this.addTodo() + const items = query.data?.items ?? [] + + return html` +
+

Mutation Example

+

+ Query: ${query.status} +

+

+ Mutation: ${mutation.status} +

+ + + + + +
    + ${items.map( + (todo) => + html`
  • ${todo.title}
  • `, + )} +
+
+ ` + } +} + +customElements.define('mutation-example', MutationExample) + +class MutationExampleRoot extends LitElement { + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + render() { + return html` + + + + ` + } +} + +customElements.define('mutation-example-root', MutationExampleRoot) diff --git a/examples/lit/basic/src/todoApi.ts b/examples/lit/basic/src/todoApi.ts new file mode 100644 index 00000000000..6ea4aa4dac1 --- /dev/null +++ b/examples/lit/basic/src/todoApi.ts @@ -0,0 +1,77 @@ +export type Todo = { + id: number + title: string +} + +export type TodosResponse = { + items: Todo[] + requestCount: number + source: 'server' | 'cache' +} + +let todos: Todo[] = [ + { id: 1, title: 'Ship lit-query alpha' }, + { id: 2, title: 'Write integration checks' }, +] + +let requestCount = 0 +let nextTodoId = 3 +let failNextFetch = false +let failNextMutation = false + +const delay = (ms: number): Promise => + new Promise((resolve) => { + setTimeout(resolve, ms) + }) + +export async function fetchTodosFromServer(): Promise { + await delay(90) + if (failNextFetch) { + failNextFetch = false + throw new Error('Forced fetch failure (test)') + } + requestCount += 1 + + return { + items: todos.map((todo) => ({ ...todo })), + requestCount, + source: 'server', + } +} + +export async function addTodoOnServer(title: string): Promise { + await delay(70) + if (failNextMutation) { + failNextMutation = false + throw new Error('Forced mutation failure (test)') + } + + const nextTodo: Todo = { + id: nextTodoId, + title, + } + + nextTodoId += 1 + todos = [...todos, nextTodo] + + return { ...nextTodo } +} + +export function resetTodoApi(): void { + todos = [ + { id: 1, title: 'Ship lit-query alpha' }, + { id: 2, title: 'Write integration checks' }, + ] + requestCount = 0 + nextTodoId = 3 + failNextFetch = false + failNextMutation = false +} + +export function failNextFetchRequest(): void { + failNextFetch = true +} + +export function failNextMutationRequest(): void { + failNextMutation = true +} diff --git a/examples/lit/basic/tsconfig.json b/examples/lit/basic/tsconfig.json new file mode 100644 index 00000000000..d6e16f3ca50 --- /dev/null +++ b/examples/lit/basic/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "lib": ["ES2022", "DOM"], + "strict": true, + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true, + "useDefineForClassFields": false + }, + "include": ["src/**/*.ts", "vite.config.ts"] +} diff --git a/examples/lit/basic/vite.config.ts b/examples/lit/basic/vite.config.ts new file mode 100644 index 00000000000..1d3028a8fb5 --- /dev/null +++ b/examples/lit/basic/vite.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite' +import { DEMO_PORT } from './config/port.js' + +export default defineConfig({ + server: { + host: '127.0.0.1', + port: DEMO_PORT, + strictPort: true, + }, + preview: { + host: '127.0.0.1', + port: DEMO_PORT, + strictPort: true, + }, +}) diff --git a/examples/lit/pagination/README.md b/examples/lit/pagination/README.md new file mode 100644 index 00000000000..695072f25d0 --- /dev/null +++ b/examples/lit/pagination/README.md @@ -0,0 +1,5 @@ +# Example + +To run this example from the repo root: + +- `pnpm --dir examples/lit/pagination run dev` diff --git a/examples/lit/pagination/config/ports.d.ts b/examples/lit/pagination/config/ports.d.ts new file mode 100644 index 00000000000..740d57d9863 --- /dev/null +++ b/examples/lit/pagination/config/ports.d.ts @@ -0,0 +1,2 @@ +export const DEMO_PORT: number +export const API_PORT: number diff --git a/examples/lit/pagination/config/ports.js b/examples/lit/pagination/config/ports.js new file mode 100644 index 00000000000..c4afc201ce2 --- /dev/null +++ b/examples/lit/pagination/config/ports.js @@ -0,0 +1,26 @@ +const DEFAULT_DEMO_PORT = 4183 +const DEFAULT_API_PORT = 4184 + +function readPortFromEnv(name, fallback) { + const rawValue = process.env[name] + if (!rawValue) { + return fallback + } + + const parsed = Number.parseInt(rawValue, 10) + const valid = Number.isInteger(parsed) && parsed >= 1 && parsed <= 65_535 + + if (!valid) { + throw new Error( + `Invalid ${name}="${rawValue}". Expected integer in [1, 65535].`, + ) + } + + return parsed +} + +export const DEMO_PORT = readPortFromEnv( + 'PAGINATION_DEMO_PORT', + DEFAULT_DEMO_PORT, +) +export const API_PORT = readPortFromEnv('PAGINATION_API_PORT', DEFAULT_API_PORT) diff --git a/examples/lit/pagination/index.html b/examples/lit/pagination/index.html new file mode 100644 index 00000000000..5d3fe8e8121 --- /dev/null +++ b/examples/lit/pagination/index.html @@ -0,0 +1,12 @@ + + + + + + TanStack Lit Query Pagination Demo + + + + + + diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json new file mode 100644 index 00000000000..7e4bf0c01d8 --- /dev/null +++ b/examples/lit/pagination/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/query-example-lit-pagination", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "node ./scripts/dev.mjs", + "build": "tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tanstack/lit-query": "^0.1.0", + "@tanstack/query-core": "^5.99.0", + "lit": "^3.3.1" + }, + "devDependencies": { + "typescript": "5.8.3", + "vite": "^6.4.1" + } +} diff --git a/examples/lit/pagination/scripts/dev.mjs b/examples/lit/pagination/scripts/dev.mjs new file mode 100644 index 00000000000..2a58a8da0fd --- /dev/null +++ b/examples/lit/pagination/scripts/dev.mjs @@ -0,0 +1,80 @@ +import { spawn } from 'node:child_process' +import { once } from 'node:events' +import { API_PORT } from '../config/ports.js' + +const viteCommand = process.platform === 'win32' ? 'vite.cmd' : 'vite' +const cwd = new URL('..', import.meta.url) + +function forwardOutput(prefix, stream, output) { + stream.on('data', (chunk) => { + output.write(`${prefix}${chunk}`) + }) +} + +function start(name, command, args, extraEnv = {}) { + const child = spawn(command, args, { + cwd, + stdio: ['ignore', 'pipe', 'pipe'], + env: { + ...process.env, + ...extraEnv, + }, + }) + + forwardOutput(`[${name}] `, child.stdout, process.stdout) + forwardOutput(`[${name}] `, child.stderr, process.stderr) + + return child +} + +async function stop(child) { + if (!child || child.exitCode !== null) { + return + } + + child.kill('SIGTERM') + await Promise.race([ + once(child, 'exit'), + new Promise((resolve) => setTimeout(resolve, 2000)), + ]) + + if (child.exitCode === null) { + child.kill('SIGKILL') + await Promise.race([ + once(child, 'exit'), + new Promise((resolve) => setTimeout(resolve, 2000)), + ]) + } +} + +async function run() { + const api = start('api', process.execPath, ['./server/index.mjs']) + const web = start('web', viteCommand, [], { + VITE_PAGINATION_API_PORT: String(API_PORT), + }) + + const shutdown = async () => { + await Promise.all([stop(web), stop(api)]) + } + + process.on('SIGINT', shutdown) + process.on('SIGTERM', shutdown) + + const [winner] = await Promise.race([ + once(api, 'exit').then(([code]) => ({ name: 'api', code })), + once(web, 'exit').then(([code]) => ({ name: 'web', code })), + ]) + + await shutdown() + + if (winner.code !== 0 && winner.code !== null) { + process.exitCode = winner.code + } else { + process.exitCode = 1 + } +} + +run().catch((error) => { + console.error(error) + process.exitCode = 1 +}) diff --git a/examples/lit/pagination/server/index.mjs b/examples/lit/pagination/server/index.mjs new file mode 100644 index 00000000000..b9722992326 --- /dev/null +++ b/examples/lit/pagination/server/index.mjs @@ -0,0 +1,340 @@ +import { createServer } from 'node:http' +import { API_PORT } from '../config/ports.js' + +const PAGE_SIZE = 10 +const TOTAL_PROJECTS = 50 +const JSON_CONTENT_TYPE = 'application/json' + +function createSeedProjects() { + return Array.from({ length: TOTAL_PROJECTS }, (_, index) => ({ + id: index + 1, + name: `Project ${index + 1}`, + owner: `Team ${(index % 5) + 1}`, + isFavorite: false, + })) +} + +let projects = createSeedProjects() +let nextProjectId = projects.length + 1 +let totalRequestCount = 0 +let totalMutationCount = 0 +let failNextMutation = false +const perPageRequestCount = new Map() + +function writeJson(res, status, body) { + const payload = JSON.stringify(body) + res.writeHead(status, { + 'content-type': 'application/json; charset=utf-8', + 'cache-control': 'no-store', + 'access-control-allow-origin': '*', + 'access-control-allow-methods': 'GET,POST,PATCH,OPTIONS', + 'access-control-allow-headers': 'content-type', + 'content-length': Buffer.byteLength(payload), + }) + res.end(payload) +} + +function parsePositiveInt(rawValue, fallback) { + if (rawValue == null || rawValue === '') { + return fallback + } + + const parsed = Number.parseInt(rawValue, 10) + if (!Number.isInteger(parsed) || parsed < 1) { + return undefined + } + + return parsed +} + +function parseNonNegativeInt(rawValue, fallback) { + if (rawValue == null || rawValue === '') { + return fallback + } + + const parsed = Number.parseInt(rawValue, 10) + if (!Number.isInteger(parsed) || parsed < 0) { + return undefined + } + + return parsed +} + +function resetState() { + projects = createSeedProjects() + nextProjectId = projects.length + 1 + totalRequestCount = 0 + totalMutationCount = 0 + failNextMutation = false + perPageRequestCount.clear() +} + +async function sleep(ms) { + if (!ms || ms <= 0) { + return + } + + await new Promise((resolve) => { + setTimeout(resolve, ms) + }) +} + +async function readJsonBody(req) { + const contentType = req.headers['content-type'] + if (!contentType || !contentType.startsWith(JSON_CONTENT_TYPE)) { + return { + ok: false, + status: 415, + error: 'Expected application/json request body', + } + } + + const chunks = [] + for await (const chunk of req) { + chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)) + } + + const raw = Buffer.concat(chunks).toString('utf8') + if (!raw) { + return { + ok: false, + status: 400, + error: 'Request body is required', + } + } + + try { + return { + ok: true, + value: JSON.parse(raw), + } + } catch { + return { + ok: false, + status: 400, + error: 'Request body must be valid JSON', + } + } +} + +function buildProjectsPage(page) { + const totalPages = Math.max(1, Math.ceil(projects.length / PAGE_SIZE)) + const boundedPage = Math.min(page, totalPages) + const startIndex = (boundedPage - 1) * PAGE_SIZE + const endIndex = startIndex + PAGE_SIZE + const items = projects.slice(startIndex, endIndex) + + totalRequestCount += 1 + const pageRequests = (perPageRequestCount.get(boundedPage) ?? 0) + 1 + perPageRequestCount.set(boundedPage, pageRequests) + + return { + page: boundedPage, + pageSize: PAGE_SIZE, + totalPages, + totalProjects: projects.length, + hasMore: boundedPage < totalPages, + projects: items, + requestMeta: { + totalRequestCount, + pageRequestCount: pageRequests, + totalMutationCount, + }, + } +} + +function maybeFailMutation(res) { + if (!failNextMutation) { + return false + } + + failNextMutation = false + writeJson(res, 500, { error: 'Forced mutation failure (test)' }) + return true +} + +function validateProjectName(name) { + if (typeof name !== 'string') { + return 'Project name must be a string' + } + + const trimmed = name.trim() + if (trimmed.length < 3) { + return 'Project name must be at least 3 characters' + } + + if (trimmed.length > 60) { + return 'Project name must be 60 characters or fewer' + } + + return null +} + +function validateOwner(owner) { + if (typeof owner !== 'string') { + return 'Owner must be a string' + } + + const trimmed = owner.trim() + if (!trimmed) { + return 'Owner is required' + } + + if (trimmed.length > 40) { + return 'Owner must be 40 characters or fewer' + } + + return null +} + +const server = createServer(async (req, res) => { + if (req.method === 'OPTIONS') { + res.writeHead(204, { + 'access-control-allow-origin': '*', + 'access-control-allow-methods': 'GET,POST,PATCH,OPTIONS', + 'access-control-allow-headers': 'content-type', + 'cache-control': 'no-store', + }) + res.end() + return + } + + if (!req.url) { + writeJson(res, 400, { error: 'Missing URL' }) + return + } + + const requestUrl = new URL(req.url, `http://127.0.0.1:${API_PORT}`) + + if (requestUrl.pathname === '/api/projects' && req.method === 'GET') { + const page = parsePositiveInt(requestUrl.searchParams.get('page'), 1) + if (!page) { + writeJson(res, 400, { error: 'Invalid page parameter' }) + return + } + + const delayMs = parseNonNegativeInt(requestUrl.searchParams.get('delay'), 0) + if (delayMs === undefined) { + writeJson(res, 400, { error: 'Invalid delay parameter' }) + return + } + + await sleep(delayMs) + + if (requestUrl.searchParams.get('error') === 'true') { + writeJson(res, 500, { + error: 'Forced server error (test)', + page, + }) + return + } + + writeJson(res, 200, buildProjectsPage(page)) + return + } + + if (requestUrl.pathname === '/api/projects' && req.method === 'POST') { + if (maybeFailMutation(res)) { + return + } + + const payload = await readJsonBody(req) + if (!payload.ok) { + writeJson(res, payload.status, { error: payload.error }) + return + } + + const nameError = validateProjectName(payload.value?.name) + if (nameError) { + writeJson(res, 422, { error: nameError }) + return + } + + const ownerError = validateOwner(payload.value?.owner) + if (ownerError) { + writeJson(res, 422, { error: ownerError }) + return + } + + const project = { + id: nextProjectId, + name: payload.value.name.trim(), + owner: payload.value.owner.trim(), + isFavorite: false, + } + + nextProjectId += 1 + totalMutationCount += 1 + projects = [project, ...projects] + + writeJson(res, 201, { + project, + mutationCount: totalMutationCount, + }) + return + } + + const patchMatch = requestUrl.pathname.match(/^\/api\/projects\/(\d+)$/) + if (patchMatch && req.method === 'PATCH') { + if (maybeFailMutation(res)) { + return + } + + const projectId = Number.parseInt(patchMatch[1], 10) + const projectIndex = projects.findIndex( + (project) => project.id === projectId, + ) + if (projectIndex === -1) { + writeJson(res, 404, { error: `Project ${projectId} was not found` }) + return + } + + const payload = await readJsonBody(req) + if (!payload.ok) { + writeJson(res, payload.status, { error: payload.error }) + return + } + + if (typeof payload.value?.isFavorite !== 'boolean') { + writeJson(res, 422, { error: 'isFavorite must be a boolean' }) + return + } + + const nextProject = { + ...projects[projectIndex], + isFavorite: payload.value.isFavorite, + } + + totalMutationCount += 1 + projects = projects.map((project, index) => + index === projectIndex ? nextProject : project, + ) + + writeJson(res, 200, { + project: nextProject, + mutationCount: totalMutationCount, + }) + return + } + + if ( + requestUrl.pathname === '/api/testing/fail-next-mutation' && + req.method === 'POST' + ) { + failNextMutation = true + writeJson(res, 200, { ok: true }) + return + } + + if (requestUrl.pathname === '/api/reset' && req.method === 'POST') { + resetState() + writeJson(res, 200, { ok: true }) + return + } + + writeJson(res, 404, { error: 'Not found' }) +}) + +server.listen(API_PORT, '127.0.0.1', () => { + console.log(`[api] listening on http://127.0.0.1:${API_PORT}`) +}) diff --git a/examples/lit/pagination/src/api.ts b/examples/lit/pagination/src/api.ts new file mode 100644 index 00000000000..8f4e1cd2091 --- /dev/null +++ b/examples/lit/pagination/src/api.ts @@ -0,0 +1,166 @@ +export type Project = { + id: number + name: string + owner: string + isFavorite: boolean +} + +export type ProjectsPageResponse = { + page: number + pageSize: number + totalPages: number + totalProjects: number + hasMore: boolean + projects: Project[] + requestMeta: { + totalRequestCount: number + pageRequestCount: number + totalMutationCount: number + } +} + +export type CreateProjectInput = { + name: string + owner: string +} + +export type ToggleProjectFavoriteInput = { + id: number + isFavorite: boolean +} + +export type ProjectMutationResponse = { + project: Project + mutationCount: number +} + +export type ProjectsQueryKey = readonly ['projects', number, number, boolean] + +const DEFAULT_API_PORT = 4184 +const configuredApiPort = Number.parseInt( + import.meta.env.VITE_PAGINATION_API_PORT ?? String(DEFAULT_API_PORT), + 10, +) +const API_PORT = Number.isInteger(configuredApiPort) + ? configuredApiPort + : DEFAULT_API_PORT +const API_BASE_URL = `http://127.0.0.1:${API_PORT}` + +function buildProjectsUrl( + page: number, + delayMs: number, + forceError: boolean, +): URL { + const url = new URL('/api/projects', API_BASE_URL) + url.searchParams.set('page', String(page)) + + if (delayMs > 0) { + url.searchParams.set('delay', String(delayMs)) + } + + if (forceError) { + url.searchParams.set('error', 'true') + } + + return url +} + +async function readJsonOrThrow( + response: Response, + fallbackMessage: string, +): Promise { + if (response.ok) { + return (await response.json()) as T + } + + const payload = (await response.json().catch(() => null)) as { + error?: string + } | null + + throw new Error( + payload && typeof payload === 'object' && 'error' in payload + ? String(payload.error ?? fallbackMessage) + : fallbackMessage, + ) +} + +async function requestJson( + url: URL, + init: RequestInit, + fallbackMessage: string, +): Promise { + const response = await fetch(url, init) + return readJsonOrThrow(response, fallbackMessage) +} + +export function projectsQueryKey( + page: number, + delayMs: number, + forceError: boolean, +): ProjectsQueryKey { + return ['projects', page, delayMs, forceError] as const +} + +export async function fetchProjectsPage( + page: number, + delayMs: number, + forceError: boolean, +): Promise { + const response = await fetch(buildProjectsUrl(page, delayMs, forceError)) + return readJsonOrThrow( + response, + `Failed to fetch projects page ${page}`, + ) +} + +export async function createProjectOnServer( + input: CreateProjectInput, +): Promise { + return requestJson( + new URL('/api/projects', API_BASE_URL), + { + method: 'POST', + headers: { + 'content-type': 'application/json', + }, + body: JSON.stringify(input), + }, + 'Failed to create project', + ) +} + +export async function toggleProjectFavoriteOnServer( + input: ToggleProjectFavoriteInput, +): Promise { + return requestJson( + new URL(`/api/projects/${input.id}`, API_BASE_URL), + { + method: 'PATCH', + headers: { + 'content-type': 'application/json', + }, + body: JSON.stringify({ isFavorite: input.isFavorite }), + }, + `Failed to update project ${input.id}`, + ) +} + +export async function armNextProjectMutationFailureOnServer(): Promise { + await requestJson<{ ok: true }>( + new URL('/api/testing/fail-next-mutation', API_BASE_URL), + { + method: 'POST', + }, + 'Failed to arm next mutation failure', + ) +} + +export async function resetProjectsApiState(): Promise { + await requestJson<{ ok: true }>( + new URL('/api/reset', API_BASE_URL), + { + method: 'POST', + }, + 'Failed to reset API state', + ) +} diff --git a/examples/lit/pagination/src/main.ts b/examples/lit/pagination/src/main.ts new file mode 100644 index 00000000000..b51b6f28641 --- /dev/null +++ b/examples/lit/pagination/src/main.ts @@ -0,0 +1,585 @@ +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createMutationController, + createQueryController, + keepPreviousData, +} from '@tanstack/lit-query' +import { + armNextProjectMutationFailureOnServer, + createProjectOnServer, + fetchProjectsPage, + projectsQueryKey, + resetProjectsApiState, + toggleProjectFavoriteOnServer, +} from './api' +import type { + CreateQueryOptions, + MutationResultAccessor, + QueryKey, + QueryResultAccessor, +} from '@tanstack/lit-query' +import type { + CreateProjectInput, + Project, + ProjectsPageResponse, + ToggleProjectFavoriteInput, +} from './api' + +type ProjectsCacheSnapshot = Array<[QueryKey, ProjectsPageResponse | undefined]> +type FavoriteMutationContext = { + snapshots: ProjectsCacheSnapshot +} + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + staleTime: 5_000, + }, + mutations: { + retry: false, + }, + }, +}) + +class PaginationQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } +} + +customElements.define('pagination-query-provider', PaginationQueryProvider) + +class PaginationDemo extends LitElement { + static properties = { + page: { state: true }, + delayMs: { state: true }, + forceErrorMode: { state: true }, + prefetchStatus: { state: true }, + resetError: { state: true }, + draftName: { state: true }, + draftOwner: { state: true }, + mutationControlStatus: { state: true }, + mutationControlError: { state: true }, + } + + private page = 1 + private delayMs = 250 + private forceErrorMode = false + private prefetchStatus = 'idle' + private resetError: string | undefined + private draftName = 'Platform Rollout' + private draftOwner = 'Team 6' + private mutationControlStatus = 'idle' + private mutationControlError: string | undefined + private lastAutoPrefetchPage = 0 + private readonly projectsQueryOptions: CreateQueryOptions< + ProjectsPageResponse, + Error + > + private readonly projectsQuery: QueryResultAccessor< + ProjectsPageResponse, + Error + > + private readonly createProjectMutation: MutationResultAccessor< + Project, + Error, + CreateProjectInput, + unknown + > + private readonly favoriteMutation: MutationResultAccessor< + Project, + Error, + ToggleProjectFavoriteInput, + FavoriteMutationContext + > + + constructor() { + super() + + this.projectsQueryOptions = { + queryKey: projectsQueryKey(this.page, this.delayMs, this.forceErrorMode), + queryFn: () => + fetchProjectsPage(this.page, this.delayMs, this.forceErrorMode), + placeholderData: keepPreviousData, + } + + this.projectsQuery = createQueryController( + this, + this.projectsQueryOptions, + ) + + this.createProjectMutation = createMutationController< + Project, + Error, + CreateProjectInput + >( + this, + { + mutationKey: ['create-project'], + mutationFn: async (input) => { + const response = await createProjectOnServer(input) + return response.project + }, + onMutate: () => { + this.mutationControlStatus = 'idle' + this.mutationControlError = undefined + }, + onSuccess: async () => { + this.page = 1 + this.lastAutoPrefetchPage = 0 + this.prefetchStatus = 'idle' + this.draftName = '' + this.draftOwner = 'Team 6' + this.syncProjectsQueryOptions() + await queryClient.invalidateQueries({ + queryKey: ['projects'], + refetchType: 'none', + }) + await this.projectsQuery.refetch() + }, + }, + queryClient, + ) + + this.favoriteMutation = createMutationController< + Project, + Error, + ToggleProjectFavoriteInput, + FavoriteMutationContext + >( + this, + { + mutationKey: ['toggle-project-favorite'], + mutationFn: async (input) => { + const response = await toggleProjectFavoriteOnServer(input) + return response.project + }, + onMutate: async (variables) => { + this.mutationControlStatus = 'idle' + this.mutationControlError = undefined + await queryClient.cancelQueries({ queryKey: ['projects'] }) + + const snapshots = queryClient.getQueriesData({ + queryKey: ['projects'], + }) + + for (const [key, existing] of snapshots) { + if (!existing) { + continue + } + + queryClient.setQueryData(key, { + ...existing, + projects: existing.projects.map((project) => + project.id === variables.id + ? { ...project, isFavorite: variables.isFavorite } + : project, + ), + }) + } + + return { snapshots } + }, + onError: (_error, _variables, context) => { + for (const [key, snapshot] of context?.snapshots ?? []) { + queryClient.setQueryData(key, snapshot) + } + }, + onSettled: async () => { + await queryClient.invalidateQueries({ queryKey: ['projects'] }) + }, + }, + queryClient, + ) + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + override updated(): void { + this.maybePrefetchNextPage() + } + + private syncProjectsQueryOptions(): void { + this.projectsQueryOptions.queryKey = projectsQueryKey( + this.page, + this.delayMs, + this.forceErrorMode, + ) + this.projectsQueryOptions.queryFn = () => + fetchProjectsPage(this.page, this.delayMs, this.forceErrorMode) + } + + private refetchForCurrentState(): void { + this.syncProjectsQueryOptions() + void this.projectsQuery.refetch() + } + + private async maybePrefetchNextPage(): Promise { + const query = this.projectsQuery() + const currentData = query.data + + if (!currentData || query.isPlaceholderData || !currentData.hasMore) { + return + } + + if (this.lastAutoPrefetchPage === currentData.page) { + return + } + + this.lastAutoPrefetchPage = currentData.page + await this.prefetchPage(currentData.page + 1) + } + + private onDelayInput(event: Event): void { + const target = event.target as HTMLInputElement + const nextValue = Number.parseInt(target.value, 10) + + if (!Number.isInteger(nextValue) || nextValue < 0) { + return + } + + this.delayMs = nextValue + this.refetchForCurrentState() + } + + private onErrorModeToggle(event: Event): void { + const target = event.target as HTMLInputElement + this.forceErrorMode = target.checked + this.refetchForCurrentState() + } + + private onDraftNameInput(event: Event): void { + const target = event.target as HTMLInputElement + this.draftName = target.value + } + + private onDraftOwnerInput(event: Event): void { + const target = event.target as HTMLInputElement + this.draftOwner = target.value + } + + private async prefetchPage(targetPage: number): Promise { + this.prefetchStatus = `pending:${targetPage}` + + try { + await queryClient.prefetchQuery({ + queryKey: projectsQueryKey( + targetPage, + this.delayMs, + this.forceErrorMode, + ), + queryFn: () => + fetchProjectsPage(targetPage, this.delayMs, this.forceErrorMode), + }) + this.prefetchStatus = `ready:${targetPage}` + } catch (error) { + this.prefetchStatus = `error:${String(error)}` + } + } + + private async prefetchNext(): Promise { + const query = this.projectsQuery() + const currentData = query.data + + if (!currentData?.hasMore) { + this.prefetchStatus = 'skipped:no-next-page' + return + } + + await this.prefetchPage(currentData.page + 1) + } + + private goToPreviousPage(): void { + if (this.page > 1) { + this.page -= 1 + this.refetchForCurrentState() + } + } + + private goToNextPage(): void { + const currentData = this.projectsQuery().data + if (!currentData?.hasMore) { + return + } + + this.page += 1 + this.refetchForCurrentState() + } + + private async resetDemoState(): Promise { + this.resetError = undefined + + try { + await resetProjectsApiState() + this.page = 1 + this.delayMs = 250 + this.forceErrorMode = false + this.prefetchStatus = 'idle' + this.resetError = undefined + this.draftName = 'Platform Rollout' + this.draftOwner = 'Team 6' + this.mutationControlStatus = 'idle' + this.mutationControlError = undefined + this.lastAutoPrefetchPage = 0 + this.syncProjectsQueryOptions() + this.createProjectMutation.reset() + this.favoriteMutation.reset() + await queryClient.resetQueries({ queryKey: ['projects'] }) + await this.projectsQuery.refetch() + } catch (error) { + this.resetError = String(error) + } + } + + private submitCreateProject(): void { + const name = this.draftName.trim() + const owner = this.draftOwner.trim() + + if (!name || !owner) { + return + } + + this.createProjectMutation.mutate({ name, owner }) + } + + private toggleFavorite(project: Project): void { + this.favoriteMutation.mutate({ + id: project.id, + isFavorite: !project.isFavorite, + }) + } + + private async armNextMutationFailure(): Promise { + this.mutationControlError = undefined + + try { + await armNextProjectMutationFailureOnServer() + this.mutationControlStatus = 'armed' + } catch (error) { + this.mutationControlStatus = 'error' + this.mutationControlError = String(error) + } + } + + render() { + const query = this.projectsQuery() + const projects = query.data?.projects ?? [] + const hasMore = query.data?.hasMore ?? false + const createProject = this.createProjectMutation() + const favoriteProject = this.favoriteMutation() + + return html` +
+

TanStack Lit Query Pagination Demo

+

+ Pagination + mutation demo with optimistic favorite toggles, + invalidation, and deterministic server failures. +

+ +
+
query: ${query.status}
+
+ isFetching: ${query.isFetching ? 'yes' : 'no'} +
+
+ isPlaceholderData: ${query.isPlaceholderData ? 'yes' : 'no'} +
+
page: ${this.page}
+
+ response-page: ${query.data?.page ?? '-'} +
+
has-more: ${hasMore ? 'yes' : 'no'}
+
+ total-projects: ${query.data?.totalProjects ?? 0} +
+
+ total-requests: ${query.data?.requestMeta.totalRequestCount ?? 0} +
+
+ page-requests: ${query.data?.requestMeta.pageRequestCount ?? 0} +
+
+ total-mutations: ${query.data?.requestMeta.totalMutationCount ?? 0} +
+
+ prefetch: ${this.prefetchStatus} +
+
+ + ${query.isError + ? html`

${String(query.error)}

` + : null} + ${this.resetError + ? html`

${this.resetError}

` + : null} + +
+ + + + + + + + + + +
+ mutation-control: ${this.mutationControlStatus} +
+ ${this.mutationControlError + ? html`
+ ${this.mutationControlError} +
` + : null} +
+ +
+
+ create-mutation: ${createProject.status} +
+ ${createProject.isError + ? html`
+ ${String(createProject.error)} +
` + : null} + + + + + + + + +
+ +
+
+ favorite-mutation: ${favoriteProject.status} +
+ ${favoriteProject.isError + ? html`
+ ${String(favoriteProject.error)} +
` + : null} +
+ +
+ + +
+ +
    + ${projects.map( + (project) => html` +
  • + ${project.id}: ${project.name} (${project.owner}) + ${project.isFavorite ? 'favorite' : 'standard'} + +
  • + `, + )} +
+
+ ` + } +} + +customElements.define('pagination-demo', PaginationDemo) + +class PaginationDemoRoot extends LitElement { + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + render() { + return html` + + + + ` + } +} + +customElements.define('pagination-demo-root', PaginationDemoRoot) diff --git a/examples/lit/pagination/src/vite-env.d.ts b/examples/lit/pagination/src/vite-env.d.ts new file mode 100644 index 00000000000..3d865d7345e --- /dev/null +++ b/examples/lit/pagination/src/vite-env.d.ts @@ -0,0 +1,9 @@ +/// + +interface ImportMetaEnv { + readonly VITE_PAGINATION_API_PORT?: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/examples/lit/pagination/tsconfig.json b/examples/lit/pagination/tsconfig.json new file mode 100644 index 00000000000..d6e16f3ca50 --- /dev/null +++ b/examples/lit/pagination/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "lib": ["ES2022", "DOM"], + "strict": true, + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true, + "useDefineForClassFields": false + }, + "include": ["src/**/*.ts", "vite.config.ts"] +} diff --git a/examples/lit/pagination/vite.config.ts b/examples/lit/pagination/vite.config.ts new file mode 100644 index 00000000000..371006b81cf --- /dev/null +++ b/examples/lit/pagination/vite.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite' +import { DEMO_PORT } from './config/ports.js' + +export default defineConfig({ + server: { + host: '127.0.0.1', + port: DEMO_PORT, + strictPort: true, + }, + preview: { + host: '127.0.0.1', + port: DEMO_PORT, + strictPort: true, + }, +}) diff --git a/examples/lit/ssr/README.md b/examples/lit/ssr/README.md new file mode 100644 index 00000000000..3c538d78f13 --- /dev/null +++ b/examples/lit/ssr/README.md @@ -0,0 +1,5 @@ +# Example + +To run this example from the repo root: + +- `pnpm --dir examples/lit/ssr run dev` diff --git a/examples/lit/ssr/config/ports.d.ts b/examples/lit/ssr/config/ports.d.ts new file mode 100644 index 00000000000..23d3eea7080 --- /dev/null +++ b/examples/lit/ssr/config/ports.d.ts @@ -0,0 +1,5 @@ +export const SSR_HOST: string +export const SSR_PORT: number +export const SSR_CONNECT_HOST: string +export const SSR_BASE_URL: string +export const SSR_PUBLIC_ORIGIN: string diff --git a/examples/lit/ssr/config/ports.js b/examples/lit/ssr/config/ports.js new file mode 100644 index 00000000000..a2872fdd9e4 --- /dev/null +++ b/examples/lit/ssr/config/ports.js @@ -0,0 +1,63 @@ +const DEFAULT_SSR_HOST = '127.0.0.1' +const DEFAULT_SSR_PORT = 4174 + +function normalizeUrlHost(host) { + if (host.includes(':') && !host.startsWith('[') && !host.endsWith(']')) { + return `[${host}]` + } + + return host +} + +function resolvePort(name, fallback) { + const value = process.env[name] + if (!value) { + return fallback + } + + const parsedPort = Number.parseInt(value, 10) + const isValidPort = + Number.isInteger(parsedPort) && parsedPort > 0 && parsedPort <= 65_535 + + if (!isValidPort) { + throw new Error( + `Invalid ${name} "${value}". Expected an integer between 1 and 65535.`, + ) + } + + return parsedPort +} + +export const SSR_PORT = resolvePort('SSR_PORT', DEFAULT_SSR_PORT) +export const SSR_HOST = process.env.SSR_HOST ?? DEFAULT_SSR_HOST + +function resolveConnectHost(host) { + if (host === '0.0.0.0') { + return '127.0.0.1' + } + + if (host === '::') { + return '[::1]' + } + + return normalizeUrlHost(host) +} + +function resolvePublicOrigin(host, port) { + const explicitOrigin = process.env.SSR_PUBLIC_ORIGIN + if (explicitOrigin) { + const url = new URL(explicitOrigin) + return url.origin + } + + const explicitPublicHost = process.env.SSR_PUBLIC_HOST + const publicHost = explicitPublicHost + ? normalizeUrlHost(explicitPublicHost) + : resolveConnectHost(host) + + return `http://${publicHost}:${port}` +} + +export const SSR_CONNECT_HOST = resolveConnectHost(SSR_HOST) +export const SSR_BASE_URL = `http://${SSR_CONNECT_HOST}:${SSR_PORT}` +export const SSR_PUBLIC_ORIGIN = resolvePublicOrigin(SSR_HOST, SSR_PORT) diff --git a/examples/lit/ssr/index.html b/examples/lit/ssr/index.html new file mode 100644 index 00000000000..7632b49fba0 --- /dev/null +++ b/examples/lit/ssr/index.html @@ -0,0 +1,15 @@ + + + + + + Lit Query SSR Example + + + __SSR_APP_HTML__ + + + + diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json new file mode 100644 index 00000000000..6b2928b5850 --- /dev/null +++ b/examples/lit/ssr/package.json @@ -0,0 +1,22 @@ +{ + "name": "@tanstack/query-example-lit-ssr", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "node ./scripts/dev.mjs", + "build": "tsc --noEmit && vite build" + }, + "dependencies": { + "@lit-labs/ssr": "^3.3.0", + "@tanstack/lit-query": "^0.1.0", + "@tanstack/query-core": "^5.99.0", + "lit": "^3.3.1" + }, + "devDependencies": { + "@lit-labs/ssr-client": "^1.1.7", + "tsx": "^4.19.0", + "typescript": "5.8.3", + "vite": "^6.4.1" + } +} diff --git a/examples/lit/ssr/scripts/dev.mjs b/examples/lit/ssr/scripts/dev.mjs new file mode 100644 index 00000000000..0280720b806 --- /dev/null +++ b/examples/lit/ssr/scripts/dev.mjs @@ -0,0 +1,51 @@ +import { spawn, spawnSync } from 'node:child_process' +import { once } from 'node:events' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' + +const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm' +const tsxCommand = process.platform === 'win32' ? 'tsx.cmd' : 'tsx' +const cwd = resolve(dirname(fileURLToPath(import.meta.url)), '..') + +function runBuild() { + const result = spawnSync(npmCommand, ['run', 'build'], { + cwd, + stdio: 'inherit', + }) + + if (result.status !== 0) { + process.exit(result.status ?? 1) + } +} + +async function run() { + runBuild() + + const server = spawn(tsxCommand, ['./server/index.mjs'], { + cwd, + stdio: 'inherit', + }) + + const stopServer = (signal) => { + if (server.exitCode === null) { + server.kill(signal) + } + } + + process.on('SIGINT', () => stopServer('SIGINT')) + process.on('SIGTERM', () => stopServer('SIGTERM')) + + const outcome = await Promise.race([ + once(server, 'error').then(([error]) => { + throw error + }), + once(server, 'exit').then(([code]) => ({ code })), + ]) + + process.exitCode = outcome.code ?? 0 +} + +run().catch((error) => { + console.error(error) + process.exitCode = 1 +}) diff --git a/examples/lit/ssr/server/index.mjs b/examples/lit/ssr/server/index.mjs new file mode 100644 index 00000000000..3c80d93829e --- /dev/null +++ b/examples/lit/ssr/server/index.mjs @@ -0,0 +1,308 @@ +import { createServer } from 'node:http' +import { readFile } from 'node:fs/promises' +import { dirname, extname, resolve, sep } from 'node:path' +import { setTimeout as sleep } from 'node:timers/promises' +import { fileURLToPath } from 'node:url' +import { render } from '@lit-labs/ssr' +import { collectResult } from '@lit-labs/ssr/lib/render-result.js' +import { html } from 'lit' +import { QueryClient, dehydrate } from '@tanstack/lit-query' +import { + SSR_BASE_URL, + SSR_HOST, + SSR_PORT, + SSR_PUBLIC_ORIGIN, +} from '../config/ports.js' +import { + DATA_QUERY_KEY, + DEFAULT_MESSAGE, + QUERY_STALE_TIME, + createDataQueryOptions, +} from '../src/api.js' +import { + getSsrQueryControllerCreationCount, + resetSsrQueryControllerCreationCount, +} from '../src/app.ts' + +const serverDir = dirname(fileURLToPath(import.meta.url)) +const distDir = resolve(serverDir, '../dist') +const templatePath = resolve(distDir, 'index.html') + +const contentTypes = { + '.css': 'text/css; charset=utf-8', + '.js': 'text/javascript; charset=utf-8', + '.json': 'application/json; charset=utf-8', + '.svg': 'image/svg+xml; charset=utf-8', +} + +let requestCount = 0 +let failNextDataRequest = false +let nextDataDelayMs = 0 + +const apiCorsHeaders = { + 'access-control-allow-headers': 'content-type', + 'access-control-allow-methods': 'GET,POST,OPTIONS', + 'access-control-allow-origin': '*', +} + +function createBrowserQueryClient() { + return new QueryClient({ + defaultOptions: { + queries: { + retry: false, + staleTime: QUERY_STALE_TIME, + }, + }, + }) +} + +function nextDataResponse() { + requestCount += 1 + return { + message: DEFAULT_MESSAGE, + requestCount, + servedAt: new Date().toISOString(), + } +} + +function resetApiState() { + requestCount = 0 + failNextDataRequest = false + nextDataDelayMs = 0 +} + +function parseNonNegativeDelayMs(value) { + const parsedDelayMs = Number.parseInt(value ?? '', 10) + if (!Number.isInteger(parsedDelayMs) || parsedDelayMs < 0) { + return undefined + } + + return parsedDelayMs +} + +async function consumeNextDataDelay() { + const delayMs = nextDataDelayMs + nextDataDelayMs = 0 + + if (delayMs > 0) { + await sleep(delayMs) + } +} + +function consumeFailNextDataRequest() { + if (!failNextDataRequest) { + return false + } + + failNextDataRequest = false + return true +} + +function writeBuffer(res, statusCode, contentType, payload, extraHeaders = {}) { + res.writeHead(statusCode, { + 'cache-control': 'no-store', + 'content-length': payload.byteLength, + 'content-type': contentType, + ...extraHeaders, + }) + res.end(payload) +} + +function writeHtml(res, statusCode, body, extraHeaders = {}) { + const payload = Buffer.from(body) + writeBuffer( + res, + statusCode, + 'text/html; charset=utf-8', + payload, + extraHeaders, + ) +} + +function writeJson(res, statusCode, body) { + const payload = Buffer.from(JSON.stringify(body)) + writeBuffer( + res, + statusCode, + 'application/json; charset=utf-8', + payload, + apiCorsHeaders, + ) +} + +function serializeJsonForHtml(value) { + return JSON.stringify(value).replace(/[<>&\u2028\u2029]/g, (character) => { + switch (character) { + case '<': + return '\\u003c' + case '>': + return '\\u003e' + case '&': + return '\\u0026' + case '\u2028': + return '\\u2028' + case '\u2029': + return '\\u2029' + default: + return character + } + }) +} + +async function readTemplate() { + try { + return await readFile(templatePath, 'utf8') + } catch (error) { + if (error && typeof error === 'object' && 'code' in error) { + throw new Error( + 'Missing built client assets. Run "pnpm --dir examples/lit/ssr run build" from the repo root first.', + ) + } + + throw error + } +} + +async function serveAsset(pathname, res) { + if (!pathname.startsWith('/assets/')) { + return false + } + + const assetPath = resolve(distDir, `.${pathname}`) + const distRootPrefix = `${distDir}${sep}` + if (!assetPath.startsWith(distRootPrefix)) { + return false + } + + try { + const file = await readFile(assetPath) + const contentType = + contentTypes[extname(assetPath)] ?? 'application/octet-stream' + writeBuffer(res, 200, contentType, file) + return true + } catch { + return false + } +} + +async function renderPage(res) { + const queryClient = createBrowserQueryClient() + resetSsrQueryControllerCreationCount(queryClient) + await queryClient.prefetchQuery(createDataQueryOptions(SSR_PUBLIC_ORIGIN)) + + const prefetchedQueryState = queryClient.getQueryState(DATA_QUERY_KEY) + if (prefetchedQueryState?.status !== 'success') { + throw new Error( + 'SSR prefetch did not complete successfully. Refusing to render loading HTML.', + ) + } + + const appHtml = await collectResult( + render( + html``, + ), + ) + + const dehydratedState = dehydrate(queryClient) + const controllerCreationCount = + getSsrQueryControllerCreationCount(queryClient) + if (controllerCreationCount < 1) { + throw new Error('SSR render did not exercise createQueryController.') + } + + const template = await readTemplate() + const htmlDocument = template + .replace('__SSR_APP_HTML__', appHtml) + .replace('__QUERY_STATE_JSON__', serializeJsonForHtml(dehydratedState)) + + writeHtml(res, 200, htmlDocument, { + 'x-ssr-query-controller-created': String(controllerCreationCount), + }) +} + +const server = createServer(async (req, res) => { + const requestUrl = new URL(req.url ?? '/', SSR_BASE_URL) + const method = req.method ?? 'GET' + + if (method === 'OPTIONS' && requestUrl.pathname.startsWith('/api/')) { + res.writeHead(204, { + 'cache-control': 'no-store', + ...apiCorsHeaders, + }) + res.end() + return + } + + if (method === 'GET' && requestUrl.pathname === '/api/data') { + await consumeNextDataDelay() + + if (consumeFailNextDataRequest()) { + writeJson(res, 500, { error: 'Forced data failure (test)' }) + return + } + + writeJson(res, 200, nextDataResponse()) + return + } + + if (method === 'GET' && requestUrl.pathname === '/api/request-count') { + writeJson(res, 200, { count: requestCount }) + return + } + + if (method === 'POST' && requestUrl.pathname === '/api/reset') { + resetApiState() + writeJson(res, 200, { ok: true }) + return + } + + if (method === 'POST' && requestUrl.pathname === '/api/test/fail-next-data') { + failNextDataRequest = true + writeJson(res, 200, { ok: true }) + return + } + + if ( + method === 'POST' && + requestUrl.pathname === '/api/test/delay-next-data' + ) { + const delayMs = parseNonNegativeDelayMs(requestUrl.searchParams.get('ms')) + if (delayMs === undefined) { + writeJson(res, 400, { error: 'Invalid ms query parameter.' }) + return + } + + nextDataDelayMs = delayMs + writeJson(res, 200, { ok: true, delayMs }) + return + } + + if (method === 'GET' && requestUrl.pathname === '/') { + try { + await renderPage(res) + } catch (error) { + console.error('[ssr] render failed:', error) + writeHtml( + res, + 500, + 'SSR render failed.', + ) + } + return + } + + if (method === 'GET' && (await serveAsset(requestUrl.pathname, res))) { + return + } + + writeJson(res, 404, { error: 'Not found' }) +}) + +server.listen(SSR_PORT, SSR_HOST, () => { + console.log( + `[ssr] listening on ${SSR_BASE_URL} (public origin ${SSR_PUBLIC_ORIGIN})`, + ) +}) diff --git a/examples/lit/ssr/src/api.ts b/examples/lit/ssr/src/api.ts new file mode 100644 index 00000000000..eb9656de655 --- /dev/null +++ b/examples/lit/ssr/src/api.ts @@ -0,0 +1,69 @@ +import type { CreateQueryOptions } from '@tanstack/lit-query' + +export const DATA_QUERY_KEY = ['ssr-example-data'] as const +export const DEFAULT_MESSAGE = 'Hello from SSR!' +export const QUERY_STALE_TIME = 30_000 + +export type DataResponse = { + message: string + requestCount: number + servedAt: string +} + +function resolveApiUrl(pathname: string, apiBaseUrl: string): string { + if (!apiBaseUrl) { + return pathname + } + + return new URL(pathname, apiBaseUrl).toString() +} + +async function readJson(response: Response): Promise { + let payload: TResponse | { error?: string } | null = null + + try { + payload = (await response.json()) as TResponse | { error?: string } + } catch { + if (response.ok) { + throw new Error( + `Failed to parse JSON response with status ${response.status}.`, + ) + } + } + + if (!response.ok) { + const errorDetail = + payload && + typeof payload === 'object' && + 'error' in payload && + typeof payload.error === 'string' + ? `: ${payload.error}` + : '' + + throw new Error( + `Request failed with status ${response.status}${errorDetail}`, + ) + } + + return payload as TResponse +} + +export function createDataQueryOptions(apiBaseUrl = '') { + return { + queryKey: DATA_QUERY_KEY, + queryFn: async ({ signal }) => { + const response = await fetch(resolveApiUrl('/api/data', apiBaseUrl), { + signal, + }) + return readJson(response) + }, + retry: false, + staleTime: QUERY_STALE_TIME, + } satisfies CreateQueryOptions< + DataResponse, + Error, + DataResponse, + DataResponse, + typeof DATA_QUERY_KEY + > +} diff --git a/examples/lit/ssr/src/app.ts b/examples/lit/ssr/src/app.ts new file mode 100644 index 00000000000..903bbcb2c9c --- /dev/null +++ b/examples/lit/ssr/src/app.ts @@ -0,0 +1,167 @@ +import { LitElement, css, html } from 'lit' +import { + createQueryController, + type QueryClient, + type QueryResultAccessor, +} from '@tanstack/lit-query' +import { createDataQueryOptions, type DataResponse } from './api.js' + +const ssrQueryControllerCreationCounts = new WeakMap() + +function incrementSsrQueryControllerCreationCount( + queryClient: QueryClient, +): void { + ssrQueryControllerCreationCounts.set( + queryClient, + (ssrQueryControllerCreationCounts.get(queryClient) ?? 0) + 1, + ) +} + +export function resetSsrQueryControllerCreationCount( + queryClient: QueryClient, +): void { + ssrQueryControllerCreationCounts.set(queryClient, 0) +} + +export function getSsrQueryControllerCreationCount( + queryClient: QueryClient, +): number { + return ssrQueryControllerCreationCounts.get(queryClient) ?? 0 +} + +export class SsrApp extends LitElement { + static properties = { + apiBaseUrl: { attribute: 'api-base-url' }, + queryClient: { attribute: false }, + } + + static styles = css` + :host { + color: #1f2937; + display: block; + font-family: + ui-sans-serif, + system-ui, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + sans-serif; + max-width: 32rem; + padding: 1.5rem; + } + + article { + background: #ffffff; + border: 1px solid #d1d5db; + border-radius: 1rem; + box-shadow: 0 12px 40px rgba(15, 23, 42, 0.08); + padding: 1.25rem; + } + + h1 { + font-size: 1.25rem; + margin: 0 0 1rem; + } + + p { + margin: 0.5rem 0; + } + + button { + background: #111827; + border: none; + border-radius: 999px; + color: #ffffff; + cursor: pointer; + font: inherit; + margin-top: 1rem; + padding: 0.65rem 1rem; + } + + button[disabled] { + cursor: wait; + opacity: 0.65; + } + ` + + apiBaseUrl = '' + queryClient?: QueryClient + + private dataQuery?: QueryResultAccessor + + protected override willUpdate(): void { + if (!this.dataQuery && this.queryClient) { + incrementSsrQueryControllerCreationCount(this.queryClient) + this.dataQuery = createQueryController( + this, + createDataQueryOptions(this.apiBaseUrl), + this.queryClient, + ) + } + } + + private readonly handleRefetch = (): void => { + void this.dataQuery?.refetch() + } + + protected override render() { + if (!this.dataQuery) { + return html` +
+

Lit Query SSR

+

Loading...

+
+ ` + } + + const query = this.dataQuery() + + if (query.isPending) { + return html` +
+

Lit Query SSR

+

Loading...

+
+ ` + } + + if (query.isError) { + return html` +
+

Lit Query SSR

+

Error

+

${query.error?.message}

+
+ ` + } + + return html` +
+

Lit Query SSR

+

${query.isFetching ? 'Refreshing' : 'Ready'}

+

${query.data.message}

+

+ Request count: ${query.data.requestCount} +

+

Served at: ${query.data.servedAt}

+ +
+ ` + } +} + +if (!customElements.get('ssr-app')) { + customElements.define('ssr-app', SsrApp) +} + +declare global { + interface HTMLElementTagNameMap { + 'ssr-app': SsrApp + } +} diff --git a/examples/lit/ssr/src/main.ts b/examples/lit/ssr/src/main.ts new file mode 100644 index 00000000000..6c8b52e9e71 --- /dev/null +++ b/examples/lit/ssr/src/main.ts @@ -0,0 +1,63 @@ +import '@lit-labs/ssr-client/lit-element-hydrate-support.js' + +import { QueryClient, hydrate, type DehydratedState } from '@tanstack/lit-query' +import { QUERY_STALE_TIME } from './api.js' + +type HydratableSsrApp = HTMLElement & { + queryClient?: QueryClient +} + +function createQueryClient(): QueryClient { + return new QueryClient({ + defaultOptions: { + queries: { + retry: false, + staleTime: QUERY_STALE_TIME, + }, + }, + }) +} + +function readDehydratedState(): DehydratedState { + const stateElement = document.getElementById('__QUERY_STATE__') + if (!stateElement) { + throw new Error('Missing dehydrated state script.') + } + + const stateText = stateElement.textContent?.trim() ?? 'null' + return JSON.parse(stateText) as DehydratedState +} + +async function bootstrap() { + if (document.readyState === 'loading') { + await new Promise((resolve) => { + document.addEventListener('DOMContentLoaded', () => resolve(), { + once: true, + }) + }) + } + + const appElement = document.querySelector( + 'ssr-app', + ) as HydratableSsrApp | null + if (!appElement) { + throw new Error('Expected the SSR app element to exist before hydration.') + } + + const queryClient = createQueryClient() + queryClient.mount() + hydrate(queryClient, readDehydratedState()) + appElement.queryClient = queryClient + + window.addEventListener( + 'pagehide', + () => { + queryClient.unmount() + }, + { once: true }, + ) + + await import('./app.js') +} + +void bootstrap() diff --git a/examples/lit/ssr/tsconfig.json b/examples/lit/ssr/tsconfig.json new file mode 100644 index 00000000000..84271844ba9 --- /dev/null +++ b/examples/lit/ssr/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "lib": ["ES2022", "DOM"], + "strict": true, + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true, + "useDefineForClassFields": false + }, + "include": ["config/**/*.d.ts", "src/**/*.ts", "vite.config.ts"] +} diff --git a/examples/lit/ssr/vite.config.ts b/examples/lit/ssr/vite.config.ts new file mode 100644 index 00000000000..e313e6f288d --- /dev/null +++ b/examples/lit/ssr/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import { SSR_PORT } from './config/ports.js' + +export default defineConfig({ + build: { + target: 'es2022', + }, + server: { + host: '127.0.0.1', + port: SSR_PORT, + strictPort: true, + }, + preview: { + host: '127.0.0.1', + port: SSR_PORT, + strictPort: true, + }, +}) diff --git a/integrations/lit-vite/index.html b/integrations/lit-vite/index.html new file mode 100644 index 00000000000..b3974a125e0 --- /dev/null +++ b/integrations/lit-vite/index.html @@ -0,0 +1,13 @@ + + + + + Vite + Lit + + + + + + + + diff --git a/integrations/lit-vite/package.json b/integrations/lit-vite/package.json new file mode 100644 index 00000000000..f5e040bc08a --- /dev/null +++ b/integrations/lit-vite/package.json @@ -0,0 +1,17 @@ +{ + "name": "lit-vite", + "private": true, + "type": "module", + "scripts": { + "build": "tsc --noEmit && vite build" + }, + "dependencies": { + "@tanstack/lit-query": "workspace:*", + "@tanstack/query-core": "workspace:*", + "lit": "^3.3.1", + "vite": "^6.4.1" + }, + "devDependencies": { + "typescript": "5.8.3" + } +} diff --git a/integrations/lit-vite/src/main.ts b/integrations/lit-vite/src/main.ts new file mode 100644 index 00000000000..5da031300e8 --- /dev/null +++ b/integrations/lit-vite/src/main.ts @@ -0,0 +1,56 @@ +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createQueryController, +} from '@tanstack/lit-query' + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, +}) + +class LitQueryProvider extends QueryClientProvider { + constructor() { + super() + this.client = queryClient + } + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } +} + +class LitQueryApp extends LitElement { + private readonly query = createQueryController(this, { + queryKey: ['test'], + queryFn: async () => { + await new Promise((resolve) => setTimeout(resolve, 100)) + return 'Success' + }, + }) + + protected override createRenderRoot(): HTMLElement | DocumentFragment { + return this + } + + render() { + const query = this.query() + + if (query.isPending) { + return html`
Loading...
` + } + + if (query.isError) { + return html`
An error has occurred!
` + } + + return html`
${query.data}
` + } +} + +customElements.define('lit-query-provider', LitQueryProvider) +customElements.define('lit-query-app', LitQueryApp) diff --git a/integrations/lit-vite/tsconfig.json b/integrations/lit-vite/tsconfig.json new file mode 100644 index 00000000000..f223644e2f2 --- /dev/null +++ b/integrations/lit-vite/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "lib": ["ES2022", "DOM"], + "strict": true, + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true, + "useDefineForClassFields": false + }, + "include": ["src/**/*.ts"] +} diff --git a/integrations/lit-vite/vite.config.ts b/integrations/lit-vite/vite.config.ts new file mode 100644 index 00000000000..4f1b25a0c3d --- /dev/null +++ b/integrations/lit-vite/vite.config.ts @@ -0,0 +1,3 @@ +import { defineConfig } from 'vite' + +export default defineConfig({}) diff --git a/knip.json b/knip.json index 2d444d217cc..cde2b9b3b5d 100644 --- a/knip.json +++ b/knip.json @@ -19,6 +19,9 @@ "entry": ["src/v4/**/*.cjs", "src/v5/**/*.cjs"], "ignore": ["**/__testfixtures__/**"] }, + "packages/lit-query": { + "ignore": ["src/tests/**"] + }, "packages/vue-query": { "ignoreDependencies": ["vue2", "vue2.7"] } diff --git a/labeler-config.yml b/labeler-config.yml index d3f7712547c..444b9210acf 100644 --- a/labeler-config.yml +++ b/labeler-config.yml @@ -10,6 +10,9 @@ 'package: eslint-plugin-query': - changed-files: - any-glob-to-any-file: 'packages/eslint-plugin-query/**/*' +'package: lit-query': + - changed-files: + - any-glob-to-any-file: 'packages/lit-query/**/*' 'package: preact-query': - changed-files: - any-glob-to-any-file: 'packages/preact-query/**/*' diff --git a/packages/lit-query/.editorconfig b/packages/lit-query/.editorconfig new file mode 100644 index 00000000000..9d08a1a828a --- /dev/null +++ b/packages/lit-query/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/packages/lit-query/.npmignore b/packages/lit-query/.npmignore new file mode 100644 index 00000000000..f497387664b --- /dev/null +++ b/packages/lit-query/.npmignore @@ -0,0 +1,2 @@ +docs/ +src/tests/ diff --git a/packages/lit-query/.prettierignore b/packages/lit-query/.prettierignore new file mode 100644 index 00000000000..f800743a0af --- /dev/null +++ b/packages/lit-query/.prettierignore @@ -0,0 +1,10 @@ +dist +dist-cjs +node_modules +coverage +.claude +.references +*.tgz +package-lock.json +examples/**/output +examples/**/dist diff --git a/packages/lit-query/README.md b/packages/lit-query/README.md new file mode 100644 index 00000000000..c439074d806 --- /dev/null +++ b/packages/lit-query/README.md @@ -0,0 +1,127 @@ +# @tanstack/lit-query + +Lit adapter for `@tanstack/query-core` using Lit reactive controllers. + +This package is currently experimental and v0.1. Pin exact versions if you use +it in production while the API is early. + +## Install + +```bash +npm install @tanstack/lit-query @tanstack/query-core lit +``` + +For local development in this repository: + +```bash +pnpm install +pnpm --dir packages/lit-query run build +``` + +## Quick Start + +```ts +import { LitElement, html } from 'lit' +import { + QueryClient, + QueryClientProvider, + createQueryController, +} from '@tanstack/lit-query' + +const client = new QueryClient({ + defaultOptions: { queries: { retry: false } }, +}) + +class AppProvider extends QueryClientProvider { + constructor() { + super() + this.client = client + } +} +customElements.define('app-provider', AppProvider) + +class UsersView extends LitElement { + private readonly users = createQueryController(this, { + queryKey: ['users'], + queryFn: async () => { + const response = await fetch('/api/users') + return response.json() as Promise> + }, + }) + + render() { + const query = this.users() + if (query.isPending) return html`Loading...` + if (query.isError) return html`Error` + return html`
    + ${query.data?.map((u) => html`
  • ${u.name}
  • `)} +
` + } +} +customElements.define('users-view', UsersView) +``` + +## API Surface + +- `QueryClientProvider`, `useQueryClient`, `resolveQueryClient` +- `createQueryController` +- `createMutationController` +- `createInfiniteQueryController` +- `createQueriesController` +- `useIsFetching`, `useIsMutating`, `useMutationState` +- `queryOptions`, `infiniteQueryOptions`, `mutationOptions` + +## Runnable Examples + +This repo includes runnable Lit examples under the top-level `examples/lit` +directory so they can be surfaced in the docs: + +- `examples/lit/basic`: Vite Lit app covering query and mutation primitives. +- `examples/lit/pagination`: pagination, prefetching, optimistic updates, and error recovery. +- `examples/lit/ssr`: Lit SSR render, dehydrate, and hydrate flow. + +Run an example from the repo root: + +```bash +pnpm --dir examples/lit/basic run dev +pnpm --dir examples/lit/pagination run dev +pnpm --dir examples/lit/ssr run dev +``` + +Open: + +- `http://127.0.0.1:4173/` (basic example) +- `http://127.0.0.1:4183/` (pagination example app) +- `http://127.0.0.1:4174/` (SSR example app) + +Use a different port (optional): + +```bash +DEMO_PORT=4180 pnpm --dir examples/lit/basic run dev +PAGINATION_DEMO_PORT=4181 PAGINATION_API_PORT=4182 pnpm --dir examples/lit/pagination run dev +SSR_PORT=4180 pnpm --dir examples/lit/ssr run dev +SSR_HOST=0.0.0.0 pnpm --dir examples/lit/ssr run dev +``` + +## Integration Smoke + +For the framework build smoke used in CI: + +```bash +pnpm --dir integrations/lit-vite run build +``` + +## Quality Gates + +From the repository root: + +```bash +pnpm --dir packages/lit-query run test:types +pnpm --dir packages/lit-query run test:lib +pnpm --dir packages/lit-query run build +pnpm --dir packages/lit-query run test:build +``` + +## License + +MIT diff --git a/packages/lit-query/eslint.config.js b/packages/lit-query/eslint.config.js new file mode 100644 index 00000000000..c3642e60191 --- /dev/null +++ b/packages/lit-query/eslint.config.js @@ -0,0 +1,52 @@ +// @ts-check + +import js from '@eslint/js' +import vitest from '@vitest/eslint-plugin' +import globals from 'globals' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { + ignores: [ + 'dist/**', + 'coverage/**', + 'node_modules/**', + '.claude/**', + '.references/**', + '**/dist/**', + '**/dist-cjs/**', + 'examples/**/output/**', + '**/*.d.ts', + ], + }, + js.configs.recommended, + ...tseslint.configs.recommended, + { + files: ['**/*.{ts,js,mjs,cjs}'], + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + }, + rules: { + '@typescript-eslint/no-explicit-any': 'off', + 'no-console': 'off', + }, + }, + { + files: ['src/tests/**/*.{ts,js,mjs}', 'examples/**/e2e/**/*.{js,mjs}'], + plugins: { + vitest, + }, + languageOptions: { + globals: { + ...vitest.environments.env.globals, + }, + }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'off', + }, + }, +) diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json new file mode 100644 index 00000000000..3528f7a5cac --- /dev/null +++ b/packages/lit-query/package.json @@ -0,0 +1,64 @@ +{ + "name": "@tanstack/lit-query", + "version": "0.1.0", + "description": "Lit adapter for TanStack Query Core", + "license": "MIT", + "type": "module", + "main": "dist-cjs/index.js", + "module": "dist/index.js", + "types": "dist/index.d.ts", + "sideEffects": false, + "files": [ + "dist", + "dist-cjs", + "src/**/*.ts", + "!src/tests/**/*" + ], + "exports": { + ".": { + "@tanstack/custom-condition": "./src/index.ts", + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist-cjs/index.d.cts", + "default": "./dist-cjs/index.js" + }, + "default": "./dist/index.js" + }, + "./package.json": "./package.json" + }, + "scripts": { + "compile": "node ../../node_modules/typescript/lib/tsc.js --build", + "build:deps": "pnpm --dir ../query-core run build", + "build": "pnpm run build:deps && pnpm run build:esm && pnpm run build:cjs", + "build:esm": "node ../../node_modules/typescript/lib/tsc.js -p tsconfig.build.json", + "build:cjs": "node -e \"require('node:fs').rmSync('dist-cjs', { recursive: true, force: true })\" && node ../../node_modules/typescript/lib/tsc.js -p tsconfig.build.cjs.json && node scripts/write-cjs-package.mjs", + "test:types": "node ../../node_modules/typescript/lib/tsc.js --noEmit", + "test:eslint": "eslint .", + "lint:fix": "eslint . --fix", + "test:lib": "vitest run", + "test:lib:dev": "vitest", + "test:watch": "pnpm run test:lib:dev", + "test:build": "publint --strict && attw --pack && node scripts/check-cjs-types-smoke.mjs", + "measure:bundle": "pnpm run build && node scripts/measure-bundle.mjs", + "measure:bundle:raw": "node scripts/measure-bundle.mjs", + "perf:l3": "pnpm run build && node scripts/l3-stress.mjs", + "perf:l3:raw": "node scripts/l3-stress.mjs" + }, + "dependencies": { + "@lit/context": "^1.1.6", + "@tanstack/query-core": "workspace:*", + "lit": "^3.3.1" + }, + "peerDependencies": { + "@tanstack/query-core": "^5.0.0", + "lit": ">=2.8.0 <4" + }, + "devDependencies": { + "@eslint/js": "^9.36.0", + "globals": "^17.4.0", + "typescript-eslint": "^8.54.0" + } +} diff --git a/packages/lit-query/scripts/check-cjs-types-smoke.mjs b/packages/lit-query/scripts/check-cjs-types-smoke.mjs new file mode 100644 index 00000000000..a8c508d11d7 --- /dev/null +++ b/packages/lit-query/scripts/check-cjs-types-smoke.mjs @@ -0,0 +1,137 @@ +import { execFile as execFileCallback } from 'node:child_process' +import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { dirname, join, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { promisify } from 'node:util' + +const execFile = promisify(execFileCallback) +const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm' +const pnpmCommand = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm' +const projectDir = resolve(dirname(fileURLToPath(import.meta.url)), '..') +const workspaceRoot = resolve(projectDir, '..', '..') +const typeRootsDir = resolve(workspaceRoot, 'node_modules', '@types') +const tscEntrypoint = resolve( + workspaceRoot, + 'node_modules', + 'typescript', + 'lib', + 'tsc.js', +) + +const tempRoot = await mkdtemp(join(tmpdir(), 'tanstack-lit-query-cjs-smoke-')) +const packDir = resolve(tempRoot, 'pack') +const consumerDir = resolve(tempRoot, 'consumer') + +try { + const tarballPath = await packProject(packDir) + + await writeConsumerFixture(consumerDir) + await installConsumer(consumerDir, tarballPath) + await typecheckConsumer(consumerDir) + + console.log('CommonJS TypeScript smoke test passed.') +} finally { + await rm(tempRoot, { recursive: true, force: true }) +} + +async function packProject(destination) { + await mkdir(destination, { recursive: true }) + + const { stdout } = await execFile( + pnpmCommand, + ['pack', '--json', '--pack-destination', destination], + { + cwd: projectDir, + }, + ) + const packResult = JSON.parse(stdout) + const filename = Array.isArray(packResult) + ? packResult[0]?.filename + : packResult?.filename + + if (typeof filename !== 'string') { + throw new Error(`Unexpected pack output: ${stdout}`) + } + + return resolve(destination, filename) +} + +async function writeConsumerFixture(consumerDirectory) { + await rm(consumerDirectory, { recursive: true, force: true }) + await mkdir(consumerDirectory, { recursive: true }) + + await writeFile( + resolve(consumerDirectory, 'package.json'), + `${JSON.stringify( + { + private: true, + type: 'commonjs', + }, + null, + 2, + )}\n`, + 'utf8', + ) + + await writeFile( + resolve(consumerDirectory, 'index.cts'), + [ + "const pkg = require('@tanstack/lit-query')", + '', + "type CreateQueryOptions = import('@tanstack/lit-query').CreateQueryOptions", + '', + 'const options: CreateQueryOptions = {', + " queryKey: ['cjs-smoke'],", + " queryFn: async () => 'ok',", + '}', + '', + "if (typeof pkg.createQueryController !== 'function') {", + " throw new Error('createQueryController export is missing in CommonJS consumer.')", + '}', + '', + 'void pkg.queryOptions(options)', + '', + ].join('\n'), + 'utf8', + ) + + await writeFile( + resolve(consumerDirectory, 'tsconfig.json'), + `${JSON.stringify( + { + compilerOptions: { + module: 'Node16', + moduleResolution: 'Node16', + target: 'ES2022', + strict: true, + noEmit: true, + types: ['node'], + typeRoots: [typeRootsDir], + }, + include: ['index.cts'], + }, + null, + 2, + )}\n`, + 'utf8', + ) + + await writeFile( + resolve(consumerDirectory, '.npmrc'), + 'package-lock=false\n', + 'utf8', + ) +} + +async function installConsumer(consumerDirectory, tarballPath) { + await execFile(npmCommand, ['install', '--silent', tarballPath], { + cwd: consumerDirectory, + }) +} + +async function typecheckConsumer(consumerDirectory) { + await execFile(process.execPath, [tscEntrypoint, '-p', 'tsconfig.json'], { + cwd: consumerDirectory, + }) +} diff --git a/packages/lit-query/scripts/l3-stress.mjs b/packages/lit-query/scripts/l3-stress.mjs new file mode 100644 index 00000000000..55f52a9a73f --- /dev/null +++ b/packages/lit-query/scripts/l3-stress.mjs @@ -0,0 +1,124 @@ +import { QueryClient } from '@tanstack/query-core' +import { createQueryController } from '../dist/index.js' + +class TestControllerHost { + controllers = new Set() + updatesRequested = 0 + updateComplete = Promise.resolve(true) + + addController(controller) { + this.controllers.add(controller) + } + + removeController(controller) { + this.controllers.delete(controller) + } + + requestUpdate() { + this.updatesRequested += 1 + } + + connect() { + for (const controller of this.controllers) { + controller.hostConnected?.() + } + } + + disconnect() { + for (const controller of this.controllers) { + controller.hostDisconnected?.() + } + } + + update() { + for (const controller of this.controllers) { + controller.hostUpdate?.() + } + + for (const controller of this.controllers) { + controller.hostUpdated?.() + } + } +} + +async function waitFor(assertion, timeoutMs = 3000) { + const startedAt = Date.now() + while (!assertion()) { + if (Date.now() - startedAt > timeoutMs) { + throw new Error(`Timed out waiting for assertion after ${timeoutMs}ms`) + } + await new Promise((resolve) => setTimeout(resolve, 5)) + } +} + +async function run(cycles = 1000) { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + gcTime: 0, + }, + }, + }) + + const queryKey = ['l3-stress'] + const startedAt = Date.now() + const initialHeapMb = process.memoryUsage().heapUsed / (1024 * 1024) + + for (let cycle = 0; cycle < cycles; cycle += 1) { + const host = new TestControllerHost() + const query = createQueryController( + host, + { + queryKey, + gcTime: 0, + queryFn: async () => cycle, + }, + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess, 4000) + + const cacheQuery = client.getQueryCache().find({ queryKey }) + const connectedCount = cacheQuery?.getObserversCount() ?? 0 + if (connectedCount !== 1) { + throw new Error( + `observer_count_connected_invalid:${connectedCount}:cycle:${cycle}`, + ) + } + + host.disconnect() + query.destroy() + + const disconnectedCount = cacheQuery?.getObserversCount() ?? 0 + if (disconnectedCount !== 0) { + throw new Error( + `observer_count_disconnected_invalid:${disconnectedCount}:cycle:${cycle}`, + ) + } + } + + const elapsedMs = Date.now() - startedAt + const finalHeapMb = process.memoryUsage().heapUsed / (1024 * 1024) + const memoryGrowthMb = Number((finalHeapMb - initialHeapMb).toFixed(3)) + + const summary = { + measuredAt: new Date().toISOString(), + cycles, + elapsedMs, + initialHeapMb: Number(initialHeapMb.toFixed(3)), + finalHeapMb: Number(finalHeapMb.toFixed(3)), + memoryGrowthMb, + retainedObserversAfterRun: + client.getQueryCache().find({ queryKey })?.getObserversCount() ?? 0, + } + + console.log(JSON.stringify(summary, null, 2)) +} + +run().catch((error) => { + console.error(error) + process.exit(1) +}) diff --git a/packages/lit-query/scripts/measure-bundle.mjs b/packages/lit-query/scripts/measure-bundle.mjs new file mode 100644 index 00000000000..b8adec12b17 --- /dev/null +++ b/packages/lit-query/scripts/measure-bundle.mjs @@ -0,0 +1,43 @@ +import { readFile, readdir, stat } from 'node:fs/promises' +import path from 'node:path' +import { gzipSync } from 'node:zlib' +import { fileURLToPath } from 'node:url' + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)) +const repoRoot = path.resolve(scriptDir, '..') +const distDir = path.join(repoRoot, 'dist') +const entryFile = path.join(distDir, 'index.js') + +async function getDirSizeBytes(dirPath) { + let total = 0 + const entries = await readdir(dirPath, { withFileTypes: true }) + for (const entry of entries) { + const fullPath = path.join(dirPath, entry.name) + if (entry.isDirectory()) { + total += await getDirSizeBytes(fullPath) + } else if (entry.isFile()) { + total += (await stat(fullPath)).size + } + } + return total +} + +async function run() { + const entry = await readFile(entryFile) + const entryGzip = gzipSync(entry) + const distBytes = await getDirSizeBytes(distDir) + + const output = { + measuredAt: new Date().toISOString(), + entryJsBytes: entry.length, + entryJsGzipBytes: entryGzip.length, + distTotalBytes: distBytes, + } + + console.log(JSON.stringify(output, null, 2)) +} + +run().catch((error) => { + console.error(error) + process.exit(1) +}) diff --git a/packages/lit-query/scripts/write-cjs-package.mjs b/packages/lit-query/scripts/write-cjs-package.mjs new file mode 100644 index 00000000000..dcf076d7832 --- /dev/null +++ b/packages/lit-query/scripts/write-cjs-package.mjs @@ -0,0 +1,73 @@ +import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises' +import { dirname, relative, resolve } from 'node:path' + +const projectDir = process.cwd() +const esmDir = resolve(projectDir, 'dist') +const outDir = resolve(process.cwd(), 'dist-cjs') +const esmOnlyPackages = new Set(['lit']) +const esmImportTypeRegex = /import type \{([^}]*)\} from (['"])([^'"]+)\2;/g +const esmValueImportRegex = /import \{([^}]*)\} from (['"])([^'"]+)\2;/g +const importTypeExpressionRegex = /import\((['"])([^'"]+)\1\)/g + +await mkdir(outDir, { recursive: true }) +await writeFile( + resolve(outDir, 'package.json'), + `${JSON.stringify({ type: 'commonjs' }, null, 2)}\n`, + 'utf8', +) + +for (const declarationFile of await findDeclarationFiles(esmDir)) { + const source = await readFile(declarationFile, 'utf8') + const relativePath = relative(esmDir, declarationFile) + const outputPath = resolve(outDir, relativePath.replace(/\.d\.ts$/, '.d.cts')) + + await mkdir(dirname(outputPath), { recursive: true }) + await writeFile(outputPath, rewriteDeclaration(source), 'utf8') +} + +async function findDeclarationFiles(rootDir) { + const entries = await readdir(rootDir, { withFileTypes: true }) + const files = [] + + for (const entry of entries) { + const entryPath = resolve(rootDir, entry.name) + + if (entry.isDirectory()) { + files.push(...(await findDeclarationFiles(entryPath))) + continue + } + + if (entry.isFile() && entry.name.endsWith('.d.ts')) { + files.push(entryPath) + } + } + + return files +} + +function rewriteDeclaration(source) { + return source + .replace(/^\/\/# sourceMappingURL=.*$\n?/gm, '') + .replace(/(['"])(\.\.?\/[^'"]+)\.js\1/g, '$1$2.cjs$1') + .replace(esmImportTypeRegex, (match, specifiers, quote, packageName) => { + if (!esmOnlyPackages.has(packageName)) { + return match + } + + return `import type {${specifiers}} from ${quote}${packageName}${quote} with { "resolution-mode": "import" };` + }) + .replace(esmValueImportRegex, (match, specifiers, quote, packageName) => { + if (!esmOnlyPackages.has(packageName)) { + return match + } + + return `import type {${specifiers}} from ${quote}${packageName}${quote} with { "resolution-mode": "import" };` + }) + .replace(importTypeExpressionRegex, (match, quote, packageName) => { + if (packageName !== 'lit-html') { + return match + } + + return `import(${quote}${packageName}${quote}, { with: { "resolution-mode": "import" } })` + }) +} diff --git a/packages/lit-query/src/QueryClientProvider.ts b/packages/lit-query/src/QueryClientProvider.ts new file mode 100644 index 00000000000..b3447aa5df9 --- /dev/null +++ b/packages/lit-query/src/QueryClientProvider.ts @@ -0,0 +1,174 @@ +import { ContextProvider } from '@lit/context' +import type { QueryClient } from '@tanstack/query-core' +import type { TemplateResult } from 'lit' +import { LitElement, html } from 'lit' +import { + createMissingQueryClientError, + queryClientContext, + registerDefaultQueryClient, + unregisterDefaultQueryClient, +} from './context.js' + +/** + * Lit element that provides a `QueryClient` to descendant Lit Query + * controllers through Lit context. + * + * The `client` is a property, not an attribute. When rendering this element in + * a Lit template, bind it with property binding: `.client=${queryClient}`. + * The provider throws if it connects without a client, or if an already + * connected provider has its client cleared. + * + * This class is not registered as a custom element by the package. Applications + * must register either a subclass or the class itself with + * `customElements.define`. + * + * @example + * ```ts + * import { html, LitElement } from 'lit' + * import { QueryClient, QueryClientProvider } from '@tanstack/lit-query' + * + * const queryClient = new QueryClient() + * + * class AppQueryProvider extends QueryClientProvider { + * constructor() { + * super() + * this.client = queryClient + * } + * } + * + * customElements.define('app-query-provider', AppQueryProvider) + * + * class AppRoot extends LitElement { + * render() { + * return html`` + * } + * } + * ``` + * + * @example + * ```ts + * import { html } from 'lit' + * import { QueryClient, QueryClientProvider } from '@tanstack/lit-query' + * + * const queryClient = new QueryClient() + * + * customElements.define('query-client-provider', QueryClientProvider) + * + * const view = html` + * + * + * + * ` + * ``` + */ +export class QueryClientProvider extends LitElement { + /** @internal */ + static properties = { + client: { attribute: false }, + } + + /** + * The `QueryClient` provided to descendant controllers and global fallback + * helpers while this provider is connected. + * + * Bind this as a property in Lit templates with `.client=${queryClient}`. + */ + declare client: QueryClient + + private readonly contextProvider: ContextProvider + + private mountedClient: QueryClient | undefined + + constructor() { + super() + this.contextProvider = new ContextProvider(this, { + context: queryClientContext, + }) + } + + /** @internal */ + connectedCallback(): void { + super.connectedCallback() + const client = this.requireClient() + this.contextProvider.setValue(client) + this.mountClient(client) + } + + /** @internal */ + disconnectedCallback(): void { + this.unmountClient(this.mountedClient) + super.disconnectedCallback() + } + + /** @internal */ + protected willUpdate(changedProperties: Map): void { + if (!changedProperties.has('client')) { + return + } + + const nextClient = this.client + if (!nextClient) { + if (this.isConnected) { + this.unmountClient(this.mountedClient) + // Sentinel: notify active consumers that the provider is now unbound. + this.contextProvider.setValue(undefined as unknown as QueryClient) + throw createMissingQueryClientError() + } + + return + } + + const previousClient = changedProperties.get('client') as + | QueryClient + | undefined + if (previousClient && previousClient !== nextClient && this.isConnected) { + this.unmountClient(previousClient) + } + + this.contextProvider.setValue(nextClient) + + if (this.isConnected) { + this.mountClient(nextClient) + } + } + + /** @internal */ + render(): TemplateResult { + return html`` + } + + private mountClient(client: QueryClient): void { + if (this.mountedClient === client) { + return + } + + if (this.mountedClient) { + this.unmountClient(this.mountedClient) + } + + client.mount() + registerDefaultQueryClient(client) + this.mountedClient = client + } + + private unmountClient(client?: QueryClient): void { + if (!client) { + return + } + + client.unmount() + unregisterDefaultQueryClient(client) + + if (this.mountedClient === client) { + this.mountedClient = undefined + } + } + + private requireClient(): QueryClient { + if (!this.client) { + throw createMissingQueryClientError() + } + + return this.client + } +} diff --git a/packages/lit-query/src/accessor.ts b/packages/lit-query/src/accessor.ts new file mode 100644 index 00000000000..35bc8098620 --- /dev/null +++ b/packages/lit-query/src/accessor.ts @@ -0,0 +1,43 @@ +/** + * A value that can be passed directly or read from a zero-argument getter. + * + * Lit Query APIs read function accessors during host updates, so the getter can + * depend on reactive host state. + * + * @example + * ```ts + * const staticKey: Accessor = ['todos'] + * const reactiveKey: Accessor = () => ['todos', this.userId] + * ``` + */ +export type Accessor = T | (() => T) + +export function readAccessor(value: Accessor): T { + return typeof value === 'function' ? (value as () => T)() : value +} + +/** + * A callable accessor with a `current` property for reading the latest + * controller result. + * + * Controller creators and cache state helpers return this shape so render code + * can use either `result()` or `result.current`. + * + * @example + * ```ts + * const query = this.todos() + * const sameQuery = this.todos.current + * ``` + */ +export type ValueAccessor = (() => T) & { + readonly current: T +} + +export function createValueAccessor(getter: () => T): ValueAccessor { + const accessor = (() => getter()) as ValueAccessor + Object.defineProperty(accessor, 'current', { + get: getter, + enumerable: true, + }) + return accessor +} diff --git a/packages/lit-query/src/context.ts b/packages/lit-query/src/context.ts new file mode 100644 index 00000000000..8e7c8a142f1 --- /dev/null +++ b/packages/lit-query/src/context.ts @@ -0,0 +1,120 @@ +import { createContext } from '@lit/context' +import type { QueryClient } from '@tanstack/query-core' + +/** + * Lit context key used by `QueryClientProvider` and host-bound APIs to share a + * `QueryClient` through the DOM tree. + * + * Most applications use `QueryClientProvider` instead of interacting with this + * context directly. + */ +export const queryClientContext = createContext( + Symbol.for('tanstack-query-client'), +) + +const missingQueryClientMessage = + 'No QueryClient available. Pass one explicitly or render within QueryClientProvider.' +const ambiguousQueryClientMessage = + 'Multiple QueryClients are mounted. Pass one explicitly instead of relying on global QueryClient helpers.' + +const registeredClients = new Map() +let defaultClient: QueryClient | undefined + +/** + * Registers a `QueryClient` as a process-local fallback for APIs that resolve a + * client without an explicit argument. + * + * `QueryClientProvider` calls this automatically while it is connected. Prefer + * passing an explicit client or rendering under a provider when possible. + * + * @param client - The query client to register as the current default. + */ +export function registerDefaultQueryClient(client: QueryClient): void { + registeredClients.set(client, (registeredClients.get(client) ?? 0) + 1) + defaultClient = client +} + +/** + * Unregisters a client previously registered with + * `registerDefaultQueryClient`. + * + * `QueryClientProvider` calls this automatically when it disconnects. + * + * @param client - The query client registration to release. + */ +export function unregisterDefaultQueryClient(client: QueryClient): void { + const count = registeredClients.get(client) + if (count === undefined) { + return + } + + if (count > 1) { + registeredClients.set(client, count - 1) + return + } + + registeredClients.delete(client) + if (defaultClient !== client) { + return + } + + const remaining = [...registeredClients.keys()] + defaultClient = remaining.at(-1) +} + +/** + * Returns the registered default `QueryClient`, if exactly one default client is + * available. + * + * @returns The default query client, or `undefined` when there is no registered + * client or more than one registered client. + */ +export function getDefaultQueryClient(): QueryClient | undefined { + if (registeredClients.size > 1) { + return undefined + } + + return defaultClient +} + +export function createMissingQueryClientError(): Error { + return new Error(missingQueryClientMessage) +} + +function createAmbiguousQueryClientError(): Error { + return new Error(ambiguousQueryClientMessage) +} + +/** + * Resolves the current default `QueryClient` registered by a connected + * `QueryClientProvider`. + * + * This helper is useful outside a Lit reactive controller when a single + * provider is mounted. It throws if no client is registered or if multiple + * clients are mounted and the default would be ambiguous. + * + * @returns The single registered query client. + */ +export function useQueryClient(): QueryClient { + const client = getDefaultQueryClient() + if (client) { + return client + } + + if (registeredClients.size > 1) { + throw createAmbiguousQueryClientError() + } + + throw createMissingQueryClientError() +} + +/** + * Resolves an explicit `QueryClient` or falls back to `useQueryClient`. + * + * @param explicit - Optional client supplied by the caller. + * @returns The explicit client when provided, otherwise the current default + * client. + */ +export function resolveQueryClient(explicit?: QueryClient): QueryClient { + return explicit ?? useQueryClient() +} diff --git a/packages/lit-query/src/controllers/BaseController.ts b/packages/lit-query/src/controllers/BaseController.ts new file mode 100644 index 00000000000..ba303edd417 --- /dev/null +++ b/packages/lit-query/src/controllers/BaseController.ts @@ -0,0 +1,284 @@ +import { ContextEvent } from '@lit/context' +import type { QueryClient } from '@tanstack/query-core' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { + createMissingQueryClientError, + queryClientContext, +} from '../context.js' + +type QueryClientResolutionState = + | 'pre-connect' + | 'awaiting-context' + | 'bound' + | 'missing' + +export abstract class BaseController implements ReactiveController { + protected result: TResult + + private readonly explicitClient?: QueryClient + private contextClient: QueryClient | undefined + private contextUnsubscribe: (() => void) | undefined + + private connected = false + private destroyed = false + private updateQueued = false + private clientChangeQueued = false + private connectionAttempt = 0 + private queryClientResolutionState: QueryClientResolutionState + + protected constructor( + protected readonly host: ReactiveControllerHost, + initialResult: TResult, + queryClient?: QueryClient, + ) { + this.explicitClient = queryClient + this.result = initialResult + this.queryClientResolutionState = queryClient ? 'bound' : 'pre-connect' + + host.addController(this) + } + + hostConnected(): void { + if (this.connected || this.destroyed) { + return + } + + this.connected = true + let contextResolutionAttempt: number | undefined + + if (this.explicitClient) { + this.queryClientResolutionState = 'bound' + } else { + contextResolutionAttempt = ++this.connectionAttempt + this.beginContextResolution() + } + + // Defer onConnected to ensure subclass constructors complete before + // lifecycle callbacks access subclass state. This handles the case where + // addController is called on an already-connected host (e.g., during + // willUpdate), which synchronously triggers hostConnected before + // subclass field initialization. + queueMicrotask(() => { + if (this.connected && !this.destroyed) { + this.onConnected() + } + }) + + if (contextResolutionAttempt !== undefined) { + // Provider-backed controllers on already-connected hosts should finish + // their deferred onConnected pass before a context client binds. + this.queueContextResolution(contextResolutionAttempt) + } + } + + hostDisconnected(): void { + if (!this.connected) { + return + } + + this.connected = false + + if (!this.explicitClient) { + this.connectionAttempt += 1 + this.clearContextClient() + this.updateQueryClientResolutionState('pre-connect') + } + + this.onDisconnected() + } + + hostUpdate(): void { + if (this.destroyed) { + return + } + + this.onHostUpdate() + } + + destroy(): void { + if (this.destroyed) { + return + } + + this.destroyed = true + this.connected = false + this.connectionAttempt += 1 + this.clearContextClient() + this.queryClientResolutionState = this.explicitClient + ? 'bound' + : 'pre-connect' + this.onDisconnected() + + if ('removeController' in this.host) { + this.host.removeController(this) + } + } + + protected tryGetQueryClient(): QueryClient | undefined { + return this.explicitClient ?? this.contextClient + } + + protected getQueryClient(): QueryClient { + const client = this.tryGetQueryClient() + if (!client) { + throw createMissingQueryClientError() + } + + return client + } + + protected setResult(next: TResult): void { + if (Object.is(this.result, next)) { + return + } + + this.result = next + this.queueUpdate() + } + + get current(): TResult { + if (this.queryClientResolutionState === 'missing') { + throw createMissingQueryClientError() + } + + return this.result + } + + protected get connectedState(): boolean { + return this.connected + } + + protected queueUpdate(): void { + if (this.updateQueued) { + return + } + + this.updateQueued = true + queueMicrotask(() => { + this.updateQueued = false + if (!this.destroyed) { + this.host.requestUpdate() + } + }) + } + + private queueQueryClientChanged(): void { + if (this.clientChangeQueued) { + return + } + + this.clientChangeQueued = true + queueMicrotask(() => { + this.clientChangeQueued = false + if (!this.destroyed) { + this.onQueryClientChanged() + } + }) + } + + private beginContextResolution(): void { + this.clearContextClient() + this.updateQueryClientResolutionState('awaiting-context') + } + + private queueContextResolution(attempt: number): void { + queueMicrotask(() => { + if ( + this.destroyed || + !this.connected || + attempt !== this.connectionAttempt || + this.queryClientResolutionState !== 'awaiting-context' + ) { + return + } + + this.dispatchContextRequest(attempt) + this.queueInitialContextResolutionCompletion(attempt) + }) + } + + private dispatchContextRequest(attempt: number): void { + if (!('dispatchEvent' in this.host)) { + return + } + + const contextTarget = this.host as ReactiveControllerHost & EventTarget + contextTarget.dispatchEvent( + new ContextEvent( + queryClientContext, + contextTarget as unknown as Element, + (value, unsubscribe) => { + if ( + this.destroyed || + !this.connected || + attempt !== this.connectionAttempt + ) { + unsubscribe?.() + return + } + + if ( + this.contextUnsubscribe && + this.contextUnsubscribe !== unsubscribe + ) { + this.contextUnsubscribe() + } + + const resolutionChanged = this.updateQueryClientResolutionState( + value === undefined ? 'missing' : 'bound', + ) + const clientChanged = this.contextClient !== value + + this.contextClient = value + this.contextUnsubscribe = unsubscribe + + if (resolutionChanged || clientChanged) { + this.queueUpdate() + this.queueQueryClientChanged() + } + }, + true, + ), + ) + } + + private queueInitialContextResolutionCompletion(attempt: number): void { + queueMicrotask(() => { + if ( + this.destroyed || + !this.connected || + attempt !== this.connectionAttempt || + this.queryClientResolutionState !== 'awaiting-context' + ) { + return + } + + if (this.updateQueryClientResolutionState('missing')) { + this.queueUpdate() + this.queueQueryClientChanged() + } + }) + } + + private clearContextClient(): void { + this.contextUnsubscribe?.() + this.contextUnsubscribe = undefined + this.contextClient = undefined + } + + private updateQueryClientResolutionState( + nextState: QueryClientResolutionState, + ): boolean { + if (this.queryClientResolutionState === nextState) { + return false + } + + this.queryClientResolutionState = nextState + return true + } + + protected abstract onConnected(): void + protected abstract onDisconnected(): void + protected abstract onHostUpdate(): void + protected abstract onQueryClientChanged(): void +} diff --git a/packages/lit-query/src/createInfiniteQueryController.ts b/packages/lit-query/src/createInfiniteQueryController.ts new file mode 100644 index 00000000000..4e41edbf818 --- /dev/null +++ b/packages/lit-query/src/createInfiniteQueryController.ts @@ -0,0 +1,394 @@ +import { + InfiniteQueryObserver, + type DefaultError, + type DefaultedInfiniteQueryObserverOptions, + type InfiniteData, + type InfiniteQueryObserverOptions, + type InfiniteQueryObserverResult, + type QueryKey, +} from '@tanstack/query-core' +import type { QueryClient } from '@tanstack/query-core' +import type { ReactiveControllerHost } from 'lit' +import { + createValueAccessor, + readAccessor, + type Accessor, + type ValueAccessor, +} from './accessor.js' +import { createMissingQueryClientError } from './context.js' +import { BaseController } from './controllers/BaseController.js' + +/** + * Options accepted by `createInfiniteQueryController`. + * + * This is the Lit adapter shape for `InfiniteQueryObserverOptions`. Pass it + * directly or through an `Accessor` when the options depend on Lit host state. + */ +export type CreateInfiniteQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = InfiniteData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = unknown, +> = InfiniteQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam +> + +/** + * Accessor returned by `createInfiniteQueryController`. + * + * Call the accessor or read its `current` property to get the latest infinite + * query result. The attached methods delegate to the active infinite query + * observer. + */ +export type InfiniteQueryResultAccessor = ValueAccessor< + InfiniteQueryObserverResult +> & { + /** Refetches the current infinite query. */ + refetch: InfiniteQueryObserverResult['refetch'] + /** Fetches the next page for the current infinite query. */ + fetchNextPage: InfiniteQueryObserverResult['fetchNextPage'] + /** Fetches the previous page for the current infinite query. */ + fetchPreviousPage: InfiniteQueryObserverResult< + TData, + TError + >['fetchPreviousPage'] + /** Removes the controller from its Lit host and unsubscribes observers. */ + destroy: () => void +} + +function createPendingInfiniteQueryResult< + TData, + TError, +>(): InfiniteQueryObserverResult { + return { + data: undefined, + dataUpdatedAt: 0, + error: null, + errorUpdatedAt: 0, + failureCount: 0, + failureReason: null, + errorUpdateCount: 0, + isError: false, + isFetched: false, + isFetchedAfterMount: false, + isFetching: false, + isInitialLoading: false, + isLoading: false, + isLoadingError: false, + isPaused: false, + isPending: true, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isEnabled: true, + isSuccess: false, + fetchStatus: 'idle', + status: 'pending', + refetch: (() => + Promise.reject( + createMissingQueryClientError(), + )) as InfiniteQueryObserverResult['refetch'], + fetchNextPage: (() => + Promise.reject( + createMissingQueryClientError(), + )) as InfiniteQueryObserverResult['fetchNextPage'], + fetchPreviousPage: (() => + Promise.reject( + createMissingQueryClientError(), + )) as InfiniteQueryObserverResult['fetchPreviousPage'], + hasNextPage: false, + hasPreviousPage: false, + isFetchNextPageError: false, + isFetchingNextPage: false, + isFetchPreviousPageError: false, + isFetchingPreviousPage: false, + promise: Promise.resolve(undefined as never), + } as unknown as InfiniteQueryObserverResult +} + +class InfiniteQueryController< + TQueryFnData, + TError, + TData, + TQueryKey extends QueryKey, + TPageParam, +> extends BaseController> { + private readonly options: Accessor< + CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > + > + private observer: + | InfiniteQueryObserver + | undefined + private unsubscribe: (() => void) | undefined + private queryClient: QueryClient | undefined + + constructor( + host: ReactiveControllerHost, + options: Accessor< + CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > + >, + queryClient?: QueryClient, + ) { + super(host, createPendingInfiniteQueryResult(), queryClient) + this.options = options + + if (!queryClient) { + return + } + + if (typeof options === 'function') { + return + } + + const defaulted = this.defaultOptions(queryClient) + const observer = new InfiniteQueryObserver(queryClient, defaulted) + this.queryClient = queryClient + this.observer = observer + this.result = observer.getOptimisticResult(defaulted) + } + + protected onConnected(): void { + if (!this.syncClient()) { + return + } + + this.refreshOptions() + this.subscribe() + this.observer?.updateResult() + if (this.observer) { + this.setResult(this.observer.getCurrentResult()) + } + } + + protected onDisconnected(): void { + this.unsubscribeObserver() + this.syncClient() + } + + protected onHostUpdate(): void { + if (typeof this.options !== 'function') { + return + } + + this.refreshOptions() + } + + protected onQueryClientChanged(): void { + if (!this.syncClient() || !this.connectedState) { + return + } + + this.refreshOptions() + this.subscribe() + this.observer?.updateResult() + if (this.observer) { + this.setResult(this.observer.getCurrentResult()) + } + } + + refetch: InfiniteQueryObserverResult['refetch'] = ( + ...args + ) => { + if (!this.refreshOptions()) { + return Promise.reject(createMissingQueryClientError()) + } + + return this.result.refetch(...args) + } + + fetchNextPage: InfiniteQueryObserverResult['fetchNextPage'] = ( + ...args + ) => { + if (!this.refreshOptions()) { + return Promise.reject(createMissingQueryClientError()) + } + + return this.result.fetchNextPage(...args) + } + + fetchPreviousPage: InfiniteQueryObserverResult< + TData, + TError + >['fetchPreviousPage'] = (...args) => { + if (!this.refreshOptions()) { + return Promise.reject(createMissingQueryClientError()) + } + + return this.result.fetchPreviousPage(...args) + } + + private subscribe(): void { + if (!this.observer) { + return + } + + if (this.unsubscribe) { + return + } + + this.unsubscribe = this.observer.subscribe((next) => { + this.setResult(next) + }) + } + + private unsubscribeObserver(): void { + this.unsubscribe?.() + this.unsubscribe = undefined + } + + private syncClient(): boolean { + const nextClient = this.tryGetQueryClient() + if (!nextClient) { + this.unsubscribeObserver() + this.queryClient = undefined + this.observer = undefined + this.setResult(createPendingInfiniteQueryResult()) + return false + } + + if (nextClient === this.queryClient) { + return true + } + + this.unsubscribeObserver() + this.queryClient = nextClient + const options = this.defaultOptions(this.queryClient) + this.observer = new InfiniteQueryObserver(this.queryClient, options) + this.setResult(this.observer.getOptimisticResult(options)) + return true + } + + private refreshOptions(): boolean { + if (!this.syncClient() || !this.observer || !this.queryClient) { + return false + } + + const options = this.defaultOptions(this.queryClient) + this.observer.setOptions(options) + this.setResult(this.observer.getOptimisticResult(options)) + return true + } + + private defaultOptions( + client = this.queryClient, + ): DefaultedInfiniteQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > { + if (!client) { + throw createMissingQueryClientError() + } + + const defaulted = client.defaultQueryOptions( + readAccessor(this.options), + ) as DefaultedInfiniteQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > + ;(defaulted as { _optimisticResults?: 'optimistic' })._optimisticResults = + 'optimistic' + return defaulted + } +} + +/** + * Creates a Lit reactive controller that subscribes the host to an infinite + * query. + * + * The returned accessor is callable and also exposes `current`, `refetch`, + * `fetchNextPage`, `fetchPreviousPage`, and `destroy`. When `options` is a + * function, it is re-read during host updates so query keys and options can + * follow reactive host state. + * + * If `queryClient` is omitted, the controller resolves the client from the + * nearest connected `QueryClientProvider`. + * + * @param host - The Lit reactive controller host that owns the infinite query + * subscription. + * @param options - Infinite query observer options, or a getter that returns + * options. + * @param queryClient - Optional explicit query client. Provide this for + * controllers that should not resolve a client from Lit context. + * @returns An accessor for the latest infinite query result with page helper + * methods. + * + * @example + * ```ts + * import { LitElement, html } from 'lit' + * import { createInfiniteQueryController } from '@tanstack/lit-query' + * + * class ProjectsView extends LitElement { + * private readonly projects = createInfiniteQueryController(this, { + * queryKey: ['projects'], + * queryFn: ({ pageParam }) => fetchProjects(pageParam), + * initialPageParam: 0, + * getNextPageParam: (lastPage) => lastPage.nextCursor, + * }) + * + * render() { + * const query = this.projects() + * + * return html` + * + * ` + * } + * } + * ``` + */ +export function createInfiniteQueryController< + TQueryFnData = unknown, + TError = DefaultError, + TData = InfiniteData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = unknown, +>( + host: ReactiveControllerHost, + options: Accessor< + CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > + >, + queryClient?: QueryClient, +): InfiniteQueryResultAccessor { + const controller = new InfiniteQueryController(host, options, queryClient) + + return Object.assign( + createValueAccessor(() => controller.current), + { + refetch: controller.refetch, + fetchNextPage: controller.fetchNextPage, + fetchPreviousPage: controller.fetchPreviousPage, + destroy: () => controller.destroy(), + }, + ) +} diff --git a/packages/lit-query/src/createMutationController.ts b/packages/lit-query/src/createMutationController.ts new file mode 100644 index 00000000000..d3133982ddd --- /dev/null +++ b/packages/lit-query/src/createMutationController.ts @@ -0,0 +1,361 @@ +import { + MutationObserver, + type DefaultError, + type MutateOptions, + type MutationObserverOptions, + type MutationObserverResult, +} from '@tanstack/query-core' +import type { QueryClient } from '@tanstack/query-core' +import type { ReactiveControllerHost } from 'lit' +import { + createValueAccessor, + readAccessor, + type Accessor, + type ValueAccessor, +} from './accessor.js' +import { createMissingQueryClientError } from './context.js' +import { BaseController } from './controllers/BaseController.js' + +/** + * Options accepted by `createMutationController`. + * + * This is the Lit adapter shape for `MutationObserverOptions`. Pass it directly + * or through an `Accessor` when the options depend on Lit host state. + */ +export type CreateMutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +> = MutationObserverOptions + +/** + * Accessor returned by `createMutationController`. + * + * Call the accessor or read its `current` property to get the latest mutation + * result. The attached methods delegate to the active mutation observer. + */ +export type MutationResultAccessor = + ValueAccessor< + MutationObserverResult + > & { + /** + * Starts the mutation and swallows the returned promise. + * + * Throws synchronously if no `QueryClient` can be resolved. + */ + mutate: ( + variables: TVariables, + options?: MutateOptions, + ) => void + /** + * Starts the mutation and returns the observer promise. + * + * Rejects if no `QueryClient` can be resolved. + */ + mutateAsync: MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + >['mutate'] + /** Resets the mutation observer to its idle state. */ + reset: MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + >['reset'] + /** Removes the controller from its Lit host and unsubscribes observers. */ + destroy: () => void + } + +function createIdleMutationResult< + TData, + TError, + TVariables, + TOnMutateResult, +>(): MutationObserverResult { + return { + context: undefined, + data: undefined, + error: null, + failureCount: 0, + failureReason: null, + isError: false, + isIdle: true, + isPending: false, + isPaused: false, + isSuccess: false, + status: 'idle', + submittedAt: 0, + variables: undefined, + mutate: (() => + Promise.reject( + createMissingQueryClientError(), + )) as MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + >['mutate'], + reset: (() => undefined) as MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + >['reset'], + } as MutationObserverResult +} + +class MutationController< + TData, + TError, + TVariables, + TOnMutateResult, +> extends BaseController< + MutationObserverResult +> { + private readonly options: Accessor< + CreateMutationOptions + > + private observer: + | MutationObserver + | undefined + private unsubscribe: (() => void) | undefined + private queryClient: QueryClient | undefined + + constructor( + host: ReactiveControllerHost, + options: Accessor< + CreateMutationOptions + >, + queryClient?: QueryClient, + ) { + super(host, createIdleMutationResult(), queryClient) + this.options = options + + if (!queryClient) { + return + } + + if (typeof options === 'function') { + return + } + + const observer = new MutationObserver( + queryClient, + this.defaultOptions(queryClient), + ) + this.queryClient = queryClient + this.observer = observer + this.result = observer.getCurrentResult() + } + + protected onConnected(): void { + if (!this.syncClient()) { + return + } + + this.refreshOptions() + this.subscribe() + if (this.observer) { + this.setResult(this.observer.getCurrentResult()) + } + } + + protected onDisconnected(): void { + this.unsubscribeObserver() + this.syncClient() + } + + protected onHostUpdate(): void { + if (typeof this.options !== 'function') { + return + } + + this.refreshOptions() + } + + protected onQueryClientChanged(): void { + if (!this.syncClient() || !this.connectedState) { + return + } + + this.refreshOptions() + this.subscribe() + if (this.observer) { + this.setResult(this.observer.getCurrentResult()) + } + } + + mutate = ( + variables: TVariables, + mutateOptions?: MutateOptions, + ): void => { + if (!this.syncClient() || !this.observer) { + throw createMissingQueryClientError() + } + + void this.observer.mutate(variables, mutateOptions).catch(() => { + // Intentionally swallow in sync mutate path. + }) + } + + mutateAsync: MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + >['mutate'] = (...args) => { + if (!this.syncClient() || !this.observer) { + return Promise.reject(createMissingQueryClientError()) + } + + return this.observer.mutate(...args) + } + + reset: MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + >['reset'] = () => { + if (!this.syncClient() || !this.observer) { + return + } + + this.observer.reset() + this.setResult(this.observer.getCurrentResult()) + } + + private subscribe(): void { + if (!this.observer) { + return + } + + if (this.unsubscribe) { + return + } + + this.unsubscribe = this.observer.subscribe((next) => { + this.setResult(next) + }) + } + + private unsubscribeObserver(): void { + this.unsubscribe?.() + this.unsubscribe = undefined + } + + private syncClient(): boolean { + const nextClient = this.tryGetQueryClient() + if (!nextClient) { + this.unsubscribeObserver() + this.queryClient = undefined + this.observer = undefined + this.setResult(createIdleMutationResult()) + return false + } + + if (nextClient === this.queryClient) { + return true + } + + this.unsubscribeObserver() + this.queryClient = nextClient + this.observer = new MutationObserver( + this.queryClient, + this.defaultOptions(this.queryClient), + ) + this.setResult(this.observer.getCurrentResult()) + return true + } + + private refreshOptions(): boolean { + if (!this.syncClient() || !this.observer || !this.queryClient) { + return false + } + + this.observer.setOptions(this.defaultOptions()) + this.setResult(this.observer.getCurrentResult()) + return true + } + + private defaultOptions( + client = this.queryClient, + ): MutationObserverOptions { + if (!client) { + throw createMissingQueryClientError() + } + + return client.defaultMutationOptions(readAccessor(this.options)) + } +} + +/** + * Creates a Lit reactive controller that subscribes the host to a mutation. + * + * The returned accessor is callable and also exposes `current`, `mutate`, + * `mutateAsync`, `reset`, and `destroy`. When `options` is a function, it is + * re-read during host updates so mutation options can follow reactive host + * state. + * + * If `queryClient` is omitted, the controller resolves the client from the + * nearest connected `QueryClientProvider`. + * + * @param host - The Lit reactive controller host that owns the mutation + * subscription. + * @param options - Mutation observer options, or a getter that returns options. + * @param queryClient - Optional explicit query client. Provide this for + * controllers that should not resolve a client from Lit context. + * @returns An accessor for the latest mutation result with mutation helper + * methods. + * + * @example + * ```ts + * import { LitElement, html } from 'lit' + * import { createMutationController } from '@tanstack/lit-query' + * + * class AddTodoForm extends LitElement { + * private readonly addTodo = createMutationController(this, { + * mutationFn: (title: string) => + * fetch('/api/todos', { method: 'POST', body: JSON.stringify({ title }) }), + * }) + * + * render() { + * const mutation = this.addTodo() + * + * return html` + * + * ` + * } + * } + * ``` + */ +export function createMutationController< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +>( + host: ReactiveControllerHost, + options: Accessor< + CreateMutationOptions + >, + queryClient?: QueryClient, +): MutationResultAccessor { + const controller = new MutationController(host, options, queryClient) + + return Object.assign( + createValueAccessor(() => controller.current), + { + mutate: controller.mutate, + mutateAsync: controller.mutateAsync, + reset: controller.reset, + destroy: () => controller.destroy(), + }, + ) +} diff --git a/packages/lit-query/src/createQueriesController.ts b/packages/lit-query/src/createQueriesController.ts new file mode 100644 index 00000000000..c686cfa9b40 --- /dev/null +++ b/packages/lit-query/src/createQueriesController.ts @@ -0,0 +1,633 @@ +import { + QueriesObserver, + type DefaultError, + type DefinedQueryObserverResult, + type OmitKeyof, + type QueriesObserverOptions, + type QueryFunction, + type QueryKey, + type QueryObserverOptions, + type QueryObserverResult, + type ThrowOnError, +} from '@tanstack/query-core' +import type { QueryClient } from '@tanstack/query-core' +import type { ReactiveControllerHost } from 'lit' +import { + createValueAccessor, + readAccessor, + type Accessor, + type ValueAccessor, +} from './accessor.js' +import { createMissingQueryClientError } from './context.js' +import { BaseController } from './controllers/BaseController.js' + +/** + * Options for one query inside `createQueriesController`. + * + * This mirrors `QueryObserverOptions` and is used by the tuple inference that + * maps each input query to its corresponding result. + */ +export type CreateQueriesInput< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = QueryObserverOptions + +type CreateQueriesInputForController< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = OmitKeyof, never> + +type MAXIMUM_DEPTH = 20 + +type SkipTokenForCreateQueries = symbol + +type GetCreateQueriesInput = T extends { + queryFnData: infer TQueryFnData + error?: infer TError + data: infer TData +} + ? CreateQueriesInputForController + : T extends { queryFnData: infer TQueryFnData; error?: infer TError } + ? CreateQueriesInputForController + : T extends { data: infer TData; error?: infer TError } + ? CreateQueriesInputForController + : T extends [infer TQueryFnData, infer TError, infer TData] + ? CreateQueriesInputForController + : T extends [infer TQueryFnData, infer TError] + ? CreateQueriesInputForController + : T extends [infer TQueryFnData] + ? CreateQueriesInputForController + : T extends { + queryFn?: + | QueryFunction + | SkipTokenForCreateQueries + select?: (data: any) => infer TData + throwOnError?: ThrowOnError + } + ? CreateQueriesInputForController< + TQueryFnData, + unknown extends TError ? DefaultError : TError, + unknown extends TData ? TQueryFnData : TData, + TQueryKey + > + : CreateQueriesInputForController + +type GetDefinedOrUndefinedCreateQueriesResult< + T, + TData, + TError = unknown, +> = T extends { + initialData?: infer TInitialData +} + ? unknown extends TInitialData + ? QueryObserverResult + : TInitialData extends TData + ? DefinedQueryObserverResult + : TInitialData extends () => infer TInitialDataResult + ? unknown extends TInitialDataResult + ? QueryObserverResult + : TInitialDataResult extends TData + ? DefinedQueryObserverResult + : QueryObserverResult + : QueryObserverResult + : QueryObserverResult + +type GetCreateQueriesResult = T extends { + queryFnData: any + error?: infer TError + data: infer TData +} + ? GetDefinedOrUndefinedCreateQueriesResult + : T extends { queryFnData: infer TQueryFnData; error?: infer TError } + ? GetDefinedOrUndefinedCreateQueriesResult + : T extends { data: infer TData; error?: infer TError } + ? GetDefinedOrUndefinedCreateQueriesResult + : T extends [any, infer TError, infer TData] + ? GetDefinedOrUndefinedCreateQueriesResult + : T extends [infer TQueryFnData, infer TError] + ? GetDefinedOrUndefinedCreateQueriesResult + : T extends [infer TQueryFnData] + ? GetDefinedOrUndefinedCreateQueriesResult + : T extends { + queryFn?: + | QueryFunction + | SkipTokenForCreateQueries + select?: (data: any) => infer TData + throwOnError?: ThrowOnError + } + ? GetDefinedOrUndefinedCreateQueriesResult< + T, + unknown extends TData ? TQueryFnData : TData, + unknown extends TError ? DefaultError : TError + > + : QueryObserverResult + +export type CreateQueriesOptions< + T extends Array, + TResults extends Array = [], + TDepth extends ReadonlyArray = [], +> = TDepth['length'] extends MAXIMUM_DEPTH + ? Array + : T extends [] + ? [] + : T extends [infer Head] + ? [...TResults, GetCreateQueriesInput] + : T extends [infer Head, ...infer Tails] + ? CreateQueriesOptions< + [...Tails], + [...TResults, GetCreateQueriesInput], + [...TDepth, 1] + > + : ReadonlyArray extends T + ? T + : T extends Array< + CreateQueriesInputForController< + infer TQueryFnData, + infer TError, + infer TData, + infer TQueryKey + > + > + ? Array< + CreateQueriesInputForController< + TQueryFnData, + TError, + TData, + TQueryKey + > + > + : Array + +/** + * Tuple of query results inferred from the query inputs passed to + * `createQueriesController`. + */ +export type CreateQueriesResults< + T extends Array, + TResults extends Array = [], + TDepth extends ReadonlyArray = [], +> = TDepth['length'] extends MAXIMUM_DEPTH + ? Array + : T extends [] + ? [] + : T extends [infer Head] + ? [...TResults, GetCreateQueriesResult] + : T extends [infer Head, ...infer Tails] + ? CreateQueriesResults< + [...Tails], + [...TResults, GetCreateQueriesResult], + [...TDepth, 1] + > + : { [K in keyof T]: GetCreateQueriesResult } + +/** + * Options accepted by `createQueriesController`. + * + * `queries` can be a static list or a getter that returns the current list. + * `combine` can reshape the array of query results into a single value for the + * returned accessor. + */ +export type CreateQueriesControllerOptions< + TQueryOptions extends Array = Array, + TCombinedResult = CreateQueriesResults, +> = { + /** Query options to observe, or a getter that returns the current options. */ + queries: Accessor< + | readonly [...CreateQueriesOptions] + | readonly [ + ...{ + [K in keyof TQueryOptions]: GetCreateQueriesInput + }, + ] + > + /** Optional function that combines the query result array into one value. */ + combine?: (result: CreateQueriesResults) => TCombinedResult +} + +/** + * Accessor returned by `createQueriesController`. + * + * Call the accessor or read its `current` property to get the latest combined + * value. + */ +export type QueriesResultAccessor = + ValueAccessor & { + /** Removes the controller from its Lit host and unsubscribes observers. */ + destroy: () => void + } + +function createPendingQueryObserverResult(): QueryObserverResult { + return { + data: undefined, + dataUpdatedAt: 0, + error: null, + errorUpdatedAt: 0, + failureCount: 0, + failureReason: null, + errorUpdateCount: 0, + isError: false, + isFetched: false, + isFetchedAfterMount: false, + isFetching: false, + isInitialLoading: false, + isLoading: false, + isLoadingError: false, + isPaused: false, + isPending: true, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isEnabled: true, + isSuccess: false, + fetchStatus: 'idle', + status: 'pending', + refetch: (() => + Promise.reject( + createMissingQueryClientError(), + )) as QueryObserverResult['refetch'], + promise: Promise.resolve(undefined as never), + } as unknown as QueryObserverResult +} + +function createPlaceholderQueryObserverResult( + query: QueryObserverOptions, +): QueryObserverResult { + const initialData = + typeof query.initialData === 'function' + ? query.initialData() + : query.initialData + + if (initialData === undefined) { + return createPendingQueryObserverResult() + } + + const data = query.select ? query.select(initialData) : initialData + const initialDataUpdatedAt = + typeof query.initialDataUpdatedAt === 'function' + ? query.initialDataUpdatedAt() + : query.initialDataUpdatedAt + + return { + ...createPendingQueryObserverResult(), + data, + dataUpdatedAt: initialDataUpdatedAt ?? Date.now(), + isPending: false, + isInitialLoading: false, + isLoading: false, + isSuccess: true, + status: 'success', + promise: Promise.resolve(data as never), + } as QueryObserverResult +} + +function resolveQueriesOptions( + optionsAccessor: Accessor< + CreateQueriesControllerOptions + >, + client: QueryClient, +): { + queries: Array + combine: QueriesObserverOptions['combine'] +} { + const resolvedOptions = readAccessor(optionsAccessor) + const resolvedQueries = readAccessor(resolvedOptions.queries) + const combine = + resolvedOptions.combine as QueriesObserverOptions['combine'] + + return { + queries: resolvedQueries.map((query) => { + const defaulted = client.defaultQueryOptions( + query as QueryObserverOptions, + ) + ;(defaulted as { _optimisticResults?: 'optimistic' })._optimisticResults = + 'optimistic' + return defaulted + }), + combine, + } +} + +class QueriesController< + TQueryOptions extends Array, + TCombinedResult, +> extends BaseController { + private readonly options: Accessor< + CreateQueriesControllerOptions + > + private observer: QueriesObserver | undefined + private unsubscribe: (() => void) | undefined + private queryClient: QueryClient | undefined + private explicitInitializationError: unknown | undefined + private placeholderInitialized = false + private placeholderRetryableFailure = true + + constructor( + host: ReactiveControllerHost, + options: Accessor< + CreateQueriesControllerOptions + >, + queryClient?: QueryClient, + ) { + super(host, [] as unknown as TCombinedResult, queryClient) + this.options = options + + queueMicrotask(() => { + this.placeholderRetryableFailure = false + }) + + if (!queryClient) { + return + } + + if (this.shouldRefreshOnHostUpdate()) { + return + } + + this.tryInitializeExplicitClient(queryClient) + } + + protected onConnected(): void { + if (!this.syncClient()) { + return + } + + this.refreshOptions() + this.subscribe() + } + + protected onDisconnected(): void { + this.unsubscribeObserver() + this.syncClient() + } + + protected onHostUpdate(): void { + if (!this.shouldRefreshOnHostUpdate()) { + return + } + + if (!this.refreshOptions()) { + this.setPlaceholderResult() + } + } + + protected onQueryClientChanged(): void { + if (!this.syncClient() || !this.connectedState) { + return + } + + this.refreshOptions() + this.subscribe() + } + + private subscribe(): void { + if (!this.observer) { + return + } + + if (this.unsubscribe) { + return + } + + this.unsubscribe = this.observer.subscribe((next) => { + const { combine } = this.readResolvedOptions() + this.setResult(this.computeResult(next, combine)) + }) + } + + private tryInitializeExplicitClient(queryClient: QueryClient): boolean { + try { + const { queries, combine } = resolveQueriesOptions( + this.options, + queryClient, + ) + const observer = new QueriesObserver(queryClient, queries, { + combine, + } as QueriesObserverOptions) + this.queryClient = queryClient + this.observer = observer + this.result = this.computeResult(observer.getCurrentResult(), combine) + this.explicitInitializationError = undefined + this.placeholderInitialized = true + return true + } catch (error) { + // Retry after construction completes so late host fields used by + // static queries/combine callbacks can finish initializing first. + this.explicitInitializationError = error + this.queryClient = undefined + this.observer = undefined + return false + } + } + + private retryExplicitInitializationIfNeeded(): boolean { + if (!this.explicitInitializationError || this.shouldRefreshOnHostUpdate()) { + return false + } + + const explicitClient = this.tryGetQueryClient() + if (!explicitClient) { + return false + } + + return this.tryInitializeExplicitClient(explicitClient) + } + + private unsubscribeObserver(): void { + this.unsubscribe?.() + this.unsubscribe = undefined + } + + private syncClient(): boolean { + const nextClient = this.tryGetQueryClient() + if (!nextClient) { + this.unsubscribeObserver() + this.queryClient = undefined + this.observer = undefined + this.setPlaceholderResult() + return false + } + + if (nextClient === this.queryClient) { + return true + } + + this.unsubscribeObserver() + this.queryClient = nextClient + const { queries, combine } = this.readResolvedOptions() + this.observer = new QueriesObserver(this.queryClient, queries, { + combine, + } as QueriesObserverOptions) + this.setResult( + this.computeResult(this.observer.getCurrentResult(), combine), + ) + this.placeholderInitialized = true + return true + } + + private refreshOptions(): boolean { + if (!this.syncClient() || !this.observer) { + return false + } + + const { queries, combine } = this.readResolvedOptions() + + this.observer.setQueries(queries, { + combine, + } as QueriesObserverOptions) + + const [rawResult, getCombinedResult] = this.observer.getOptimisticResult( + queries, + combine, + ) + + this.setResult(getCombinedResult(rawResult)) + return true + } + + private readResolvedOptions(client = this.queryClient): { + queries: Array + combine: QueriesObserverOptions['combine'] + } { + if (!client) { + throw createMissingQueryClientError() + } + + return resolveQueriesOptions( + this.options as Accessor< + CreateQueriesControllerOptions + >, + client, + ) + } + + private shouldRefreshOnHostUpdate(): boolean { + if (typeof this.options === 'function') { + return true + } + + return typeof this.options.queries === 'function' + } + + private computeResult( + rawResult: Array, + combine: QueriesObserverOptions['combine'], + ): TCombinedResult { + return (combine ? combine(rawResult) : rawResult) as TCombinedResult + } + + private static createPlaceholderResult( + optionsAccessor: Accessor< + CreateQueriesControllerOptions + >, + ): TCombinedResult { + const resolvedOptions = readAccessor(optionsAccessor) + const queries = readAccessor(resolvedOptions.queries) + const placeholders = queries.map((query) => + createPlaceholderQueryObserverResult(query as QueryObserverOptions), + ) + return ( + resolvedOptions.combine + ? resolvedOptions.combine(placeholders as never) + : placeholders + ) as TCombinedResult + } + + readCurrent(): TCombinedResult { + if (this.retryExplicitInitializationIfNeeded()) { + return this.current + } + + if (this.explicitInitializationError && !this.placeholderRetryableFailure) { + throw this.explicitInitializationError + } + + if (!this.queryClient && !this.observer && !this.placeholderInitialized) { + try { + // Early reads can happen during class-field initialization, before + // accessors referenced by queries/combine are ready. Retry normally + // after construction finishes and only surface errors after that point. + this.setPlaceholderResult() + } catch (error) { + if (!this.placeholderRetryableFailure) { + throw error + } + } + } + + return this.current + } + + private setPlaceholderResult(): void { + this.result = QueriesController.createPlaceholderResult(this.options) + this.placeholderInitialized = true + } +} + +/** + * Creates a Lit reactive controller that subscribes the host to multiple + * queries. + * + * The returned accessor is callable and also exposes `current` and `destroy`. + * When `options` or `options.queries` is a function, it is re-read during host + * updates so the query list can follow reactive host state. + * + * If `queryClient` is omitted, the controller resolves the client from the + * nearest connected `QueryClientProvider`. + * + * @param host - The Lit reactive controller host that owns the queries + * subscription. + * @param options - Queries controller options, or a getter that returns options. + * @param queryClient - Optional explicit query client. Provide this for + * controllers that should not resolve a client from Lit context. + * @returns An accessor for the latest query results, or the value returned by + * `combine`. + * + * @example + * ```ts + * import { LitElement, html } from 'lit' + * import { createQueriesController } from '@tanstack/lit-query' + * + * class DashboardView extends LitElement { + * private readonly dashboard = createQueriesController(this, { + * queries: [ + * { queryKey: ['stats'], queryFn: fetchStats }, + * { queryKey: ['projects'], queryFn: fetchProjects }, + * ], + * combine: ([stats, projects]) => ({ + * stats: stats.data, + * projects: projects.data ?? [], + * isPending: stats.isPending || projects.isPending, + * }), + * }) + * + * render() { + * const dashboard = this.dashboard() + * return html`

Projects: ${dashboard.projects.length}

` + * } + * } + * ``` + */ +export function createQueriesController< + TQueryOptions extends Array, + TCombinedResult = CreateQueriesResults, +>( + host: ReactiveControllerHost, + options: Accessor< + CreateQueriesControllerOptions + >, + queryClient?: QueryClient, +): QueriesResultAccessor { + const controller = new QueriesController(host, options, queryClient) + + return Object.assign( + createValueAccessor(() => controller.readCurrent()), + { + destroy: () => controller.destroy(), + }, + ) +} diff --git a/packages/lit-query/src/createQueryController.ts b/packages/lit-query/src/createQueryController.ts new file mode 100644 index 00000000000..2ea540e3404 --- /dev/null +++ b/packages/lit-query/src/createQueryController.ts @@ -0,0 +1,342 @@ +import { + QueryObserver, + type DefaultError, + type DefaultedQueryObserverOptions, + type QueryKey, + type QueryObserverOptions, + type QueryObserverResult, +} from '@tanstack/query-core' +import type { QueryClient } from '@tanstack/query-core' +import type { ReactiveControllerHost } from 'lit' +import { + createValueAccessor, + readAccessor, + type Accessor, + type ValueAccessor, +} from './accessor.js' +import { createMissingQueryClientError } from './context.js' +import { BaseController } from './controllers/BaseController.js' + +/** + * Options accepted by `createQueryController`. + * + * This is the Lit adapter shape for `QueryObserverOptions`. It can be passed + * directly to `createQueryController`, or wrapped in an `Accessor` when the + * options depend on Lit host state. + */ +export type CreateQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = QueryObserverOptions + +/** + * Accessor returned by `createQueryController`. + * + * Call the accessor or read its `current` property to get the latest query + * result. The attached methods delegate to the active query observer. + */ +export type QueryResultAccessor = ValueAccessor< + QueryObserverResult +> & { + /** Refetches the current query. */ + refetch: QueryObserverResult['refetch'] + /** Resolves with an optimistic query result, fetching first when needed. */ + suspense: () => Promise> + /** Removes the controller from its Lit host and unsubscribes observers. */ + destroy: () => void +} + +function createPendingQueryResult(): QueryObserverResult< + TData, + TError +> { + return { + data: undefined, + dataUpdatedAt: 0, + error: null, + errorUpdatedAt: 0, + failureCount: 0, + failureReason: null, + errorUpdateCount: 0, + isError: false, + isFetched: false, + isFetchedAfterMount: false, + isFetching: false, + isInitialLoading: false, + isLoading: false, + isLoadingError: false, + isPaused: false, + isPending: true, + isPlaceholderData: false, + isRefetchError: false, + isRefetching: false, + isStale: true, + isEnabled: true, + isSuccess: false, + fetchStatus: 'idle', + status: 'pending', + refetch: (() => + Promise.reject(createMissingQueryClientError())) as QueryObserverResult< + TData, + TError + >['refetch'], + promise: Promise.resolve(undefined as never), + } as unknown as QueryObserverResult +} + +class QueryController< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey extends QueryKey, +> extends BaseController> { + private readonly options: Accessor< + CreateQueryOptions + > + private observer: + | QueryObserver + | undefined + private unsubscribe: (() => void) | undefined + private queryClient: QueryClient | undefined + + constructor( + host: ReactiveControllerHost, + options: Accessor< + CreateQueryOptions + >, + queryClient?: QueryClient, + ) { + const initialClient = queryClient + super(host, createPendingQueryResult(), queryClient) + this.options = options + + if (!initialClient) { + return + } + + if (typeof options === 'function') { + return + } + + const defaulted = this.defaultOptions(initialClient) + const observer = new QueryObserver(initialClient, defaulted) + this.queryClient = initialClient + this.observer = observer + this.result = observer.getOptimisticResult(defaulted) + } + + protected onConnected(): void { + if (!this.syncClient()) { + return + } + + this.refreshOptions() + this.subscribe() + this.observer?.updateResult() + if (this.observer) { + this.setResult(this.observer.getCurrentResult()) + } + } + + protected onDisconnected(): void { + this.unsubscribeObserver() + this.syncClient() + } + + protected onHostUpdate(): void { + if (typeof this.options !== 'function') { + return + } + + this.refreshOptions() + } + + protected onQueryClientChanged(): void { + if (!this.syncClient()) { + return + } + + if (!this.connectedState) { + return + } + + this.refreshOptions() + this.subscribe() + this.observer?.updateResult() + if (this.observer) { + this.setResult(this.observer.getCurrentResult()) + } + } + + refetch: QueryObserverResult['refetch'] = (...args) => { + if (!this.refreshOptions()) { + return Promise.reject(createMissingQueryClientError()) + } + + return this.result.refetch(...args) + } + + suspense = async (): Promise> => { + if (!this.syncClient() || !this.observer || !this.queryClient) { + throw createMissingQueryClientError() + } + + const options = this.defaultOptions(this.queryClient) + this.observer.setOptions(options) + const optimistic = this.observer.getOptimisticResult(options) + if (options.enabled !== false && optimistic.isStale) { + return this.observer.fetchOptimistic(options) + } + + return optimistic + } + + private subscribe(): void { + if (!this.observer) { + return + } + + if (this.unsubscribe) { + return + } + + this.unsubscribe = this.observer.subscribe((next) => { + this.setResult(next) + }) + } + + private unsubscribeObserver(): void { + this.unsubscribe?.() + this.unsubscribe = undefined + } + + private syncClient(): boolean { + const nextClient = this.tryGetQueryClient() + if (!nextClient) { + this.unsubscribeObserver() + this.queryClient = undefined + this.observer = undefined + this.setResult(createPendingQueryResult()) + return false + } + + if (nextClient === this.queryClient && this.observer) { + return true + } + + this.unsubscribeObserver() + this.queryClient = nextClient + const options = this.defaultOptions() + this.observer = new QueryObserver(this.queryClient, options) + this.setResult(this.observer.getOptimisticResult(options)) + return true + } + + private refreshOptions(): boolean { + if (!this.syncClient() || !this.observer) { + return false + } + + const options = this.defaultOptions(this.queryClient) + this.observer.setOptions(options) + this.setResult(this.observer.getOptimisticResult(options)) + return true + } + + private defaultOptions( + client = this.queryClient, + ): DefaultedQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey + > { + const resolvedClient = client ?? this.tryGetQueryClient() + if (!resolvedClient) { + throw createMissingQueryClientError() + } + + this.queryClient = resolvedClient + const defaulted = resolvedClient.defaultQueryOptions( + readAccessor(this.options), + ) as DefaultedQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey + > + ;(defaulted as { _optimisticResults?: 'optimistic' })._optimisticResults = + 'optimistic' + return defaulted + } +} + +/** + * Creates a Lit reactive controller that subscribes the host to a single query. + * + * The returned accessor is callable and also exposes `current`, `refetch`, + * `suspense`, and `destroy`. When `options` is a function, it is re-read during + * host updates so query keys and options can follow reactive host state. + * + * If `queryClient` is omitted, the controller resolves the client from the + * nearest connected `QueryClientProvider`. + * + * @param host - The Lit reactive controller host that owns the query + * subscription. + * @param options - Query observer options, or a getter that returns options. + * @param queryClient - Optional explicit query client. Provide this for + * controllers that should not resolve a client from Lit context. + * @returns An accessor for the latest query result with query helper methods. + * + * @example + * ```ts + * import { LitElement, html } from 'lit' + * import { createQueryController } from '@tanstack/lit-query' + * + * class TodosView extends LitElement { + * private readonly todos = createQueryController(this, { + * queryKey: ['todos'], + * queryFn: async () => fetch('/api/todos').then((r) => r.json()), + * }) + * + * render() { + * const query = this.todos() + * + * if (query.isPending) return html`Loading...` + * if (query.isError) return html`Error` + * + * return html`
    ${query.data.map((todo) => html`
  • ${todo.title}
  • `)}
` + * } + * } + * ``` + */ +export function createQueryController< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + host: ReactiveControllerHost, + options: Accessor< + CreateQueryOptions + >, + queryClient?: QueryClient, +): QueryResultAccessor { + const controller = new QueryController(host, options, queryClient) + + return Object.assign( + createValueAccessor(() => controller.current), + { + refetch: controller.refetch, + suspense: controller.suspense, + destroy: () => controller.destroy(), + }, + ) +} diff --git a/packages/lit-query/src/index.ts b/packages/lit-query/src/index.ts new file mode 100644 index 00000000000..bf87f1dc45b --- /dev/null +++ b/packages/lit-query/src/index.ts @@ -0,0 +1,72 @@ +/* istanbul ignore file */ + +export * from '@tanstack/query-core' + +export type { Accessor, ValueAccessor } from './accessor.js' + +export { + getDefaultQueryClient, + queryClientContext, + registerDefaultQueryClient, + resolveQueryClient, + unregisterDefaultQueryClient, + useQueryClient, +} from './context.js' + +export { QueryClientProvider } from './QueryClientProvider.js' + +export type { + CreateInfiniteQueryOptions, + InfiniteQueryResultAccessor, +} from './createInfiniteQueryController.js' +export { createInfiniteQueryController } from './createInfiniteQueryController.js' + +export type { + CreateMutationOptions, + MutationResultAccessor, +} from './createMutationController.js' +export { createMutationController } from './createMutationController.js' + +export type { + CreateQueriesControllerOptions, + CreateQueriesInput, + QueriesResultAccessor, +} from './createQueriesController.js' +export { createQueriesController } from './createQueriesController.js' + +export type { + CreateQueryOptions, + QueryResultAccessor, +} from './createQueryController.js' +export { createQueryController } from './createQueryController.js' + +export type { IsFetchingAccessor } from './useIsFetching.js' +export { useIsFetching } from './useIsFetching.js' + +export type { IsMutatingAccessor } from './useIsMutating.js' +export { useIsMutating } from './useIsMutating.js' + +export type { + MutationStateAccessor, + MutationStateOptions, +} from './useMutationState.js' +export { useMutationState } from './useMutationState.js' + +export type { + DefinedInitialDataOptions, + UndefinedInitialDataOptions, + UnusedSkipTokenOptions, +} from './queryOptions.js' +export { queryOptions } from './queryOptions.js' + +export { infiniteQueryOptions } from './infiniteQueryOptions.js' +export { mutationOptions } from './mutationOptions.js' + +export type { + InfiniteQueryControllerOptions, + MutationControllerOptions, + MutationControllerResult, + QueriesControllerOptions, + QueryControllerOptions, + QueryControllerResult, +} from './types.js' diff --git a/packages/lit-query/src/infiniteQueryOptions.ts b/packages/lit-query/src/infiniteQueryOptions.ts new file mode 100644 index 00000000000..f4bc8851ebe --- /dev/null +++ b/packages/lit-query/src/infiniteQueryOptions.ts @@ -0,0 +1,48 @@ +import type { + DefaultError, + InfiniteData, + InfiniteQueryObserverOptions, + QueryKey, +} from '@tanstack/query-core' + +/** + * Preserves and types infinite query options for reuse across Lit Query APIs. + * + * @param options - Infinite query options to preserve. + * @returns The same options object. + * + * @example + * ```ts + * import { infiniteQueryOptions } from '@tanstack/lit-query' + * + * const projectsOptions = infiniteQueryOptions({ + * queryKey: ['projects'], + * queryFn: ({ pageParam }) => fetchProjects(pageParam), + * initialPageParam: 0, + * getNextPageParam: (lastPage) => lastPage.nextCursor, + * }) + * ``` + */ +export function infiniteQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = InfiniteData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = unknown, +>( + options: InfiniteQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + >, +): InfiniteQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam +> { + return options +} diff --git a/packages/lit-query/src/mutationOptions.ts b/packages/lit-query/src/mutationOptions.ts new file mode 100644 index 00000000000..ce5ef1b085e --- /dev/null +++ b/packages/lit-query/src/mutationOptions.ts @@ -0,0 +1,31 @@ +import type { + DefaultError, + MutationObserverOptions, +} from '@tanstack/query-core' + +/** + * Preserves and types mutation options for reuse across Lit Query APIs. + * + * @param options - Mutation options to preserve. + * @returns The same options object. + * + * @example + * ```ts + * import { mutationOptions } from '@tanstack/lit-query' + * + * const addTodoOptions = mutationOptions({ + * mutationKey: ['add-todo'], + * mutationFn: (title: string) => addTodo(title), + * }) + * ``` + */ +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +>( + options: MutationObserverOptions, +): MutationObserverOptions { + return options +} diff --git a/packages/lit-query/src/queryOptions.ts b/packages/lit-query/src/queryOptions.ts new file mode 100644 index 00000000000..c97c6683970 --- /dev/null +++ b/packages/lit-query/src/queryOptions.ts @@ -0,0 +1,143 @@ +import type { + DataTag, + DefaultError, + InitialDataFunction, + NonUndefinedGuard, + OmitKeyof, + QueryFunction, + QueryKey, + QueryObserverOptions, + SkipToken, +} from '@tanstack/query-core' + +/** + * Query options with `initialData` that guarantees defined query data. + */ +export type DefinedInitialDataOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = Omit< + QueryObserverOptions, + 'queryFn' +> & { + initialData: + | NonUndefinedGuard + | (() => NonUndefinedGuard) + queryFn?: QueryFunction +} + +/** + * Query options where `queryFn` is present and not a `skipToken`. + */ +export type UnusedSkipTokenOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = OmitKeyof< + QueryObserverOptions, + 'queryFn' +> & { + queryFn?: Exclude< + QueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey + >['queryFn'], + SkipToken | undefined + > +} + +/** + * Query options where `initialData` can be omitted or undefined. + */ +export type UndefinedInitialDataOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = QueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey +> & { + initialData?: + | undefined + | InitialDataFunction> + | NonUndefinedGuard +} + +/** + * Brands query options so the `queryKey` carries the query function data and + * error types across TanStack Query APIs. + * + * @param options - Query options to preserve and brand. + * @returns The same options object with a typed `queryKey`. + * + * @example + * ```ts + * import { queryOptions } from '@tanstack/lit-query' + * + * const todosOptions = queryOptions({ + * queryKey: ['todos'], + * queryFn: fetchTodos, + * initialData: [], + * }) + * ``` + */ +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: DefinedInitialDataOptions, +): DefinedInitialDataOptions & { + queryKey: DataTag +} + +/** + * Brands query options so the `queryKey` carries the query function data and + * error types across TanStack Query APIs. + * + * @param options - Query options to preserve and brand. + * @returns The same options object with a typed `queryKey`. + */ +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: UnusedSkipTokenOptions, +): UnusedSkipTokenOptions & { + queryKey: DataTag +} + +/** + * Brands query options so the `queryKey` carries the query function data and + * error types across TanStack Query APIs. + * + * @param options - Query options to preserve and brand. + * @returns The same options object with a typed `queryKey`. + */ +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: UndefinedInitialDataOptions, +): UndefinedInitialDataOptions & { + queryKey: DataTag +} + +export function queryOptions(options: unknown) { + return options +} diff --git a/packages/lit-query/src/tests/base-controller.test.ts b/packages/lit-query/src/tests/base-controller.test.ts new file mode 100644 index 00000000000..8587632fb8d --- /dev/null +++ b/packages/lit-query/src/tests/base-controller.test.ts @@ -0,0 +1,111 @@ +import { describe, expect, it } from 'vitest' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { QueryClient } from '@tanstack/query-core' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { BaseController } from '../controllers/BaseController.js' + +const providerTagName = 'test-query-client-provider-base-controller' +if (!customElements.get(providerTagName)) { + customElements.define(providerTagName, QueryClientProvider) +} + +class RecordingController extends BaseController { + readonly lifecycle: string[] = [] + + constructor(host: ReactiveControllerHost) { + super(host, 'pending') + } + + protected onConnected(): void { + this.lifecycle.push( + `connected:${this.tryGetQueryClient() ? 'client' : 'missing'}`, + ) + } + + protected onDisconnected(): void {} + + protected onHostUpdate(): void {} + + protected onQueryClientChanged(): void { + this.lifecycle.push( + `changed:${this.tryGetQueryClient() ? 'client' : 'missing'}`, + ) + } +} + +class AlreadyConnectedContextHost + extends HTMLElement + implements ReactiveControllerHost +{ + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + if (this.isConnected) { + controller.hostConnected?.() + } + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + + connectedCallback(): void { + for (const controller of this.controllers) { + controller.hostConnected?.() + } + } + + disconnectedCallback(): void { + for (const controller of this.controllers) { + controller.hostDisconnected?.() + } + } + + attachController(): RecordingController { + return new RecordingController(this) + } +} + +const hostTagName = 'test-base-controller-context-host' +if (!customElements.get(hostTagName)) { + customElements.define(hostTagName, AlreadyConnectedContextHost) +} + +describe('BaseController', () => { + it('defers provider resolution on already-connected hosts until after onConnected', async () => { + const client = new QueryClient() + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + + const host = document.createElement( + hostTagName, + ) as AlreadyConnectedContextHost + provider.append(host) + + document.body.append(provider) + await provider.updateComplete + + const controller = host.attachController() + await Promise.resolve() + await Promise.resolve() + + expect(controller.lifecycle).toEqual([ + 'connected:missing', + 'changed:client', + ]) + + controller.destroy() + provider.remove() + await Promise.resolve() + }) +}) diff --git a/packages/lit-query/src/tests/client-switch-controllers.test.ts b/packages/lit-query/src/tests/client-switch-controllers.test.ts new file mode 100644 index 00000000000..3e60bfd88b9 --- /dev/null +++ b/packages/lit-query/src/tests/client-switch-controllers.test.ts @@ -0,0 +1,482 @@ +import { describe, expect, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { createInfiniteQueryController } from '../createInfiniteQueryController.js' +import { createMutationController } from '../createMutationController.js' +import { createQueriesController } from '../createQueriesController.js' +import { waitFor } from './testHost.js' + +const providerTagName = 'test-query-client-provider-switch' +if (!customElements.get(providerTagName)) { + customElements.define(providerTagName, QueryClientProvider) +} + +class BaseControllerHostElement + extends HTMLElement + implements ReactiveControllerHost +{ + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + + connectedCallback(): void { + for (const controller of this.controllers) { + controller.hostConnected?.() + } + } + + disconnectedCallback(): void { + for (const controller of this.controllers) { + controller.hostDisconnected?.() + } + } +} + +class MutationSwitchHostElement extends BaseControllerHostElement { + mutationCalls = 0 + readonly mutationKey = ['switch-mutation'] as const + + readonly mutation = createMutationController(this, () => ({ + mutationKey: this.mutationKey, + mutationFn: async (value: number) => { + this.mutationCalls += 1 + return value + 1 + }, + })) +} + +const mutationHostTagName = 'test-mutation-switch-host' +if (!customElements.get(mutationHostTagName)) { + customElements.define(mutationHostTagName, MutationSwitchHostElement) +} + +class QueriesSwitchHostElement extends BaseControllerHostElement { + queryCalls = 0 + readonly queryKey = ['switch-queries'] as const + + readonly queries = createQueriesController(this, () => ({ + queries: [ + { + queryKey: this.queryKey, + queryFn: async () => { + this.queryCalls += 1 + return `q-${this.queryCalls}` + }, + retry: false, + }, + ] as const, + combine: (results) => results.map((result) => result.data), + })) +} + +const queriesHostTagName = 'test-queries-switch-host' +if (!customElements.get(queriesHostTagName)) { + customElements.define(queriesHostTagName, QueriesSwitchHostElement) +} + +class InfiniteSwitchHostElement extends BaseControllerHostElement { + pageCalls = 0 + readonly queryKey = ['switch-infinite'] as const + + readonly infinite = createInfiniteQueryController(this, () => ({ + queryKey: this.queryKey, + initialPageParam: 0, + queryFn: async ({ pageParam }) => { + this.pageCalls += 1 + return Number(pageParam) + }, + getNextPageParam: (lastPage: number) => + lastPage < 1 ? lastPage + 1 : undefined, + retry: false, + })) +} + +const infiniteHostTagName = 'test-infinite-switch-host' +if (!customElements.get(infiniteHostTagName)) { + customElements.define(infiniteHostTagName, InfiniteSwitchHostElement) +} + +describe('LQ-003 client-switch coverage across controllers', () => { + it('switches mutation controller to new provider client while connected', async () => { + const clientA = new QueryClient() + const clientB = new QueryClient() + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = clientA + document.body.append(provider) + await provider.updateComplete + + const consumer = document.createElement( + mutationHostTagName, + ) as MutationSwitchHostElement + provider.append(consumer) + + await Promise.resolve() + await Promise.resolve() + await expect(consumer.mutation.mutateAsync(1)).resolves.toBe(2) + + const countAAfterFirst = clientA + .getMutationCache() + .findAll({ mutationKey: consumer.mutationKey }).length + expect(countAAfterFirst).toBeGreaterThan(0) + + provider.client = clientB + await provider.updateComplete + await Promise.resolve() + + await expect(consumer.mutation.mutateAsync(2)).resolves.toBe(3) + + const countAAfterSecond = clientA + .getMutationCache() + .findAll({ mutationKey: consumer.mutationKey }).length + const countBAfterSecond = clientB + .getMutationCache() + .findAll({ mutationKey: consumer.mutationKey }).length + + expect(countAAfterSecond).toBe(countAAfterFirst) + expect(countBAfterSecond).toBeGreaterThan(0) + + consumer.mutation.destroy() + provider.remove() + await Promise.resolve() + }) + + it('switches queries controller to new provider client while connected', async () => { + const clientA = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const clientB = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = clientA + document.body.append(provider) + await provider.updateComplete + + const consumer = document.createElement( + queriesHostTagName, + ) as QueriesSwitchHostElement + provider.append(consumer) + + await Promise.resolve() + await waitFor(() => typeof consumer.queries()[0] === 'string') + + const cacheAEntryBeforeSwitch = clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + expect(cacheAEntryBeforeSwitch?.getObserversCount()).toBe(1) + + provider.client = clientB + await provider.updateComplete + + await waitFor(() => { + const cacheBEntry = clientB + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + return Boolean(cacheBEntry && cacheBEntry.getObserversCount() === 1) + }) + + const cacheAEntryAfterSwitch = clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + expect(cacheAEntryAfterSwitch?.getObserversCount() ?? 0).toBe(0) + + void clientB.invalidateQueries({ queryKey: consumer.queryKey }) + await waitFor(() => consumer.queryCalls >= 2) + + consumer.queries.destroy() + provider.remove() + await Promise.resolve() + }) + + it('switches infinite query controller to new provider client while connected', async () => { + const clientA = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const clientB = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = clientA + document.body.append(provider) + await provider.updateComplete + + const consumer = document.createElement( + infiniteHostTagName, + ) as InfiniteSwitchHostElement + provider.append(consumer) + + await Promise.resolve() + await waitFor(() => consumer.infinite().isSuccess) + expect(consumer.infinite().data?.pages).toEqual([0]) + + const cacheAEntryBeforeSwitch = clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + expect(cacheAEntryBeforeSwitch?.getObserversCount()).toBe(1) + + provider.client = clientB + await provider.updateComplete + + await waitFor(() => { + const cacheBEntry = clientB + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + return Boolean(cacheBEntry && cacheBEntry.getObserversCount() === 1) + }) + await waitFor( + () => + consumer.infinite().isSuccess && + (consumer.infinite().data?.pages.length ?? 0) >= 1, + 4000, + ) + await waitFor(() => consumer.infinite().hasNextPage === true, 4000) + + const cacheAEntryAfterSwitch = clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + expect(cacheAEntryAfterSwitch?.getObserversCount() ?? 0).toBe(0) + + await consumer.infinite.fetchNextPage() + await waitFor(() => consumer.infinite().data?.pages.length === 2, 4000) + expect(consumer.infinite().data?.pages).toEqual([0, 1]) + + consumer.infinite.destroy() + provider.remove() + await Promise.resolve() + }) + + it('reparents mutation controller under a different provider and binds the new nearest client', async () => { + const clientA = new QueryClient() + const clientB = new QueryClient() + + const providerA = document.createElement( + providerTagName, + ) as QueryClientProvider + providerA.client = clientA + const providerB = document.createElement( + providerTagName, + ) as QueryClientProvider + providerB.client = clientB + + const consumer = document.createElement( + mutationHostTagName, + ) as MutationSwitchHostElement + providerA.append(consumer) + + document.body.append(providerA) + await providerA.updateComplete + await Promise.resolve() + await Promise.resolve() + + await expect(consumer.mutation.mutateAsync(1)).resolves.toBe(2) + + consumer.remove() + await new Promise((resolve) => setTimeout(resolve, 0)) + providerA.remove() + + providerB.append(consumer) + document.body.append(providerB) + await providerB.updateComplete + await Promise.resolve() + await Promise.resolve() + + await expect(consumer.mutation.mutateAsync(2)).resolves.toBe(3) + expect( + clientA.getMutationCache().findAll({ mutationKey: consumer.mutationKey }) + .length, + ).toBeGreaterThan(0) + expect( + clientB.getMutationCache().findAll({ mutationKey: consumer.mutationKey }) + .length, + ).toBeGreaterThan(0) + + consumer.mutation.destroy() + providerB.remove() + await Promise.resolve() + }) + + it('reparents queries controller under a different provider without cross-tree leakage', async () => { + const clientA = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const clientB = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const providerA = document.createElement( + providerTagName, + ) as QueryClientProvider + providerA.client = clientA + const providerB = document.createElement( + providerTagName, + ) as QueryClientProvider + providerB.client = clientB + + const consumer = document.createElement( + queriesHostTagName, + ) as QueriesSwitchHostElement + providerA.append(consumer) + + document.body.append(providerA) + await providerA.updateComplete + + await waitFor(() => typeof consumer.queries()[0] === 'string') + + consumer.remove() + await waitFor( + () => + (clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount() ?? 0) === 0, + ) + providerA.remove() + + providerB.append(consumer) + document.body.append(providerB) + await providerB.updateComplete + await waitFor( + () => + typeof consumer.queries()[0] === 'string' && consumer.queryCalls >= 2, + ) + + expect( + clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount() ?? 0, + ).toBe(0) + expect( + clientB + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount(), + ).toBe(1) + + consumer.queries.destroy() + providerA.remove() + providerB.remove() + await Promise.resolve() + }) + + it('reparents infinite query controller under a different provider and binds the new nearest client', async () => { + const clientA = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const clientB = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const providerA = document.createElement( + providerTagName, + ) as QueryClientProvider + providerA.client = clientA + const providerB = document.createElement( + providerTagName, + ) as QueryClientProvider + providerB.client = clientB + + const consumer = document.createElement( + infiniteHostTagName, + ) as InfiniteSwitchHostElement + providerA.append(consumer) + + document.body.append(providerA) + await providerA.updateComplete + + await waitFor(() => consumer.infinite().isSuccess) + + consumer.remove() + await waitFor( + () => + (clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount() ?? 0) === 0, + ) + providerA.remove() + + providerB.append(consumer) + document.body.append(providerB) + await providerB.updateComplete + await waitFor( + () => + consumer.infinite().isSuccess && + (consumer.infinite().data?.pages.length ?? 0) >= 1 && + consumer.pageCalls >= 2, + ) + + expect( + clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount() ?? 0, + ).toBe(0) + expect( + clientB + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount(), + ).toBe(1) + + consumer.infinite.destroy() + providerA.remove() + providerB.remove() + await Promise.resolve() + }) +}) diff --git a/packages/lit-query/src/tests/context-provider.test.ts b/packages/lit-query/src/tests/context-provider.test.ts new file mode 100644 index 00000000000..8428e0b75f1 --- /dev/null +++ b/packages/lit-query/src/tests/context-provider.test.ts @@ -0,0 +1,213 @@ +import { describe, expect, it, vi } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { createQueryController } from '../createQueryController.js' +import { + getDefaultQueryClient, + resolveQueryClient, + useQueryClient, +} from '../index.js' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { + TestElementHost, + waitFor, + waitForMissingQueryClient, +} from './testHost.js' + +const tagName = 'test-query-client-provider' +if (!customElements.get(tagName)) { + customElements.define(tagName, QueryClientProvider) +} + +class ProviderContextConsumerElement extends TestElementHost { + readonly query = createQueryController(this, { + queryKey: ['provider-context-consumer'] as const, + queryFn: async () => 'ok', + retry: false, + }) +} + +const consumerTagName = 'test-query-client-provider-consumer' +if (!customElements.get(consumerTagName)) { + customElements.define(consumerTagName, ProviderContextConsumerElement) +} + +describe('QueryClientProvider/context', () => { + it('registers and unregisters the default query client for public helpers', async () => { + const client = new QueryClient() + const provider = document.createElement(tagName) as QueryClientProvider + provider.client = client + + document.body.append(provider) + await provider.updateComplete + + expect(useQueryClient()).toBe(client) + expect(resolveQueryClient()).toBe(client) + + provider.remove() + await Promise.resolve() + + expect(() => useQueryClient()).toThrowError(/No QueryClient available/) + }) + + it('prefers an explicit client in resolveQueryClient', () => { + const explicit = new QueryClient() + expect(resolveQueryClient(explicit)).toBe(explicit) + }) + + it('keeps the default client registered until the last provider using it disconnects', async () => { + const client = new QueryClient() + const providerA = document.createElement(tagName) as QueryClientProvider + const providerB = document.createElement(tagName) as QueryClientProvider + providerA.client = client + providerB.client = client + + document.body.append(providerA) + document.body.append(providerB) + await providerA.updateComplete + await providerB.updateComplete + + expect(useQueryClient()).toBe(client) + + providerB.remove() + await Promise.resolve() + + expect(useQueryClient()).toBe(client) + + providerA.remove() + await Promise.resolve() + + expect(() => useQueryClient()).toThrowError(/No QueryClient available/) + }) + + it('throws when multiple different providers make global lookup ambiguous', async () => { + const clientA = new QueryClient() + const clientB = new QueryClient() + const providerA = document.createElement(tagName) as QueryClientProvider + const providerB = document.createElement(tagName) as QueryClientProvider + providerA.client = clientA + providerB.client = clientB + + document.body.append(providerA) + document.body.append(providerB) + await providerA.updateComplete + await providerB.updateComplete + + expect(getDefaultQueryClient()).toBeUndefined() + expect(() => useQueryClient()).toThrowError( + /Multiple QueryClients are mounted/, + ) + expect(() => resolveQueryClient()).toThrowError( + /Multiple QueryClients are mounted/, + ) + + providerB.remove() + await Promise.resolve() + + expect(getDefaultQueryClient()).toBe(clientA) + expect(useQueryClient()).toBe(clientA) + + providerA.remove() + await Promise.resolve() + }) + + it('requires an explicit client before connect', () => { + const provider = document.createElement(tagName) as QueryClientProvider + expect(() => provider.connectedCallback()).toThrowError( + /No QueryClient available/, + ) + }) + + it('S8: provider swap while disconnected preserves mount/unmount contract', async () => { + const clientA = new QueryClient() + const clientB = new QueryClient() + + const mountA = vi.spyOn(clientA, 'mount') + const unmountA = vi.spyOn(clientA, 'unmount') + const mountB = vi.spyOn(clientB, 'mount') + const unmountB = vi.spyOn(clientB, 'unmount') + + const provider = document.createElement(tagName) as QueryClientProvider + provider.client = clientA + + document.body.append(provider) + await provider.updateComplete + + expect(mountA).toHaveBeenCalledTimes(1) + expect(unmountA).toHaveBeenCalledTimes(0) + expect(mountB).toHaveBeenCalledTimes(0) + expect(unmountB).toHaveBeenCalledTimes(0) + + provider.remove() + await Promise.resolve() + + expect(unmountA).toHaveBeenCalledTimes(1) + expect(mountB).toHaveBeenCalledTimes(0) + + provider.client = clientB + await provider.updateComplete + + expect(unmountA).toHaveBeenCalledTimes(1) + expect(mountB).toHaveBeenCalledTimes(0) + + document.body.append(provider) + await provider.updateComplete + + expect(mountA).toHaveBeenCalledTimes(1) + expect(unmountA).toHaveBeenCalledTimes(1) + expect(mountB).toHaveBeenCalledTimes(1) + expect(unmountB).toHaveBeenCalledTimes(0) + + provider.remove() + await Promise.resolve() + + expect(unmountB).toHaveBeenCalledTimes(1) + + mountA.mockRestore() + unmountA.mockRestore() + mountB.mockRestore() + unmountB.mockRestore() + }) + + it('LC-PROVIDER-01: invalid connected client updates tear down the mounted client before surfacing the error', async () => { + const client = new QueryClient() + const mount = vi.spyOn(client, 'mount') + const unmount = vi.spyOn(client, 'unmount') + + const provider = document.createElement(tagName) as QueryClientProvider + const consumer = document.createElement( + consumerTagName, + ) as ProviderContextConsumerElement + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + await waitFor(() => consumer.query().isSuccess) + + expect(mount).toHaveBeenCalledTimes(1) + expect(unmount).toHaveBeenCalledTimes(0) + expect(consumer.query().data).toBe('ok') + + provider.client = undefined as unknown as QueryClient + await expect(provider.updateComplete).rejects.toThrow( + /No QueryClient available/, + ) + expect(unmount).toHaveBeenCalledTimes(1) + expect(getDefaultQueryClient()).toBeUndefined() + expect(() => useQueryClient()).toThrowError(/No QueryClient available/) + await waitForMissingQueryClient(() => consumer.query()) + await expect(consumer.query.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + + consumer.query.destroy() + provider.remove() + await Promise.resolve() + + expect(unmount).toHaveBeenCalledTimes(1) + + mount.mockRestore() + unmount.mockRestore() + }) +}) diff --git a/packages/lit-query/src/tests/counters-and-state.test.ts b/packages/lit-query/src/tests/counters-and-state.test.ts new file mode 100644 index 00000000000..3a28b5a5161 --- /dev/null +++ b/packages/lit-query/src/tests/counters-and-state.test.ts @@ -0,0 +1,648 @@ +import { describe, expect, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { createMutationController } from '../createMutationController.js' +import { createQueryController } from '../createQueryController.js' +import { useIsFetching } from '../useIsFetching.js' +import { useIsMutating } from '../useIsMutating.js' +import { useMutationState } from '../useMutationState.js' +import { + TestControllerHost, + TestElementHost, + waitFor, + waitForMissingQueryClient, +} from './testHost.js' + +const providerTagName = 'test-query-client-provider-counters' +if (!customElements.get(providerTagName)) { + customElements.define(providerTagName, QueryClientProvider) +} + +let explicitCountersClient: QueryClient | undefined + +class ContextCountersHostElement extends TestElementHost { + readonly queryKey = ['context-counters', 'query'] as const + readonly mutationKey = ['context-counters', 'mutation'] as const + + private resolveQuery: (() => void) | undefined + private resolveMutation: (() => void) | undefined + + readonly query = createQueryController( + this, + { + queryKey: this.queryKey, + queryFn: () => + new Promise((resolve) => { + this.resolveQuery = () => resolve('query-ok') + }), + retry: false, + }, + explicitCountersClient, + ) + + readonly mutation = createMutationController( + this, + { + mutationKey: this.mutationKey, + mutationFn: () => + new Promise((resolve) => { + this.resolveMutation = () => resolve('mutation-ok') + }), + }, + explicitCountersClient, + ) + + readonly isFetching = useIsFetching( + this, + { queryKey: this.queryKey }, + explicitCountersClient, + ) + + readonly isMutating = useIsMutating( + this, + { mutationKey: this.mutationKey }, + explicitCountersClient, + ) + + readonly mutationStatuses = useMutationState( + this, + { + filters: { mutationKey: this.mutationKey }, + select: (mutation) => mutation.state.status, + }, + explicitCountersClient, + ) + + resolvePendingQuery(): void { + this.resolveQuery?.() + } + + resolvePendingMutation(): void { + this.resolveMutation?.() + } +} + +const contextCountersTagName = 'test-context-counters-host' +if (!customElements.get(contextCountersTagName)) { + customElements.define(contextCountersTagName, ContextCountersHostElement) +} + +describe('useIsFetching/useIsMutating/useMutationState', () => { + it('LC-COUNTERS-01: pre-connect placeholders stay zero/empty until a provider binds', async () => { + const consumer = document.createElement( + contextCountersTagName, + ) as ContextCountersHostElement + + expect(consumer.query().status).toBe('pending') + expect(consumer.isFetching()).toBe(0) + expect(consumer.isMutating()).toBe(0) + expect(consumer.mutationStatuses()).toEqual([]) + + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + mutations: { + retry: false, + }, + }, + }) + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor(() => consumer.isFetching() === 1) + consumer.resolvePendingQuery() + await waitFor(() => consumer.query().isSuccess) + await waitFor(() => consumer.isFetching() === 0) + + consumer.mutation.mutate() + await waitFor(() => consumer.isMutating() === 1) + consumer.resolvePendingMutation() + await waitFor(() => consumer.isMutating() === 0) + await waitFor(() => consumer.mutationStatuses().includes('success')) + + consumer.query.destroy() + consumer.mutation.destroy() + consumer.isFetching.destroy() + consumer.isMutating.destroy() + consumer.mutationStatuses.destroy() + provider.remove() + await Promise.resolve() + }) + + it('LC-COUNTERS-02: explicit client takes precedence over provider context', async () => { + const explicitClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + mutations: { + retry: false, + }, + }, + }) + const providerClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + mutations: { + retry: false, + }, + }, + }) + explicitCountersClient = explicitClient + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = providerClient + + const consumer = document.createElement( + contextCountersTagName, + ) as ContextCountersHostElement + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor(() => consumer.isFetching() === 1) + consumer.resolvePendingQuery() + await waitFor(() => consumer.query().isSuccess) + + consumer.mutation.mutate() + await waitFor(() => consumer.isMutating() === 1) + consumer.resolvePendingMutation() + await waitFor(() => consumer.isMutating() === 0) + + expect( + explicitClient.getQueryCache().find({ queryKey: consumer.queryKey }), + ).toBeDefined() + expect( + providerClient.getQueryCache().find({ queryKey: consumer.queryKey }), + ).toBeUndefined() + expect( + explicitClient + .getMutationCache() + .findAll({ mutationKey: consumer.mutationKey }).length, + ).toBeGreaterThan(0) + expect( + providerClient + .getMutationCache() + .findAll({ mutationKey: consumer.mutationKey }).length, + ).toBe(0) + + consumer.query.destroy() + consumer.mutation.destroy() + consumer.isFetching.destroy() + consumer.isMutating.destroy() + consumer.mutationStatuses.destroy() + provider.remove() + explicitCountersClient = undefined + await Promise.resolve() + }) + + it('tracks fetch/mutate counters and mutation state', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + + const query = createQueryController( + host, + { + queryKey: ['counter-test'], + queryFn: async () => { + await new Promise((resolve) => setTimeout(resolve, 40)) + return 'done' + }, + }, + client, + ) + + const mutation = createMutationController( + host, + { + mutationFn: async (value: number) => { + await new Promise((resolve) => setTimeout(resolve, 40)) + return value + 10 + }, + }, + client, + ) + + const isFetching = useIsFetching(host, {}, client) + const isMutating = useIsMutating(host, {}, client) + const mutationStatuses = useMutationState( + host, + { + select: (item) => item.state.status, + }, + client, + ) + + host.connect() + host.update() + + await waitFor(() => isFetching() === 1) + await waitFor(() => query().isSuccess) + await waitFor(() => isFetching() === 0) + + mutation.mutate(1) + await waitFor(() => isMutating() === 1) + await waitFor(() => isMutating() === 0) + await waitFor(() => mutationStatuses().includes('success')) + }) + + it('S1: useIsFetching tracks filters and filter reactivity', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let resolveA: (() => void) | undefined + let resolveB: (() => void) | undefined + let activeFilter: { queryKey?: readonly string[] } = { + queryKey: ['fetch-a'], + } + + createQueryController( + host, + { + queryKey: ['fetch-a'], + queryFn: () => + new Promise((resolve) => { + resolveA = () => resolve('a') + }), + }, + client, + ) + + createQueryController( + host, + { + queryKey: ['fetch-b'], + queryFn: () => + new Promise((resolve) => { + resolveB = () => resolve('b') + }), + }, + client, + ) + + const isFetchingAll = useIsFetching(host, {}, client) + const isFetchingFiltered = useIsFetching(host, () => activeFilter, client) + + host.connect() + host.update() + + await waitFor(() => isFetchingAll() === 2) + await waitFor(() => isFetchingFiltered() === 1) + + activeFilter = { queryKey: ['fetch-b'] } + host.update() + await waitFor(() => isFetchingFiltered() === 1) + + resolveA?.() + await waitFor(() => isFetchingAll() === 1) + await waitFor(() => isFetchingFiltered() === 1) + + resolveB?.() + await waitFor(() => isFetchingAll() === 0) + await waitFor(() => isFetchingFiltered() === 0) + }) + + it('S2: useIsMutating tracks mutation filters and reactivity', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + let resolveA: (() => void) | undefined + let resolveB: (() => void) | undefined + let activeFilter: { mutationKey?: readonly string[] } = { + mutationKey: ['mut-a'], + } + + const mutationA = createMutationController( + host, + { + mutationKey: ['mut-a'], + mutationFn: () => + new Promise((resolve) => { + resolveA = () => resolve(1) + }), + }, + client, + ) + + const mutationB = createMutationController( + host, + { + mutationKey: ['mut-b'], + mutationFn: () => + new Promise((resolve) => { + resolveB = () => resolve(2) + }), + }, + client, + ) + + const isMutatingAll = useIsMutating(host, {}, client) + const isMutatingFiltered = useIsMutating(host, () => activeFilter, client) + + host.connect() + host.update() + + mutationA.mutate() + mutationB.mutate() + + await waitFor(() => isMutatingAll() === 2) + await waitFor(() => isMutatingFiltered() === 1) + + activeFilter = { mutationKey: ['mut-b'] } + host.update() + await waitFor(() => isMutatingFiltered() === 1) + + resolveA?.() + await waitFor(() => isMutatingAll() === 1) + await waitFor(() => isMutatingFiltered() === 1) + + resolveB?.() + await waitFor(() => isMutatingAll() === 0) + await waitFor(() => isMutatingFiltered() === 0) + }) + + it('S3: useMutationState selects and filters by mutation key/status', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + let activeFilter: { mutationKey?: readonly string[] } = { + mutationKey: ['state-a'], + } + + const mutationA = createMutationController( + host, + { + mutationKey: ['state-a'], + mutationFn: async () => 'ok', + }, + client, + ) + + const mutationB = createMutationController( + host, + { + mutationKey: ['state-b'], + mutationFn: async () => { + throw new Error('state-b-failure') + }, + }, + client, + ) + + const mutationStatuses = useMutationState( + host, + { + filters: () => activeFilter, + select: (item) => item.state.status, + }, + client, + ) + + host.connect() + host.update() + + await expect(mutationA.mutateAsync(undefined)).resolves.toBe('ok') + await expect(mutationB.mutateAsync(undefined)).rejects.toThrow( + 'state-b-failure', + ) + + await waitFor( + () => + mutationStatuses().length === 1 && mutationStatuses()[0] === 'success', + ) + + activeFilter = { mutationKey: ['state-b'] } + host.update() + + await waitFor( + () => + mutationStatuses().length === 1 && mutationStatuses()[0] === 'error', + ) + }) + + it('S4: useMutationState refreshes when the select closure changes on host update', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + let label = 'before' + + const mutation = createMutationController( + host, + { + mutationKey: ['state-select-reactivity'], + mutationFn: async () => 'ok', + }, + client, + ) + + const mutationLabels = useMutationState( + host, + { + filters: { + mutationKey: ['state-select-reactivity'], + }, + select: () => label, + }, + client, + ) + + host.connect() + host.update() + + await expect(mutation.mutateAsync(undefined)).resolves.toBe('ok') + await waitFor( + () => mutationLabels().length === 1 && mutationLabels()[0] === 'before', + ) + + label = 'after' + host.update() + + await waitFor( + () => mutationLabels().length === 1 && mutationLabels()[0] === 'after', + ) + + mutation.destroy() + mutationLabels.destroy() + }) + + it('LC-COUNTERS-03: read-only helpers fail after handshake and recover under a provider', async () => { + const consumer = document.createElement( + contextCountersTagName, + ) as ContextCountersHostElement + + expect(consumer.query().status).toBe('pending') + expect(consumer.isFetching()).toBe(0) + expect(consumer.isMutating()).toBe(0) + expect(consumer.mutationStatuses()).toEqual([]) + + document.body.append(consumer) + await waitForMissingQueryClient(() => consumer.query()) + + expect(() => consumer.isFetching()).toThrow(/No QueryClient available/) + expect(() => consumer.isMutating()).toThrow(/No QueryClient available/) + expect(() => consumer.mutationStatuses()).toThrow( + /No QueryClient available/, + ) + + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + mutations: { + retry: false, + }, + }, + }) + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor(() => consumer.isFetching() === 1) + consumer.resolvePendingQuery() + await waitFor(() => consumer.query().isSuccess) + await waitFor(() => consumer.isFetching() === 0) + + consumer.query.destroy() + consumer.mutation.destroy() + consumer.isFetching.destroy() + consumer.isMutating.destroy() + consumer.mutationStatuses.destroy() + provider.remove() + await Promise.resolve() + }) + + it('ALREADYCONN-COUNTERS-01: read-only helpers on already-connected host with explicit client do not throw', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + mutations: { + retry: false, + }, + }, + }) + + const producerHost = new TestControllerHost() + let resolveQuery: (() => void) | undefined + let resolveMutation: (() => void) | undefined + + createQueryController( + producerHost, + { + queryKey: ['already-connected-counters-query'], + queryFn: () => + new Promise((resolve) => { + resolveQuery = () => resolve('query-ok') + }), + retry: false, + }, + client, + ) + + const producerMutation = createMutationController( + producerHost, + { + mutationKey: ['already-connected-counters-mutation'], + mutationFn: () => + new Promise((resolve) => { + resolveMutation = () => resolve('mutation-ok') + }), + }, + client, + ) + + producerHost.connect() + producerHost.update() + await waitFor(() => client.isFetching() === 1) + + producerMutation.mutate() + await waitFor(() => client.isMutating() === 1) + + class AlreadyConnectedHost implements ReactiveControllerHost { + private readonly controllers = new Set() + private isConnected = true + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + if (this.isConnected) { + controller.hostConnected?.() + } + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + const host = new AlreadyConnectedHost() + const isFetching = useIsFetching(host, {}, client) + const isMutating = useIsMutating(host, {}, client) + const mutationStatuses = useMutationState( + host, + { + filters: { mutationKey: ['already-connected-counters-mutation'] }, + select: (mutation) => mutation.state.status, + }, + client, + ) + + await Promise.resolve() + await Promise.resolve() + + await waitFor(() => isFetching() === 1) + await waitFor(() => isMutating() === 1) + await waitFor(() => mutationStatuses().includes('pending')) + + resolveQuery?.() + resolveMutation?.() + + await waitFor(() => isFetching() === 0) + await waitFor(() => isMutating() === 0) + await waitFor(() => mutationStatuses().includes('success')) + + isFetching.destroy() + isMutating.destroy() + mutationStatuses.destroy() + producerMutation.destroy() + }) +}) diff --git a/packages/lit-query/src/tests/infinite-and-options.test.ts b/packages/lit-query/src/tests/infinite-and-options.test.ts new file mode 100644 index 00000000000..cd3418f69fd --- /dev/null +++ b/packages/lit-query/src/tests/infinite-and-options.test.ts @@ -0,0 +1,423 @@ +import { describe, expect, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { createInfiniteQueryController } from '../createInfiniteQueryController.js' +import { createMutationController } from '../createMutationController.js' +import { createQueryController } from '../createQueryController.js' +import { infiniteQueryOptions } from '../infiniteQueryOptions.js' +import { mutationOptions } from '../mutationOptions.js' +import { queryOptions } from '../queryOptions.js' +import { + TestControllerHost, + TestElementHost, + waitFor, + waitForMissingQueryClient, +} from './testHost.js' + +const providerTagName = 'test-query-client-provider-infinite' +if (!customElements.get(providerTagName)) { + customElements.define(providerTagName, QueryClientProvider) +} + +let explicitInfiniteClient: QueryClient | undefined + +class ContextInfiniteHostElement extends TestElementHost { + readonly queryKey = ['context-infinite'] as const + + readonly infinite = createInfiniteQueryController( + this, + { + queryKey: this.queryKey, + initialPageParam: 0, + queryFn: async ({ pageParam }) => Number(pageParam), + getNextPageParam: (lastPage) => (lastPage < 1 ? lastPage + 1 : undefined), + getPreviousPageParam: (firstPage) => + firstPage > -1 ? firstPage - 1 : undefined, + retry: false, + }, + explicitInfiniteClient, + ) +} + +const contextInfiniteTagName = 'test-context-infinite-host' +if (!customElements.get(contextInfiniteTagName)) { + customElements.define(contextInfiniteTagName, ContextInfiniteHostElement) +} + +describe('createInfiniteQueryController', () => { + it('LC-INF-01: first provider connection resolves from the pre-connect placeholder state', async () => { + const consumer = document.createElement( + contextInfiniteTagName, + ) as ContextInfiniteHostElement + + expect(consumer.infinite().status).toBe('pending') + await expect(consumer.infinite.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + await expect(consumer.infinite.fetchNextPage()).rejects.toThrow( + /No QueryClient available/, + ) + + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor(() => consumer.infinite().isSuccess) + expect(consumer.infinite().data?.pages).toEqual([0]) + + consumer.infinite.destroy() + provider.remove() + await Promise.resolve() + }) + + it('LC-INF-02: explicit client takes precedence over provider context', async () => { + const explicitClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const providerClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + explicitInfiniteClient = explicitClient + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = providerClient + + const consumer = document.createElement( + contextInfiniteTagName, + ) as ContextInfiniteHostElement + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor(() => consumer.infinite().isSuccess) + expect(consumer.infinite().data?.pages).toEqual([0]) + expect( + explicitClient.getQueryCache().find({ queryKey: consumer.queryKey }), + ).toBeDefined() + expect( + providerClient.getQueryCache().find({ queryKey: consumer.queryKey }), + ).toBeUndefined() + + consumer.infinite.destroy() + provider.remove() + explicitInfiniteClient = undefined + await Promise.resolve() + }) + + it('M14: supports initial page, fetchNextPage, and fetchPreviousPage', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + const infinite = createInfiniteQueryController( + host, + { + queryKey: ['m14', 'infinite'], + initialPageParam: 0, + queryFn: async ({ pageParam }) => Number(pageParam), + getNextPageParam: (lastPage) => + lastPage < 1 ? lastPage + 1 : undefined, + getPreviousPageParam: (firstPage) => + firstPage > -1 ? firstPage - 1 : undefined, + }, + client, + ) + + host.connect() + host.update() + + await waitFor(() => infinite().isSuccess) + expect(infinite().data?.pages).toEqual([0]) + + await infinite.fetchNextPage() + await waitFor(() => (infinite().data?.pages.length ?? 0) === 2) + expect(infinite().data?.pages).toEqual([0, 1]) + + await infinite.fetchPreviousPage() + await waitFor(() => (infinite().data?.pages.length ?? 0) === 3) + expect(infinite().data?.pages).toEqual([-1, 0, 1]) + }) + + it('INFEDGE-01: next-page failure preserves prior pages consistently', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + const infinite = createInfiniteQueryController( + host, + { + queryKey: ['infedge-01'], + initialPageParam: 0, + queryFn: async ({ pageParam }) => { + const page = Number(pageParam) + if (page === 1) { + throw new Error('next-page-failed') + } + return page + }, + getNextPageParam: (lastPage) => + lastPage < 1 ? lastPage + 1 : undefined, + }, + client, + ) + + host.connect() + host.update() + + await waitFor(() => infinite().isSuccess) + expect(infinite().data?.pages).toEqual([0]) + + const nextPageResult = await infinite.fetchNextPage() + expect(nextPageResult.isFetchNextPageError).toBe(true) + expect(nextPageResult.error).toBeInstanceOf(Error) + await waitFor(() => infinite().isFetchNextPageError) + expect(infinite().data?.pages).toEqual([0]) + }) + + it('LC-INF-03: missing provider fails deterministically and imperative methods align', async () => { + const consumer = document.createElement( + contextInfiniteTagName, + ) as ContextInfiniteHostElement + const placeholderResult = consumer.infinite() + + expect(placeholderResult.status).toBe('pending') + + document.body.append(consumer) + + expect(() => consumer.infinite()).not.toThrow() + await waitForMissingQueryClient(() => consumer.infinite()) + + await expect(consumer.infinite.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + await expect(consumer.infinite.fetchNextPage()).rejects.toThrow( + /No QueryClient available/, + ) + await expect(placeholderResult.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + await expect(placeholderResult.fetchNextPage()).rejects.toThrow( + /No QueryClient available/, + ) + await expect(placeholderResult.fetchPreviousPage()).rejects.toThrow( + /No QueryClient available/, + ) + + consumer.infinite.destroy() + consumer.remove() + await Promise.resolve() + }) + + it('ALREADYCONN-INF-01: infinite query controller on already-connected host with explicit client does not throw', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + client.setQueryData(['already-connected-infinite'], { + pages: [0], + pageParams: [0], + }) + + class AlreadyConnectedHost implements ReactiveControllerHost { + private readonly controllers = new Set() + private isConnected = true + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + if (this.isConnected) { + controller.hostConnected?.() + } + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + const host = new AlreadyConnectedHost() + const infinite = createInfiniteQueryController( + host, + { + queryKey: ['already-connected-infinite'], + initialPageParam: 0, + queryFn: async ({ pageParam }) => Number(pageParam), + getNextPageParam: (lastPage) => + lastPage < 1 ? lastPage + 1 : undefined, + staleTime: 30_000, + }, + client, + ) + + await Promise.resolve() + await Promise.resolve() + + expect(infinite().isSuccess).toBe(true) + expect(infinite().data?.pages).toEqual([0]) + + infinite.destroy() + }) + + it('LC-INF-04: explicit-client infinite accessors defer until host fields are initialized', () => { + const client = new QueryClient() + + class DeferredExplicitInfiniteHost implements ReactiveControllerHost { + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + readonly infinite = createInfiniteQueryController( + this, + () => ({ + queryKey: ['deferred-explicit-infinite', this.id] as const, + initialPageParam: 0, + queryFn: async ({ pageParam }) => Number(pageParam), + getNextPageParam: (lastPage) => + lastPage < 1 ? lastPage + 1 : undefined, + retry: false, + }), + client, + ) + + readonly firstRead = this.infinite() + readonly id = 'alpha' + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + expect(() => new DeferredExplicitInfiniteHost()).not.toThrow() + + const host = new DeferredExplicitInfiniteHost() + expect(host.infinite().status).toBe('pending') + + host.infinite.destroy() + }) +}) + +describe('options helpers integration', () => { + it('OPT-01: queryOptions integrates with createQueryController', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const host = new TestControllerHost() + + const query = createQueryController( + host, + queryOptions({ + queryKey: ['opt-01', 'query'] as const, + queryFn: async () => 'query-ok', + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + expect(query().data).toBe('query-ok') + }) + + it('OPT-01: mutationOptions integrates with createMutationController', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + + const mutation = createMutationController( + host, + mutationOptions({ + mutationFn: async (value: number) => value + 10, + }), + client, + ) + + host.connect() + host.update() + await expect(mutation.mutateAsync(5)).resolves.toBe(15) + expect(mutation().isSuccess).toBe(true) + }) + + it('OPT-01: infiniteQueryOptions integrates with createInfiniteQueryController', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const host = new TestControllerHost() + + const infinite = createInfiniteQueryController( + host, + infiniteQueryOptions({ + queryKey: ['opt-01', 'infinite'], + initialPageParam: 0, + queryFn: async ({ pageParam }) => Number(pageParam), + getNextPageParam: (lastPage) => + lastPage < 1 ? lastPage + 1 : undefined, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => infinite().isSuccess) + expect(infinite().data?.pages).toEqual([0]) + }) +}) diff --git a/packages/lit-query/src/tests/mutation-controller.test.ts b/packages/lit-query/src/tests/mutation-controller.test.ts new file mode 100644 index 00000000000..6353cc5eed5 --- /dev/null +++ b/packages/lit-query/src/tests/mutation-controller.test.ts @@ -0,0 +1,472 @@ +import { describe, expect, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { createMutationController } from '../createMutationController.js' +import { + TestControllerHost, + TestElementHost, + waitFor, + waitForMissingQueryClient, +} from './testHost.js' + +const providerTagName = 'test-query-client-provider-mutation' +if (!customElements.get(providerTagName)) { + customElements.define(providerTagName, QueryClientProvider) +} + +let explicitMutationClient: QueryClient | undefined + +class ContextMutationHostElement extends TestElementHost { + readonly mutationKey = ['context-mutation'] as const + + readonly mutation = createMutationController( + this, + { + mutationKey: this.mutationKey, + mutationFn: async (value: number) => value + 1, + }, + explicitMutationClient, + ) +} + +const contextMutationTagName = 'test-context-mutation-host' +if (!customElements.get(contextMutationTagName)) { + customElements.define(contextMutationTagName, ContextMutationHostElement) +} + +describe('createMutationController', () => { + it('LC-MUT-01: first provider connection resolves from the pre-connect placeholder state', async () => { + const consumer = document.createElement( + contextMutationTagName, + ) as ContextMutationHostElement + + expect(consumer.mutation().isIdle).toBe(true) + expect(() => consumer.mutation.mutate(1)).toThrowError( + /No QueryClient available/, + ) + await expect(consumer.mutation.mutateAsync(1)).rejects.toThrow( + /No QueryClient available/, + ) + + const client = new QueryClient() + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await Promise.resolve() + + await expect(consumer.mutation.mutateAsync(1)).resolves.toBe(2) + expect(consumer.mutation().isSuccess).toBe(true) + + consumer.mutation.destroy() + provider.remove() + await Promise.resolve() + }) + + it('LC-MUT-02: explicit client takes precedence over provider context', async () => { + const explicitClient = new QueryClient() + const providerClient = new QueryClient() + explicitMutationClient = explicitClient + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = providerClient + + const consumer = document.createElement( + contextMutationTagName, + ) as ContextMutationHostElement + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await Promise.resolve() + + await expect(consumer.mutation.mutateAsync(2)).resolves.toBe(3) + + expect( + explicitClient + .getMutationCache() + .findAll({ mutationKey: consumer.mutationKey }).length, + ).toBeGreaterThan(0) + expect( + providerClient + .getMutationCache() + .findAll({ mutationKey: consumer.mutationKey }).length, + ).toBe(0) + + consumer.mutation.destroy() + provider.remove() + explicitMutationClient = undefined + await Promise.resolve() + }) + + it('supports mutate and mutateAsync paths', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + + const mutation = createMutationController( + host, + { + mutationFn: async (value: number) => value + 1, + }, + client, + ) + + host.connect() + host.update() + + const result = await mutation.mutateAsync(1) + expect(result).toBe(2) + expect(mutation().isSuccess).toBe(true) + expect(mutation().data).toBe(2) + + mutation.mutate(2) + await waitFor(() => mutation().data === 3) + expect(mutation().isSuccess).toBe(true) + }) + + it('M9: mutation state transitions cover idle/pending/success/error', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + + const mutation = createMutationController( + host, + { + mutationFn: async (value: number) => { + await new Promise((resolve) => setTimeout(resolve, 10)) + if (value < 0) { + throw new Error('negative-not-allowed') + } + return value + 1 + }, + }, + client, + ) + + host.connect() + host.update() + + expect(mutation().isIdle).toBe(true) + + const successPromise = mutation.mutateAsync(10) + await waitFor(() => mutation().isPending) + await expect(successPromise).resolves.toBe(11) + await waitFor(() => mutation().isSuccess) + expect(mutation().data).toBe(11) + + const errorPromise = mutation.mutateAsync(-1) + await waitFor(() => mutation().isPending) + await expect(errorPromise).rejects.toThrow('negative-not-allowed') + await waitFor(() => mutation().isError) + expect(mutation().error).toBeInstanceOf(Error) + }) + + it('M10: reset clears mutation state back to idle baseline', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + + const mutation = createMutationController( + host, + { + mutationFn: async () => { + throw new Error('reset-target') + }, + }, + client, + ) + + host.connect() + host.update() + + await expect(mutation.mutateAsync(undefined)).rejects.toThrow( + 'reset-target', + ) + await waitFor(() => mutation().isError) + expect(mutation().error).toBeInstanceOf(Error) + + mutation.reset() + expect(mutation().isIdle).toBe(true) + expect(mutation().isPaused).toBe(false) + expect(mutation().isError).toBe(false) + expect(mutation().error).toBeNull() + expect(mutation().data).toBeUndefined() + }) + + it('M11: mutate is non-throwing while mutateAsync rejects on error', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + + const mutation = createMutationController( + host, + { + mutationFn: async (value: number) => { + if (value < 0) { + throw new Error('negative-not-allowed') + } + + return value + 1 + }, + }, + client, + ) + + host.connect() + host.update() + + expect(() => mutation.mutate(-1)).not.toThrow() + await waitFor(() => mutation().isError) + expect(mutation().error).toBeInstanceOf(Error) + + await expect(mutation.mutateAsync(-1)).rejects.toThrow( + 'negative-not-allowed', + ) + }) + + it('M12: mutation callback order and call counts are deterministic', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + const callbackEvents: string[] = [] + + const mutation = createMutationController( + host, + { + mutationFn: async (value: number) => { + await new Promise((resolve) => setTimeout(resolve, 5)) + if (value < 0) { + throw new Error('callback-order-failure') + } + return value + 1 + }, + onSuccess: (_data, value) => { + callbackEvents.push(`success:${value}`) + }, + onError: (_error, value) => { + callbackEvents.push(`error:${value}`) + }, + onSettled: (_data, _error, value) => { + callbackEvents.push(`settled:${value}`) + }, + }, + client, + ) + + host.connect() + host.update() + + await expect(mutation.mutateAsync(1)).resolves.toBe(2) + await expect(mutation.mutateAsync(-1)).rejects.toThrow( + 'callback-order-failure', + ) + + expect(callbackEvents).toEqual([ + 'success:1', + 'settled:1', + 'error:-1', + 'settled:-1', + ]) + }) + + it('AREACT-02: refreshed mutation callbacks use latest closures', async () => { + const client = new QueryClient() + const host = new TestControllerHost() + const callbackEvents: string[] = [] + let version = 'v1' + + const mutation = createMutationController( + host, + () => ({ + mutationFn: async (value: number) => { + if (value < 0) { + throw new Error('freshness-failure') + } + return value + 1 + }, + onSuccess: () => { + callbackEvents.push(`success:${version}`) + }, + onError: () => { + callbackEvents.push(`error:${version}`) + }, + onSettled: () => { + callbackEvents.push(`settled:${version}`) + }, + }), + client, + ) + + host.connect() + host.update() + + await expect(mutation.mutateAsync(1)).resolves.toBe(2) + expect(callbackEvents.slice(0, 2)).toEqual(['success:v1', 'settled:v1']) + + version = 'v2' + host.update() + + await expect(mutation.mutateAsync(-1)).rejects.toThrow('freshness-failure') + expect(callbackEvents.slice(2)).toEqual(['error:v2', 'settled:v2']) + }) + + it('LC-MUT-03: missing provider becomes a deterministic missing-client state', async () => { + const consumer = document.createElement( + contextMutationTagName, + ) as ContextMutationHostElement + const placeholderResult = consumer.mutation() + + expect(placeholderResult.isIdle).toBe(true) + expect(placeholderResult.isPaused).toBe(false) + + document.body.append(consumer) + + expect(() => consumer.mutation()).not.toThrow() + await waitForMissingQueryClient(() => consumer.mutation()) + + expect(() => consumer.mutation.mutate(1)).toThrow( + /No QueryClient available/, + ) + await expect(consumer.mutation.mutateAsync(1)).rejects.toThrow( + /No QueryClient available/, + ) + await expect(placeholderResult.mutate(1)).rejects.toThrow( + /No QueryClient available/, + ) + + expect(() => consumer.mutation.reset()).not.toThrow() + expect(() => placeholderResult.reset()).not.toThrow() + + consumer.mutation.destroy() + consumer.remove() + await Promise.resolve() + }) + + it('LC-MUT-04: later valid provider adoption recovers without reconstruction', async () => { + const consumer = document.createElement( + contextMutationTagName, + ) as ContextMutationHostElement + + document.body.append(consumer) + await waitForMissingQueryClient(() => consumer.mutation()) + + const client = new QueryClient() + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await Promise.resolve() + + await expect(consumer.mutation.mutateAsync(1)).resolves.toBe(2) + expect(consumer.mutation().isSuccess).toBe(true) + + consumer.mutation.destroy() + provider.remove() + await Promise.resolve() + }) + + it('ALREADYCONN-MUT-01: mutation controller on already-connected host with explicit client does not throw', async () => { + // Regression test for SSR hydration scenario where controller is created + // during willUpdate on an already-connected host. + const client = new QueryClient() + + // Create a host that simulates Lit's behavior: addController calls + // hostConnected immediately if the host is already connected + class AlreadyConnectedHost { + private readonly controllers = new Set<{ + hostConnected?: () => void + }>() + private isConnected = true + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: { hostConnected?: () => void }): void { + this.controllers.add(controller) + if (this.isConnected) { + controller.hostConnected?.() + } + } + + removeController(controller: { hostConnected?: () => void }): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + const host = new AlreadyConnectedHost() + + // This should NOT throw even though hostConnected runs during construction + const mutation = createMutationController( + host, + { + mutationKey: ['already-connected-mutation-test'], + mutationFn: async (value: number) => value * 2, + }, + client, + ) + + // Wait for the deferred onConnected to complete + await Promise.resolve() + await Promise.resolve() + + // Mutation controller should work correctly + expect(mutation().isIdle).toBe(true) + await expect(mutation.mutateAsync(5)).resolves.toBe(10) + expect(mutation().isSuccess).toBe(true) + + mutation.destroy() + }) + + it('LC-MUT-05: explicit-client mutation accessors defer until host fields are initialized', () => { + const client = new QueryClient() + + class DeferredExplicitMutationHost implements ReactiveControllerHost { + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + readonly mutation = createMutationController( + this, + () => ({ + mutationKey: ['deferred-explicit-mutation', this.id] as const, + mutationFn: async (value: number) => value + this.offset, + }), + client, + ) + + readonly firstRead = this.mutation() + readonly id = 'alpha' + readonly offset = 1 + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + expect(() => new DeferredExplicitMutationHost()).not.toThrow() + + const host = new DeferredExplicitMutationHost() + expect(host.mutation().isIdle).toBe(true) + + host.mutation.destroy() + }) +}) diff --git a/packages/lit-query/src/tests/queries-controller.test.ts b/packages/lit-query/src/tests/queries-controller.test.ts new file mode 100644 index 00000000000..1fd9c536007 --- /dev/null +++ b/packages/lit-query/src/tests/queries-controller.test.ts @@ -0,0 +1,705 @@ +import { describe, expect, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { createQueriesController } from '../createQueriesController.js' +import { queryOptions } from '../queryOptions.js' +import { + TestControllerHost, + TestElementHost, + waitFor, + waitForMissingQueryClient, +} from './testHost.js' + +const providerTagName = 'test-query-client-provider-queries' +if (!customElements.get(providerTagName)) { + customElements.define(providerTagName, QueryClientProvider) +} + +let explicitQueriesClient: QueryClient | undefined + +class ContextQueriesHostElement extends TestElementHost { + readonly queryKeys = [ + ['context-queries', 'alpha'] as const, + ['context-queries', 'beta'] as const, + ] + + readonly queries = createQueriesController( + this, + { + queries: this.queryKeys.map((queryKey) => ({ + queryKey, + queryFn: async () => queryKey[1], + retry: false, + })), + combine: (results) => + results.map((result) => ({ + status: result.status, + data: result.data, + })), + }, + explicitQueriesClient, + ) +} + +const contextQueriesTagName = 'test-context-queries-host' +if (!customElements.get(contextQueriesTagName)) { + customElements.define(contextQueriesTagName, ContextQueriesHostElement) +} + +class RawContextQueriesHostElement extends TestElementHost { + readonly queryKeys = [ + ['raw-context-queries', 'alpha'] as const, + ['raw-context-queries', 'beta'] as const, + ] + + readonly queries = createQueriesController(this, { + queries: this.queryKeys.map((queryKey) => ({ + queryKey, + queryFn: async () => queryKey[1], + retry: false, + })), + }) +} + +const rawContextQueriesTagName = 'test-raw-context-queries-host' +if (!customElements.get(rawContextQueriesTagName)) { + customElements.define(rawContextQueriesTagName, RawContextQueriesHostElement) +} + +class DeferredFieldsQueriesHost implements ReactiveControllerHost { + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + readonly queries = createQueriesController(this, () => ({ + queries: this.ids.map((id) => ({ + queryKey: ['deferred-fields-queries', id] as const, + queryFn: async () => id, + retry: false, + })), + combine: (results) => results.map((result) => result.status), + })) + + readonly firstRead = this.queries() + readonly ids = ['alpha', 'beta'] as const + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } +} + +describe('createQueriesController', () => { + it('LC-QUERIES-01: first provider connection resolves from the pre-connect placeholder state', async () => { + const consumer = document.createElement( + contextQueriesTagName, + ) as ContextQueriesHostElement + + expect(consumer.queries()).toEqual([ + { status: 'pending', data: undefined }, + { status: 'pending', data: undefined }, + ]) + + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor( + () => + consumer.queries()[0]?.status === 'success' && + consumer.queries()[1]?.status === 'success', + ) + expect(consumer.queries().map((item) => item.data)).toEqual([ + 'alpha', + 'beta', + ]) + + consumer.queries.destroy() + provider.remove() + await Promise.resolve() + }) + + it('LC-QUERIES-02: explicit client takes precedence over provider context', async () => { + const explicitClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const providerClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + explicitQueriesClient = explicitClient + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = providerClient + + const consumer = document.createElement( + contextQueriesTagName, + ) as ContextQueriesHostElement + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor( + () => + consumer.queries()[0]?.status === 'success' && + consumer.queries()[1]?.status === 'success', + ) + + expect( + explicitClient.getQueryCache().find({ queryKey: consumer.queryKeys[0]! }), + ).toBeDefined() + expect( + providerClient.getQueryCache().find({ queryKey: consumer.queryKeys[0]! }), + ).toBeUndefined() + + consumer.queries.destroy() + provider.remove() + explicitQueriesClient = undefined + await Promise.resolve() + }) + + it('combines multiple query results', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + + const queries = createQueriesController( + host, + { + queries: [ + { + queryKey: ['q1'], + queryFn: async () => 'alpha', + }, + { + queryKey: ['q2'], + queryFn: async () => 'beta', + }, + ] as const, + combine: (results) => results.map((result) => result.data), + }, + client, + ) + + host.connect() + host.update() + + await waitFor(() => queries().every((value) => typeof value === 'string')) + expect(queries()).toEqual(['alpha', 'beta']) + }) + + it('M13: supports dynamic add/remove and keeps partial failure stability', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let includeThird = false + let includeFailing = true + + const queries = createQueriesController( + host, + () => ({ + queries: [ + { + queryKey: ['m13', 'alpha'] as const, + queryFn: async () => 'alpha', + }, + ...(includeFailing + ? [ + { + queryKey: ['m13', 'failing'] as const, + queryFn: async () => { + throw new Error('m13-fail') + }, + }, + ] + : []), + ...(includeThird + ? [ + { + queryKey: ['m13', 'gamma'] as const, + queryFn: async () => 'gamma', + }, + ] + : []), + ] as const, + combine: (results) => + results.map((result) => ({ + status: result.status, + data: result.data, + error: result.error instanceof Error ? result.error.message : null, + })), + }), + client, + ) + + host.connect() + host.update() + + await waitFor(() => queries().length === 2) + await waitFor( + () => + queries()[0]?.status === 'success' && queries()[1]?.status === 'error', + ) + expect(queries()[0]).toMatchObject({ status: 'success', data: 'alpha' }) + expect(queries()[1]).toMatchObject({ status: 'error', error: 'm13-fail' }) + + includeThird = true + host.update() + await waitFor(() => queries().length === 3) + await waitFor( + () => + queries()[0]?.status === 'success' && + queries()[1]?.status === 'error' && + queries()[2]?.status === 'success', + ) + expect(queries()[2]).toMatchObject({ status: 'success', data: 'gamma' }) + + includeFailing = false + host.update() + await waitFor(() => queries().length === 2) + await waitFor( + () => + queries()[0]?.status === 'success' && + queries()[1]?.status === 'success', + ) + expect(queries().map((item) => item.data)).toEqual(['alpha', 'gamma']) + }) + + it('CQS-ADV-01: reordering queries preserves documented result order mapping', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let order: Array<'first' | 'second'> = ['first', 'second'] + + const queries = createQueriesController( + host, + () => ({ + queries: order.map((id) => ({ + queryKey: ['cqs-adv-01', id] as const, + queryFn: async () => id, + })), + combine: (results) => results.map((result) => result.data), + }), + client, + ) + + host.connect() + host.update() + + await waitFor(() => queries().every((value) => typeof value === 'string')) + expect(queries()).toEqual(['first', 'second']) + + order = ['second', 'first'] + host.update() + await waitFor(() => queries()[0] === 'second' && queries()[1] === 'first') + expect(queries()).toEqual(['second', 'first']) + }) + + it('CQS-ADV-02: duplicate query keys return stable per-index results by contract', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let callCount = 0 + + const queries = createQueriesController( + host, + { + queries: [ + { + queryKey: ['dup-key'] as const, + queryFn: async () => { + callCount += 1 + return 'shared-value' + }, + }, + { + queryKey: ['dup-key'] as const, + queryFn: async () => { + callCount += 1 + return 'shared-value' + }, + }, + ] as const, + combine: (results) => + results.map((result) => ({ + status: result.status, + data: result.data, + })), + }, + client, + ) + + host.connect() + host.update() + + await waitFor( + () => + queries().length === 2 && + queries()[0]?.status === 'success' && + queries()[1]?.status === 'success', + ) + expect(queries()[0]?.data).toBe('shared-value') + expect(queries()[1]?.data).toBe('shared-value') + expect(callCount).toBeGreaterThan(0) + }) + + it('LC-QUERIES-03: missing provider fails after handshake and later provider adoption recovers', async () => { + const consumer = document.createElement( + contextQueriesTagName, + ) as ContextQueriesHostElement + + expect(consumer.queries()).toEqual([ + { status: 'pending', data: undefined }, + { status: 'pending', data: undefined }, + ]) + + document.body.append(consumer) + + expect(() => consumer.queries()).not.toThrow() + await waitForMissingQueryClient(() => consumer.queries()) + + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor( + () => + consumer.queries()[0]?.status === 'success' && + consumer.queries()[1]?.status === 'success', + ) + expect(consumer.queries().map((item) => item.data)).toEqual([ + 'alpha', + 'beta', + ]) + + consumer.queries.destroy() + provider.remove() + await Promise.resolve() + }) + + it('LC-QUERIES-04: raw query results reject placeholder refetch after missing-client handshake', async () => { + const consumer = document.createElement( + rawContextQueriesTagName, + ) as RawContextQueriesHostElement + + const firstQuery = consumer.queries()[0] + expect(firstQuery?.status).toBe('pending') + + document.body.append(consumer) + + await waitForMissingQueryClient(() => consumer.queries()) + await expect(firstQuery?.refetch()).rejects.toThrow( + 'No QueryClient available. Pass one explicitly or render within QueryClientProvider.', + ) + + consumer.queries.destroy() + consumer.remove() + await Promise.resolve() + }) + + it('LC-QUERIES-05: constructor defers placeholder accessors until host fields are initialized', () => { + expect(() => new DeferredFieldsQueriesHost()).not.toThrow() + + const host = new DeferredFieldsQueriesHost() + expect(host.queries()).toEqual(['pending', 'pending']) + }) + + it('LC-QUERIES-06: placeholder combine materializes defined initialData before a client is available', () => { + const host = new TestControllerHost() + const queries = createQueriesController(host, { + queries: [ + queryOptions({ + queryKey: ['placeholder-initial-data'] as const, + queryFn: async () => ({ id: 4, name: 'Marie' }), + initialData: { id: 0, name: 'Seed' }, + }), + ] as const, + combine: (result) => result[0].data.name, + }) + + expect(queries()).toBe('Seed') + + queries.destroy() + }) + + it('LC-QUERIES-07: explicit-client constructor defers dynamic accessors until host fields are initialized', () => { + const client = new QueryClient() + + class DeferredExplicitQueriesHost implements ReactiveControllerHost { + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + readonly queries = createQueriesController( + this, + () => ({ + queries: this.ids.map((id) => ({ + queryKey: ['deferred-explicit-queries', id] as const, + queryFn: async () => id, + retry: false, + })), + combine: (results) => results.map((result) => result.status), + }), + client, + ) + + readonly firstRead = this.queries() + readonly ids = ['alpha', 'beta'] as const + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + expect(() => new DeferredExplicitQueriesHost()).not.toThrow() + + const host = new DeferredExplicitQueriesHost() + expect(host.queries()).toEqual(['pending', 'pending']) + + host.queries.destroy() + }) + + it('LC-QUERIES-08: explicit-client constructor defers static combine callbacks until host fields are initialized', () => { + const client = new QueryClient() + + class DeferredExplicitCombineQueriesHost implements ReactiveControllerHost { + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + readonly queries = createQueriesController( + this, + { + queries: [ + { + queryKey: ['deferred-explicit-combine-queries', 'alpha'] as const, + queryFn: async () => 'alpha', + retry: false, + }, + ] as const, + combine: (results) => + this.ids.map((id, index) => `${id}:${results[index]?.status}`), + }, + client, + ) + + readonly firstRead = this.queries() + readonly ids = ['alpha'] as const + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + expect(() => new DeferredExplicitCombineQueriesHost()).not.toThrow() + + const host = new DeferredExplicitCombineQueriesHost() + expect(host.queries()).toEqual(['alpha:pending']) + + host.queries.destroy() + }) + + it('LC-QUERIES-09: explicit-client constructor re-surfaces permanent static combine errors after initialization', async () => { + const client = new QueryClient() + + class InvalidExplicitCombineQueriesHost implements ReactiveControllerHost { + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + readonly queries = createQueriesController( + this, + { + queries: [ + { + queryKey: ['invalid-explicit-combine-queries', 'alpha'] as const, + queryFn: async () => 'alpha', + retry: false, + }, + ] as const, + combine: () => { + throw new Error('invalid combine') + }, + }, + client, + ) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + expect(() => new InvalidExplicitCombineQueriesHost()).not.toThrow() + + const host = new InvalidExplicitCombineQueriesHost() + await Promise.resolve() + + expect(() => host.queries()).toThrow('invalid combine') + }) + + it('ALREADYCONN-QUERIES-01: queries controller on already-connected host with explicit client does not throw', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + client.setQueryData(['already-connected-queries', 'alpha'], 'alpha') + client.setQueryData(['already-connected-queries', 'beta'], 'beta') + + class AlreadyConnectedHost implements ReactiveControllerHost { + private readonly controllers = new Set() + private isConnected = true + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + if (this.isConnected) { + controller.hostConnected?.() + } + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + const host = new AlreadyConnectedHost() + const queries = createQueriesController( + host, + { + queries: [ + { + queryKey: ['already-connected-queries', 'alpha'] as const, + queryFn: async () => 'fetched-alpha', + staleTime: 30_000, + }, + { + queryKey: ['already-connected-queries', 'beta'] as const, + queryFn: async () => 'fetched-beta', + staleTime: 30_000, + }, + ] as const, + combine: (results) => + results.map((result) => ({ + status: result.status, + data: result.data, + })), + }, + client, + ) + + await Promise.resolve() + await Promise.resolve() + + expect(queries()).toEqual([ + { status: 'success', data: 'alpha' }, + { status: 'success', data: 'beta' }, + ]) + + queries.destroy() + }) +}) diff --git a/packages/lit-query/src/tests/query-controller.test.ts b/packages/lit-query/src/tests/query-controller.test.ts new file mode 100644 index 00000000000..bc618ff830e --- /dev/null +++ b/packages/lit-query/src/tests/query-controller.test.ts @@ -0,0 +1,1326 @@ +import { describe, expect, it } from 'vitest' +import { keepPreviousData, QueryClient } from '@tanstack/query-core' +import type { ReactiveController, ReactiveControllerHost } from 'lit' +import { QueryClientProvider } from '../QueryClientProvider.js' +import { createQueryController } from '../createQueryController.js' +import { + TestControllerHost, + waitFor, + waitForMissingQueryClient, +} from './testHost.js' + +const providerTagName = 'test-query-client-provider-query' +if (!customElements.get(providerTagName)) { + customElements.define(providerTagName, QueryClientProvider) +} + +class QueryConsumerHostElement + extends HTMLElement + implements ReactiveControllerHost +{ + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + readonly queryKey = ['query-controller', 'provider-switch'] as const + queryCalls = 0 + + readonly query = createQueryController(this, () => ({ + queryKey: this.queryKey, + queryFn: async () => { + this.queryCalls += 1 + return `value-${this.queryCalls}` + }, + retry: false, + })) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + + connectedCallback(): void { + for (const controller of this.controllers) { + controller.hostConnected?.() + } + } + + disconnectedCallback(): void { + for (const controller of this.controllers) { + controller.hostDisconnected?.() + } + } +} + +const consumerTagName = 'test-query-consumer-host' +if (!customElements.get(consumerTagName)) { + customElements.define(consumerTagName, QueryConsumerHostElement) +} + +describe('createQueryController', () => { + it('M1: does not request update after destroy when microtask flushes', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + const query = createQueryController( + host, + { + queryKey: ['query-controller', 'm1'], + queryFn: async () => 'done', + }, + client, + ) + + host.connect() + query.destroy() + + await Promise.resolve() + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + }) + + it('M2: returns observer count to baseline after 100 lifecycle cycles', async () => { + const queryKey = ['query-controller', 'm2'] as const + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + for (let cycle = 0; cycle < 100; cycle += 1) { + const host = new TestControllerHost() + const query = createQueryController( + host, + { + queryKey, + queryFn: async () => cycle, + }, + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + + const cacheQuery = client.getQueryCache().find({ queryKey }) + expect(cacheQuery?.getObserversCount()).toBe(1) + + host.disconnect() + query.destroy() + expect(cacheQuery?.getObserversCount() ?? 0).toBe(0) + } + }) + + it('fetches and updates query state', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let callCount = 0 + + const query = createQueryController( + host, + { + queryKey: ['user', 'fetches-and-updates'], + queryFn: async () => { + callCount += 1 + return { id: 1, name: 'Ada' } + }, + }, + client, + ) + + host.connect() + host.update() + + await waitFor(() => query().isSuccess) + + expect(query().data).toEqual({ id: 1, name: 'Ada' }) + expect(callCount).toBe(1) + expect(host.updatesRequested).toBeGreaterThan(0) + }) + + it('M4: transitions from pending to success with expected contract', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + const query = createQueryController( + host, + { + queryKey: ['query-controller', 'm4'], + queryFn: async () => { + await new Promise((resolve) => setTimeout(resolve, 10)) + return 'ok' + }, + }, + client, + ) + + expect(query().status).toBe('pending') + expect(query().isSuccess).toBe(false) + + host.connect() + host.update() + + await waitFor(() => query().isSuccess) + expect(query().status).toBe('success') + expect(query().data).toBe('ok') + }) + + it('M6: does not fetch when enabled=false and fetches after enabling', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let callCount = 0 + let enabled = false + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 'm6'], + enabled, + queryFn: async () => { + callCount += 1 + return 'enabled-result' + }, + }), + client, + ) + + host.connect() + host.update() + + await new Promise((resolve) => setTimeout(resolve, 25)) + expect(callCount).toBe(0) + expect(query().isSuccess).toBe(false) + + enabled = true + host.update() + await waitFor(() => query().isSuccess) + + expect(callCount).toBe(1) + expect(query().data).toBe('enabled-result') + }) + + it('M7: remount with gcTime=0 has no observer leak and refetches', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const queryKey = ['query-controller', 'm7'] as const + let callCount = 0 + + const firstHost = new TestControllerHost() + const firstQuery = createQueryController( + firstHost, + { + queryKey, + gcTime: 0, + queryFn: async () => { + callCount += 1 + return `value-${callCount}` + }, + }, + client, + ) + + firstHost.connect() + firstHost.update() + await waitFor(() => firstQuery().isSuccess) + + const firstCacheEntry = client.getQueryCache().find({ queryKey }) + expect(firstCacheEntry?.getObserversCount()).toBe(1) + expect(callCount).toBe(1) + + firstHost.disconnect() + firstQuery.destroy() + + await waitFor(() => { + // With gcTime:0, cache entry may be immediately removed after last observer unmounts. + const entry = client.getQueryCache().find({ queryKey }) + return !entry || entry.getObserversCount() === 0 + }) + + const secondHost = new TestControllerHost() + const secondQuery = createQueryController( + secondHost, + { + queryKey, + gcTime: 0, + queryFn: async () => { + callCount += 1 + return `value-${callCount}` + }, + }, + client, + ) + + secondHost.connect() + secondHost.update() + await waitFor(() => secondQuery().isSuccess) + await waitFor(() => secondQuery().data === 'value-2') + + const secondCacheEntry = client.getQueryCache().find({ queryKey }) + expect(secondCacheEntry?.getObserversCount()).toBe(1) + expect(callCount).toBe(2) + expect(secondQuery().data).toBe('value-2') + }) + + it('M8: applies latest accessor key/options on updates and refetch', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let keyId = 1 + const seenKeys: number[] = [] + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', keyId] as const, + queryFn: async ({ queryKey }) => { + const id = queryKey[1] as number + seenKeys.push(id) + return `user-${id}` + }, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + expect(query().data).toBe('user-1') + + keyId = 2 + host.update() + await waitFor(() => query().isSuccess && query().data === 'user-2') + + await query.refetch() + expect(query().data).toBe('user-2') + expect(seenKeys.includes(1)).toBe(true) + expect(seenKeys.includes(2)).toBe(true) + }) + + it('QSEM-01: refetchOnMount follows stale-vs-fresh policy', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + let staleCalls = 0 + const staleKey = ['query-controller', 'qsem-01', 'stale'] as const + + const staleHostA = new TestControllerHost() + const staleQueryA = createQueryController( + staleHostA, + { + queryKey: staleKey, + staleTime: 0, + refetchOnMount: true, + queryFn: async () => { + staleCalls += 1 + return `stale-${staleCalls}` + }, + }, + client, + ) + + staleHostA.connect() + staleHostA.update() + await waitFor(() => staleQueryA().isSuccess) + expect(staleCalls).toBe(1) + staleHostA.disconnect() + staleQueryA.destroy() + + const staleHostB = new TestControllerHost() + const staleQueryB = createQueryController( + staleHostB, + { + queryKey: staleKey, + staleTime: 0, + refetchOnMount: true, + queryFn: async () => { + staleCalls += 1 + return `stale-${staleCalls}` + }, + }, + client, + ) + + staleHostB.connect() + staleHostB.update() + await waitFor(() => staleCalls >= 2) + expect(staleQueryB().isSuccess).toBe(true) + staleHostB.disconnect() + staleQueryB.destroy() + + let freshCalls = 0 + const freshKey = ['query-controller', 'qsem-01', 'fresh'] as const + + const freshHostA = new TestControllerHost() + const freshQueryA = createQueryController( + freshHostA, + { + queryKey: freshKey, + staleTime: Number.POSITIVE_INFINITY, + refetchOnMount: true, + queryFn: async () => { + freshCalls += 1 + return `fresh-${freshCalls}` + }, + }, + client, + ) + + freshHostA.connect() + freshHostA.update() + await waitFor(() => freshQueryA().isSuccess) + expect(freshCalls).toBe(1) + freshHostA.disconnect() + freshQueryA.destroy() + + const freshHostB = new TestControllerHost() + const freshQueryB = createQueryController( + freshHostB, + { + queryKey: freshKey, + staleTime: Number.POSITIVE_INFINITY, + refetchOnMount: true, + queryFn: async () => { + freshCalls += 1 + return `fresh-${freshCalls}` + }, + }, + client, + ) + + freshHostB.connect() + freshHostB.update() + await waitFor(() => freshQueryB().isSuccess) + await new Promise((resolve) => setTimeout(resolve, 25)) + expect(freshCalls).toBe(1) + expect(freshQueryB().data).toBe('fresh-1') + }) + + it('QSEM-02: select transforms data and select-throw surfaces as error', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let shouldThrow = false + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 'qsem-02'], + queryFn: async () => ({ value: 2 }), + select: (payload: { value: number }) => { + if (shouldThrow) { + throw new Error('select-failed') + } + + return payload.value * 10 + }, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + expect(query().data).toBe(20) + + shouldThrow = true + await query.refetch() + await waitFor(() => query().isError) + expect(query().error).toBeInstanceOf(Error) + expect((query().error as Error).message).toContain('select-failed') + }) + + it('S5: keepPreviousData preserves prior data during key transitions', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let keyId = 1 + let resolveSecond: ((value: string) => void) | undefined + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 's5', keyId] as const, + queryFn: async ({ queryKey }) => { + const id = queryKey[2] as number + if (id === 1) { + return 'value-1' + } + + return new Promise((resolve) => { + resolveSecond = resolve + }) + }, + placeholderData: keepPreviousData, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess && query().data === 'value-1') + + keyId = 2 + host.update() + + await waitFor(() => query().isFetching) + await waitFor(() => query().isPlaceholderData) + expect(query().data).toBe('value-1') + + resolveSecond?.('value-2') + await waitFor(() => query().isSuccess && query().data === 'value-2') + expect(query().isPlaceholderData).toBe(false) + }) + + it('QSEM-03: invalidation triggers refetch and updates result state', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + const queryKey = ['query-controller', 'qsem-03'] as const + let callCount = 0 + + const query = createQueryController( + host, + { + queryKey, + queryFn: async () => { + callCount += 1 + return `v${callCount}` + }, + }, + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + expect(query().data).toBe('v1') + expect(callCount).toBe(1) + + void client.invalidateQueries({ queryKey }) + await waitFor(() => callCount >= 2) + await waitFor(() => query().data === 'v2') + expect(query().isSuccess).toBe(true) + }) + + it('CANCEL-02: stale older response does not overwrite newer key result', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let keyId = 'old' + let resolveOld: ((value: string) => void) | undefined + let resolveNew: ((value: string) => void) | undefined + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 'cancel-02', keyId] as const, + queryFn: async ({ queryKey }) => { + const id = queryKey[2] as string + return new Promise((resolve) => { + if (id === 'old') { + resolveOld = resolve + } else { + resolveNew = resolve + } + }) + }, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => typeof resolveOld === 'function') + + keyId = 'new' + host.update() + await waitFor(() => typeof resolveNew === 'function') + + resolveNew?.('new-value') + await waitFor(() => query().data === 'new-value') + + resolveOld?.('old-value') + await new Promise((resolve) => setTimeout(resolve, 20)) + + expect(query().data).toBe('new-value') + expect(query().isSuccess).toBe(true) + }) + + it('CANCEL-01: queryFn receives AbortSignal and prior request is aborted on key switch', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let keyId: 'old' | 'new' = 'old' + let oldSignal: AbortSignal | undefined + let resolveOld: ((value: string) => void) | undefined + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 'cancel-01', keyId] as const, + queryFn: async ({ signal, queryKey }) => { + const id = queryKey[2] as 'old' | 'new' + if (id === 'old') { + oldSignal = signal + return new Promise((resolve) => { + resolveOld = resolve + signal.addEventListener('abort', () => resolve('old-aborted'), { + once: true, + }) + }) + } + + return 'new-success' + }, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => typeof oldSignal !== 'undefined') + + expect(oldSignal).toBeInstanceOf(AbortSignal) + expect(oldSignal?.aborted).toBe(false) + + keyId = 'new' + host.update() + await waitFor(() => query().data === 'new-success') + + expect(oldSignal?.aborted).toBe(true) + resolveOld?.('old-late') + await new Promise((resolve) => setTimeout(resolve, 20)) + expect(query().data).toBe('new-success') + }) + + it('S6: rapid key churn maintains stable final state without duplicate observers', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let keyId = 0 + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 's6', keyId] as const, + queryFn: async ({ queryKey }) => { + const id = queryKey[2] as number + await new Promise((resolve) => + setTimeout(resolve, Math.max(1, 20 - id)), + ) + return `result-${id}` + }, + }), + client, + ) + + host.connect() + host.update() + + for (let i = 1; i <= 20; i += 1) { + keyId = i + host.update() + } + + await waitFor(() => query().isSuccess && query().data === 'result-20') + + const latestCacheEntry = client + .getQueryCache() + .find({ queryKey: ['query-controller', 's6', 20] }) + expect(latestCacheEntry?.getObserversCount()).toBe(1) + }) + + it('LIFE-01: disconnect while in-flight does not process detached updates', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let resolveFetch: ((value: string) => void) | undefined + + const query = createQueryController( + host, + { + queryKey: ['query-controller', 'life-01'], + queryFn: () => + new Promise((resolve) => { + resolveFetch = resolve + }), + }, + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isFetching) + + host.disconnect() + await Promise.resolve() + const updatesAfterDisconnect = host.updatesRequested + + resolveFetch?.('late-value') + await new Promise((resolve) => setTimeout(resolve, 20)) + + expect(host.updatesRequested).toBe(updatesAfterDisconnect) + }) + + it('LIFE-02: reconnect after in-flight settle yields correct snapshot', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let resolveFetch: ((value: string) => void) | undefined + + const query = createQueryController( + host, + { + queryKey: ['query-controller', 'life-02'], + queryFn: () => + new Promise((resolve) => { + resolveFetch = resolve + }), + }, + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isFetching) + + host.disconnect() + resolveFetch?.('reconnected-value') + await new Promise((resolve) => setTimeout(resolve, 20)) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + expect(query().data).toBe('reconnected-value') + }) + + it('AREACT-01: latest select closure is used after host updates', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let multiplier = 1 + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 'areact-01'], + queryFn: async () => 2, + select: (value: number) => value * multiplier, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + expect(query().data).toBe(2) + + multiplier = 3 + host.update() + await waitFor(() => query().data === 6) + + multiplier = 4 + host.update() + await query.refetch() + expect(query().data).toBe(8) + }) + + it('M3: switches provider client while connected with a single active observer', async () => { + const clientA = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const clientB = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = clientA + + const consumer = document.createElement( + consumerTagName, + ) as QueryConsumerHostElement + provider.append(consumer) + document.body.append(provider) + + await provider.updateComplete + await consumer.updateComplete + await waitFor(() => consumer.query().isSuccess && consumer.queryCalls >= 1) + + const oldCacheQueryBeforeSwitch = clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + expect(oldCacheQueryBeforeSwitch?.getObserversCount()).toBe(1) + + provider.client = clientB + await provider.updateComplete + + await waitFor(() => { + const newCacheQuery = clientB + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + return Boolean(newCacheQuery && newCacheQuery.getObserversCount() === 1) + }) + + const oldCacheQueryAfterSwitch = clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + const newCacheQueryAfterSwitch = clientB + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + + expect(oldCacheQueryAfterSwitch?.getObserversCount() ?? 0).toBe(0) + expect(newCacheQueryAfterSwitch?.getObserversCount()).toBe(1) + + void clientB.invalidateQueries({ queryKey: consumer.queryKey }) + await waitFor(() => consumer.queryCalls >= 2) + + consumer.query.destroy() + provider.remove() + await Promise.resolve() + }) + + it('M5: tracks retry failure metadata before eventual success', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let attempts = 0 + + const query = createQueryController( + host, + { + queryKey: ['query-controller', 'm5'], + retry: 2, + retryDelay: 30, + queryFn: async () => { + attempts += 1 + await new Promise((resolve) => setTimeout(resolve, 5)) + if (attempts < 3) { + throw new Error(`attempt-${attempts}`) + } + return 'success' + }, + }, + client, + ) + + host.connect() + host.update() + + await waitFor(() => query().failureCount >= 1) + expect(query().failureReason).toBeInstanceOf(Error) + expect(query().isPending || query().isError).toBe(true) + + await waitFor(() => query().isSuccess) + expect(query().data).toBe('success') + expect(attempts).toBe(3) + }) + + it('is reconnect-idempotent without duplicate subscriptions', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + const queryKey = ['todos', 'reconnect-idempotent'] as const + + const query = createQueryController( + host, + { + queryKey, + queryFn: async () => ['a', 'b'], + }, + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + + const cacheQuery = client.getQueryCache().find({ queryKey }) + expect(cacheQuery).toBeDefined() + expect(cacheQuery?.getObserversCount()).toBe(1) + + host.disconnect() + expect(cacheQuery?.getObserversCount()).toBe(0) + + host.connect() + host.update() + await waitFor(() => cacheQuery?.getObserversCount() === 1) + + host.connect() + host.update() + + expect(cacheQuery?.getObserversCount()).toBe(1) + }) + + it('M17: no-explicit-client constructor path is safe before provider resolution', async () => { + const consumer = document.createElement( + consumerTagName, + ) as QueryConsumerHostElement + + expect(consumer.query().status).toBe('pending') + + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + provider.append(consumer) + + document.body.append(provider) + await provider.updateComplete + await consumer.updateComplete + + await waitFor(() => consumer.query().isSuccess) + expect(consumer.query().data).toBeDefined() + expect(consumer.queryCalls).toBeGreaterThan(0) + + consumer.query.destroy() + provider.remove() + await Promise.resolve() + }) + + it('LC-QUERY-01: provider-backed first connection does not spuriously throw during handshake', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + + const consumer = document.createElement( + consumerTagName, + ) as QueryConsumerHostElement + provider.append(consumer) + + expect(() => consumer.query()).not.toThrow() + + document.body.append(provider) + + expect(() => consumer.query()).not.toThrow() + + await provider.updateComplete + await consumer.updateComplete + await waitFor(() => consumer.query().isSuccess) + + expect(consumer.query().data).toBeDefined() + + consumer.query.destroy() + provider.remove() + await Promise.resolve() + }) + + it('throws after the initial placeholder phase when no provider is available', async () => { + const consumer = document.createElement( + consumerTagName, + ) as QueryConsumerHostElement + + expect(consumer.query().status).toBe('pending') + + document.body.append(consumer) + + expect(() => consumer.query()).not.toThrow() + await waitForMissingQueryClient(() => consumer.query()) + + await expect(consumer.query.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + await expect(consumer.query.suspense()).rejects.toThrow( + /No QueryClient available/, + ) + + consumer.query.destroy() + consumer.remove() + await Promise.resolve() + }) + + it('LC-QUERY-03: wrapper and result-object imperative methods share the missing-client contract', async () => { + const consumer = document.createElement( + consumerTagName, + ) as QueryConsumerHostElement + const placeholderResult = consumer.query() + + document.body.append(consumer) + await waitForMissingQueryClient(() => consumer.query()) + + await expect(consumer.query.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + await expect(placeholderResult.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + + consumer.query.destroy() + consumer.remove() + await Promise.resolve() + }) + + it('LC-QUERY-04: reconnect outside any provider clears stale provider-derived client state', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const provider = document.createElement( + providerTagName, + ) as QueryClientProvider + provider.client = client + + const consumer = document.createElement( + consumerTagName, + ) as QueryConsumerHostElement + provider.append(consumer) + document.body.append(provider) + + await provider.updateComplete + await consumer.updateComplete + await waitFor(() => consumer.query().isSuccess) + + expect( + client + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount(), + ).toBe(1) + + provider.removeChild(consumer) + await waitFor( + () => + (client + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount() ?? 0) === 0, + ) + await new Promise((resolve) => setTimeout(resolve, 0)) + consumer.connectedCallback() + + await expect(consumer.query.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + + consumer.query.destroy() + consumer.remove() + provider.remove() + await Promise.resolve() + }) + + it('LC-QUERY-05: reconnect under a different provider rebinds cleanly with later recovery', async () => { + const clientA = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const clientB = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + const providerA = document.createElement( + providerTagName, + ) as QueryClientProvider + providerA.client = clientA + const providerB = document.createElement( + providerTagName, + ) as QueryClientProvider + providerB.client = clientB + + const consumer = document.createElement( + consumerTagName, + ) as QueryConsumerHostElement + providerA.append(consumer) + + document.body.append(providerA) + + await providerA.updateComplete + await consumer.updateComplete + await waitFor(() => consumer.query().isSuccess) + + providerA.removeChild(consumer) + await waitFor( + () => + (clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount() ?? 0) === 0, + ) + consumer.connectedCallback() + await expect(consumer.query.refetch()).rejects.toThrow( + /No QueryClient available/, + ) + + consumer.disconnectedCallback() + providerB.append(consumer) + document.body.append(providerB) + await providerB.updateComplete + await waitFor(() => consumer.query().isSuccess && consumer.queryCalls >= 2) + + expect( + clientA + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount() ?? 0, + ).toBe(0) + expect( + clientB + .getQueryCache() + .find({ queryKey: consumer.queryKey }) + ?.getObserversCount(), + ).toBe(1) + expect(consumer.query().data).toBe(`value-${consumer.queryCalls}`) + + consumer.query.destroy() + providerA.remove() + providerB.remove() + await Promise.resolve() + }) + + it('reuses hydrated data on an already-connected host without an eager refetch', async () => { + const client = new QueryClient({ + defaultOptions: { queries: { retry: false, staleTime: 30_000 } }, + }) + let queryFnCalls = 0 + + client.setQueryData(['already-connected-test'], 'hydrated-value') + + // Simulate Lit's synchronous hostConnected call on already-connected hosts. + class AlreadyConnectedHost implements ReactiveControllerHost { + private readonly controllers = new Set() + private isConnected = true + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + if (this.isConnected) { + controller.hostConnected?.() + } + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + const host = new AlreadyConnectedHost() + + const query = createQueryController( + host, + { + queryKey: ['already-connected-test'], + queryFn: async () => { + queryFnCalls += 1 + return 'fetched-value' + }, + staleTime: 30_000, + }, + client, + ) + + await Promise.resolve() + await Promise.resolve() + + expect(query().data).toBe('hydrated-value') + expect(query().isSuccess).toBe(true) + await new Promise((resolve) => setTimeout(resolve, 50)) + expect(queryFnCalls).toBe(0) + + await query.refetch() + await waitFor(() => query().data === 'fetched-value') + expect(queryFnCalls).toBe(1) + + query.destroy() + }) + + it('defers explicit-client query accessors until host fields are initialized', () => { + const client = new QueryClient() + + class DeferredExplicitQueryHost implements ReactiveControllerHost { + private readonly controllers = new Set() + + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + readonly query = createQueryController( + this, + () => ({ + queryKey: ['deferred-explicit-query', this.id] as const, + queryFn: async () => this.id, + retry: false, + }), + client, + ) + + readonly firstRead = this.query() + readonly id = 'alpha' + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + } + + expect(() => new DeferredExplicitQueryHost()).not.toThrow() + + const host = new DeferredExplicitQueryHost() + expect(host.query().status).toBe('pending') + + host.query.destroy() + }) +}) diff --git a/packages/lit-query/src/tests/testHost.ts b/packages/lit-query/src/tests/testHost.ts new file mode 100644 index 00000000000..186433fe467 --- /dev/null +++ b/packages/lit-query/src/tests/testHost.ts @@ -0,0 +1,117 @@ +import type { ReactiveController, ReactiveControllerHost } from 'lit' + +export class TestControllerHost implements ReactiveControllerHost { + private readonly controllers = new Set() + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + + connect(): void { + for (const controller of this.controllers) { + controller.hostConnected?.() + } + } + + disconnect(): void { + for (const controller of this.controllers) { + controller.hostDisconnected?.() + } + } + + update(): void { + for (const controller of this.controllers) { + controller.hostUpdate?.() + } + + for (const controller of this.controllers) { + controller.hostUpdated?.() + } + } +} + +export class TestElementHost + extends HTMLElement + implements ReactiveControllerHost +{ + protected readonly controllers = new Set() + updatesRequested = 0 + readonly updateComplete: Promise = Promise.resolve(true) + + addController(controller: ReactiveController): void { + this.controllers.add(controller) + } + + removeController(controller: ReactiveController): void { + this.controllers.delete(controller) + } + + requestUpdate(): void { + this.updatesRequested += 1 + } + + connectedCallback(): void { + for (const controller of this.controllers) { + controller.hostConnected?.() + } + } + + disconnectedCallback(): void { + for (const controller of this.controllers) { + controller.hostDisconnected?.() + } + } + + flushHostUpdate(): void { + for (const controller of this.controllers) { + controller.hostUpdate?.() + } + + for (const controller of this.controllers) { + controller.hostUpdated?.() + } + } +} + +export async function waitFor( + assertion: () => boolean, + timeoutMs = 2000, +): Promise { + const startedAt = Date.now() + while (!assertion()) { + if (Date.now() - startedAt > timeoutMs) { + throw new Error(`Timed out waiting for assertion after ${timeoutMs}ms`) + } + await new Promise((resolve) => setTimeout(resolve, 10)) + } +} + +function isMissingQueryClientError(error: unknown): boolean { + return ( + error instanceof Error && /No QueryClient available/.test(error.message) + ) +} + +export async function waitForMissingQueryClient( + read: () => unknown, + timeoutMs = 2000, +): Promise { + await waitFor(() => { + try { + read() + return false + } catch (error) { + return isMissingQueryClientError(error) + } + }, timeoutMs) +} diff --git a/packages/lit-query/src/tests/type-inference.test.ts b/packages/lit-query/src/tests/type-inference.test.ts new file mode 100644 index 00000000000..e8c6c3c525d --- /dev/null +++ b/packages/lit-query/src/tests/type-inference.test.ts @@ -0,0 +1,210 @@ +import { + dataTagSymbol, + QueryClient, + type DefinedQueryObserverResult, + type QueryObserverResult, +} from '@tanstack/query-core' +import { describe, expectTypeOf, it } from 'vitest' +import { createMutationController } from '../createMutationController.js' +import { createQueriesController } from '../createQueriesController.js' +import { createInfiniteQueryController } from '../createInfiniteQueryController.js' +import { createQueryController } from '../createQueryController.js' +import { infiniteQueryOptions } from '../infiniteQueryOptions.js' +import { mutationOptions } from '../mutationOptions.js' +import { queryOptions } from '../queryOptions.js' +import { TestControllerHost } from './testHost.js' + +describe('type inference', () => { + it('L1: createQueriesController preserves tuple/combine inference', () => { + const client = new QueryClient() + const host = new TestControllerHost() + const expectTupleResult = ( + value: [QueryObserverResult, QueryObserverResult], + ) => value + const expectDefinedInitialDataTuple = ( + value: [DefinedQueryObserverResult<{ id: number; name: string }>], + ) => value + const expectMappedQueriesResult = ( + value: [ + ...Array>, + QueryObserverResult, + ], + ) => value + + const tupleResult = createQueriesController( + host, + { + queries: [ + { + queryKey: ['type-inference', 'tuple-number'] as const, + queryFn: async () => 1, + }, + { + queryKey: ['type-inference', 'tuple-string'] as const, + queryFn: async () => 'x', + }, + ] as const, + }, + client, + ) + + const tupleData = expectTupleResult(tupleResult()) + expectTypeOf(tupleData[0].data).toEqualTypeOf() + expectTypeOf(tupleData[1].data).toEqualTypeOf() + + const combinedResult = createQueriesController( + host, + { + queries: [ + { + queryKey: ['type-inference', 'combined-number'] as const, + queryFn: async () => 7, + }, + { + queryKey: ['type-inference', 'combined-string'] as const, + queryFn: async () => 'ok', + }, + ] as const, + combine: (result) => ({ + first: result[0].data, + second: result[1].data, + }), + }, + client, + ) + + expectTypeOf(combinedResult().first).toEqualTypeOf() + expectTypeOf(combinedResult().second).toEqualTypeOf() + + const definedInitialDataResult = createQueriesController( + host, + { + queries: [ + queryOptions({ + queryKey: ['type-inference', 'defined-initial-data'] as const, + queryFn: async () => ({ id: 4, name: 'Marie' }), + initialData: { id: 0, name: 'Seed' }, + }), + ] as const, + }, + client, + ) + + const definedInitialDataTuple = expectDefinedInitialDataTuple( + definedInitialDataResult(), + ) + expectTypeOf(definedInitialDataTuple[0].data).toEqualTypeOf<{ + id: number + name: string + }>() + + const definedInitialDataCombined = createQueriesController( + host, + { + queries: [ + queryOptions({ + queryKey: [ + 'type-inference', + 'defined-initial-data-combine', + ] as const, + queryFn: async () => ({ id: 5, name: 'Katherine' }), + initialData: { id: 1, name: 'Init' }, + }), + ] as const, + combine: (result) => result[0].data.name, + }, + client, + ) + + const definedInitialDataCombinedValue: string = definedInitialDataCombined() + expectTypeOf(definedInitialDataCombinedValue).toEqualTypeOf() + + const numberQueries = [1, 2, 3].map((value) => + queryOptions({ + queryKey: ['type-inference', 'mapped-number', value] as const, + queryFn: async () => value, + }), + ) + const mappedQueriesResult = createQueriesController( + host, + { + queries: [ + ...numberQueries, + queryOptions({ + queryKey: ['type-inference', 'mapped-boolean'] as const, + queryFn: async () => true, + }), + ], + }, + client, + ) + + const mappedQueriesData = expectMappedQueriesResult(mappedQueriesResult()) + expectTypeOf(mappedQueriesData[0].data).toEqualTypeOf< + number | boolean | undefined + >() + }) + + it('L2: helper option generics preserve controller inference', () => { + const client = new QueryClient() + const host = new TestControllerHost() + + const query = createQueryController( + host, + queryOptions({ + queryKey: ['type-inference', 'query'] as const, + queryFn: async () => ({ id: 1, name: 'Ada' }), + }), + client, + ) + expectTypeOf(query().data).toEqualTypeOf< + { id: number; name: string } | undefined + >() + + const mutation = createMutationController( + host, + mutationOptions({ + mutationFn: async (input: { id: number }) => input.id.toString(), + }), + client, + ) + expectTypeOf(mutation().data).toEqualTypeOf() + expectTypeOf(mutation().variables).toEqualTypeOf< + { id: number } | undefined + >() + + const queryOpts = queryOptions({ + queryKey: ['type-inference', 'query-options'] as const, + queryFn: async () => ({ id: 2, name: 'Grace' }), + }) + expectTypeOf(queryOpts.queryKey[dataTagSymbol]).toEqualTypeOf<{ + id: number + name: string + }>() + const cachedData = client.getQueryData(queryOpts.queryKey) + expectTypeOf(cachedData).toEqualTypeOf< + { id: number; name: string } | undefined + >() + const updatedData = client.setQueryData(queryOpts.queryKey, { + id: 3, + name: 'Lin', + }) + expectTypeOf(updatedData).toEqualTypeOf< + { id: number; name: string } | undefined + >() + + const infinite = createInfiniteQueryController( + host, + infiniteQueryOptions({ + queryKey: ['type-inference', 'infinite'] as const, + initialPageParam: 0, + queryFn: async () => ({ page: 1 }), + getNextPageParam: (lastPage) => lastPage.page + 1, + }), + client, + ) + expectTypeOf(infinite().data?.pages).toEqualTypeOf< + Array<{ page: number }> | undefined + >() + }) +}) diff --git a/packages/lit-query/src/types.ts b/packages/lit-query/src/types.ts new file mode 100644 index 00000000000..4eca18ed4e1 --- /dev/null +++ b/packages/lit-query/src/types.ts @@ -0,0 +1,77 @@ +import type { + DefaultError, + InfiniteData, + MutationObserverResult, + QueryKey, + QueryObserverResult, +} from '@tanstack/query-core' +import type { Accessor } from './accessor.js' +import type { CreateInfiniteQueryOptions } from './createInfiniteQueryController.js' +import type { CreateMutationOptions } from './createMutationController.js' +import type { + CreateQueriesControllerOptions, + CreateQueriesResults, +} from './createQueriesController.js' +import type { CreateQueryOptions } from './createQueryController.js' + +/** + * Accessor-wrapped options accepted by `createQueryController`. + */ +export type QueryControllerOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = Accessor< + CreateQueryOptions +> + +/** + * Result object produced by a Lit query controller. + */ +export type QueryControllerResult< + TData = unknown, + TError = DefaultError, +> = QueryObserverResult + +/** + * Accessor-wrapped options accepted by `createInfiniteQueryController`. + */ +export type InfiniteQueryControllerOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = InfiniteData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = unknown, +> = Accessor< + CreateInfiniteQueryOptions +> + +/** + * Accessor-wrapped options accepted by `createMutationController`. + */ +export type MutationControllerOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +> = Accessor> + +/** + * Result object produced by a Lit mutation controller. + */ +export type MutationControllerResult< + TData = unknown, + TError = DefaultError, + TVariables = void, + TOnMutateResult = unknown, +> = MutationObserverResult + +/** + * Accessor-wrapped options accepted by `createQueriesController`. + */ +export type QueriesControllerOptions< + TQueryOptions extends Array = Array, + TCombinedResult = CreateQueriesResults, +> = Accessor> diff --git a/packages/lit-query/src/useIsFetching.ts b/packages/lit-query/src/useIsFetching.ts new file mode 100644 index 00000000000..76abd9e408f --- /dev/null +++ b/packages/lit-query/src/useIsFetching.ts @@ -0,0 +1,159 @@ +import type { QueryClient, QueryFilters } from '@tanstack/query-core' +import type { ReactiveControllerHost } from 'lit' +import { + createValueAccessor, + readAccessor, + type Accessor, + type ValueAccessor, +} from './accessor.js' +import { BaseController } from './controllers/BaseController.js' + +/** + * Accessor returned by `useIsFetching`. + * + * Call the accessor or read its `current` property to get the number of + * currently fetching queries that match the filters. + */ +export type IsFetchingAccessor = ValueAccessor & { destroy: () => void } + +class IsFetchingController extends BaseController { + private queryClient: QueryClient | undefined + private unsubscribe: (() => void) | undefined + + constructor( + host: ReactiveControllerHost, + private readonly filters: Accessor = {}, + queryClient?: QueryClient, + ) { + super(host, 0, queryClient) + + if (!queryClient) { + return + } + + this.queryClient = queryClient + this.result = this.computeValue() + } + + protected onConnected(): void { + if (!this.syncClient()) { + this.setResult(0) + return + } + + this.subscribe() + this.setResult(this.computeValue()) + } + + protected onDisconnected(): void { + this.unsubscribe?.() + this.unsubscribe = undefined + this.syncClient() + } + + protected onHostUpdate(): void { + if (typeof this.filters !== 'function') { + return + } + + this.setResult(this.syncClient() ? this.computeValue() : 0) + } + + protected onQueryClientChanged(): void { + if (!this.syncClient()) { + this.setResult(0) + return + } + + if (this.connectedState) { + this.subscribe() + this.setResult(this.computeValue()) + } + } + + private syncClient(): boolean { + const nextClient = this.tryGetQueryClient() + if (!nextClient) { + this.unsubscribe?.() + this.unsubscribe = undefined + this.queryClient = undefined + return false + } + + if (nextClient === this.queryClient) { + return true + } + + this.unsubscribe?.() + this.unsubscribe = undefined + this.queryClient = nextClient + return true + } + + private subscribe(): void { + if (!this.queryClient) { + return + } + + if (this.unsubscribe) { + return + } + + this.unsubscribe = this.queryClient.getQueryCache().subscribe(() => { + this.setResult(this.computeValue()) + }) + } + + private computeValue(): number { + if (!this.queryClient) { + return 0 + } + + return this.queryClient.isFetching(readAccessor(this.filters)) + } +} + +/** + * Creates a Lit reactive controller that tracks how many matching queries are + * currently fetching. + * + * When `filters` is a function, it is re-read during host updates so the count + * can follow reactive host state. If `queryClient` is omitted, the controller + * resolves the client from the nearest connected `QueryClientProvider`. + * + * @param host - The Lit reactive controller host that owns the cache + * subscription. + * @param filters - Query filters, or a getter that returns query filters. + * @param queryClient - Optional explicit query client. Provide this for + * controllers that should not resolve a client from Lit context. + * @returns An accessor for the current number of matching fetching queries. + * + * @example + * ```ts + * import { LitElement, html } from 'lit' + * import { useIsFetching } from '@tanstack/lit-query' + * + * class TodosStatus extends LitElement { + * private readonly todosFetching = useIsFetching(this, { + * queryKey: ['todos'], + * }) + * + * render() { + * return html`${this.todosFetching()} active todo fetches` + * } + * } + * ``` + */ +export function useIsFetching( + host: ReactiveControllerHost, + filters: Accessor = {}, + queryClient?: QueryClient, +): IsFetchingAccessor { + const controller = new IsFetchingController(host, filters, queryClient) + return Object.assign( + createValueAccessor(() => controller.current), + { + destroy: () => controller.destroy(), + }, + ) +} diff --git a/packages/lit-query/src/useIsMutating.ts b/packages/lit-query/src/useIsMutating.ts new file mode 100644 index 00000000000..154ad4e5e6a --- /dev/null +++ b/packages/lit-query/src/useIsMutating.ts @@ -0,0 +1,159 @@ +import type { MutationFilters, QueryClient } from '@tanstack/query-core' +import type { ReactiveControllerHost } from 'lit' +import { + createValueAccessor, + readAccessor, + type Accessor, + type ValueAccessor, +} from './accessor.js' +import { BaseController } from './controllers/BaseController.js' + +/** + * Accessor returned by `useIsMutating`. + * + * Call the accessor or read its `current` property to get the number of + * currently pending mutations that match the filters. + */ +export type IsMutatingAccessor = ValueAccessor & { destroy: () => void } + +class IsMutatingController extends BaseController { + private queryClient: QueryClient | undefined + private unsubscribe: (() => void) | undefined + + constructor( + host: ReactiveControllerHost, + private readonly filters: Accessor = {}, + queryClient?: QueryClient, + ) { + super(host, 0, queryClient) + + if (!queryClient) { + return + } + + this.queryClient = queryClient + this.result = this.computeValue() + } + + protected onConnected(): void { + if (!this.syncClient()) { + this.setResult(0) + return + } + + this.subscribe() + this.setResult(this.computeValue()) + } + + protected onDisconnected(): void { + this.unsubscribe?.() + this.unsubscribe = undefined + this.syncClient() + } + + protected onHostUpdate(): void { + if (typeof this.filters !== 'function') { + return + } + + this.setResult(this.syncClient() ? this.computeValue() : 0) + } + + protected onQueryClientChanged(): void { + if (!this.syncClient()) { + this.setResult(0) + return + } + + if (this.connectedState) { + this.subscribe() + this.setResult(this.computeValue()) + } + } + + private syncClient(): boolean { + const nextClient = this.tryGetQueryClient() + if (!nextClient) { + this.unsubscribe?.() + this.unsubscribe = undefined + this.queryClient = undefined + return false + } + + if (nextClient === this.queryClient) { + return true + } + + this.unsubscribe?.() + this.unsubscribe = undefined + this.queryClient = nextClient + return true + } + + private subscribe(): void { + if (!this.queryClient) { + return + } + + if (this.unsubscribe) { + return + } + + this.unsubscribe = this.queryClient.getMutationCache().subscribe(() => { + this.setResult(this.computeValue()) + }) + } + + private computeValue(): number { + if (!this.queryClient) { + return 0 + } + + return this.queryClient.isMutating(readAccessor(this.filters)) + } +} + +/** + * Creates a Lit reactive controller that tracks how many matching mutations are + * currently pending. + * + * When `filters` is a function, it is re-read during host updates so the count + * can follow reactive host state. If `queryClient` is omitted, the controller + * resolves the client from the nearest connected `QueryClientProvider`. + * + * @param host - The Lit reactive controller host that owns the cache + * subscription. + * @param filters - Mutation filters, or a getter that returns mutation filters. + * @param queryClient - Optional explicit query client. Provide this for + * controllers that should not resolve a client from Lit context. + * @returns An accessor for the current number of matching pending mutations. + * + * @example + * ```ts + * import { LitElement, html } from 'lit' + * import { useIsMutating } from '@tanstack/lit-query' + * + * class MutationStatus extends LitElement { + * private readonly savesPending = useIsMutating(this, { + * mutationKey: ['save-project'], + * }) + * + * render() { + * return html`${this.savesPending()} saves pending` + * } + * } + * ``` + */ +export function useIsMutating( + host: ReactiveControllerHost, + filters: Accessor = {}, + queryClient?: QueryClient, +): IsMutatingAccessor { + const controller = new IsMutatingController(host, filters, queryClient) + return Object.assign( + createValueAccessor(() => controller.current), + { + destroy: () => controller.destroy(), + }, + ) +} diff --git a/packages/lit-query/src/useMutationState.ts b/packages/lit-query/src/useMutationState.ts new file mode 100644 index 00000000000..f3bc477db0a --- /dev/null +++ b/packages/lit-query/src/useMutationState.ts @@ -0,0 +1,201 @@ +import type { + Mutation, + MutationFilters, + MutationState, + QueryClient, +} from '@tanstack/query-core' +import type { ReactiveControllerHost } from 'lit' +import { + createValueAccessor, + readAccessor, + type Accessor, + type ValueAccessor, +} from './accessor.js' +import { BaseController } from './controllers/BaseController.js' + +/** + * Options accepted by `useMutationState`. + */ +export type MutationStateOptions = { + /** Filters used to select mutations from the mutation cache. */ + filters?: Accessor + /** Maps each matching mutation to the value returned by the accessor. */ + select?: (mutation: Mutation) => TResult +} + +/** + * Accessor returned by `useMutationState`. + * + * Call the accessor or read its `current` property to get the selected state for + * matching mutations. + */ +export type MutationStateAccessor = ValueAccessor & { + /** Removes the controller from its Lit host and unsubscribes observers. */ + destroy: () => void +} + +class MutationStateController extends BaseController { + private queryClient: QueryClient | undefined + private unsubscribe: (() => void) | undefined + + constructor( + host: ReactiveControllerHost, + private readonly options: MutationStateOptions, + queryClient?: QueryClient, + ) { + super(host, [], queryClient) + + if (!queryClient) { + return + } + + this.queryClient = queryClient + this.result = this.computeState() + } + + protected onConnected(): void { + if (!this.syncClient()) { + this.setResult([]) + return + } + + this.subscribe() + this.setResult(this.computeState()) + } + + protected onDisconnected(): void { + this.unsubscribe?.() + this.unsubscribe = undefined + this.syncClient() + } + + protected onHostUpdate(): void { + if (!this.shouldRefreshOnHostUpdate()) { + return + } + + this.setResult(this.syncClient() ? this.computeState() : []) + } + + protected onQueryClientChanged(): void { + if (!this.syncClient()) { + this.setResult([]) + return + } + + if (this.connectedState) { + this.subscribe() + this.setResult(this.computeState()) + } + } + + private syncClient(): boolean { + const nextClient = this.tryGetQueryClient() + if (!nextClient) { + this.unsubscribe?.() + this.unsubscribe = undefined + this.queryClient = undefined + return false + } + + if (nextClient === this.queryClient) { + return true + } + + this.unsubscribe?.() + this.unsubscribe = undefined + this.queryClient = nextClient + return true + } + + private subscribe(): void { + if (!this.queryClient) { + return + } + + if (this.unsubscribe) { + return + } + + this.unsubscribe = this.queryClient.getMutationCache().subscribe(() => { + this.setResult(this.computeState()) + }) + } + + private shouldRefreshOnHostUpdate(): boolean { + return ( + typeof this.options.filters === 'function' || + typeof this.options.select === 'function' + ) + } + + private computeState(): TResult[] { + if (!this.queryClient) { + return [] + } + + const filters = this.options.filters + ? readAccessor(this.options.filters) + : undefined + + const select = this.options.select + const mutations = this.queryClient.getMutationCache().findAll(filters) + + return mutations.map((mutation) => { + if (select) { + return select(mutation) + } + + return mutation.state as TResult + }) + } +} + +/** + * Creates a Lit reactive controller that selects state from matching mutations + * in the mutation cache. + * + * When `options.filters` is a function, it is re-read during host updates so + * the selection can follow reactive host state. If `queryClient` is omitted, + * the controller resolves the client from the nearest connected + * `QueryClientProvider`. + * + * @param host - The Lit reactive controller host that owns the mutation cache + * subscription. + * @param options - Mutation state filters and optional selector. + * @param queryClient - Optional explicit query client. Provide this for + * controllers that should not resolve a client from Lit context. + * @returns An accessor for the selected mutation state array. + * + * @example + * ```ts + * import { LitElement, html } from 'lit' + * import { useMutationState } from '@tanstack/lit-query' + * + * class PendingUploads extends LitElement { + * private readonly uploads = useMutationState(this, { + * filters: { mutationKey: ['upload'], status: 'pending' }, + * select: (mutation) => mutation.state.variables as File, + * }) + * + * render() { + * return html`${this.uploads().length} uploads pending` + * } + * } + * ``` + */ +export function useMutationState< + TResult = MutationState, +>( + host: ReactiveControllerHost, + options: MutationStateOptions = {}, + queryClient?: QueryClient, +): MutationStateAccessor { + const controller = new MutationStateController(host, options, queryClient) + return Object.assign( + createValueAccessor(() => controller.current), + { + destroy: () => controller.destroy(), + }, + ) +} diff --git a/packages/lit-query/tsconfig.build.cjs.json b/packages/lit-query/tsconfig.build.cjs.json new file mode 100644 index 00000000000..f6a332575d4 --- /dev/null +++ b/packages/lit-query/tsconfig.build.cjs.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.build.json", + "compilerOptions": { + "customConditions": null, + "module": "CommonJS", + "moduleResolution": "Node", + "outDir": "dist-cjs", + "declaration": false, + "declarationMap": false + }, + "exclude": ["src/tests/**/*.ts", "dist", "dist-cjs", "node_modules"] +} diff --git a/packages/lit-query/tsconfig.build.json b/packages/lit-query/tsconfig.build.json new file mode 100644 index 00000000000..5a1dd43717c --- /dev/null +++ b/packages/lit-query/tsconfig.build.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "incremental": false, + "composite": false, + "customConditions": [], + "module": "ESNext", + "moduleResolution": "Bundler", + "rootDir": "src", + "outDir": "dist" + }, + "include": ["src/**/*.ts"], + "exclude": ["src/tests/**/*.ts", "dist", "node_modules"] +} diff --git a/packages/lit-query/tsconfig.json b/packages/lit-query/tsconfig.json new file mode 100644 index 00000000000..9608d648e8c --- /dev/null +++ b/packages/lit-query/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "lib": ["ES2022", "DOM"], + "strict": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "isolatedModules": true, + "esModuleInterop": true, + "skipLibCheck": true, + "noUncheckedIndexedAccess": true, + "forceConsistentCasingInFileNames": true, + "emitDeclarationOnly": false, + "rootDir": ".", + "outDir": "dist-ts" + }, + "include": ["src/**/*.ts", "*.config.*", "package.json"], + "exclude": ["dist", "node_modules"], + "references": [{ "path": "../query-core" }] +} diff --git a/packages/lit-query/vitest.config.ts b/packages/lit-query/vitest.config.ts new file mode 100644 index 00000000000..0ab94757be4 --- /dev/null +++ b/packages/lit-query/vitest.config.ts @@ -0,0 +1,26 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, + }, + test: { + dir: './src', + watch: false, + environment: 'jsdom', + include: ['tests/**/*.test.ts'], + coverage: { + enabled: false, + }, + typecheck: { enabled: true }, + restoreMocks: true, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dbc3059310b..9f99bbb370f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,7 +53,7 @@ importers: version: 0.3.1(typescript@5.9.3) '@tanstack/vite-config': specifier: 0.4.3 - version: 0.4.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 0.4.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@testing-library/jest-dom': specifier: ^6.8.0 version: 6.9.1 @@ -68,10 +68,10 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitest/coverage-istanbul': specifier: 4.0.6 - version: 4.0.6(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 4.0.6(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@vitest/eslint-plugin': specifier: ^1.4.0 - version: 1.6.14(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 1.6.14(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) esbuild-plugin-file-path-extensions: specifier: ^2.1.4 version: 2.1.4 @@ -122,7 +122,7 @@ importers: version: 0.2.15 tsup: specifier: ^8.4.0 - version: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3) + version: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -149,10 +149,10 @@ importers: version: typescript@6.0.1-rc vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: ^4.0.18 - version: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) examples/angular/auto-refetching: dependencies: @@ -183,7 +183,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -223,7 +223,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -269,7 +269,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -312,7 +312,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -352,7 +352,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -395,7 +395,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -435,7 +435,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -478,7 +478,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -521,7 +521,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -564,7 +564,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -604,7 +604,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -615,6 +615,72 @@ importers: specifier: 5.8.3 version: 5.8.3 + examples/lit/basic: + dependencies: + '@tanstack/lit-query': + specifier: ^0.1.0 + version: link:../../../packages/lit-query + '@tanstack/query-core': + specifier: ^5.99.0 + version: link:../../../packages/query-core + lit: + specifier: ^3.3.1 + version: 3.3.2 + devDependencies: + typescript: + specifier: 5.8.3 + version: 5.8.3 + vite: + specifier: ^6.4.1 + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + + examples/lit/pagination: + dependencies: + '@tanstack/lit-query': + specifier: ^0.1.0 + version: link:../../../packages/lit-query + '@tanstack/query-core': + specifier: ^5.99.0 + version: link:../../../packages/query-core + lit: + specifier: ^3.3.1 + version: 3.3.2 + devDependencies: + typescript: + specifier: 5.8.3 + version: 5.8.3 + vite: + specifier: ^6.4.1 + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + + examples/lit/ssr: + dependencies: + '@lit-labs/ssr': + specifier: ^3.3.0 + version: 3.3.1 + '@tanstack/lit-query': + specifier: ^0.1.0 + version: link:../../../packages/lit-query + '@tanstack/query-core': + specifier: ^5.99.0 + version: link:../../../packages/query-core + lit: + specifier: ^3.3.1 + version: 3.3.2 + devDependencies: + '@lit-labs/ssr-client': + specifier: ^1.1.7 + version: 1.1.8 + tsx: + specifier: ^4.19.0 + version: 4.21.0 + typescript: + specifier: 5.8.3 + version: 5.8.3 + vite: + specifier: ^6.4.1 + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + examples/preact/simple: dependencies: '@tanstack/preact-query': @@ -626,7 +692,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) eslint: specifier: ^9.36.0 version: 9.39.4(jiti@2.6.1) @@ -638,7 +704,7 @@ importers: version: 5.9.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/algolia: dependencies: @@ -669,13 +735,13 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/auto-refetching: dependencies: @@ -737,13 +803,13 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/basic-graphql-request: dependencies: @@ -768,10 +834,10 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/chat: dependencies: @@ -790,10 +856,10 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.0.14 - version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) tailwindcss: specifier: ^4.0.14 version: 4.2.2 @@ -802,7 +868,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/default-query-function: dependencies: @@ -821,13 +887,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/devtools-panel: dependencies: @@ -846,13 +912,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/eslint-legacy: dependencies: @@ -886,13 +952,13 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/eslint-plugin-demo: dependencies: @@ -1094,13 +1160,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/optimistic-updates-cache: dependencies: @@ -1203,13 +1269,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/prefetching: dependencies: @@ -1344,13 +1410,13 @@ importers: version: 1.2.3 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/rick-morty: dependencies: @@ -1375,10 +1441,10 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.1.13 - version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) tailwindcss: specifier: ^4.1.13 version: 4.2.2 @@ -1387,7 +1453,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/shadow-dom: dependencies: @@ -1412,13 +1478,13 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/simple: dependencies: @@ -1437,13 +1503,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/star-wars: dependencies: @@ -1468,10 +1534,10 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.1.13 - version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) tailwindcss: specifier: ^4.1.13 version: 4.2.2 @@ -1480,7 +1546,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/react/suspense: dependencies: @@ -1505,13 +1571,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/solid/astro: dependencies: @@ -1520,16 +1586,16 @@ importers: version: 0.9.8(prettier@3.8.1)(typescript@5.8.3) '@astrojs/node': specifier: ^9.1.3 - version: 9.5.5(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3)) + version: 9.5.5(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3)) '@astrojs/solid-js': specifier: ^5.0.7 - version: 5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(solid-js@1.9.12)(terser@5.46.1)(yaml@2.8.3) + version: 5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(solid-js@1.9.12)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3)) + version: 6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) + version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': specifier: ^5.100.9 version: link:../../../packages/solid-query @@ -1538,13 +1604,13 @@ importers: version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 - version: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) + version: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3) solid-js: specifier: ^1.9.7 version: 1.9.12 tailwindcss: specifier: ^3.4.7 - version: 3.4.19(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1566,10 +1632,10 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) examples/solid/basic-graphql-request: dependencies: @@ -1594,10 +1660,10 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) examples/solid/default-query-function: dependencies: @@ -1616,10 +1682,10 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) examples/solid/offline: dependencies: @@ -1647,10 +1713,10 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) examples/solid/simple: dependencies: @@ -1672,10 +1738,10 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) examples/solid/solid-start-streaming: dependencies: @@ -1687,7 +1753,7 @@ importers: version: 0.15.4(solid-js@1.9.12) '@solidjs/start': specifier: ^1.1.3 - version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/solid-query': specifier: ^5.100.9 version: link:../../../packages/solid-query @@ -1699,7 +1765,7 @@ importers: version: 1.9.12 vinxi: specifier: ^0.5.3 - version: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/auto-refetching: dependencies: @@ -1712,13 +1778,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) svelte: specifier: ^5.39.3 version: 5.55.1 @@ -1730,7 +1796,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/basic: dependencies: @@ -1749,13 +1815,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) svelte: specifier: ^5.39.3 version: 5.55.1 @@ -1767,7 +1833,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/load-more-infinite-scroll: dependencies: @@ -1780,13 +1846,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) svelte: specifier: ^5.39.3 version: 5.55.1 @@ -1798,7 +1864,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/optimistic-updates: dependencies: @@ -1811,13 +1877,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) svelte: specifier: ^5.39.3 version: 5.55.1 @@ -1829,7 +1895,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/playground: dependencies: @@ -1842,13 +1908,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) svelte: specifier: ^5.39.3 version: 5.55.1 @@ -1860,7 +1926,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/simple: dependencies: @@ -1873,7 +1939,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tsconfig/svelte': specifier: ^5.0.4 version: 5.0.8 @@ -1888,7 +1954,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/ssr: dependencies: @@ -1901,13 +1967,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) svelte: specifier: ^5.39.3 version: 5.55.1 @@ -1919,7 +1985,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/svelte/star-wars: dependencies: @@ -1932,16 +1998,16 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tailwindcss/vite': specifier: ^4.1.13 - version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) svelte: specifier: ^5.39.3 version: 5.55.1 @@ -1956,7 +2022,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/vue/basic: dependencies: @@ -1972,13 +2038,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/vue/dependent-queries: dependencies: @@ -1991,13 +2057,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/vue/persister: dependencies: @@ -2022,13 +2088,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) examples/vue/simple: dependencies: @@ -2044,13 +2110,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) integrations/angular-cli-20: dependencies: @@ -2087,7 +2153,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) @@ -2098,6 +2164,25 @@ importers: specifier: ~5.8.2 version: 5.8.3 + integrations/lit-vite: + dependencies: + '@tanstack/lit-query': + specifier: workspace:* + version: link:../../packages/lit-query + '@tanstack/query-core': + specifier: workspace:* + version: link:../../packages/query-core + lit: + specifier: ^3.3.1 + version: 3.3.2 + vite: + specifier: ^6.4.1 + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + devDependencies: + typescript: + specifier: 5.8.3 + version: 5.8.3 + integrations/react-next-14: dependencies: '@tanstack/react-query': @@ -2195,7 +2280,7 @@ importers: version: link:../../packages/react-query-devtools '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) react: specifier: ^19.0.0 version: 19.2.4 @@ -2204,7 +2289,7 @@ importers: version: 19.2.4(react@19.2.4) vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) integrations/react-webpack-4: dependencies: @@ -2296,16 +2381,16 @@ importers: version: 1.9.12 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) integrations/svelte-vite: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/svelte-query': specifier: workspace:* version: link:../../packages/svelte-query @@ -2317,7 +2402,7 @@ importers: version: 5.55.1 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) integrations/vue-vite: dependencies: @@ -2330,13 +2415,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vue-tsc: specifier: ^2.2.8 version: 2.2.12(typescript@5.8.3) @@ -2373,13 +2458,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) vite-plugin-externalize-deps: specifier: ^0.9.0 - version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -2451,6 +2536,28 @@ importers: specifier: ^5.0.0 version: 5.0.2 + packages/lit-query: + dependencies: + '@lit/context': + specifier: ^1.1.6 + version: 1.1.6 + '@tanstack/query-core': + specifier: workspace:* + version: link:../query-core + lit: + specifier: ^3.3.1 + version: 3.3.2 + devDependencies: + '@eslint/js': + specifier: ^9.36.0 + version: 9.39.4 + globals: + specifier: ^17.4.0 + version: 17.5.0 + typescript-eslint: + specifier: 8.58.1 + version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc) + packages/preact-query: dependencies: '@tanstack/query-core': @@ -2459,7 +2566,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/query-persist-client-core': specifier: workspace:* version: link:../query-persist-client-core @@ -2499,7 +2606,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/preact-query': specifier: workspace:* version: link:../preact-query @@ -2530,7 +2637,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/preact-query': specifier: workspace:* version: link:../preact-query @@ -2586,7 +2693,7 @@ importers: version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2649,10 +2756,10 @@ importers: version: 2.2.6 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) packages/query-persist-client-core: dependencies: @@ -2715,7 +2822,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -2749,7 +2856,7 @@ importers: version: 19.2.14 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2767,7 +2874,7 @@ importers: version: 19.2.14 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) next: specifier: ^16.0.1 version: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) @@ -2798,7 +2905,7 @@ importers: version: 19.2.14 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2826,10 +2933,10 @@ importers: version: 1.9.12 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) packages/solid-query-devtools: dependencies: @@ -2851,10 +2958,10 @@ importers: version: 1.9.12 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) packages/solid-query-persist-client: dependencies: @@ -2879,10 +2986,10 @@ importers: version: 1.9.12 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)) + version: 2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) packages/svelte-query: dependencies: @@ -2895,13 +3002,13 @@ importers: version: 2.5.7(svelte@5.55.1)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils '@testing-library/svelte': specifier: ^5.2.8 - version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@typescript-eslint/parser': specifier: 8.58.1 version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -2932,13 +3039,13 @@ importers: version: 2.5.7(svelte@5.55.1)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query '@testing-library/svelte': specifier: ^5.2.8 - version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@typescript-eslint/parser': specifier: 8.58.1 version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -2966,7 +3073,7 @@ importers: version: 2.5.7(svelte@5.55.1)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2975,7 +3082,7 @@ importers: version: link:../svelte-query '@testing-library/svelte': specifier: ^5.2.8 - version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))) + version: 5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@typescript-eslint/parser': specifier: 8.58.1 version: 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -3012,7 +3119,7 @@ importers: version: link:../query-test-utils '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3)) '@vue/composition-api': specifier: 1.7.2 version: 1.7.2(vue@3.5.31(typescript@5.9.3)) @@ -3040,7 +3147,7 @@ importers: version: link:../vue-query '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) + version: 5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3)) eslint-plugin-vue: specifier: ^10.5.0 version: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))) @@ -3049,7 +3156,7 @@ importers: version: 5.8.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vue: specifier: ^3.4.27 version: 3.5.31(typescript@5.8.3) @@ -5357,6 +5464,22 @@ packages: '@inquirer/prompts': '>= 3 < 8' listr2: 9.0.1 + '@lit-labs/ssr-client@1.1.8': + resolution: {integrity: sha512-PjGh81oKsoI64m3IDjTqqjhC7dr2uC/o0jrllUb5gRAyp/RlAHxapgJrjq9kWz97faCHLQ8jUlTi6tGm+8fgyA==} + + '@lit-labs/ssr-dom-shim@1.5.1': + resolution: {integrity: sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==} + + '@lit-labs/ssr@3.3.1': + resolution: {integrity: sha512-JlF1PempxvzrGEpRFrF+Ki0MHzR3HA51SK8Zv0cFpW9p0bPW4k0FeCwrElCu371UEpXF7RcaE2wgYaE1az0XKg==} + engines: {node: '>=13.9.0'} + + '@lit/context@1.1.6': + resolution: {integrity: sha512-M26qDE6UkQbZA2mQ3RjJ3Gzd8TxP+/0obMgE5HfkfLhEEyYE3Bui4A5XHiGPjy0MUGAyxB3QgVuw2ciS0kHn6A==} + + '@lit/reactive-element@2.1.2': + resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} + '@lmdb/lmdb-darwin-arm64@3.4.2': resolution: {integrity: sha512-NK80WwDoODyPaSazKbzd3NEJ3ygePrkERilZshxBViBARNz21rmediktGHExoj9n5t9+ChlgLlxecdFKLCuCKg==} cpu: [arm64] @@ -6180,6 +6303,9 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} + '@parse5/tools@0.3.0': + resolution: {integrity: sha512-zxRyTHkqb7WQMV8kTNBKWb1BeOFUKXBXTBWuxg9H9hfvQB3IwP6Iw2U75Ia5eyRxPNltmY7E8YAlz6zWwUnjKg==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -7603,9 +7729,23 @@ packages: vitest: optional: true + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + '@vitest/expect@4.1.2': resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.4.1 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/mocker@4.1.2': resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} peerDependencies: @@ -7617,18 +7757,33 @@ packages: vite: optional: true + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + '@vitest/pretty-format@4.1.2': resolution: {integrity: sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==} + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + '@vitest/runner@4.1.2': resolution: {integrity: sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==} + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + '@vitest/snapshot@4.1.2': resolution: {integrity: sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==} + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + '@vitest/spy@4.1.2': resolution: {integrity: sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==} + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@vitest/utils@4.1.2': resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} @@ -8713,6 +8868,10 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} @@ -8748,6 +8907,10 @@ packages: charenc@0.0.2: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} + engines: {node: '>= 16'} + cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} @@ -9270,6 +9433,10 @@ packages: cyclist@1.0.2: resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -9361,6 +9528,10 @@ packages: dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -10213,6 +10384,10 @@ packages: picomatch: optional: true + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + fetch-retry@4.1.1: resolution: {integrity: sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==} @@ -10358,6 +10533,10 @@ packages: engines: {node: '>=18.3.0'} hasBin: true + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -10558,6 +10737,10 @@ packages: resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} + globals@17.5.0: + resolution: {integrity: sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -11788,6 +11971,15 @@ packages: resolution: {integrity: sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==} engines: {node: '>=20.0.0'} + lit-element@4.2.2: + resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} + + lit-html@3.3.2: + resolution: {integrity: sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==} + + lit@3.3.2: + resolution: {integrity: sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==} + lmdb@3.4.2: resolution: {integrity: sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==} hasBin: true @@ -11889,6 +12081,9 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -12403,7 +12598,7 @@ packages: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: {integrity: sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=} msgpackr-extract@3.0.3: resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} @@ -12574,6 +12769,11 @@ packages: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + node-emoji@2.2.0: resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} engines: {node: '>=18'} @@ -12594,6 +12794,10 @@ packages: encoding: optional: true + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-forge@1.4.0: resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} engines: {node: '>= 6.13.0'} @@ -13142,6 +13346,10 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + pbkdf2@3.1.5: resolution: {integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==} engines: {node: '>= 0.10'} @@ -14964,10 +15172,22 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + tinyrainbow@3.1.0: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + tldts-core@6.1.86: resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} @@ -15110,6 +15330,11 @@ packages: typescript: optional: true + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + tty-browserify@0.0.0: resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} @@ -15589,6 +15814,11 @@ packages: resolution: {integrity: sha512-82Qm+EG/b2PRFBvXBbz1lgWBGcd9totIL6SJhnrZYfakjloTVG9+5l6gfO6dbCCtztm5pqWFzLY0qpZ3H3ww/w==} hasBin: true + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite-plugin-dts@4.2.3: resolution: {integrity: sha512-O5NalzHANQRwVw1xj8KQun3Bv8OSDAlNJXrnqoAz10BOuW8FVvY5g4ygj+DlJZL5mtSPuMu9vd3OfrdW5d4k6w==} engines: {node: ^14.18.0 || >=16.0.0} @@ -15680,6 +15910,34 @@ packages: vite: optional: true + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^22.15.3 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vitest@4.1.2: resolution: {integrity: sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -16461,7 +16719,7 @@ snapshots: '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(yaml@2.8.3)': + '@angular/build@20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2003.22(chokidar@4.0.3) @@ -16471,7 +16729,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.14(@types/node@22.19.15) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) beasties: 0.3.5 browserslist: 4.28.2 esbuild: 0.27.4 @@ -16491,7 +16749,7 @@ snapshots: tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.8.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) watchpack: 2.4.4 optionalDependencies: '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) @@ -16499,7 +16757,7 @@ snapshots: lmdb: 3.4.2 postcss: 8.5.8 tailwindcss: 4.2.2 - vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - '@types/node' - chokidar @@ -16710,10 +16968,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.5.5(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))': + '@astrojs/node@9.5.5(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))': dependencies: '@astrojs/internal-helpers': 0.7.6 - astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3) send: 1.2.1 server-destroy: 1.0.1 transitivePeerDependencies: @@ -16723,11 +16981,11 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/solid-js@5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(solid-js@1.9.12)(terser@5.46.1)(yaml@2.8.3)': + '@astrojs/solid-js@5.1.3(@testing-library/jest-dom@6.9.1)(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(solid-js@1.9.12)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)': dependencies: solid-js: 1.9.12 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-solid: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite-plugin-solid: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -16743,13 +17001,13 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3))': + '@astrojs/tailwind@6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3))': dependencies: - astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3) autoprefixer: 10.4.27(postcss@8.5.8) postcss: 8.5.8 postcss-load-config: 4.0.2(postcss@8.5.8) - tailwindcss: 3.4.19(yaml@2.8.3) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - ts-node @@ -16765,14 +17023,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': + '@astrojs/vercel@8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.7.4 - '@vercel/analytics': 1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) + '@vercel/analytics': 1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@vercel/functions': 2.2.13 '@vercel/nft': 0.30.3(rollup@4.60.1) '@vercel/routing-utils': 5.3.3 - astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3) + astro: 5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3) esbuild: 0.27.4 tinyglobby: 0.2.15 transitivePeerDependencies: @@ -19283,6 +19541,36 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@lit-labs/ssr-client@1.1.8': + dependencies: + '@lit/reactive-element': 2.1.2 + lit: 3.3.2 + lit-html: 3.3.2 + + '@lit-labs/ssr-dom-shim@1.5.1': {} + + '@lit-labs/ssr@3.3.1': + dependencies: + '@lit-labs/ssr-client': 1.1.8 + '@lit-labs/ssr-dom-shim': 1.5.1 + '@lit/reactive-element': 2.1.2 + '@parse5/tools': 0.3.0 + '@types/node': 22.19.15 + enhanced-resolve: 5.20.1 + lit: 3.3.2 + lit-element: 4.2.2 + lit-html: 3.3.2 + node-fetch: 3.3.2 + parse5: 7.3.0 + + '@lit/context@1.1.6': + dependencies: + '@lit/reactive-element': 2.1.2 + + '@lit/reactive-element@2.1.2': + dependencies: + '@lit-labs/ssr-dom-shim': 1.5.1 + '@lmdb/lmdb-darwin-arm64@3.4.2': optional: true @@ -19917,6 +20205,10 @@ snapshots: '@parcel/watcher-win32-ia32': 2.5.6 '@parcel/watcher-win32-x64': 2.5.6 + '@parse5/tools@0.3.0': + dependencies: + parse5: 7.3.0 + '@pkgjs/parseargs@0.11.0': optional: true @@ -19936,19 +20228,19 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.0)(rollup@4.60.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) - '@prefresh/vite': 2.4.12(preact@10.29.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@prefresh/vite': 2.4.12(preact@10.29.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@rollup/pluginutils': 5.3.0(rollup@4.60.1) babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.0) debug: 4.4.3 magic-string: 0.30.21 picocolors: 1.1.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vite-prerender-plugin: 0.5.13(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite-prerender-plugin: 0.5.13(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) zimmerframe: 1.1.4 transitivePeerDependencies: - preact @@ -19963,7 +20255,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.12(preact@10.29.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@prefresh/vite@2.4.12(preact@10.29.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@prefresh/babel-plugin': 0.5.3 @@ -19971,7 +20263,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 10.29.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color @@ -20648,11 +20940,11 @@ snapshots: dependencies: solid-js: 1.9.12 - '@solidjs/start@1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@solidjs/start@1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@tanstack/server-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) - '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@tanstack/server-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) cookie-es: 2.0.0 defu: 6.1.4 error-stack-parser: 2.1.4 @@ -20664,8 +20956,8 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.1.0(solid-js@1.9.12) tinyglobby: 0.2.15 - vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-solid: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite-plugin-solid: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - '@testing-library/jest-dom' - solid-js @@ -20697,15 +20989,15 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': + '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) - '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -20717,16 +21009,16 @@ snapshots: set-cookie-parser: 3.1.0 sirv: 3.0.2 svelte: 5.55.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) optionalDependencies: typescript: 5.8.3 optional: true - '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -20738,7 +21030,7 @@ snapshots: set-cookie-parser: 3.1.0 sirv: 3.0.2 svelte: 5.55.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) optionalDependencies: typescript: 5.8.3 @@ -20753,49 +21045,49 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) debug: 4.4.3 svelte: 5.55.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color optional: true - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) debug: 4.4.3 svelte: 5.55.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) debug: 4.4.3 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.21 svelte: 5.55.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color optional: true - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) debug: 4.4.3 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.21 svelte: 5.55.1 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color @@ -20882,14 +21174,14 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 - '@tailwindcss/vite@4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@tailwindcss/vite@4.2.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@tailwindcss/node': 4.2.2 '@tailwindcss/oxide': 4.2.2 tailwindcss: 4.2.2 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - '@tanstack/directive-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@tanstack/directive-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.29.0 @@ -20898,7 +21190,7 @@ snapshots: '@tanstack/router-utils': 1.161.6 babel-dead-code-elimination: 1.0.12 tiny-invariant: 1.3.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color @@ -20943,7 +21235,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@tanstack/server-functions-plugin@1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.29.0 @@ -20952,7 +21244,7 @@ snapshots: '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 - '@tanstack/directive-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@tanstack/directive-functions-plugin': 1.121.21(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) babel-dead-code-elimination: 1.0.12 tiny-invariant: 1.3.3 transitivePeerDependencies: @@ -20967,13 +21259,13 @@ snapshots: transitivePeerDependencies: - typescript - '@tanstack/vite-config@0.4.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@tanstack/vite-config@0.4.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: rollup-plugin-preserve-directives: 0.4.0(rollup@4.60.1) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-dts: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) - vite-plugin-externalize-deps: 0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) - vite-tsconfig-paths: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite-plugin-dts: 4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + vite-plugin-externalize-deps: 0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + vite-tsconfig-paths: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - '@types/node' - rollup @@ -21057,14 +21349,14 @@ snapshots: dependencies: svelte: 5.55.1 - '@testing-library/svelte@5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': + '@testing-library/svelte@5.3.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@testing-library/dom': 10.4.1 '@testing-library/svelte-core': 1.0.0(svelte@5.55.1) svelte: 5.55.1 optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tsconfig/svelte@5.0.8': {} @@ -21274,6 +21566,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc) + '@typescript-eslint/visitor-keys': 8.58.1 + eslint: 9.39.4(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.1-rc) + typescript: 6.0.1-rc + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.58.1 @@ -21298,6 +21606,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc)': + dependencies: + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.1-rc) + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + typescript: 6.0.1-rc + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.58.1(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.8.3) @@ -21316,6 +21636,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.58.1(typescript@6.0.1-rc)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.1-rc) + '@typescript-eslint/types': 8.58.1 + debug: 4.4.3 + typescript: 6.0.1-rc + transitivePeerDependencies: + - supports-color + '@typescript-eslint/rule-tester@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -21343,6 +21672,10 @@ snapshots: dependencies: typescript: 5.9.3 + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@6.0.1-rc)': + dependencies: + typescript: 6.0.1-rc + '@typescript-eslint/type-utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.58.1 @@ -21367,6 +21700,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc)': + dependencies: + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.1-rc) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc) + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@6.0.1-rc) + typescript: 6.0.1-rc + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.58.1': {} '@typescript-eslint/typescript-estree@8.58.1(typescript@5.8.3)': @@ -21399,6 +21744,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.58.1(typescript@6.0.1-rc)': + dependencies: + '@typescript-eslint/project-service': 8.58.1(typescript@6.0.1-rc) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.1-rc) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.5.0(typescript@6.0.1-rc) + typescript: 6.0.1-rc + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) @@ -21421,6 +21781,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.1-rc) + eslint: 9.39.4(jiti@2.6.1) + typescript: 6.0.1-rc + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.58.1': dependencies: '@typescript-eslint/types': 8.58.1 @@ -21499,9 +21870,9 @@ snapshots: '@urql/core': 5.2.0(graphql@16.13.2) wonka: 6.3.6 - '@vercel/analytics@1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': + '@vercel/analytics@1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': optionalDependencies: - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) next: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: 19.2.4 svelte: 5.55.1 @@ -21581,7 +21952,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/parser': 7.29.2 acorn: 8.16.0 @@ -21592,24 +21963,24 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - '@vinxi/server-components@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@vinxi/server-components@0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) acorn: 8.16.0 acorn-loose: 8.5.2 acorn-typescript: 1.4.13(acorn@8.16.0) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vinxi: 0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitejs/plugin-basic-ssl@2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -21617,21 +21988,21 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.8.3))': dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vue: 3.5.31(typescript@5.8.3) - '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3))': dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) vue: 3.5.31(typescript@5.9.3) - '@vitest/coverage-istanbul@4.0.6(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': + '@vitest/coverage-istanbul@4.0.6(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.3 @@ -21642,11 +22013,11 @@ snapshots: istanbul-reports: 3.2.0 magicast: 0.3.5 tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)))': + '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@typescript-eslint/scope-manager': 8.58.1 '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) @@ -21654,10 +22025,19 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) typescript: 5.9.3 - vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color + '@vitest/expect@3.2.4': + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + tinyrainbow: 2.0.0 + optional: true + '@vitest/expect@4.1.2': dependencies: '@standard-schema/spec': 1.1.0 @@ -21667,24 +22047,53 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3))': + '@vitest/mocker@3.2.4(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + msw: 2.12.14(@types/node@22.19.15)(typescript@5.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + optional: true + + '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.14(@types/node@22.19.15)(typescript@5.9.3) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + + '@vitest/pretty-format@3.2.4': + dependencies: + tinyrainbow: 2.0.0 + optional: true '@vitest/pretty-format@4.1.2': dependencies: tinyrainbow: 3.1.0 + '@vitest/runner@3.2.4': + dependencies: + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.1.0 + optional: true + '@vitest/runner@4.1.2': dependencies: '@vitest/utils': 4.1.2 pathe: 2.0.3 + '@vitest/snapshot@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.21 + pathe: 2.0.3 + optional: true + '@vitest/snapshot@4.1.2': dependencies: '@vitest/pretty-format': 4.1.2 @@ -21692,8 +22101,20 @@ snapshots: magic-string: 0.30.21 pathe: 2.0.3 + '@vitest/spy@3.2.4': + dependencies: + tinyspy: 4.0.4 + optional: true + '@vitest/spy@4.1.2': {} + '@vitest/utils@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + optional: true + '@vitest/utils@4.1.2': dependencies: '@vitest/pretty-format': 4.1.2 @@ -22445,7 +22866,7 @@ snapshots: astring@1.9.0: {} - astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(typescript@5.8.3)(yaml@2.8.3): + astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3): dependencies: '@astrojs/compiler': 2.13.1 '@astrojs/internal-helpers': 0.7.6 @@ -22502,8 +22923,8 @@ snapshots: unist-util-visit: 5.1.0 unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1) vfile: 6.0.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -23184,6 +23605,15 @@ snapshots: ccount@2.0.1: {} + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.3 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + optional: true + chai@6.2.2: {} chalk@2.4.2: @@ -23211,6 +23641,9 @@ snapshots: charenc@0.0.2: {} + check-error@2.1.3: + optional: true + cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 @@ -23838,6 +24271,8 @@ snapshots: cyclist@1.0.2: {} + data-uri-to-buffer@4.0.1: {} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -23899,6 +24334,9 @@ snapshots: dedent-js@1.0.1: {} + deep-eql@5.0.2: + optional: true + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.2 @@ -25099,6 +25537,11 @@ snapshots: optionalDependencies: picomatch: 4.0.4 + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + fetch-retry@4.1.1: {} fflate@0.8.2: {} @@ -25258,6 +25701,10 @@ snapshots: dependencies: fd-package-json: 2.0.0 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + forwarded@0.2.0: {} fraction.js@5.3.4: {} @@ -25465,6 +25912,8 @@ snapshots: globals@16.5.0: {} + globals@17.5.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -26879,6 +27328,22 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.2 + lit-element@4.2.2: + dependencies: + '@lit-labs/ssr-dom-shim': 1.5.1 + '@lit/reactive-element': 2.1.2 + lit-html: 3.3.2 + + lit-html@3.3.2: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.3.2: + dependencies: + '@lit/reactive-element': 2.1.2 + lit-element: 4.2.2 + lit-html: 3.3.2 + lmdb@3.4.2: dependencies: msgpackr: 1.11.9 @@ -26992,6 +27457,9 @@ snapshots: dependencies: js-tokens: 4.0.0 + loupe@3.2.1: + optional: true + lower-case@2.0.2: dependencies: tslib: 2.8.1 @@ -28149,6 +28617,8 @@ snapshots: dependencies: minimatch: 3.1.5 + node-domexception@1.0.0: {} + node-emoji@2.2.0: dependencies: '@sindresorhus/is': 4.6.0 @@ -28169,6 +28639,12 @@ snapshots: dependencies: whatwg-url: 5.0.0 + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + node-forge@1.4.0: {} node-gyp-build-optional-packages@5.2.2: @@ -28908,6 +29384,9 @@ snapshots: pathe@2.0.3: {} + pathval@2.0.1: + optional: true + pbkdf2@3.1.5: dependencies: create-hash: 1.2.0 @@ -29007,20 +29486,22 @@ snapshots: optionalDependencies: postcss: 8.5.8 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.8)(yaml@2.8.3): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.8 + tsx: 4.21.0 yaml: 2.8.3 - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 postcss: 8.5.8 + tsx: 4.21.0 yaml: 2.8.3 postcss-media-query-parser@0.2.3: {} @@ -30883,7 +31364,7 @@ snapshots: tagged-tag@1.0.0: {} - tailwindcss@3.4.19(yaml@2.8.3): + tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -30902,7 +31383,7 @@ snapshots: postcss: 8.5.8 postcss-import: 15.1.0(postcss@8.5.8) postcss-js: 4.1.0(postcss@8.5.8) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.8)(yaml@2.8.3) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3) postcss-nested: 6.2.0(postcss@8.5.8) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -31074,8 +31555,17 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinypool@1.1.1: + optional: true + + tinyrainbow@2.0.0: + optional: true + tinyrainbow@3.1.0: {} + tinyspy@4.0.4: + optional: true + tldts-core@6.1.86: {} tldts-core@7.0.27: {} @@ -31156,6 +31646,10 @@ snapshots: dependencies: typescript: 5.9.3 + ts-api-utils@2.5.0(typescript@6.0.1-rc): + dependencies: + typescript: 6.0.1-rc + ts-declaration-location@1.0.7(typescript@5.9.3): dependencies: picomatch: 4.0.4 @@ -31187,16 +31681,16 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)): + tsup-preset-solid@2.2.0(esbuild@0.27.4)(solid-js@1.9.12)(tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)): dependencies: esbuild-plugin-solid: 0.5.0(esbuild@0.27.4)(solid-js@1.9.12) - tsup: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3) + tsup: 8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) transitivePeerDependencies: - esbuild - solid-js - supports-color - tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3): + tsup@8.5.1(@microsoft/api-extractor@7.47.7(@types/node@22.19.15))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3): dependencies: bundle-require: 5.1.0(esbuild@0.27.4) cac: 6.7.14 @@ -31207,7 +31701,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3) resolve-from: 5.0.0 rollup: 4.60.1 source-map: 0.7.6 @@ -31225,6 +31719,13 @@ snapshots: - tsx - yaml + tsx@4.21.0: + dependencies: + esbuild: 0.27.4 + get-tsconfig: 4.13.7 + optionalDependencies: + fsevents: 2.3.3 + tty-browserify@0.0.0: {} tuf-js@4.1.0: @@ -31344,6 +31845,17 @@ snapshots: transitivePeerDependencies: - supports-color + typescript-eslint@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc): + dependencies: + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc) + '@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.1-rc) + '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.6.1))(typescript@6.0.1-rc) + eslint: 9.39.4(jiti@2.6.1) + typescript: 6.0.1-rc + transitivePeerDependencies: + - supports-color + typescript@5.3.3: {} typescript@5.4.2: {} @@ -31704,7 +32216,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3): + vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) @@ -31738,7 +32250,7 @@ snapshots: unctx: 2.5.0 unenv: 1.10.0 unstorage: 1.17.5(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) zod: 4.3.6 transitivePeerDependencies: - '@azure/app-configuration' @@ -31786,7 +32298,29 @@ snapshots: - xml2js - yaml - vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-node@3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + optional: true + + vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) '@rollup/pluginutils': 5.3.0(rollup@4.60.1) @@ -31799,13 +32333,13 @@ snapshots: magic-string: 0.30.21 typescript: 5.9.3 optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) '@rollup/pluginutils': 5.3.0(rollup@4.60.1) @@ -31818,21 +32352,21 @@ snapshots: magic-string: 0.30.21 typescript: 6.0.1-rc optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-externalize-deps@0.10.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - vite-plugin-externalize-deps@0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-externalize-deps@0.9.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 @@ -31840,14 +32374,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.12 solid-refresh: 0.6.3(solid-js@1.9.12) - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 @@ -31855,14 +32389,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.12 solid-refresh: 0.6.3(solid-js@1.9.12) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.13(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-prerender-plugin@0.5.13(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: kolorist: 1.8.0 magic-string: 0.30.21 @@ -31870,31 +32404,31 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vite-tsconfig-paths@5.1.4(typescript@6.0.1-rc)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@6.0.1-rc) optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color - typescript - vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3): + vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.4) @@ -31909,9 +32443,10 @@ snapshots: lightningcss: 1.32.0 sass: 1.90.0 terser: 5.46.1 + tsx: 4.21.0 yaml: 2.8.3 - vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3): + vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.4) @@ -31926,20 +32461,65 @@ snapshots: lightningcss: 1.32.0 sass: 1.90.0 terser: 5.46.1 + tsx: 4.21.0 yaml: 2.8.3 - vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + + vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.3.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.13 + '@types/node': 22.19.15 + jsdom: 27.4.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + optional: true - vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)): + vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -31956,7 +32536,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(yaml@2.8.3) + vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.19.15 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c5f243dfaab..34482c7ec4f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -8,6 +8,7 @@ packages: - 'examples/angular/*' - 'examples/react/*' - 'examples/preact/*' + - 'examples/lit/*' - 'examples/solid/*' - 'examples/svelte/*' - 'examples/vue/*' diff --git a/scripts/generate-docs.ts b/scripts/generate-docs.ts index 6d613f3bb73..f0a6ada4c8b 100644 --- a/scripts/generate-docs.ts +++ b/scripts/generate-docs.ts @@ -1,46 +1,184 @@ -import { resolve } from 'node:path' +import { mkdir, readdir, readFile, rm, writeFile } from 'node:fs/promises' +import { createRequire } from 'node:module' +import { dirname, resolve } from 'node:path' import { fileURLToPath } from 'node:url' -import { generateReferenceDocs } from '@tanstack/typedoc-config' const __dirname = fileURLToPath(new URL('.', import.meta.url)) +const require = createRequire(import.meta.url) +const typedocConfigPackageJson = + require.resolve('@tanstack/typedoc-config/package.json') +const typedocConfigDir = dirname(typedocConfigPackageJson) +const typedocConfigRequire = createRequire(typedocConfigPackageJson) +const TypeDoc = await import(typedocConfigRequire.resolve('typedoc')) -await generateReferenceDocs({ - packages: [ - { - name: 'angular-query-experimental', - entryPoints: [ - resolve( - __dirname, - '../packages/angular-query-experimental/src/index.ts', - ), - ], - tsconfig: resolve( - __dirname, - '../packages/angular-query-experimental/tsconfig.json', - ), - outputDir: resolve(__dirname, '../docs/framework/angular/reference'), - exclude: ['./packages/query-core/**/*'], - }, - { - name: 'svelte-query', - entryPoints: [ - resolve(__dirname, '../packages/svelte-query/src/index.ts'), - ], - tsconfig: resolve(__dirname, '../packages/svelte-query/tsconfig.json'), - outputDir: resolve(__dirname, '../docs/framework/svelte/reference'), - exclude: ['./packages/query-core/**/*'], - }, - { - name: 'preact-query', - entryPoints: [ - resolve(__dirname, '../packages/preact-query/src/index.ts'), - ], - tsconfig: resolve(__dirname, '../packages/preact-query/tsconfig.json'), - outputDir: resolve(__dirname, '../docs/framework/preact/reference'), - exclude: ['./packages/query-core/**/*'], - }, - ], -}) +type PackageReferenceDocsConfig = { + entryPoints: Array + tsconfig: string + outputDir: string + exclude?: Array + excludeExternals?: boolean + simplifyLitQueriesControllerTypes?: boolean + trimGeneratedMarkdown?: boolean +} + +type TypeDocReflectionWithSignatures = { + name: string + children?: Array + signatures?: Array<{ + typeParameters?: Array<{ + name: string + default?: unknown + }> + }> +} + +function simplifyLitQueriesControllerTypes( + project: TypeDocReflectionWithSignatures, +) { + const stack: Array = [project] + + for (const reflection of stack) { + stack.push(...(reflection.children ?? [])) + + if (reflection.name !== 'createQueriesController') { + continue + } + + for (const signature of reflection.signatures ?? []) { + const combinedResult = signature.typeParameters?.find( + (typeParameter) => typeParameter.name === 'TCombinedResult', + ) + + if (!combinedResult?.default) { + continue + } + + const queryOptionsType = TypeDoc.ReferenceType.createBrokenReference( + 'TQueryOptions', + project, + undefined, + ) + queryOptionsType.refersToTypeParameter = true + + // CreateQueriesResults is internal; render it as plain text, not a link. + const queriesResultsType = TypeDoc.ReferenceType.createBrokenReference( + 'CreateQueriesResults', + project, + undefined, + ) + queriesResultsType.typeArguments = [queryOptionsType] + + combinedResult.default = queriesResultsType + } + } +} + +async function trimTrailingWhitespaceInMarkdown(outputDir: string) { + const entries = await readdir(outputDir, { withFileTypes: true }) + + await Promise.all( + entries.map(async (entry) => { + const path = resolve(outputDir, entry.name) + + if (entry.isDirectory()) { + await trimTrailingWhitespaceInMarkdown(path) + return + } + + if (!entry.isFile() || !path.endsWith('.md')) { + return + } + + const markdown = await readFile(path, 'utf8') + const trimmed = markdown.replace(/[ \t]+$/gm, '') + + if (trimmed !== markdown) { + await writeFile(path, trimmed) + } + }), + ) +} + +async function generatePackageReferenceDocs(pkg: PackageReferenceDocsConfig) { + const outputDir = pkg.outputDir + await rm(outputDir, { recursive: true, force: true }) + await mkdir(outputDir, { recursive: true }) + + const app = await TypeDoc.Application.bootstrapWithPlugins({ + plugin: [ + 'typedoc-plugin-markdown', + 'typedoc-plugin-frontmatter', + resolve(typedocConfigDir, './src/typedoc-custom-settings.js'), + ], + hideGenerator: true, + readme: 'none', + entryFileName: 'index', + hideBreadcrumbs: true, + hidePageHeader: true, + useCodeBlocks: true, + excludePrivate: true, + excludeInternal: true, + excludeExternals: pkg.excludeExternals, + sourceLinkTemplate: + 'https://github.com/TanStack/query/blob/{gitRevision}/{path}#L{line}', + gitRevision: 'main', + entryPoints: pkg.entryPoints, + tsconfig: pkg.tsconfig, + exclude: pkg.exclude, + out: outputDir, + }) + + const project = await app.convert() + + if (project) { + if (pkg.simplifyLitQueriesControllerTypes) { + simplifyLitQueriesControllerTypes(project) + } + + await app.generateOutputs(project) + + if (pkg.trimGeneratedMarkdown) { + await trimTrailingWhitespaceInMarkdown(outputDir) + } + } +} + +for (const pkg of [ + { + entryPoints: [ + resolve(__dirname, '../packages/angular-query-experimental/src/index.ts'), + ], + tsconfig: resolve( + __dirname, + '../packages/angular-query-experimental/tsconfig.json', + ), + outputDir: resolve(__dirname, '../docs/framework/angular/reference'), + exclude: ['./packages/query-core/**/*'], + }, + { + entryPoints: [resolve(__dirname, '../packages/svelte-query/src/index.ts')], + tsconfig: resolve(__dirname, '../packages/svelte-query/tsconfig.json'), + outputDir: resolve(__dirname, '../docs/framework/svelte/reference'), + exclude: ['./packages/query-core/**/*'], + }, + { + entryPoints: [resolve(__dirname, '../packages/preact-query/src/index.ts')], + tsconfig: resolve(__dirname, '../packages/preact-query/tsconfig.json'), + outputDir: resolve(__dirname, '../docs/framework/preact/reference'), + exclude: ['./packages/query-core/**/*'], + }, + { + entryPoints: [resolve(__dirname, '../packages/lit-query/src/index.ts')], + tsconfig: resolve(__dirname, '../packages/lit-query/tsconfig.json'), + outputDir: resolve(__dirname, '../docs/framework/lit/reference'), + exclude: ['./packages/query-core/**/*'], + excludeExternals: true, + simplifyLitQueriesControllerTypes: true, + trimGeneratedMarkdown: true, + }, +] satisfies Array) { + await generatePackageReferenceDocs(pkg) +} console.log('\n✅ All markdown files have been processed!') From 086d449c9348a8c846470b36b6ab613cdea86b62 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 16:11:52 +0200 Subject: [PATCH 233/414] ci: Version Packages (#10657) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/lemon-memes-divide.md | 5 ----- examples/lit/basic/CHANGELOG.md | 8 ++++++++ examples/lit/basic/package.json | 4 ++-- examples/lit/pagination/CHANGELOG.md | 8 ++++++++ examples/lit/pagination/package.json | 4 ++-- examples/lit/ssr/CHANGELOG.md | 8 ++++++++ examples/lit/ssr/package.json | 4 ++-- packages/lit-query/CHANGELOG.md | 7 +++++++ packages/lit-query/package.json | 2 +- pnpm-lock.yaml | 6 +++--- 10 files changed, 41 insertions(+), 15 deletions(-) delete mode 100644 .changeset/lemon-memes-divide.md create mode 100644 examples/lit/basic/CHANGELOG.md create mode 100644 examples/lit/pagination/CHANGELOG.md create mode 100644 examples/lit/ssr/CHANGELOG.md create mode 100644 packages/lit-query/CHANGELOG.md diff --git a/.changeset/lemon-memes-divide.md b/.changeset/lemon-memes-divide.md deleted file mode 100644 index c1f3e131b70..00000000000 --- a/.changeset/lemon-memes-divide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/lit-query': minor ---- - -Add initial @tanstack/lit-query package diff --git a/examples/lit/basic/CHANGELOG.md b/examples/lit/basic/CHANGELOG.md new file mode 100644 index 00000000000..6047b494b38 --- /dev/null +++ b/examples/lit/basic/CHANGELOG.md @@ -0,0 +1,8 @@ +# @tanstack/query-example-lit-basic + +## 0.0.2 + +### Patch Changes + +- Updated dependencies [[`4082894`](https://github.com/TanStack/query/commit/4082894509f31376ebeb8514cc3e167bbbfc7c46)]: + - @tanstack/lit-query@0.2.0 diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index 969932dc834..69cd3a8cbc4 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/query-example-lit-basic", "private": true, - "version": "0.0.1", + "version": "0.0.2", "type": "module", "scripts": { "dev": "vite", @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.1.0", + "@tanstack/lit-query": "^0.2.0", "@tanstack/query-core": "^5.99.0", "lit": "^3.3.1" }, diff --git a/examples/lit/pagination/CHANGELOG.md b/examples/lit/pagination/CHANGELOG.md new file mode 100644 index 00000000000..7a70041c82c --- /dev/null +++ b/examples/lit/pagination/CHANGELOG.md @@ -0,0 +1,8 @@ +# @tanstack/query-example-lit-pagination + +## 0.0.2 + +### Patch Changes + +- Updated dependencies [[`4082894`](https://github.com/TanStack/query/commit/4082894509f31376ebeb8514cc3e167bbbfc7c46)]: + - @tanstack/lit-query@0.2.0 diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index 7e4bf0c01d8..0b879877d4d 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/query-example-lit-pagination", "private": true, - "version": "0.0.1", + "version": "0.0.2", "type": "module", "scripts": { "dev": "node ./scripts/dev.mjs", @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.1.0", + "@tanstack/lit-query": "^0.2.0", "@tanstack/query-core": "^5.99.0", "lit": "^3.3.1" }, diff --git a/examples/lit/ssr/CHANGELOG.md b/examples/lit/ssr/CHANGELOG.md new file mode 100644 index 00000000000..f8d37da304b --- /dev/null +++ b/examples/lit/ssr/CHANGELOG.md @@ -0,0 +1,8 @@ +# @tanstack/query-example-lit-ssr + +## 0.0.2 + +### Patch Changes + +- Updated dependencies [[`4082894`](https://github.com/TanStack/query/commit/4082894509f31376ebeb8514cc3e167bbbfc7c46)]: + - @tanstack/lit-query@0.2.0 diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index 6b2928b5850..fe90e27b480 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/query-example-lit-ssr", "private": true, - "version": "0.0.1", + "version": "0.0.2", "type": "module", "scripts": { "dev": "node ./scripts/dev.mjs", @@ -9,7 +9,7 @@ }, "dependencies": { "@lit-labs/ssr": "^3.3.0", - "@tanstack/lit-query": "^0.1.0", + "@tanstack/lit-query": "^0.2.0", "@tanstack/query-core": "^5.99.0", "lit": "^3.3.1" }, diff --git a/packages/lit-query/CHANGELOG.md b/packages/lit-query/CHANGELOG.md new file mode 100644 index 00000000000..1247e8e3a49 --- /dev/null +++ b/packages/lit-query/CHANGELOG.md @@ -0,0 +1,7 @@ +# @tanstack/lit-query + +## 0.2.0 + +### Minor Changes + +- Add initial @tanstack/lit-query package ([#10652](https://github.com/TanStack/query/pull/10652)) diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index 3528f7a5cac..f37494ed177 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-query", - "version": "0.1.0", + "version": "0.2.0", "description": "Lit adapter for TanStack Query Core", "license": "MIT", "type": "module", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9f99bbb370f..a19f7ce4b93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -618,7 +618,7 @@ importers: examples/lit/basic: dependencies: '@tanstack/lit-query': - specifier: ^0.1.0 + specifier: ^0.2.0 version: link:../../../packages/lit-query '@tanstack/query-core': specifier: ^5.99.0 @@ -637,7 +637,7 @@ importers: examples/lit/pagination: dependencies: '@tanstack/lit-query': - specifier: ^0.1.0 + specifier: ^0.2.0 version: link:../../../packages/lit-query '@tanstack/query-core': specifier: ^5.99.0 @@ -659,7 +659,7 @@ importers: specifier: ^3.3.0 version: 3.3.1 '@tanstack/lit-query': - specifier: ^0.1.0 + specifier: ^0.2.0 version: link:../../../packages/lit-query '@tanstack/query-core': specifier: ^5.99.0 From 2f6e16b1eeb545d2bbd0c77ed35332712a6088f0 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Fri, 8 May 2026 16:20:09 +0200 Subject: [PATCH 234/414] ref: remove versions from examples --- examples/lit/basic/package.json | 1 - examples/lit/pagination/package.json | 1 - examples/lit/ssr/package.json | 1 - 3 files changed, 3 deletions(-) diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index 69cd3a8cbc4..a954a8b523e 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -1,7 +1,6 @@ { "name": "@tanstack/query-example-lit-basic", "private": true, - "version": "0.0.2", "type": "module", "scripts": { "dev": "vite", diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index 0b879877d4d..357d6568b41 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -1,7 +1,6 @@ { "name": "@tanstack/query-example-lit-pagination", "private": true, - "version": "0.0.2", "type": "module", "scripts": { "dev": "node ./scripts/dev.mjs", diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index fe90e27b480..bfa420941a9 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -1,7 +1,6 @@ { "name": "@tanstack/query-example-lit-ssr", "private": true, - "version": "0.0.2", "type": "module", "scripts": { "dev": "node ./scripts/dev.mjs", From 3894b052b75f1b8a35235e804aadc815db67878d Mon Sep 17 00:00:00 2001 From: TkDodo Date: Fri, 8 May 2026 16:22:24 +0200 Subject: [PATCH 235/414] fix: package.json --- packages/lit-query/package.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index f37494ed177..f2c25d02ce3 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -2,7 +2,18 @@ "name": "@tanstack/lit-query", "version": "0.2.0", "description": "Lit adapter for TanStack Query Core", + "author": "tannerlinsley", "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/TanStack/query.git", + "directory": "packages/lit-query" + }, + "homepage": "https://tanstack.com/query", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, "type": "module", "main": "dist-cjs/index.js", "module": "dist/index.js", From abad6f07778a62b14ff822f209b39c733549f85f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 9 May 2026 12:51:56 +0900 Subject: [PATCH 236/414] test(query-devtools/utils): add tests for 'getQueryStatusColor' (#10670) --- .../src/__tests__/utils.test.ts | 98 ++++++++++++++++++- 1 file changed, 97 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index c620a9e05b3..038d6e1957e 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -7,6 +7,7 @@ import { displayValue, getMutationStatusColor, getPreferredColorScheme, + getQueryStatusColor, getQueryStatusColorByLabel, getSidedProp, mutationSortFns, @@ -14,7 +15,12 @@ import { sortFns, updateNestedDataByPath, } from '../utils' -import type { Mutation, MutationStatus, Query } from '@tanstack/query-core' +import type { + FetchStatus, + Mutation, + MutationStatus, + Query, +} from '@tanstack/query-core' describe('Utils tests', () => { describe('updatedNestedDataByPath', () => { @@ -1292,4 +1298,94 @@ describe('Utils tests', () => { }) }) }) + + describe('getQueryStatusColor', () => { + let queryClient: QueryClient + + function makeState(fetchStatus: FetchStatus): Query['state'] { + const query = queryClient.getQueryCache().build(queryClient, { + queryKey: [fetchStatus], + }) + query.setState({ fetchStatus }) + return query.state + } + + beforeEach(() => { + queryClient = new QueryClient() + }) + + afterEach(() => { + queryClient.clear() + }) + + it('should return "blue" when fetchStatus is "fetching"', () => { + expect( + getQueryStatusColor({ + queryState: makeState('fetching'), + observerCount: 1, + isStale: false, + }), + ).toBe('blue') + }) + + it('should return "blue" even when there are no observers if fetchStatus is "fetching"', () => { + expect( + getQueryStatusColor({ + queryState: makeState('fetching'), + observerCount: 0, + isStale: false, + }), + ).toBe('blue') + }) + + it('should return "gray" when there are no observers', () => { + expect( + getQueryStatusColor({ + queryState: makeState('idle'), + observerCount: 0, + isStale: false, + }), + ).toBe('gray') + }) + + it('should return "purple" when fetchStatus is "paused"', () => { + expect( + getQueryStatusColor({ + queryState: makeState('paused'), + observerCount: 1, + isStale: false, + }), + ).toBe('purple') + }) + + it('should return "purple" even when stale if fetchStatus is "paused"', () => { + expect( + getQueryStatusColor({ + queryState: makeState('paused'), + observerCount: 1, + isStale: true, + }), + ).toBe('purple') + }) + + it('should return "yellow" when query is stale', () => { + expect( + getQueryStatusColor({ + queryState: makeState('idle'), + observerCount: 1, + isStale: true, + }), + ).toBe('yellow') + }) + + it('should return "green" when query is active and not stale', () => { + expect( + getQueryStatusColor({ + queryState: makeState('idle'), + observerCount: 1, + isStale: false, + }), + ).toBe('green') + }) + }) }) From 64d0b89894a51937270aa54772ae5debd268fda1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 9 May 2026 13:23:49 +0900 Subject: [PATCH 237/414] test(query-devtools/utils): add tests for 'getQueryStatusLabel' (#10671) --- .../src/__tests__/utils.test.ts | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 038d6e1957e..af56e4cf64f 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -9,6 +9,7 @@ import { getPreferredColorScheme, getQueryStatusColor, getQueryStatusColorByLabel, + getQueryStatusLabel, getSidedProp, mutationSortFns, setupStyleSheet, @@ -20,6 +21,7 @@ import type { Mutation, MutationStatus, Query, + QueryKey, } from '@tanstack/query-core' describe('Utils tests', () => { @@ -1299,6 +1301,121 @@ describe('Utils tests', () => { }) }) + describe('getQueryStatusLabel', () => { + let queryClient: QueryClient + + function buildQuery( + queryKey: QueryKey, + state?: Partial, + ): Query { + const query = queryClient.getQueryCache().build(queryClient, { queryKey }) + if (state) { + query.setState(state) + } + return query + } + + function addObserver(query: Query) { + const observer = new QueryObserver(queryClient, { + queryKey: query.queryKey, + enabled: false, + }) + return observer.subscribe(() => {}) + } + + beforeEach(() => { + queryClient = new QueryClient() + }) + + afterEach(() => { + queryClient.clear() + }) + + it('should return "fetching" when fetchStatus is "fetching"', () => { + const query = buildQuery(['q'], { fetchStatus: 'fetching' }) + + expect(getQueryStatusLabel(query)).toBe('fetching') + }) + + it('should return "inactive" when there are no observers', () => { + const query = buildQuery(['q'], { fetchStatus: 'idle' }) + + expect(getQueryStatusLabel(query)).toBe('inactive') + }) + + it('should return "paused" when fetchStatus is "paused" and there are observers', () => { + const query = buildQuery(['q'], { fetchStatus: 'paused' }) + const unsubscribe = addObserver(query) + + try { + expect(getQueryStatusLabel(query)).toBe('paused') + } finally { + unsubscribe() + } + }) + + it('should return "paused" even when stale if fetchStatus is "paused"', () => { + const observer = new QueryObserver(queryClient, { + queryKey: ['paused-stale'], + staleTime: 0, + }) + const unsubscribe = observer.subscribe(() => {}) + const query = queryClient.getQueryCache().find({ + queryKey: ['paused-stale'], + })! + query.setState({ + ...query.state, + fetchStatus: 'paused', + data: 'data', + dataUpdatedAt: 0, + }) + + try { + expect(query.isStale()).toBe(true) + expect(getQueryStatusLabel(query)).toBe('paused') + } finally { + unsubscribe() + } + }) + + it('should return "stale" when query is idle, has observers, and is stale', () => { + const observer = new QueryObserver(queryClient, { + queryKey: ['stale'], + staleTime: 0, + }) + const unsubscribe = observer.subscribe(() => {}) + const query = queryClient.getQueryCache().find({ queryKey: ['stale'] })! + query.setState({ + ...query.state, + fetchStatus: 'idle', + data: 'data', + dataUpdatedAt: 0, + }) + + try { + expect(query.isStale()).toBe(true) + expect(getQueryStatusLabel(query)).toBe('stale') + } finally { + unsubscribe() + } + }) + + it('should return "fresh" when query is idle, has observers, and is not stale', () => { + const query = buildQuery(['q'], { + fetchStatus: 'idle', + data: 'fresh-data', + dataUpdatedAt: Date.now(), + }) + const unsubscribe = addObserver(query) + + try { + expect(getQueryStatusLabel(query)).toBe('fresh') + } finally { + unsubscribe() + } + }) + }) + describe('getQueryStatusColor', () => { let queryClient: QueryClient From 8dd9724bf24dc9c5abd46a8a46c308e8fb59f3df Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 9 May 2026 14:08:48 +0900 Subject: [PATCH 238/414] test(query-devtools/utils): cover empty path, array nested path, and primitive cases of 'updateNestedDataByPath' (#10672) --- .../src/__tests__/utils.test.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index af56e4cf64f..0c1fb6ec50d 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -135,6 +135,51 @@ describe('Utils tests', () => { /* eslint-enable */ }) + describe('empty path', () => { + it('should return the new value as-is when "updatePath" is empty', () => { + const oldData = { title: 'Hello world' } + + expect(updateNestedDataByPath(oldData, [], 'replaced')).toBe('replaced') + }) + }) + + describe('array nested path', () => { + it('should update nested data inside an array correctly', () => { + const oldData = [ + { id: 1, title: 'first' }, + { id: 2, title: 'second' }, + ] + + const newData = updateNestedDataByPath( + oldData, + ['1', 'title'], + 'updated', + ) + + expect(newData).not.toBe(oldData) + expect(newData).toMatchInlineSnapshot(` + [ + { + "id": 1, + "title": "first", + }, + { + "id": 2, + "title": "updated", + }, + ] + `) + }) + }) + + describe('primitive', () => { + it('should return primitive data as-is when it is not an Object/Array/Map/Set', () => { + expect(updateNestedDataByPath(42, ['x'], 'new')).toBe(42) + expect(updateNestedDataByPath('hello', ['x'], 'new')).toBe('hello') + expect(updateNestedDataByPath(null, ['x'], 'new')).toBe(null) + }) + }) + describe('nested data', () => { it('should update data correctly', () => { /* eslint-disable cspell/spellchecker */ From a709b04e4ada050ba23080424a4e48cf7bce101e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 9 May 2026 14:26:11 +0900 Subject: [PATCH 239/414] test(query-devtools/utils): add tests for 'array nested path' and 'primitive' cases of 'deleteNestedDataByPath' (#10673) --- .../src/__tests__/utils.test.ts | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 0c1fb6ec50d..26ae5a93b67 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -539,6 +539,38 @@ describe('Utils tests', () => { `) }) + describe('array nested path', () => { + it('should delete nested data inside an array correctly', () => { + const oldData = [ + { id: 1, title: 'first' }, + { id: 2, title: 'second' }, + ] + + const newData = deleteNestedDataByPath(oldData, ['1', 'title']) + + expect(newData).not.toBe(oldData) + expect(newData).toMatchInlineSnapshot(` + [ + { + "id": 1, + "title": "first", + }, + { + "id": 2, + }, + ] + `) + }) + }) + + describe('primitive', () => { + it('should return primitive data as-is when it is not an Object/Array/Map/Set', () => { + expect(deleteNestedDataByPath(42, ['x'])).toBe(42) + expect(deleteNestedDataByPath('hello', ['x'])).toBe('hello') + expect(deleteNestedDataByPath(null, ['x'])).toBe(null) + }) + }) + describe('nested data', () => { it('should delete nested items correctly', () => { /* eslint-disable cspell/spellchecker */ From a37c003ca1ecd889e23d534dc120a4eee5db690d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 9 May 2026 16:38:20 +0900 Subject: [PATCH 240/414] test(query-devtools/utils): add test for stale vs fresh rank in 'status' sort of 'sortFns' (#10674) * test(query-devtools/utils): add test for stale vs fresh rank in 'status' sort of 'sortFns' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/utils.test.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 26ae5a93b67..07dff9ece4d 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -1146,6 +1146,37 @@ describe('Utils tests', () => { } }) + it('should place a stale query after a fresh one when both are idle and have observers', () => { + const staleObserver = new QueryObserver(queryClient, { + queryKey: ['stale'], + staleTime: 0, + }) + const staleUnsubscribe = staleObserver.subscribe(() => {}) + const stale = queryClient.getQueryCache().find({ queryKey: ['stale'] })! + stale.setState({ + ...stale.state, + fetchStatus: 'idle', + data: 'data', + dataUpdatedAt: 200, + }) + + const fresh = buildQuery(['fresh'], { + fetchStatus: 'idle', + data: 'fresh-data', + dataUpdatedAt: 100, + }) + const freshUnsubscribe = addObserver(fresh) + + try { + expect(stale.isStale()).toBe(true) + expect(statusSort(fresh, stale)).toBe(-1) + expect(statusSort(stale, fresh)).toBe(1) + } finally { + staleUnsubscribe() + freshUnsubscribe() + } + }) + it('should fall back to "last updated" sort within the same status rank', () => { const older = buildQuery(['older'], { dataUpdatedAt: 100 }) const newer = buildQuery(['newer'], { dataUpdatedAt: 200 }) From 9963b2fc97dc5133a973db10e8eb741741adf76e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 9 May 2026 17:59:10 +0900 Subject: [PATCH 241/414] test(query-devtools/TanstackQueryDevtools{,Panel}): add tests for setters (#10676) --- .../__tests__/TanstackQueryDevtools.test.tsx | 57 +++++++++++++++++ .../TanstackQueryDevtoolsPanel.test.tsx | 62 +++++++++++++++++++ 2 files changed, 119 insertions(+) diff --git a/packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx b/packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx index 01c8969f3ae..cef4475d839 100644 --- a/packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx +++ b/packages/query-devtools/src/__tests__/TanstackQueryDevtools.test.tsx @@ -56,4 +56,61 @@ describe('TanstackQueryDevtools', () => { expect(() => devtools.unmount()).toThrow('Devtools is not mounted') }) }) + + describe('setters', () => { + describe('before mount', () => { + it('should not throw when "setButtonPosition" is called', () => { + expect(() => devtools.setButtonPosition('top-left')).not.toThrow() + }) + + it('should not throw when "setPosition" is called', () => { + expect(() => devtools.setPosition('left')).not.toThrow() + }) + + it('should not throw when "setInitialIsOpen" is called', () => { + expect(() => devtools.setInitialIsOpen(true)).not.toThrow() + }) + + it('should not throw when "setErrorTypes" is called', () => { + expect(() => + devtools.setErrorTypes([ + { name: 'NetworkError', initializer: () => new Error('Network') }, + ]), + ).not.toThrow() + }) + + it('should not throw when "setClient" is called', () => { + expect(() => devtools.setClient(new QueryClient())).not.toThrow() + }) + + it('should not throw when "setTheme" is called', () => { + expect(() => devtools.setTheme('dark')).not.toThrow() + expect(() => devtools.setTheme('light')).not.toThrow() + expect(() => devtools.setTheme('system')).not.toThrow() + expect(() => devtools.setTheme(undefined)).not.toThrow() + }) + }) + + describe('after mount', () => { + it('should not throw when setters are called on a mounted instance', () => { + const el = document.createElement('div') + devtools.mount(el) + + try { + expect(() => devtools.setButtonPosition('top-left')).not.toThrow() + expect(() => devtools.setPosition('left')).not.toThrow() + expect(() => devtools.setInitialIsOpen(true)).not.toThrow() + expect(() => + devtools.setErrorTypes([ + { name: 'NetworkError', initializer: () => new Error('Network') }, + ]), + ).not.toThrow() + expect(() => devtools.setClient(new QueryClient())).not.toThrow() + expect(() => devtools.setTheme('dark')).not.toThrow() + } finally { + devtools.unmount() + } + }) + }) + }) }) diff --git a/packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx b/packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx index 1993ef67798..f7407ad5ff0 100644 --- a/packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx +++ b/packages/query-devtools/src/__tests__/TanstackQueryDevtoolsPanel.test.tsx @@ -56,4 +56,66 @@ describe('TanstackQueryDevtoolsPanel', () => { expect(() => devtools.unmount()).toThrow('Devtools is not mounted') }) }) + + describe('setters', () => { + describe('before mount', () => { + it('should not throw when "setButtonPosition" is called', () => { + expect(() => devtools.setButtonPosition('top-left')).not.toThrow() + }) + + it('should not throw when "setPosition" is called', () => { + expect(() => devtools.setPosition('left')).not.toThrow() + }) + + it('should not throw when "setInitialIsOpen" is called', () => { + expect(() => devtools.setInitialIsOpen(true)).not.toThrow() + }) + + it('should not throw when "setErrorTypes" is called', () => { + expect(() => + devtools.setErrorTypes([ + { name: 'NetworkError', initializer: () => new Error('Network') }, + ]), + ).not.toThrow() + }) + + it('should not throw when "setClient" is called', () => { + expect(() => devtools.setClient(new QueryClient())).not.toThrow() + }) + + it('should not throw when "setOnClose" is called', () => { + expect(() => devtools.setOnClose(() => {})).not.toThrow() + }) + + it('should not throw when "setTheme" is called', () => { + expect(() => devtools.setTheme('dark')).not.toThrow() + expect(() => devtools.setTheme('light')).not.toThrow() + expect(() => devtools.setTheme('system')).not.toThrow() + expect(() => devtools.setTheme(undefined)).not.toThrow() + }) + }) + + describe('after mount', () => { + it('should not throw when setters are called on a mounted instance', () => { + const el = document.createElement('div') + devtools.mount(el) + + try { + expect(() => devtools.setButtonPosition('top-left')).not.toThrow() + expect(() => devtools.setPosition('left')).not.toThrow() + expect(() => devtools.setInitialIsOpen(true)).not.toThrow() + expect(() => + devtools.setErrorTypes([ + { name: 'NetworkError', initializer: () => new Error('Network') }, + ]), + ).not.toThrow() + expect(() => devtools.setClient(new QueryClient())).not.toThrow() + expect(() => devtools.setOnClose(() => {})).not.toThrow() + expect(() => devtools.setTheme('dark')).not.toThrow() + } finally { + devtools.unmount() + } + }) + }) + }) }) From 4731c0721643d52fdcaa208d80bc5d183408de81 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 10 May 2026 03:52:24 +0900 Subject: [PATCH 242/414] chore(query-devtools): set up '@solidjs/testing-library' for component tests (#10678) --- packages/query-devtools/package.json | 1 + packages/query-devtools/test-setup.ts | 5 +++++ packages/query-devtools/tsconfig.json | 8 +++++++- packages/query-devtools/vite.config.ts | 1 + pnpm-lock.yaml | 3 +++ 5 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 packages/query-devtools/test-setup.ts diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index a848954962d..87caaf12069 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -67,6 +67,7 @@ "@solid-primitives/keyed": "^1.2.2", "@solid-primitives/resize-observer": "^2.0.26", "@solid-primitives/storage": "^1.3.11", + "@solidjs/testing-library": "^0.8.10", "@tanstack/match-sorter-utils": "^8.19.4", "@tanstack/query-core": "workspace:*", "clsx": "^2.1.1", diff --git a/packages/query-devtools/test-setup.ts b/packages/query-devtools/test-setup.ts new file mode 100644 index 00000000000..fb70ad9f204 --- /dev/null +++ b/packages/query-devtools/test-setup.ts @@ -0,0 +1,5 @@ +import '@testing-library/jest-dom/vitest' +import { cleanup } from '@solidjs/testing-library' +import { afterEach } from 'vitest' + +afterEach(() => cleanup()) diff --git a/packages/query-devtools/tsconfig.json b/packages/query-devtools/tsconfig.json index c9589abaae9..7f3c629b174 100644 --- a/packages/query-devtools/tsconfig.json +++ b/packages/query-devtools/tsconfig.json @@ -6,6 +6,12 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": ["src", "*.config.ts", "*.config.js", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.ts", + "*.config.js", + "package.json" + ], "references": [{ "path": "../query-core" }] } diff --git a/packages/query-devtools/vite.config.ts b/packages/query-devtools/vite.config.ts index cf536903218..9678f07069d 100644 --- a/packages/query-devtools/vite.config.ts +++ b/packages/query-devtools/vite.config.ts @@ -29,5 +29,6 @@ export default defineConfig({ }, typecheck: { enabled: true }, restoreMocks: true, + setupFiles: ['test-setup.ts'], }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a19f7ce4b93..8a8c9a73d6d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2730,6 +2730,9 @@ importers: '@solid-primitives/storage': specifier: ^1.3.11 version: 1.3.11(solid-js@1.9.12) + '@solidjs/testing-library': + specifier: ^0.8.10 + version: 0.8.10(@solidjs/router@0.15.4(solid-js@1.9.12))(solid-js@1.9.12) '@tanstack/match-sorter-utils': specifier: ^8.19.4 version: 8.19.4 From b79d7b4092d6fded6c32e0a943b52959d69db21d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 10 May 2026 04:20:32 +0900 Subject: [PATCH 243/414] test(query-devtools/DevtoolsComponent): add smoke test for rendering without throwing (#10679) --- .../src/__tests__/DevtoolsComponent.test.tsx | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx diff --git a/packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx b/packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx new file mode 100644 index 00000000000..b3f7ee5d9e3 --- /dev/null +++ b/packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx @@ -0,0 +1,76 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import { render } from '@solidjs/testing-library' +import DevtoolsComponent from '../DevtoolsComponent' + +// `solid-transition-group` internally imports from +// `@solid-primitives/transition-group`, whose `exports` field points at +// `src/index.ts` (not published) under a `@solid-primitives/source` condition +// that Vite can't fall through, so we stub it with a transparent pass-through. +vi.mock('solid-transition-group', () => ({ + TransitionGroup: (props: { children: unknown }) => props.children, +})) + +describe('DevtoolsComponent', () => { + const storage: { [key: string]: string } = {} + let queryClient: QueryClient + + beforeEach(() => { + vi.stubGlobal('localStorage', { + getItem: (key: string) => + Object.prototype.hasOwnProperty.call(storage, key) + ? storage[key] + : null, + setItem: (key: string, value: string) => { + storage[key] = value + }, + removeItem: (key: string) => { + delete storage[key] + }, + clear: () => { + Object.keys(storage).forEach((key) => delete storage[key]) + }, + }) + vi.stubGlobal( + 'matchMedia', + vi.fn().mockImplementation((query: string) => ({ + matches: false, + media: query, + onchange: null, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + addListener: vi.fn(), + removeListener: vi.fn(), + dispatchEvent: vi.fn(), + })), + ) + vi.stubGlobal( + 'ResizeObserver', + class { + observe = vi.fn() + unobserve = vi.fn() + disconnect = vi.fn() + }, + ) + queryClient = new QueryClient() + }) + + afterEach(() => { + vi.unstubAllGlobals() + Object.keys(storage).forEach((key) => delete storage[key]) + queryClient.clear() + }) + + it('should render without throwing', () => { + expect(() => + render(() => ( + + )), + ).not.toThrow() + }) +}) From 90fbff803624f57deaf6ba11b6592501b5385a55 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 10 May 2026 04:57:19 +0900 Subject: [PATCH 244/414] test(query-devtools/DevtoolsPanelComponent): add tests for rendering without throwing, panel-only mode, and 'onClose' prop (#10680) --- .../__tests__/DevtoolsPanelComponent.test.tsx | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx diff --git a/packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx b/packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx new file mode 100644 index 00000000000..1cb7c4d461f --- /dev/null +++ b/packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx @@ -0,0 +1,124 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import { render } from '@solidjs/testing-library' +import DevtoolsPanelComponent from '../DevtoolsPanelComponent' + +// `solid-transition-group` internally imports from +// `@solid-primitives/transition-group`, whose `exports` field points at +// `src/index.ts` (not published) under a `@solid-primitives/source` condition +// that Vite can't fall through, so we stub it with a transparent pass-through. +vi.mock('solid-transition-group', () => ({ + TransitionGroup: (props: { children: unknown }) => props.children, +})) + +// `goober` compiles every `css\`...\`` template literal at mount time +// (template parsing + class hashing + style serialization), which +// dominates mount cost and produces no value for label/role-based +// assertions, so we replace it with a no-op factory. +vi.mock('goober', () => { + let counter = 0 + const css = Object.assign(() => `tsqd-${++counter}`, { + bind: () => css, + }) + return { css, glob: () => {}, setup: () => {} } +}) + +describe('DevtoolsPanelComponent', () => { + const storage: { [key: string]: string } = {} + let queryClient: QueryClient + let previousRootFontSize = '' + + beforeEach(() => { + previousRootFontSize = document.documentElement.style.fontSize + vi.stubGlobal('localStorage', { + getItem: (key: string) => + Object.prototype.hasOwnProperty.call(storage, key) + ? storage[key] + : null, + setItem: (key: string, value: string) => { + storage[key] = value + }, + removeItem: (key: string) => { + delete storage[key] + }, + clear: () => { + Object.keys(storage).forEach((key) => delete storage[key]) + }, + }) + vi.stubGlobal( + 'matchMedia', + vi.fn().mockImplementation((query: string) => ({ + matches: false, + media: query, + onchange: null, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + addListener: vi.fn(), + removeListener: vi.fn(), + dispatchEvent: vi.fn(), + })), + ) + vi.stubGlobal( + 'ResizeObserver', + class { + observe = vi.fn() + unobserve = vi.fn() + disconnect = vi.fn() + }, + ) + queryClient = new QueryClient() + document.documentElement.style.fontSize = '16px' + }) + + afterEach(() => { + vi.unstubAllGlobals() + Object.keys(storage).forEach((key) => delete storage[key]) + queryClient.clear() + document.documentElement.style.fontSize = previousRootFontSize + }) + + it('should render the panel without throwing', () => { + expect(() => + render(() => ( + + )), + ).not.toThrow() + }) + + it('should not render the open devtools button in panel-only mode', () => { + const rendered = render(() => ( + + )) + + expect( + rendered.queryByLabelText('Open Tanstack query devtools'), + ).not.toBeInTheDocument() + }) + + it('should call "onClose" when the close button is clicked', () => { + const onClose = vi.fn() + const rendered = render(() => ( + + )) + + rendered.getByLabelText('Close Tanstack query devtools').click() + + expect(onClose).toHaveBeenCalledTimes(1) + }) +}) From f46b22a48b12dfb478ae1c8862ffe66c51652972 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 10 May 2026 23:58:57 +0900 Subject: [PATCH 245/414] test(query-devtools/Devtools): add tests for initial state from 'initialIsOpen' and 'localStore.open' (#10682) * test(query-devtools/Devtools): add tests for initial state from 'initialIsOpen' and 'localStore.open' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 packages/query-devtools/src/__tests__/Devtools.test.tsx diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx new file mode 100644 index 00000000000..956b68e962f --- /dev/null +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -0,0 +1,189 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import { render } from '@solidjs/testing-library' +import { createLocalStorage } from '@solid-primitives/storage' +import { Devtools } from '../Devtools' +import { PiPProvider, QueryDevtoolsContext, ThemeContext } from '../contexts' +import type { QueryDevtoolsProps } from '../contexts' + +// `solid-transition-group` internally imports from +// `@solid-primitives/transition-group`, whose `exports` field points at +// `src/index.ts` (not published) under a `@solid-primitives/source` condition +// that Vite can't fall through, so we stub it with a transparent pass-through. +vi.mock('solid-transition-group', () => ({ + TransitionGroup: (props: { children: unknown }) => props.children, +})) + +// `goober` compiles every `css\`...\`` template literal at mount time +// (template parsing + class hashing + style serialization), which +// dominates mount cost and produces no value for label/role-based +// assertions, so we replace it with a no-op factory. +vi.mock('goober', () => { + let counter = 0 + const css = Object.assign(() => `tsqd-${++counter}`, { + bind: () => css, + }) + return { css, glob: () => {}, setup: () => {} } +}) + +describe('Devtools', () => { + const storage: { [key: string]: string } = {} + let queryClient: QueryClient + let previousRootFontSize = '' + + beforeEach(() => { + previousRootFontSize = document.documentElement.style.fontSize + // jsdom doesn't implement `PointerEvent`; the DropdownMenu trigger checks + // `e.pointerType !== 'touch'` on pointerdown to decide whether to open, + // so we polyfill it as a thin wrapper around `MouseEvent`. + if (typeof window.PointerEvent === 'undefined') { + class FakePointerEvent extends MouseEvent { + pointerType: string + constructor(type: string, init: PointerEventInit = {}) { + super(type, init) + this.pointerType = init.pointerType ?? 'mouse' + } + } + vi.stubGlobal('PointerEvent', FakePointerEvent) + } + vi.stubGlobal('localStorage', { + getItem: (key: string) => + Object.prototype.hasOwnProperty.call(storage, key) + ? storage[key] + : null, + setItem: (key: string, value: string) => { + storage[key] = value + }, + removeItem: (key: string) => { + delete storage[key] + }, + clear: () => { + Object.keys(storage).forEach((key) => delete storage[key]) + }, + }) + vi.stubGlobal( + 'matchMedia', + vi.fn().mockImplementation((query: string) => ({ + matches: false, + media: query, + onchange: null, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + addListener: vi.fn(), + removeListener: vi.fn(), + dispatchEvent: vi.fn(), + })), + ) + vi.stubGlobal( + 'ResizeObserver', + class { + callback: ResizeObserverCallback + constructor(callback: ResizeObserverCallback) { + this.callback = callback + } + observe = vi.fn((target: Element) => { + this.callback( + [ + { + target, + contentRect: { width: 1000, height: 500 } as DOMRectReadOnly, + } as ResizeObserverEntry, + ], + this as unknown as ResizeObserver, + ) + }) + unobserve = vi.fn() + disconnect = vi.fn() + }, + ) + queryClient = new QueryClient() + document.documentElement.style.fontSize = '16px' + }) + + afterEach(() => { + vi.unstubAllGlobals() + Object.keys(storage).forEach((key) => delete storage[key]) + queryClient.clear() + onlineManager.setOnline(true) + document.documentElement.style.fontSize = previousRootFontSize + }) + + function renderDevtools( + overrides: Partial = {}, + initialStorage: Record = {}, + ) { + Object.entries(initialStorage).forEach(([key, value]) => { + localStorage.setItem(key, value) + }) + return render(() => { + const [localStore, setLocalStore] = createLocalStorage({ + prefix: 'TanstackQueryDevtools', + }) + return ( + + + 'dark'}> + + + + + ) + }) + } + + describe('initial state', () => { + it('should render the open devtools button', () => { + const rendered = renderDevtools() + + expect( + rendered.getByLabelText('Open Tanstack query devtools'), + ).toBeInTheDocument() + }) + + it('should not render the panel by default', () => { + const rendered = renderDevtools() + + expect( + rendered.queryByLabelText('Tanstack query devtools'), + ).not.toBeInTheDocument() + }) + + it('should render the panel when "initialIsOpen" is "true"', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + expect( + rendered.getByLabelText('Tanstack query devtools'), + ).toBeInTheDocument() + }) + + it('should render the panel when "localStore.open" is "true"', () => { + const rendered = renderDevtools( + {}, + { 'TanstackQueryDevtools.open': 'true' }, + ) + + expect( + rendered.getByLabelText('Tanstack query devtools'), + ).toBeInTheDocument() + }) + + it('should not render the panel when "localStore.open" is "false" even if "initialIsOpen" is "true"', () => { + const rendered = renderDevtools( + { initialIsOpen: true }, + { 'TanstackQueryDevtools.open': 'false' }, + ) + + expect( + rendered.queryByLabelText('Tanstack query devtools'), + ).not.toBeInTheDocument() + }) + }) +}) From be4f84f770da9681396e84c84ef768d108151d5f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 00:08:19 +0900 Subject: [PATCH 246/414] test(query-devtools/Devtools): add tests for open and close interactions and 'localStorage' persistence (#10683) --- .../src/__tests__/Devtools.test.tsx | 60 ++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 956b68e962f..924be5aad56 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryClient, onlineManager } from '@tanstack/query-core' -import { render } from '@solidjs/testing-library' +import { fireEvent, render } from '@solidjs/testing-library' import { createLocalStorage } from '@solid-primitives/storage' import { Devtools } from '../Devtools' import { PiPProvider, QueryDevtoolsContext, ThemeContext } from '../contexts' @@ -186,4 +186,62 @@ describe('Devtools', () => { ).not.toBeInTheDocument() }) }) + + describe('open and close', () => { + it('should render the panel when the open button is clicked', () => { + const rendered = renderDevtools() + + fireEvent.click(rendered.getByLabelText('Open Tanstack query devtools')) + + expect( + rendered.getByLabelText('Tanstack query devtools'), + ).toBeInTheDocument() + }) + + it('should hide the open button when the panel is open', () => { + const rendered = renderDevtools() + + fireEvent.click(rendered.getByLabelText('Open Tanstack query devtools')) + + expect( + rendered.queryByLabelText('Open Tanstack query devtools'), + ).not.toBeInTheDocument() + }) + + it('should hide the panel when the close button is clicked', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText('Close tanstack query devtools')) + + expect( + rendered.queryByLabelText('Tanstack query devtools'), + ).not.toBeInTheDocument() + }) + + it('should render the open button after the panel is closed', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText('Close tanstack query devtools')) + + expect( + rendered.getByLabelText('Open Tanstack query devtools'), + ).toBeInTheDocument() + }) + + it('should persist "open" as "true" to "localStorage" when the open button is clicked', () => { + const rendered = renderDevtools() + + fireEvent.click(rendered.getByLabelText('Open Tanstack query devtools')) + + expect(localStorage.getItem('TanstackQueryDevtools.open')).toBe('true') + }) + + it('should persist "open" as "false" to "localStorage" when the close button is clicked', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText('Close tanstack query devtools')) + + expect(localStorage.getItem('TanstackQueryDevtools.open')).toBe('false') + }) + }) }) From ac576272ef3125406c5b6e6259e9d127f6e5ec42 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 00:31:15 +0900 Subject: [PATCH 247/414] test(query-devtools/Devtools): add tests for query list rendering, filtering, and status indicators (#10684) * test(query-devtools/Devtools): add tests for query list rendering, filtering, and status indicators * test(query-devtools/Devtools): use 'some' to find 'CLEAR_MUTATION_CACHE' event in dispatched calls * test(query-devtools/Devtools): use 'vi.useFakeTimers' and 'vi.advanceTimersByTimeAsync' for microtask flush * test(query-devtools/Devtools): assert tooltip visibility on hover/focus instead of badge presence --- .../src/__tests__/Devtools.test.tsx | 225 ++++++++++++++++++ 1 file changed, 225 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 924be5aad56..f1254d80c38 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -32,6 +32,7 @@ describe('Devtools', () => { let previousRootFontSize = '' beforeEach(() => { + vi.useFakeTimers() previousRootFontSize = document.documentElement.style.fontSize // jsdom doesn't implement `PointerEvent`; the DropdownMenu trigger checks // `e.pointerType !== 'touch'` on pointerdown to decide whether to open, @@ -101,6 +102,7 @@ describe('Devtools', () => { }) afterEach(() => { + vi.useRealTimers() vi.unstubAllGlobals() Object.keys(storage).forEach((key) => delete storage[key]) queryClient.clear() @@ -244,4 +246,227 @@ describe('Devtools', () => { expect(localStorage.getItem('TanstackQueryDevtools.open')).toBe('false') }) }) + + describe('query list', () => { + it('should render a row for each query in the cache', () => { + queryClient.setQueryData(['posts'], [{ id: 1 }]) + queryClient.setQueryData(['users', 'me'], { id: 'u1' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + expect( + rendered.getByLabelText(/Query key \["posts"\]/), + ).toBeInTheDocument() + expect( + rendered.getByLabelText(/Query key \["users","me"\]/), + ).toBeInTheDocument() + }) + + it('should reflect a newly added query reactively', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + expect( + rendered.queryByLabelText(/Query key \["new"\]/), + ).not.toBeInTheDocument() + + queryClient.setQueryData(['new'], 'hello') + + expect(rendered.getByLabelText(/Query key \["new"\]/)).toBeInTheDocument() + }) + + it('should filter queries by "queryHash"', () => { + queryClient.setQueryData(['posts'], []) + queryClient.setQueryData(['users'], []) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.input(rendered.getByLabelText('Filter queries by query key'), { + target: { value: 'posts' }, + }) + + expect( + rendered.getByLabelText(/Query key \["posts"\]/), + ).toBeInTheDocument() + expect( + rendered.queryByLabelText(/Query key \["users"\]/), + ).not.toBeInTheDocument() + }) + + it('should clear all queries when the clear cache button is clicked', () => { + queryClient.setQueryData(['posts'], []) + queryClient.setQueryData(['users'], []) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText('Clear query cache')) + + expect( + rendered.queryByLabelText(/Query key \["posts"\]/), + ).not.toBeInTheDocument() + expect( + rendered.queryByLabelText(/Query key \["users"\]/), + ).not.toBeInTheDocument() + }) + + it('should dispatch a "CLEAR_MUTATION_CACHE" event when clear cache is clicked in mutations view', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + fireEvent.click(rendered.getByText('Mutations')) + + const listener = vi.fn() + window.addEventListener('@tanstack/query-devtools-event', listener) + + try { + fireEvent.click(rendered.getByLabelText('Clear query cache')) + + const dispatched = listener.mock.calls.some( + ([e]) => (e as CustomEvent).detail.type === 'CLEAR_MUTATION_CACHE', + ) + expect(dispatched).toBe(true) + } finally { + window.removeEventListener('@tanstack/query-devtools-event', listener) + } + }) + }) + + describe('view toggle', () => { + it('should switch to mutations view when the mutations toggle is clicked', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByText('Mutations')) + + expect( + rendered.container.querySelector('.tsqd-mutations-container'), + ).not.toBeNull() + }) + + it('should render mutations in the mutations view', async () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByText('Mutations')) + + const mutation = queryClient.getMutationCache().build(queryClient, { + mutationKey: ['add-post'], + mutationFn: () => Promise.resolve('ok'), + }) + mutation.execute({}) + await vi.advanceTimersByTimeAsync(0) + + expect( + rendered.getByLabelText(/Mutation submitted at/), + ).toBeInTheDocument() + }) + }) + + describe('disabled and static queries', () => { + it('should mark a disabled query in the row label', () => { + const observer = queryClient.getQueryCache().build(queryClient, { + queryKey: ['disabled-q'], + queryFn: () => 'x', + }) + observer.setOptions({ + ...observer.options, + enabled: false, + } as typeof observer.options) + observer.setState({ ...observer.state, data: 'x' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + expect(rendered.getByLabelText(/disabled/)).toBeInTheDocument() + }) + }) + + describe('status counts', () => { + it('should render status count badges', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + expect(rendered.getByLabelText(/Fresh: \d+/)).toBeInTheDocument() + expect(rendered.getByLabelText(/Stale: \d+/)).toBeInTheDocument() + expect(rendered.getByLabelText(/Fetching: \d+/)).toBeInTheDocument() + expect(rendered.getByLabelText(/Paused: \d+/)).toBeInTheDocument() + expect(rendered.getByLabelText(/Inactive: \d+/)).toBeInTheDocument() + }) + + it('should reflect the inactive count when a query is added without observers', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + expect(rendered.getByLabelText('Inactive: 0')).toBeInTheDocument() + + queryClient.setQueryData(['posts'], [{ id: 1 }]) + + expect(rendered.getByLabelText('Inactive: 1')).toBeInTheDocument() + }) + }) + + describe('status tooltip', () => { + it('should show the tooltip on mouse enter and hide it on mouse leave when the panel is narrow', () => { + // Re-stub ResizeObserver with a narrow width (< secondBreakpoint = 796) + // so `showLabel()` is false and the tooltip is rendered conditionally on + // hover/focus. + vi.stubGlobal( + 'ResizeObserver', + class { + callback: ResizeObserverCallback + constructor(callback: ResizeObserverCallback) { + this.callback = callback + } + observe = vi.fn((target: Element) => { + this.callback( + [ + { + target, + contentRect: { width: 500, height: 500 } as DOMRectReadOnly, + } as ResizeObserverEntry, + ], + this as unknown as ResizeObserver, + ) + }) + unobserve = vi.fn() + disconnect = vi.fn() + }, + ) + + const rendered = renderDevtools({ initialIsOpen: true }) + const fresh = rendered.getByLabelText('Fresh: 0') + + expect(rendered.queryByRole('tooltip')).not.toBeInTheDocument() + + fireEvent.mouseEnter(fresh) + expect(rendered.getByRole('tooltip')).toBeInTheDocument() + + fireEvent.mouseLeave(fresh) + expect(rendered.queryByRole('tooltip')).not.toBeInTheDocument() + }) + + it('should show the tooltip on focus and hide it on blur when the panel is narrow', () => { + vi.stubGlobal( + 'ResizeObserver', + class { + callback: ResizeObserverCallback + constructor(callback: ResizeObserverCallback) { + this.callback = callback + } + observe = vi.fn((target: Element) => { + this.callback( + [ + { + target, + contentRect: { width: 500, height: 500 } as DOMRectReadOnly, + } as ResizeObserverEntry, + ], + this as unknown as ResizeObserver, + ) + }) + unobserve = vi.fn() + disconnect = vi.fn() + }, + ) + + const rendered = renderDevtools({ initialIsOpen: true }) + const fresh = rendered.getByLabelText('Fresh: 0') + + expect(rendered.queryByRole('tooltip')).not.toBeInTheDocument() + + fireEvent.focus(fresh) + expect(rendered.getByRole('tooltip')).toBeInTheDocument() + + fireEvent.blur(fresh) + expect(rendered.queryByRole('tooltip')).not.toBeInTheDocument() + }) + }) }) From abdc308f20bcc1b39e4cb75bf9c4227478756136 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 00:47:22 +0900 Subject: [PATCH 248/414] test(query-devtools/Devtools): add tests for query details panel and query actions (#10685) * test(query-devtools/Devtools): add tests for query details panel and query actions * ci: apply automated fixes * test(query-devtools/Devtools): re-query row before second click and assert exact 'pending' status after 'Restore Error' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index f1254d80c38..1be852b2dd8 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -469,4 +469,110 @@ describe('Devtools', () => { expect(rendered.queryByRole('tooltip')).not.toBeInTheDocument() }) }) + + describe('query details', () => { + it('should open the query details panel when a query row is clicked', () => { + queryClient.setQueryData(['posts'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["posts"\]/)) + + expect(rendered.getByText('Query Details')).toBeInTheDocument() + }) + + it('should close the query details panel when the same row is clicked again', () => { + queryClient.setQueryData(['details-toggle'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["details-toggle"\]/)) + fireEvent.click(rendered.getByLabelText(/Query key \["details-toggle"\]/)) + + expect(rendered.queryByText('Query Details')).not.toBeInTheDocument() + }) + }) + + describe('query actions', () => { + it('should remove the query when the "Remove" button is clicked', () => { + queryClient.setQueryData(['action-remove'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["action-remove"\]/)) + fireEvent.click(rendered.getByText('Remove')) + + expect( + rendered.queryByLabelText(/Query key \["action-remove"\]/), + ).not.toBeInTheDocument() + }) + + it('should reset the query when the "Reset" button is clicked', () => { + queryClient.setQueryData(['action-reset'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["action-reset"\]/)) + fireEvent.click(rendered.getByText('Reset')) + + expect(queryClient.getQueryData(['action-reset'])).toBeUndefined() + }) + + it('should invalidate the query when the "Invalidate" button is clicked', () => { + queryClient.setQueryData(['action-invalidate'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click( + rendered.getByLabelText(/Query key \["action-invalidate"\]/), + ) + fireEvent.click(rendered.getByText('Invalidate')) + + expect( + queryClient.getQueryState(['action-invalidate'])?.isInvalidated, + ).toBe(true) + }) + + it('should dispatch a "REFETCH" event when "Refetch" is clicked', () => { + queryClient.setQueryData(['action-refetch'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + const listener = vi.fn() + window.addEventListener('@tanstack/query-devtools-event', listener) + + try { + fireEvent.click( + rendered.getByLabelText(/Query key \["action-refetch"\]/), + ) + fireEvent.click(rendered.getByText('Refetch')) + + const dispatched = listener.mock.calls.some( + ([e]) => (e as CustomEvent).detail.type === 'REFETCH', + ) + expect(dispatched).toBe(true) + } finally { + window.removeEventListener('@tanstack/query-devtools-event', listener) + } + }) + + it('should set the query status to "error" when "Trigger Error" is clicked', () => { + queryClient.setQueryData(['action-error'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["action-error"\]/)) + fireEvent.click(rendered.getByText('Trigger Error')) + + expect(queryClient.getQueryState(['action-error'])?.status).toBe('error') + }) + + it('should restore the query status when "Restore Error" is clicked after "Trigger Error"', () => { + queryClient.setQueryData(['action-restore-error'], [{ id: 1 }]) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click( + rendered.getByLabelText(/Query key \["action-restore-error"\]/), + ) + fireEvent.click(rendered.getByText('Trigger Error')) + fireEvent.click(rendered.getByText('Restore Error')) + + expect(queryClient.getQueryState(['action-restore-error'])?.status).toBe( + 'pending', + ) + }) + }) }) From 4746ac43c1687b418347002e8354cb7d98469a66 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 01:17:58 +0900 Subject: [PATCH 249/414] test(query-devtools/Devtools): add tests for mutation details, sort order, and filter (#10686) * test(query-devtools/Devtools): add tests for mutation details, sort order, and filter * ci: apply automated fixes * test(query-devtools/Devtools): assert toggled value of 'mutationSortOrder' and exclusion in mutation filter * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 1be852b2dd8..72adfb112b9 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -575,4 +575,73 @@ describe('Devtools', () => { ) }) }) + + describe('mutation details', () => { + it('should open the mutation details panel when a mutation row is clicked', async () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByText('Mutations')) + + const mutation = queryClient.getMutationCache().build(queryClient, { + mutationKey: ['mutation-detail'], + mutationFn: () => Promise.resolve('ok'), + }) + mutation.execute({}) + await vi.advanceTimersByTimeAsync(0) + + fireEvent.click(rendered.getByLabelText(/Mutation submitted at/)) + + expect(rendered.getByText('Mutation Details')).toBeInTheDocument() + }) + }) + + describe('mutation sort order', () => { + it('should toggle the mutation sort order in the mutations view', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + fireEvent.click(rendered.getByText('Mutations')) + + fireEvent.click(rendered.getByLabelText(/Sort order/)) + const afterFirstToggle = localStorage.getItem( + 'TanstackQueryDevtools.mutationSortOrder', + ) + expect(afterFirstToggle).not.toBeNull() + + fireEvent.click(rendered.getByLabelText(/Sort order/)) + const afterSecondToggle = localStorage.getItem( + 'TanstackQueryDevtools.mutationSortOrder', + ) + expect(afterSecondToggle).not.toBe(afterFirstToggle) + }) + }) + + describe('mutation filter', () => { + it('should filter mutations by their "mutationKey"', async () => { + const rendered = renderDevtools({ initialIsOpen: true }) + fireEvent.click(rendered.getByText('Mutations')) + + const matching = queryClient.getMutationCache().build(queryClient, { + mutationKey: ['filter-match'], + mutationFn: () => Promise.resolve('ok'), + }) + const other = queryClient.getMutationCache().build(queryClient, { + mutationKey: ['filter-other'], + mutationFn: () => Promise.resolve('ok'), + }) + matching.execute({}) + other.execute({}) + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getAllByLabelText(/Mutation submitted at/)).toHaveLength( + 2, + ) + + fireEvent.input(rendered.getByLabelText('Filter queries by query key'), { + target: { value: 'filter-match' }, + }) + + expect(rendered.getAllByLabelText(/Mutation submitted at/)).toHaveLength( + 1, + ) + }) + }) }) From f24d1a37e76e9d55d73e5f15b375cf39b735adca Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 01:40:38 +0900 Subject: [PATCH 250/414] test(query-devtools/Devtools): add tests for "Bulk Edit Data" mode switch, save, and invalid JSON (#10687) --- .../src/__tests__/Devtools.test.tsx | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 72adfb112b9..1521877b5bc 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -644,4 +644,48 @@ describe('Devtools', () => { ) }) }) + + describe('data edit', () => { + it('should switch to data editor when "Bulk Edit Data" is clicked', () => { + queryClient.setQueryData(['edit-data'], { name: 'a' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["edit-data"\]/)) + fireEvent.click(rendered.getByLabelText('Bulk Edit Data')) + + expect( + rendered.getByLabelText('Edit query data as JSON'), + ).toBeInTheDocument() + }) + + it('should save the edited data when the form is submitted', () => { + queryClient.setQueryData(['edit-save'], { name: 'a' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["edit-save"\]/)) + fireEvent.click(rendered.getByLabelText('Bulk Edit Data')) + + const textarea = rendered.getByLabelText('Edit query data as JSON') + fireEvent.input(textarea, { + target: { value: JSON.stringify({ name: 'b' }) }, + }) + fireEvent.submit(textarea.closest('form')!) + + expect(queryClient.getQueryData(['edit-save'])).toEqual({ name: 'b' }) + }) + + it('should set an error state when the edited data is invalid JSON', () => { + queryClient.setQueryData(['edit-invalid'], { name: 'a' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["edit-invalid"\]/)) + fireEvent.click(rendered.getByLabelText('Bulk Edit Data')) + + const textarea = rendered.getByLabelText('Edit query data as JSON') + fireEvent.input(textarea, { target: { value: 'not json' } }) + fireEvent.submit(textarea.closest('form')!) + + expect(rendered.getByText('Invalid Value')).toBeInTheDocument() + }) + }) }) From 7e459768b22d46b736afeb90df3406268f0d87c3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 02:05:47 +0900 Subject: [PATCH 251/414] test(query-devtools/Devtools): add tests for 'errorTypes' prop and error trigger via select (#10688) * test(query-devtools/Devtools): add tests for 'errorTypes' prop and error trigger via select * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 1521877b5bc..9164b8065c4 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -688,4 +688,48 @@ describe('Devtools', () => { expect(rendered.getByText('Invalid Value')).toBeInTheDocument() }) }) + + describe('error type select', () => { + it('should render the error type select when "errorTypes" is provided', () => { + queryClient.setQueryData(['error-select'], [{ id: 1 }]) + const rendered = renderDevtools({ + initialIsOpen: true, + errorTypes: [ + { + name: 'NetworkError', + initializer: () => new Error('Network'), + }, + ], + }) + + fireEvent.click(rendered.getByLabelText(/Query key \["error-select"\]/)) + + expect( + rendered.getByLabelText('Select error type to trigger'), + ).toBeInTheDocument() + }) + + it('should trigger error when an error type is selected', () => { + queryClient.setQueryData(['error-select-trigger'], [{ id: 1 }]) + const rendered = renderDevtools({ + initialIsOpen: true, + errorTypes: [ + { + name: 'NetworkError', + initializer: () => new Error('Network'), + }, + ], + }) + + fireEvent.click( + rendered.getByLabelText(/Query key \["error-select-trigger"\]/), + ) + const select = rendered.getByLabelText('Select error type to trigger') + fireEvent.change(select, { target: { value: 'NetworkError' } }) + + expect(queryClient.getQueryState(['error-select-trigger'])?.status).toBe( + 'error', + ) + }) + }) }) From 3e74fcb13ca9e91ec3913cdf88812f7dc783e665 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 02:34:23 +0900 Subject: [PATCH 252/414] test(query-devtools/Devtools): add tests for sort dropdown, hide disabled queries, and sort order toggle (#10689) * test(query-devtools/Devtools): add tests for sort dropdown, hide disabled queries, and sort order toggle * ci: apply automated fixes * test(query-devtools/Devtools): assert exact 'sortOrder' values ('1' and '-1') across consecutive toggles --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 9164b8065c4..6517f2a0134 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { QueryClient, onlineManager } from '@tanstack/query-core' +import { QueryClient, QueryObserver, onlineManager } from '@tanstack/query-core' import { fireEvent, render } from '@solidjs/testing-library' import { createLocalStorage } from '@solid-primitives/storage' import { Devtools } from '../Devtools' @@ -732,4 +732,76 @@ describe('Devtools', () => { ) }) }) + + describe('sort by', () => { + it('should change sort key when the sort dropdown is changed in queries view', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.change(rendered.getByLabelText('Sort queries by'), { + target: { value: 'last updated' }, + }) + + expect(localStorage.getItem('TanstackQueryDevtools.sort')).toBe( + 'last updated', + ) + }) + + it('should change sort key when the sort dropdown is changed in mutations view', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + fireEvent.click(rendered.getByText('Mutations')) + + fireEvent.change(rendered.getByLabelText('Sort mutations by'), { + target: { value: 'last updated' }, + }) + + expect(localStorage.getItem('TanstackQueryDevtools.mutationSort')).toBe( + 'last updated', + ) + }) + + it('should hide disabled queries when "hideDisabledQueries" is enabled in localStorage', () => { + const disabled = new QueryObserver(queryClient, { + queryKey: ['hide-test-disabled'], + queryFn: () => 'x', + enabled: false, + }) + const unsubscribe = disabled.subscribe(() => {}) + queryClient.setQueryData(['hide-test-disabled'], 'x') + queryClient.setQueryData(['hide-test-active'], 'y') + + try { + const rendered = renderDevtools( + { initialIsOpen: true }, + { 'TanstackQueryDevtools.hideDisabledQueries': 'true' }, + ) + + expect( + rendered.queryByLabelText(/Query key \["hide-test-disabled"\]/), + ).not.toBeInTheDocument() + expect( + rendered.getByLabelText(/Query key \["hide-test-active"\]/), + ).toBeInTheDocument() + } finally { + unsubscribe() + } + }) + }) + + describe('sort order', () => { + it('should toggle the sort order when the sort order button is clicked', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Sort order/)) + const afterFirstToggle = localStorage.getItem( + 'TanstackQueryDevtools.sortOrder', + ) + expect(['1', '-1']).toContain(afterFirstToggle) + + fireEvent.click(rendered.getByLabelText(/Sort order/)) + const afterSecondToggle = localStorage.getItem( + 'TanstackQueryDevtools.sortOrder', + ) + expect(afterSecondToggle).toBe(afterFirstToggle === '1' ? '-1' : '1') + }) + }) }) From fdea97d2e646106f28fc5ab199d4233fa9a74d54 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 03:10:21 +0900 Subject: [PATCH 253/414] test(query-devtools/Devtools): add tests for settings menu (#10690) * test(query-devtools/Devtools): add tests for settings menu * ci: apply automated fixes * test(query-devtools/Devtools): fail fast with 'expect' instead of conditional guards on selector lookups * test(query-devtools/Devtools): coerce 'el.textContent' to string for 'TS18047' under strict 'vue-tsc' build * test(query-devtools/Devtools): remove redundant 'should render the settings button' covered by other settings menu tests --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 161 ++++++++++++++++-- 1 file changed, 148 insertions(+), 13 deletions(-) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 6517f2a0134..1ea120c4594 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -34,19 +34,6 @@ describe('Devtools', () => { beforeEach(() => { vi.useFakeTimers() previousRootFontSize = document.documentElement.style.fontSize - // jsdom doesn't implement `PointerEvent`; the DropdownMenu trigger checks - // `e.pointerType !== 'touch'` on pointerdown to decide whether to open, - // so we polyfill it as a thin wrapper around `MouseEvent`. - if (typeof window.PointerEvent === 'undefined') { - class FakePointerEvent extends MouseEvent { - pointerType: string - constructor(type: string, init: PointerEventInit = {}) { - super(type, init) - this.pointerType = init.pointerType ?? 'mouse' - } - } - vi.stubGlobal('PointerEvent', FakePointerEvent) - } vi.stubGlobal('localStorage', { getItem: (key: string) => Object.prototype.hasOwnProperty.call(storage, key) @@ -804,4 +791,152 @@ describe('Devtools', () => { expect(afterSecondToggle).toBe(afterFirstToggle === '1' ? '-1' : '1') }) }) + + describe('settings menu', () => { + it('should show "Position" sub-trigger when the settings menu is opened', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.keyDown(rendered.getByLabelText('Open settings menu'), { + key: 'Enter', + }) + + // The menu is rendered through a Portal mounted on `document.body`, + // outside `rendered.container`, so look it up via `document` directly. + expect( + document.querySelector('.tsqd-settings-menu-sub-trigger-position'), + ).not.toBeNull() + }) + + it('should open "Position" sub-menu when the sub-trigger is activated', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.keyDown(rendered.getByLabelText('Open settings menu'), { + key: 'Enter', + }) + + const subTrigger = document.querySelector( + '.tsqd-settings-menu-sub-trigger-position', + ) + expect(subTrigger).not.toBeNull() + fireEvent.keyDown(subTrigger!, { key: 'ArrowRight' }) + + expect( + document.querySelector('[aria-label="Position settings"]'), + ).not.toBeNull() + }) + + it('should persist "position" when a position radio item is selected', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.keyDown(rendered.getByLabelText('Open settings menu'), { + key: 'Enter', + }) + + const subTrigger = document.querySelector( + '.tsqd-settings-menu-sub-trigger-position', + ) + expect(subTrigger).not.toBeNull() + fireEvent.keyDown(subTrigger!, { key: 'ArrowRight' }) + + const topItem = document.querySelector( + '.tsqd-settings-menu-position-btn-top', + ) + expect(topItem).not.toBeNull() + fireEvent.keyDown(topItem!, { key: 'Enter' }) + + expect(localStorage.getItem('TanstackQueryDevtools.position')).toBe('top') + }) + + it('should open "Theme" sub-menu when the sub-trigger is activated', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.keyDown(rendered.getByLabelText('Open settings menu'), { + key: 'Enter', + }) + + const themeTrigger = Array.from( + document.querySelectorAll( + '.tsqd-settings-menu-sub-trigger', + ), + ).find((el) => String(el.textContent).includes('Theme')) + expect(themeTrigger).not.toBeUndefined() + fireEvent.keyDown(themeTrigger!, { key: 'ArrowRight' }) + + expect( + document.querySelector('[aria-label="Theme preference"]'), + ).not.toBeNull() + }) + + it('should persist "theme_preference" when a theme radio item is selected', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.keyDown(rendered.getByLabelText('Open settings menu'), { + key: 'Enter', + }) + + const themeTrigger = Array.from( + document.querySelectorAll( + '.tsqd-settings-menu-sub-trigger', + ), + ).find((el) => String(el.textContent).includes('Theme')) + expect(themeTrigger).not.toBeUndefined() + fireEvent.keyDown(themeTrigger!, { key: 'ArrowRight' }) + + const themeMenu = document.querySelector( + '[aria-label="Theme preference"]', + ) + const lightItem = Array.from( + themeMenu?.querySelectorAll('[role="menuitemradio"]') ?? + [], + ).find((el) => String(el.textContent).includes('Light')) + expect(lightItem).not.toBeUndefined() + fireEvent.keyDown(lightItem!, { key: 'Enter' }) + + expect( + localStorage.getItem('TanstackQueryDevtools.theme_preference'), + ).toBe('light') + }) + + it('should open "Hide disabled queries" sub-menu when the sub-trigger is activated', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.keyDown(rendered.getByLabelText('Open settings menu'), { + key: 'Enter', + }) + + const hideTrigger = document.querySelector( + '.tsqd-settings-menu-sub-trigger-disabled-queries', + ) + expect(hideTrigger).not.toBeNull() + fireEvent.keyDown(hideTrigger!, { key: 'ArrowRight' }) + + expect( + document.querySelector('[aria-label="Hide disabled queries setting"]'), + ).not.toBeNull() + }) + + it('should persist "hideDisabledQueries" when a hide-disabled radio item is selected', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.keyDown(rendered.getByLabelText('Open settings menu'), { + key: 'Enter', + }) + + const hideTrigger = document.querySelector( + '.tsqd-settings-menu-sub-trigger-disabled-queries', + ) + expect(hideTrigger).not.toBeNull() + fireEvent.keyDown(hideTrigger!, { key: 'ArrowRight' }) + + const hideItem = document.querySelector( + '.tsqd-settings-menu-position-btn-hide', + ) + expect(hideItem).not.toBeNull() + fireEvent.keyDown(hideItem!, { key: 'Enter' }) + + expect( + localStorage.getItem('TanstackQueryDevtools.hideDisabledQueries'), + ).toBe('true') + }) + }) }) From ba58314b8d40329e43a4ca05bd04ff3d1a49b7ec Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 10:11:10 +0900 Subject: [PATCH 254/414] test(query-devtools/Devtools): add tests for resize handle (#10691) * test(query-devtools/Devtools): add tests for resize handle * test(query-devtools/Devtools): assert 'panel' is 'HTMLElement' instead of 'not.toBeNull' for stronger 'getBoundingClientRect' guarantee * test(query-devtools/Devtools): assert non-null before parsing 'localStorage' value to prevent 'Number(null) === 0' false positive in decrease assertions --- .../src/__tests__/Devtools.test.tsx | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 1ea120c4594..0ff1dd4d0cd 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -939,4 +939,142 @@ describe('Devtools', () => { ).toBe('true') }) }) + + describe('resize handle', () => { + it('should increase height when "ArrowUp" is pressed on the resize handle in "bottom" position', () => { + const rendered = renderDevtools( + { position: 'bottom', initialIsOpen: true }, + { 'TanstackQueryDevtools.height': '500' }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + fireEvent.keyDown(handle, { key: 'ArrowUp' }) + + expect( + Number(localStorage.getItem('TanstackQueryDevtools.height')), + ).toBeGreaterThan(500) + }) + + it('should decrease height when "ArrowDown" is pressed on the resize handle in "bottom" position', () => { + const rendered = renderDevtools( + { position: 'bottom', initialIsOpen: true }, + { 'TanstackQueryDevtools.height': '500' }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + fireEvent.keyDown(handle, { key: 'ArrowDown' }) + + // Assert the value exists before parsing — `Number(null)` is `0`, + // which would falsely satisfy `toBeLessThan(500)` if the write was missing. + const nextHeight = localStorage.getItem('TanstackQueryDevtools.height') + expect(nextHeight).not.toBeNull() + expect(Number(nextHeight)).toBeLessThan(500) + }) + + it('should increase width when "ArrowLeft" is pressed on the resize handle in "right" position', () => { + const rendered = renderDevtools( + { position: 'right', initialIsOpen: true }, + { 'TanstackQueryDevtools.width': '500' }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + fireEvent.keyDown(handle, { key: 'ArrowLeft' }) + + expect( + Number(localStorage.getItem('TanstackQueryDevtools.width')), + ).toBeGreaterThan(500) + }) + + it('should decrease width when "ArrowRight" is pressed on the resize handle in "right" position', () => { + const rendered = renderDevtools( + { position: 'right', initialIsOpen: true }, + { 'TanstackQueryDevtools.width': '500' }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + fireEvent.keyDown(handle, { key: 'ArrowRight' }) + + const nextWidth = localStorage.getItem('TanstackQueryDevtools.width') + expect(nextWidth).not.toBeNull() + expect(Number(nextWidth)).toBeLessThan(500) + }) + + it('should increase height while dragging up in "bottom" position', () => { + const initialHeight = 500 + const rendered = renderDevtools( + { position: 'bottom', initialIsOpen: true }, + { 'TanstackQueryDevtools.height': String(initialHeight) }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + // jsdom returns zeros for `getBoundingClientRect`; stub the panel size so + // that drag math starts from `initialHeight` instead of 0. + // Only `height` is read by the production code; other fields are unused. + const panel = handle.parentElement + expect(panel).toBeInstanceOf(HTMLElement) + vi.spyOn(panel!, 'getBoundingClientRect').mockReturnValue({ + height: initialHeight, + width: 0, + x: 0, + y: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + toJSON: () => ({}), + }) + + // Move the cursor up by 50px (`clientY` 100 → 50), which adds 50px to the + // drag base of `initialHeight`. + fireEvent.mouseDown(handle, { clientX: 0, clientY: 100 }) + fireEvent( + document, + new MouseEvent('mousemove', { clientX: 0, clientY: 50 }), + ) + fireEvent(document, new MouseEvent('mouseup')) + + expect( + Number(localStorage.getItem('TanstackQueryDevtools.height')), + ).toBeGreaterThan(initialHeight) + }) + + it('should increase width while dragging left in "right" position', () => { + const initialWidth = 500 + const rendered = renderDevtools( + { position: 'right', initialIsOpen: true }, + { 'TanstackQueryDevtools.width': String(initialWidth) }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + // `width` is read twice during drag: once as the base size, and again to + // detect when the panel hits its minimum. Returning the same value both + // times keeps the "minimum reached" branch from firing. + const panel = handle.parentElement + expect(panel).toBeInstanceOf(HTMLElement) + vi.spyOn(panel!, 'getBoundingClientRect').mockReturnValue({ + height: 0, + width: initialWidth, + x: 0, + y: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + toJSON: () => ({}), + }) + + // Move the cursor left by 50px (`clientX` 100 → 50); in `right` position, + // moving left grows the panel by 50px from the drag base of `initialWidth`. + fireEvent.mouseDown(handle, { clientX: 100, clientY: 0 }) + fireEvent( + document, + new MouseEvent('mousemove', { clientX: 50, clientY: 0 }), + ) + fireEvent(document, new MouseEvent('mouseup')) + + expect( + Number(localStorage.getItem('TanstackQueryDevtools.width')), + ).toBeGreaterThan(initialWidth) + }) + }) }) From c84c9d06d72b9d6a6fe325422109ea8e1128b0fe Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 10:47:12 +0900 Subject: [PATCH 255/414] test(query-devtools/Devtools): add tests for online toggle (#10692) * test(query-devtools/Devtools): add tests for online toggle * test(query-devtools/Devtools): remove redundant 'should set "onlineManager" offline' covered by label swap test --- .../query-devtools/src/__tests__/Devtools.test.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 0ff1dd4d0cd..ed500acd1c3 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1077,4 +1077,16 @@ describe('Devtools', () => { ).toBeGreaterThan(initialWidth) }) }) + + describe('online toggle', () => { + it('should swap the toggle label after the offline button is clicked', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText('Mock offline behavior')) + + expect( + rendered.getByLabelText('Unset offline mocking behavior'), + ).toBeInTheDocument() + }) + }) }) From 55c6b8ad17ef0cecf120a4af003c748fa4c59b00 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 11 May 2026 12:13:08 +0900 Subject: [PATCH 256/414] test(query-devtools/Devtools): add test for hiding the panel when the 'TANSTACK' logo is clicked (#10693) --- .../query-devtools/src/__tests__/Devtools.test.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index ed500acd1c3..50d3fda4d7d 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1089,4 +1089,16 @@ describe('Devtools', () => { ).toBeInTheDocument() }) }) + + describe('logo close', () => { + it('should hide the panel when the TanStack logo is clicked', () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText('Close Tanstack query devtools')) + + expect( + rendered.queryByLabelText('Tanstack query devtools'), + ).not.toBeInTheDocument() + }) + }) }) From 4d130b992d2ac396d75f921bfc530dd3a9d50577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Mon, 11 May 2026 16:02:15 +0200 Subject: [PATCH 257/414] fix(query-devtools): remove experimentalDts to prevent solid-js type leak (#10694) * fix(query-devtools): remove experimentalDts to prevent solid-js type leak * changeset Co-authored by @namgi2386 --- .changeset/violet-canyons-love.md | 8 ++++++++ packages/query-devtools/tsup.config.ts | 2 -- packages/solid-query-devtools/tsup.config.ts | 2 -- packages/solid-query-persist-client/tsup.config.ts | 2 -- packages/solid-query/tsup.config.ts | 2 -- 5 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 .changeset/violet-canyons-love.md diff --git a/.changeset/violet-canyons-love.md b/.changeset/violet-canyons-love.md new file mode 100644 index 00000000000..9bbc4ed692f --- /dev/null +++ b/.changeset/violet-canyons-love.md @@ -0,0 +1,8 @@ +--- +'@tanstack/solid-query-persist-client': patch +'@tanstack/solid-query-devtools': patch +'@tanstack/query-devtools': patch +'@tanstack/solid-query': patch +--- + +fix(query-devtools): remove experimentalDts to prevent solid-js type leak diff --git a/packages/query-devtools/tsup.config.ts b/packages/query-devtools/tsup.config.ts index afcd5798312..854110ec19d 100644 --- a/packages/query-devtools/tsup.config.ts +++ b/packages/query-devtools/tsup.config.ts @@ -16,8 +16,6 @@ export default defineConfig(() => { tsup_options.forEach((tsup_option) => { tsup_option.outDir = 'build' - tsup_option.experimentalDts = true - delete tsup_option.dts }) return tsup_options diff --git a/packages/solid-query-devtools/tsup.config.ts b/packages/solid-query-devtools/tsup.config.ts index 9fedc64bb95..09316c5110e 100644 --- a/packages/solid-query-devtools/tsup.config.ts +++ b/packages/solid-query-devtools/tsup.config.ts @@ -16,8 +16,6 @@ export default defineConfig(() => { tsup_options.forEach((tsup_option) => { tsup_option.outDir = 'build' - tsup_option.experimentalDts = true - delete tsup_option.dts }) return tsup_options diff --git a/packages/solid-query-persist-client/tsup.config.ts b/packages/solid-query-persist-client/tsup.config.ts index afcd5798312..854110ec19d 100644 --- a/packages/solid-query-persist-client/tsup.config.ts +++ b/packages/solid-query-persist-client/tsup.config.ts @@ -16,8 +16,6 @@ export default defineConfig(() => { tsup_options.forEach((tsup_option) => { tsup_option.outDir = 'build' - tsup_option.experimentalDts = true - delete tsup_option.dts }) return tsup_options diff --git a/packages/solid-query/tsup.config.ts b/packages/solid-query/tsup.config.ts index afcd5798312..854110ec19d 100644 --- a/packages/solid-query/tsup.config.ts +++ b/packages/solid-query/tsup.config.ts @@ -16,8 +16,6 @@ export default defineConfig(() => { tsup_options.forEach((tsup_option) => { tsup_option.outDir = 'build' - tsup_option.experimentalDts = true - delete tsup_option.dts }) return tsup_options From 9d2692cec4d538c2f96489027ba546f11638dfb1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 16:08:01 +0200 Subject: [PATCH 258/414] ci: Version Packages (#10695) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/violet-canyons-love.md | 8 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/lit/basic/package.json | 4 +- examples/lit/pagination/package.json | 4 +- examples/lit/ssr/package.json | 4 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/lit-query/CHANGELOG.md | 7 + packages/lit-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 6 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 10 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 10 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 9 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 258 +++++++++--------- 114 files changed, 465 insertions(+), 291 deletions(-) delete mode 100644 .changeset/violet-canyons-love.md diff --git a/.changeset/violet-canyons-love.md b/.changeset/violet-canyons-love.md deleted file mode 100644 index 9bbc4ed692f..00000000000 --- a/.changeset/violet-canyons-love.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@tanstack/solid-query-persist-client': patch -'@tanstack/solid-query-devtools': patch -'@tanstack/query-devtools': patch -'@tanstack/solid-query': patch ---- - -fix(query-devtools): remove experimentalDts to prevent solid-js type leak diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index f988901de9d..1ade6caab0b 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 8b853f641e9..608337f9715 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", - "@tanstack/angular-query-persist-client": "^5.100.9", - "@tanstack/query-async-storage-persister": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-persist-client": "^5.100.10", + "@tanstack/query-async-storage-persister": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 31fb026a713..2d58e42992b 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 3f7d1b06440..d788d3009ca 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index c39a3c494a0..07f919009db 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 6b0d148f7aa..4a3174277c0 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 1ed91a94070..b6effa02a34 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index aa3160f4edc..81049a0ecae 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 543d2682777..dc3f06dff47 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 35fde314745..8622d8ee54d 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index c418732f2a8..2aaa8ceb4dc 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index a954a8b523e..6643996a84f 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.0", - "@tanstack/query-core": "^5.99.0", + "@tanstack/lit-query": "^0.2.1", + "@tanstack/query-core": "^5.100.10", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index 357d6568b41..957df29070e 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.0", - "@tanstack/query-core": "^5.99.0", + "@tanstack/lit-query": "^0.2.1", + "@tanstack/query-core": "^5.100.10", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index bfa420941a9..13a942263ae 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -8,8 +8,8 @@ }, "dependencies": { "@lit-labs/ssr": "^3.3.0", - "@tanstack/lit-query": "^0.2.0", - "@tanstack/query-core": "^5.99.0", + "@tanstack/lit-query": "^0.2.1", + "@tanstack/query-core": "^5.100.10", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 86223b0868b..2844f35c2bc 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.9", + "@tanstack/preact-query": "^5.100.10", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index c13cfcf5c3d..9e0d4fe60b4 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.9", + "@tanstack/eslint-plugin-query": "^5.100.10", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 8e226cf0fd7..f968c9a10f8 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index d1ecf28a949..f5f27c05858 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index c3855a7f956..646653aa83a 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.9", - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", - "@tanstack/react-query-persist-client": "^5.100.9", + "@tanstack/query-async-storage-persister": "^5.100.10", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query-persist-client": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.9", + "@tanstack/eslint-plugin-query": "^5.100.10", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 415c9375f37..9e5950cbcb8 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index c8f50f0748f..bd954ae174b 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index faa247b3b16..ca748f162c9 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index c69ffb3a398..5628dde1570 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.9", - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", - "@tanstack/react-query-persist-client": "^5.100.9", + "@tanstack/query-async-storage-persister": "^5.100.10", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query-persist-client": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.9", + "@tanstack/eslint-plugin-query": "^5.100.10", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index de3f0626b9f..a38ef6616b8 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", + "@tanstack/react-query": "^5.100.10", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.9", + "@tanstack/eslint-plugin-query": "^5.100.10", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 1cefd73f488..b87d10afddc 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 7cd254a2144..30982ded5db 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 74bd39d97ce..c10e680910b 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 12b889ffedf..3bcc690c40a 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", - "@tanstack/react-query-next-experimental": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query-next-experimental": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index a8d83578c96..5f1a5649afa 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 3433b941da6..a28896e226d 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.9", + "@tanstack/query-async-storage-persister": "^5.100.10", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", - "@tanstack/react-query-persist-client": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query-persist-client": "^5.100.10", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 11e95eb159c..3975944e284 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index af5d17a9ae6..5a7d471a4d8 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 4a2ae608479..518c6a2467f 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 35b8d6d3f9c..05d8ad19590 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index db628368c99..f3e421bf9e8 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 0f87dba153c..50cbc0b4ce4 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 0cfa6554a70..1fb67565d3e 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 5556af2151c..e69cbdd8e40 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index aaae403079b..30a027076de 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 45df8b1a8b3..9aaae1fffa5 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 01395cb48ca..4ead29168ec 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index af80c7f20b0..d49f0aebc64 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.9", - "@tanstack/react-query-devtools": "^5.100.9", + "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query-devtools": "^5.100.10", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 0bbf957668a..69664eed55d 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.9", - "@tanstack/solid-query-devtools": "^5.100.9", + "@tanstack/solid-query": "^5.100.10", + "@tanstack/solid-query-devtools": "^5.100.10", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 52bfb0169fb..f24c869ccad 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.9", - "@tanstack/solid-query-devtools": "^5.100.9", + "@tanstack/solid-query": "^5.100.10", + "@tanstack/solid-query-devtools": "^5.100.10", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index ac4878d7974..009993fedba 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.9", - "@tanstack/solid-query-devtools": "^5.100.9", + "@tanstack/solid-query": "^5.100.10", + "@tanstack/solid-query-devtools": "^5.100.10", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index fe86f182aa7..95362ea23d6 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.9", - "@tanstack/solid-query-devtools": "^5.100.9", + "@tanstack/solid-query": "^5.100.10", + "@tanstack/solid-query-devtools": "^5.100.10", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index eaf52ba1bac..050ba1f46f1 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.9", - "@tanstack/solid-query": "^5.100.9", - "@tanstack/solid-query-devtools": "^5.100.9", - "@tanstack/solid-query-persist-client": "^5.100.9", + "@tanstack/query-async-storage-persister": "^5.100.10", + "@tanstack/solid-query": "^5.100.10", + "@tanstack/solid-query-devtools": "^5.100.10", + "@tanstack/solid-query-persist-client": "^5.100.10", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index d81197fb71f..e24b7a1883e 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.9", - "@tanstack/solid-query-devtools": "^5.100.9", + "@tanstack/solid-query": "^5.100.10", + "@tanstack/solid-query-devtools": "^5.100.10", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.9", + "@tanstack/eslint-plugin-query": "^5.100.10", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index cc58d4a4022..13d5cdd0482 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.9", - "@tanstack/solid-query-devtools": "^5.100.9", + "@tanstack/solid-query": "^5.100.10", + "@tanstack/solid-query-devtools": "^5.100.10", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 29b1b2a8242..2f7fdf84144 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28" + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index b76ac810aee..9fe9f4eabae 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.9", - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28", - "@tanstack/svelte-query-persist-client": "^6.1.28" + "@tanstack/query-async-storage-persister": "^5.100.10", + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29", + "@tanstack/svelte-query-persist-client": "^6.1.29" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 948e177cb08..985b3b5aefa 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28" + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index ff34104352e..df86861fb80 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28" + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 9636442ca01..f84e5e14a30 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28" + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 8011617c086..acb6d3d1355 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28" + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index c2149d068a6..25924465e4a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28" + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 521bd92bb2a..0d21b1d1a9e 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.28", - "@tanstack/svelte-query-devtools": "^6.1.28" + "@tanstack/svelte-query": "^6.1.29", + "@tanstack/svelte-query-devtools": "^6.1.29" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index f89f8a67702..12c4ec5fa30 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.9", - "@tanstack/vue-query-devtools": "^6.1.28", + "@tanstack/vue-query": "^5.100.10", + "@tanstack/vue-query-devtools": "^6.1.29", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 481d79dd3d8..21b68733e72 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.9", + "@tanstack/vue-query": "^5.100.10", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index e7f289cae3a..f1415d72656 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.9", - "@tanstack/query-persist-client-core": "^5.100.9", - "@tanstack/query-sync-storage-persister": "^5.100.9", - "@tanstack/vue-query": "^5.100.9", + "@tanstack/query-core": "^5.100.10", + "@tanstack/query-persist-client-core": "^5.100.10", + "@tanstack/query-sync-storage-persister": "^5.100.10", + "@tanstack/vue-query": "^5.100.10", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 18578df831a..6f88a371768 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.9", - "@tanstack/vue-query-devtools": "^6.1.28", + "@tanstack/vue-query": "^5.100.10", + "@tanstack/vue-query-devtools": "^6.1.29", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index f1ee0989fde..de01d72e657 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.9", + "@tanstack/angular-query-experimental": "^5.100.10", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index bf657b9ec42..e7375c1a445 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index a0aaedd2dc1..6a6c7c5c592 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.9", + "version": "5.100.10", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 6a2b42e13c4..a75741bdfa5 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.10 + - @tanstack/query-persist-client-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 1b2615fcf22..c1da9c0c573 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.9", + "version": "5.100.10", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 0269a5a7142..5e4c6c4697a 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.10 + ## 5.100.9 ## 5.100.8 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 76fe6d1b1f2..fa726ff9731 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.9", + "version": "5.100.10", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/lit-query/CHANGELOG.md b/packages/lit-query/CHANGELOG.md index 1247e8e3a49..1f0c0521165 100644 --- a/packages/lit-query/CHANGELOG.md +++ b/packages/lit-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/lit-query +## 0.2.1 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 0.2.0 ### Minor Changes diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index f2c25d02ce3..2a09ad21fde 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-query", - "version": "0.2.0", + "version": "0.2.1", "description": "Lit adapter for TanStack Query Core", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index d73e420601d..36f59236ea5 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.10 + +### Patch Changes + +- Updated dependencies [[`4d130b9`](https://github.com/TanStack/query/commit/4d130b992d2ac396d75f921bfc530dd3a9d50577)]: + - @tanstack/query-devtools@5.100.10 + - @tanstack/preact-query@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 656d2042628..b9ad74c3925 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.9", + "version": "5.100.10", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 9c36e566788..359522647fd 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.10 + - @tanstack/query-persist-client-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 1d520655cb6..acfa1b788a0 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.9", + "version": "5.100.10", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 3f4f86b8cd3..6c3d7f40c32 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 7f699082adb..247633b974f 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.9", + "version": "5.100.10", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index c416dc71a76..25e1e3695f4 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + - @tanstack/query-persist-client-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 75bb6dc5fd2..5e37a43553e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.9", + "version": "5.100.10", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index d8aad9b8ae0..aaf596edf3c 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 229ba288d8c..779323f923f 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.9", + "version": "5.100.10", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index a7336ada909..e76cb4ea9de 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index cdae9991458..783d85b77e9 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.9", + "version": "5.100.10", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 44c3a500dc4..935fa8f8f4b 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-devtools +## 5.100.10 + +### Patch Changes + +- fix(query-devtools): remove experimentalDts to prevent solid-js type leak ([#10694](https://github.com/TanStack/query/pull/10694)) + ## 5.100.9 ### Patch Changes diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 87caaf12069..8ccc13e1273 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.9", + "version": "5.100.10", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 595d2a10247..40776df272f 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 0494af120b8..17984d1049a 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.9", + "version": "5.100.10", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 3b419e32056..061cb67468a 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + - @tanstack/query-persist-client-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 4605e424659..18163d34b8a 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.9", + "version": "5.100.10", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 14da0cf7afd..dc3f92e4f45 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.10 + +### Patch Changes + +- Updated dependencies [[`4d130b9`](https://github.com/TanStack/query/commit/4d130b992d2ac396d75f921bfc530dd3a9d50577)]: + - @tanstack/query-devtools@5.100.10 + - @tanstack/react-query@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 20d1f9f6574..cbcbaf5a863 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.9", + "version": "5.100.10", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 3b7efa697fc..f6ccd43f6c2 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 855b63cfd6e..ff68340a015 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.9", + "version": "5.100.10", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 2f36d714602..30c40f5a343 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.10 + - @tanstack/react-query@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index d57d54a6834..79614de39bd 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.9", + "version": "5.100.10", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index ffc74af463a..dc9408410b4 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 84f805e77db..b456b31386f 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.9", + "version": "5.100.10", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index b541271993d..778d042aba1 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-devtools +## 5.100.10 + +### Patch Changes + +- fix(query-devtools): remove experimentalDts to prevent solid-js type leak ([#10694](https://github.com/TanStack/query/pull/10694)) + +- Updated dependencies [[`4d130b9`](https://github.com/TanStack/query/commit/4d130b992d2ac396d75f921bfc530dd3a9d50577)]: + - @tanstack/query-devtools@5.100.10 + - @tanstack/solid-query@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 0034c33bc61..3457bf73797 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.9", + "version": "5.100.10", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 3d2d2209e81..562a792e3f1 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/solid-query-persist-client +## 5.100.10 + +### Patch Changes + +- fix(query-devtools): remove experimentalDts to prevent solid-js type leak ([#10694](https://github.com/TanStack/query/pull/10694)) + +- Updated dependencies [[`4d130b9`](https://github.com/TanStack/query/commit/4d130b992d2ac396d75f921bfc530dd3a9d50577)]: + - @tanstack/solid-query@5.100.10 + - @tanstack/query-persist-client-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 48d1d0c7ded..ee301b267be 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.9", + "version": "5.100.10", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 1e5ec8cdd03..c1889bf2998 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/solid-query +## 5.100.10 + +### Patch Changes + +- fix(query-devtools): remove experimentalDts to prevent solid-js type leak ([#10694](https://github.com/TanStack/query/pull/10694)) + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 39eae9d0e7c..66d3efce6fb 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.9", + "version": "5.100.10", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 02362000d71..1c07df9a4f2 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.29 + +### Patch Changes + +- Updated dependencies [[`4d130b9`](https://github.com/TanStack/query/commit/4d130b992d2ac396d75f921bfc530dd3a9d50577)]: + - @tanstack/query-devtools@5.100.10 + - @tanstack/svelte-query@6.1.29 + ## 6.1.28 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 52f566209f4..0a9735b5d0c 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.28", + "version": "6.1.29", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 38b81b9920e..d25aa16db6a 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.29 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.10 + - @tanstack/svelte-query@6.1.29 + ## 6.1.28 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 8c7f0aa1134..019a0b4f48a 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.28", + "version": "6.1.29", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 88ef97be835..645228d8e94 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.29 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 6.1.28 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 9e6a96da00c..0830b4906ab 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.28", + "version": "6.1.29", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index b16f0a20396..248424546f7 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.29 + +### Patch Changes + +- Updated dependencies [[`4d130b9`](https://github.com/TanStack/query/commit/4d130b992d2ac396d75f921bfc530dd3a9d50577)]: + - @tanstack/query-devtools@5.100.10 + - @tanstack/vue-query@5.100.10 + ## 6.1.28 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index bd8dad300ff..6a21d5f8d77 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.28", + "version": "6.1.29", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 115dbc47054..8f81fd91e0f 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.10 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.10 + ## 5.100.9 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index a87e455a0dd..fb6dbbd6f33 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.9", + "version": "5.100.10", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a8c9a73d6d..5d17befd221 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,10 +618,10 @@ importers: examples/lit/basic: dependencies: '@tanstack/lit-query': - specifier: ^0.2.0 + specifier: ^0.2.1 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.99.0 + specifier: ^5.100.10 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -637,10 +637,10 @@ importers: examples/lit/pagination: dependencies: '@tanstack/lit-query': - specifier: ^0.2.0 + specifier: ^0.2.1 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.99.0 + specifier: ^5.100.10 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -659,10 +659,10 @@ importers: specifier: ^3.3.0 version: 3.3.1 '@tanstack/lit-query': - specifier: ^0.2.0 + specifier: ^0.2.1 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.99.0 + specifier: ^5.100.10 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -684,7 +684,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -712,10 +712,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -725,7 +725,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -746,10 +746,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -774,16 +774,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -793,7 +793,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -814,10 +814,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -842,10 +842,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -873,10 +873,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -898,10 +898,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -923,16 +923,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -942,7 +942,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -963,14 +963,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -985,10 +985,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1013,10 +1013,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1044,10 +1044,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1072,10 +1072,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1100,13 +1100,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1131,19 +1131,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1171,10 +1171,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1199,10 +1199,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1227,10 +1227,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1255,10 +1255,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1280,10 +1280,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1317,10 +1317,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1369,10 +1369,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1421,10 +1421,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1458,10 +1458,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1489,10 +1489,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1514,10 +1514,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1551,10 +1551,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1597,10 +1597,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1618,10 +1618,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1640,10 +1640,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1668,10 +1668,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1690,16 +1690,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1721,17 +1721,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1755,10 +1755,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1770,10 +1770,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1801,16 +1801,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1838,10 +1838,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1869,10 +1869,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1900,10 +1900,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1931,10 +1931,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1959,10 +1959,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1990,10 +1990,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -2027,10 +2027,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2049,7 +2049,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2068,16 +2068,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2099,10 +2099,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.28 + specifier: ^6.1.29 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2139,7 +2139,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.9 + specifier: ^5.100.10 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From 65b8e3122720d4176de455d38c2e36b3afe937d5 Mon Sep 17 00:00:00 2001 From: Sean Cassiere <33615041+SeanCassiere@users.noreply.github.com> Date: Tue, 12 May 2026 11:00:41 +1200 Subject: [PATCH 259/414] chore: change `pull_request_target` to `pull_request event` for labeler workflow --- .github/workflows/labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 0665d3b7f84..7ec7479a0ee 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -1,7 +1,7 @@ name: Labeler on: - pull_request_target: + pull_request: permissions: contents: read From 6840460591008b365d3d65c6b26f1f427a5f06ee Mon Sep 17 00:00:00 2001 From: TkDodo Date: Tue, 12 May 2026 08:22:21 +0200 Subject: [PATCH 260/414] pull_request_target -> pull_request --- .github/workflows/detect-agent.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/detect-agent.yml b/.github/workflows/detect-agent.yml index a0aef83e186..3576325e785 100644 --- a/.github/workflows/detect-agent.yml +++ b/.github/workflows/detect-agent.yml @@ -1,7 +1,7 @@ name: Detect Agent on: - pull_request_target: + pull_request: types: [opened] workflow_dispatch: {} From e220149fccb2fc25415a0b41313d2988b4138068 Mon Sep 17 00:00:00 2001 From: Flo Date: Wed, 13 May 2026 12:17:39 +0200 Subject: [PATCH 261/414] ci: add zizmor workflow (#10700) * ci: add zizmor workflow * ci: clarify release checkout credentials * Update .github/workflows/release.yml --- .github/workflows/autofix.yml | 6 ++-- .github/workflows/detect-agent.yml | 10 ++++-- .github/workflows/labeler.yml | 9 +++--- .github/workflows/pr.yml | 49 ++++++++++++++++++++---------- .github/workflows/release.yml | 19 +++++++----- .github/workflows/zizmor.yml | 24 +++++++++++++++ 6 files changed, 85 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/zizmor.yml diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index fd98e9fb08b..b2db7d18b2c 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -18,9 +18,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Setup Tools - uses: TanStack/config/.github/setup@main + uses: TanStack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 - name: Fix formatting run: pnpm run format - name: Apply fixes diff --git a/.github/workflows/detect-agent.yml b/.github/workflows/detect-agent.yml index 3576325e785..42d564a6ace 100644 --- a/.github/workflows/detect-agent.yml +++ b/.github/workflows/detect-agent.yml @@ -5,15 +5,19 @@ on: types: [opened] workflow_dispatch: {} -permissions: - issues: write - pull-requests: write +permissions: {} jobs: detect: if: github.event_name != 'workflow_dispatch' + permissions: + issues: write + pull-requests: write uses: bombshell-dev/automation/.github/workflows/detect-agent.yml@a1553cebd9318d416f6a8e9f38f363b6aaa19c72 backfill: if: github.event_name == 'workflow_dispatch' + permissions: + issues: write + pull-requests: write uses: bombshell-dev/automation/.github/workflows/detect-agent-backfill.yml@a1553cebd9318d416f6a8e9f38f363b6aaa19c72 diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 7ec7479a0ee..e92ce68ae59 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -3,17 +3,18 @@ name: Labeler on: pull_request: -permissions: - contents: read - pull-requests: write +permissions: {} jobs: labeler: name: Labeler runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write steps: - name: Labeler - uses: actions/labeler@v6.0.1 + uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} configuration-path: labeler-config.yml diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 6e7d8c80a63..998938bfd22 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -10,26 +10,27 @@ concurrency: env: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} -permissions: - contents: read - pull-requests: write - issues: write +permissions: {} jobs: test: name: Test runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 + persist-credentials: false - name: Start Nx Agents run: npx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml" - name: Setup Tools - uses: TanStack/config/.github/setup@main + uses: TanStack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 - name: Get base and head commits for `nx affected` - uses: nrwl/nx-set-shas@v4.4.0 + uses: nrwl/nx-set-shas@3e9ad7370203c1e93d109be57f3b72eb0eb511b1 # v4.4.0 with: main-branch-name: main - name: Run Checks @@ -40,19 +41,25 @@ jobs: preview: name: Preview runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Setup Tools - uses: TanStack/config/.github/setup@main + uses: TanStack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 - name: Build Packages run: pnpm run build:all - name: Publish Previews run: pnpx pkg-pr-new publish --pnpm --compact './packages/*' --template './examples/*/*' - name: Determine commit SHA id: determine-sha - run: | - echo "COMMIT_SHA=${{ github.event.pull_request.head.sha || github.sha }}" >> $GITHUB_ENV + run: echo "COMMIT_SHA=${COMMIT_SHA}" >> "$GITHUB_ENV" + env: + COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }} - name: Size Limit uses: andresz1/size-limit-action@94bc357df29c36c8f8d50ea497c3e225c3c95d1d with: @@ -62,20 +69,30 @@ jobs: provenance: name: Provenance runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Check Provenance - uses: danielroe/provenance-action@v0.1.1 + uses: danielroe/provenance-action@41bcc969e579d9e29af08ba44fcbfdf95cee6e6c # v0.1.1 with: fail-on-downgrade: true version-preview: name: Version Preview runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + issues: write steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Setup Tools - uses: TanStack/config/.github/setup@main + uses: TanStack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 - name: Changeset Preview - uses: TanStack/config/.github/changeset-preview@main + uses: TanStack/config/.github/changeset-preview@e4b48f16568324f76f467aa4c2aac2f05db632c3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b76715680eb..3f0cee6c1b7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,21 +12,24 @@ env: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} permissions: - contents: write - id-token: write - pull-requests: write + contents: read jobs: release: name: Release runs-on: ubuntu-latest + permissions: + contents: write + id-token: write + pull-requests: write steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 + persist-credentials: true # changesets/action pushes version/release changes - name: Setup Tools - uses: TanStack/config/.github/setup@main + uses: TanStack/config/.github/setup@e4b48f16568324f76f467aa4c2aac2f05db632c3 - name: Run Build run: pnpm run build:all - name: Determine dist-tag @@ -45,7 +48,7 @@ jobs: fi - name: Create Release Pull Request or Publish id: changesets - uses: changesets/action@v1 + uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0 with: version: pnpm run changeset:version publish: pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }} @@ -55,7 +58,9 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create GitHub Release if: steps.changesets.outputs.published == 'true' - run: node scripts/create-github-release.mjs ${{ steps.dist-tag.outputs.prerelease == 'true' && '--prerelease' }} ${{ steps.dist-tag.outputs.latest == 'true' && '--latest' }} + run: node scripts/create-github-release.mjs ${PRERELEASE_FLAG} ${LATEST_FLAG} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PRERELEASE_FLAG: ${{ steps.dist-tag.outputs.prerelease == 'true' && '--prerelease' }} + LATEST_FLAG: ${{ steps.dist-tag.outputs.latest == 'true' && '--latest' }} diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml new file mode 100644 index 00000000000..86d4b5b30a2 --- /dev/null +++ b/.github/workflows/zizmor.yml @@ -0,0 +1,24 @@ +name: GitHub Actions Security Analysis + +on: + push: + branches: [main] + pull_request: + branches: ['**'] + +permissions: {} + +jobs: + zizmor: + name: Run zizmor + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - name: Run zizmor + uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3 + with: + advanced-security: false + annotations: true From 5dce547b66d72e8b9736c2c73ae83cc9367e2863 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 14 May 2026 01:03:45 +0900 Subject: [PATCH 262/414] test(query-devtools/Devtools): add test for query details panel auto-close when resizing below min height (#10698) * test(query-devtools/Devtools): add test for query details panel auto-close when resizing below min height * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 50d3fda4d7d..7b6552c55b4 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1076,6 +1076,49 @@ describe('Devtools', () => { Number(localStorage.getItem('TanstackQueryDevtools.width')), ).toBeGreaterThan(initialWidth) }) + + it('should close the query details panel when dragging shrinks the panel below the minimum height', () => { + queryClient.setQueryData(['shrink-below-min-height'], [{ id: 1 }]) + const rendered = renderDevtools({ + position: 'bottom', + initialIsOpen: true, + }) + + // Open the query details so `selectedQueryHash` is set. + fireEvent.click( + rendered.getByLabelText(/Query key \["shrink-below-min-height"\]/), + ) + expect(rendered.getByText('Query Details')).toBeInTheDocument() + + const handle = rendered.getByLabelText('Resize devtools panel') + const panel = handle.parentElement + expect(panel).toBeInstanceOf(HTMLElement) + // Stub the base size to a value just above the 56px (`3.5rem`) minimum so + // a small downward drag pushes `newSize` below `minHeight` and triggers + // the clamp branch that also resets `selectedQueryHash`. + vi.spyOn(panel!, 'getBoundingClientRect').mockReturnValue({ + height: 60, + width: 0, + x: 0, + y: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + toJSON: () => ({}), + }) + + // In `bottom` position, dragging the cursor down (`clientY` 100 → 200) + // shrinks the panel by 100px, which is well under the 56px minimum. + fireEvent.mouseDown(handle, { clientX: 0, clientY: 100 }) + fireEvent( + document, + new MouseEvent('mousemove', { clientX: 0, clientY: 200 }), + ) + fireEvent(document, new MouseEvent('mouseup')) + + expect(rendered.queryByText('Query Details')).not.toBeInTheDocument() + }) }) describe('online toggle', () => { From 28177f52873d263e3bdc1ee656da28c0d13ab17e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 14 May 2026 01:34:15 +0900 Subject: [PATCH 263/414] test(query-devtools/Devtools): add test for restoring previous query options after 'Trigger Loading' is clicked (#10701) * test(query-devtools/Devtools): add test for restoring previous query options after 'Trigger Loading' is clicked * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 7b6552c55b4..f0b3d58e681 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -561,6 +561,39 @@ describe('Devtools', () => { 'pending', ) }) + + it('should restore the previous query options when "Restore Loading" is clicked after "Trigger Loading"', async () => { + const queryFn = vi.fn(() => Promise.resolve('original')) + queryClient.prefetchQuery({ + queryKey: ['action-restore-loading'], + queryFn, + }) + await vi.advanceTimersByTimeAsync(0) + expect(queryFn).toHaveBeenCalledTimes(1) + + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click( + rendered.getByLabelText(/Query key \["action-restore-loading"\]/), + ) + + // First click puts the query into a pending state with `data: undefined` + // and stashes the original options in `fetchMeta.__previousQueryOptions`. + fireEvent.click(rendered.getByText('Trigger Loading')) + expect( + queryClient.getQueryState(['action-restore-loading'])?.status, + ).toBe('pending') + + // Second click runs `restoreQueryAfterLoadingOrError`, which cancels the + // never-resolving fetch and refetches with the stashed options. + fireEvent.click(rendered.getByText('Restore Loading')) + await vi.advanceTimersByTimeAsync(0) + + expect(queryFn).toHaveBeenCalledTimes(2) + expect(queryClient.getQueryData(['action-restore-loading'])).toBe( + 'original', + ) + }) }) describe('mutation details', () => { From 57f7301c5f5269139490a7821166760961385ee2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 14 May 2026 02:13:17 +0900 Subject: [PATCH 264/414] test(query-devtools/Devtools): add test for clamping the width when resizing below min width (#10702) * test(query-devtools/Devtools): add test for clamping the width when resizing below min width * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index f0b3d58e681..3ae1b72865e 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1110,6 +1110,60 @@ describe('Devtools', () => { ).toBeGreaterThan(initialWidth) }) + it('should clamp the width to the minimum when dragging shrinks the panel below the minimum width', () => { + const initialWidth = 200 + const rendered = renderDevtools( + { position: 'left', initialIsOpen: true }, + { 'TanstackQueryDevtools.width': String(initialWidth) }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + const panel = handle.parentElement + expect(panel).toBeInstanceOf(HTMLElement) + // `width` is read twice during drag: once as the base size, and again + // after the clamp to detect when the panel has hit its minimum. The + // first call returns `initialWidth`; the second returns `0` so the + // `localStore.width < newWidth` restore branch stays inactive and only + // the `newSize < minWidth` clamp is observed. + const getBoundingClientRect = vi + .spyOn(panel!, 'getBoundingClientRect') + .mockReturnValueOnce({ + height: 0, + width: initialWidth, + x: 0, + y: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + toJSON: () => ({}), + }) + getBoundingClientRect.mockReturnValue({ + height: 0, + width: 0, + x: 0, + y: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + toJSON: () => ({}), + }) + + // In `left` position, dragging the cursor left (`clientX` 100 → 0) + // shrinks the panel by 100px, which lands well under the 192px minimum. + fireEvent.mouseDown(handle, { clientX: 100, clientY: 0 }) + fireEvent( + document, + new MouseEvent('mousemove', { clientX: 0, clientY: 0 }), + ) + fireEvent(document, new MouseEvent('mouseup')) + + expect(Number(localStorage.getItem('TanstackQueryDevtools.width'))).toBe( + 192, + ) + }) + it('should close the query details panel when dragging shrinks the panel below the minimum height', () => { queryClient.setQueryData(['shrink-below-min-height'], [{ id: 1 }]) const rendered = renderDevtools({ From 299447b060267dcb24d36143c8361d816c7c0c90 Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Wed, 13 May 2026 22:06:20 +0100 Subject: [PATCH 265/414] fix(vue-query-devtools): use class attribute in templates (#10635) Co-authored-by: Damian Osipiuk --- .changeset/vue-devtools-class-attribute.md | 5 +++++ packages/vue-query-devtools/src/devtools.vue | 2 +- packages/vue-query-devtools/src/devtoolsPanel.vue | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/vue-devtools-class-attribute.md diff --git a/.changeset/vue-devtools-class-attribute.md b/.changeset/vue-devtools-class-attribute.md new file mode 100644 index 00000000000..1435da6a0df --- /dev/null +++ b/.changeset/vue-devtools-class-attribute.md @@ -0,0 +1,5 @@ +--- +'@tanstack/vue-query-devtools': patch +--- + +Use the Vue `class` attribute for devtools template containers. diff --git a/packages/vue-query-devtools/src/devtools.vue b/packages/vue-query-devtools/src/devtools.vue index 5a160482819..a46b7adbac0 100644 --- a/packages/vue-query-devtools/src/devtools.vue +++ b/packages/vue-query-devtools/src/devtools.vue @@ -40,5 +40,5 @@ onMounted(() => { diff --git a/packages/vue-query-devtools/src/devtoolsPanel.vue b/packages/vue-query-devtools/src/devtoolsPanel.vue index 605a632240c..80884daa6ec 100644 --- a/packages/vue-query-devtools/src/devtoolsPanel.vue +++ b/packages/vue-query-devtools/src/devtoolsPanel.vue @@ -45,5 +45,5 @@ onMounted(() => { From 139e67ccab2c8efba7c4dccdffa6f447350446ae Mon Sep 17 00:00:00 2001 From: palkim Date: Thu, 14 May 2026 06:12:23 +0900 Subject: [PATCH 266/414] fix(vue-query): allow computed ref as queryKey property in queryOptions (#10530) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(vue-query): allow computed ref as queryKey property in queryOptions Closes #10525 * fix(vue-query): widen queryKey to MaybeRefOrGetter to match enabled toValueDeep already calls `() => T` at runtime, so the queryKey type should accept the same reactive forms as enabled: Ref, ComputedRef, and getters. Adds a getter test and updates the changeset. --------- Co-authored-by: Dominik Dorfmeister 🔮 Co-authored-by: Damian Osipiuk --- ...ix-vue-query-options-query-key-reactive.md | 13 +++++++ .../src/__tests__/queryOptions.test-d.ts | 34 +++++++++++++++++++ packages/vue-query/src/queryOptions.ts | 16 +++++---- 3 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 .changeset/fix-vue-query-options-query-key-reactive.md diff --git a/.changeset/fix-vue-query-options-query-key-reactive.md b/.changeset/fix-vue-query-options-query-key-reactive.md new file mode 100644 index 00000000000..744a0d8b49e --- /dev/null +++ b/.changeset/fix-vue-query-options-query-key-reactive.md @@ -0,0 +1,13 @@ +--- +'@tanstack/vue-query': patch +--- + +fix(vue-query): allow reactive and getter values as `queryKey` property in `queryOptions` + +This fixes a regression introduced in #10452 where `queryOptions` only accepted plain arrays for the `queryKey` property, but not `computed` refs, `Ref` values, or getter functions. The related fix in #10465 only covered the `enabled` property. + +Now the `queryKey` property in `queryOptions` accepts the same reactive forms as `enabled`: +- Plain `QueryKey` arrays +- `Ref` +- `ComputedRef` +- `() => QueryKey` (getter) diff --git a/packages/vue-query/src/__tests__/queryOptions.test-d.ts b/packages/vue-query/src/__tests__/queryOptions.test-d.ts index 481dd808fc5..a3e8c6d0d41 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test-d.ts @@ -298,4 +298,38 @@ describe('queryOptions', () => { expectTypeOf(options.queryKey).not.toBeUndefined() }) + + it('should allow computed ref as queryKey', () => { + const id = ref('1') + + // This was broken in #10452, the #10465 fix only covered `enabled` + const options = queryOptions({ + queryKey: computed(() => ['foo', id.value] as const), + queryFn: () => Promise.resolve({ id: '1' }), + }) + + expectTypeOf(options.queryKey).not.toBeUndefined() + }) + + it('should allow ref as queryKey', () => { + const keyRef = ref(['foo', '1'] as const) + + const options = queryOptions({ + queryKey: keyRef, + queryFn: () => Promise.resolve({ id: '1' }), + }) + + expectTypeOf(options.queryKey).not.toBeUndefined() + }) + + it('should allow getter function as queryKey', () => { + const id = ref('1') + + const options = queryOptions({ + queryKey: () => ['foo', id.value] as const, + queryFn: () => Promise.resolve({ id: '1' }), + }) + + expectTypeOf(options.queryKey).not.toBeUndefined() + }) }) diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index bc0d578aebb..37e7f22b4f5 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -31,13 +31,15 @@ export type QueryOptions< TQueryData, DeepUnwrapRef >) - : QueryObserverOptions< - TQueryFnData, - TError, - TData, - TQueryData, - DeepUnwrapRef - >[Property] + : Property extends 'queryKey' + ? MaybeRefOrGetter + : QueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + DeepUnwrapRef + >[Property] } & ShallowOption export type UndefinedInitialQueryOptions< From 65b9b72713536bd0bf2ef40571a1e10bfa19ad19 Mon Sep 17 00:00:00 2001 From: Corbin Crutchley Date: Thu, 14 May 2026 02:06:25 -0400 Subject: [PATCH 267/414] chore: add CODEOWNERS file (#10703) * chore: add CODEOWNERS file * chore: add Nx configs * chore: add NPMRC --- .github/CODEOWNERS | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000000..ec376708852 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,6 @@ +.github/ @TanStack/tanstack-core +.nx/ @TanStack/tanstack-core +nx.json @TanStack/tanstack-core +.changeset/config.json @TanStack/tanstack-core +scripts/ @TanStack/tanstack-core +.npmrc @TanStack/tanstack-core \ No newline at end of file From 3ed5d63a7b0513d5e7a15606590016ae7eca583d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 18 May 2026 09:11:24 +0900 Subject: [PATCH 268/414] test(query-devtools/Explorer): add tests for primitive values and basic collection rendering (#10714) --- .../src/__tests__/Explorer.test.tsx | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 packages/query-devtools/src/__tests__/Explorer.test.tsx diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx new file mode 100644 index 00000000000..30bc632b316 --- /dev/null +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -0,0 +1,123 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import Explorer from '../Explorer' +import { QueryDevtoolsContext, ThemeContext } from '../contexts' + +// `goober` compiles every `css\`...\`` template literal at mount time; +// replace it with a no-op factory so label/role-based assertions stay fast. +vi.mock('goober', () => { + let counter = 0 + const css = Object.assign(() => `tsqd-${++counter}`, { + bind: () => css, + }) + return { css, glob: () => {}, setup: () => {} } +}) + +describe('Explorer', () => { + let queryClient: QueryClient + + beforeEach(() => { + queryClient = new QueryClient() + }) + + afterEach(() => { + queryClient.clear() + }) + + function renderExplorer(props: Parameters[0]) { + return render(() => ( + + 'dark'}> + + + + )) + } + + describe('primitive values', () => { + it('should render a "label: value" row for a string value', () => { + const rendered = renderExplorer({ label: 'name', value: 'Anna' }) + + expect(rendered.getByText('name:')).toBeInTheDocument() + expect(rendered.getByText('"Anna"')).toBeInTheDocument() + }) + + it('should render a "label: value" row for a number value', () => { + const rendered = renderExplorer({ label: 'count', value: 42 }) + + expect(rendered.getByText('count:')).toBeInTheDocument() + expect(rendered.getByText('42')).toBeInTheDocument() + }) + + it('should render a "label: value" row for a boolean value', () => { + const rendered = renderExplorer({ label: 'active', value: true }) + + expect(rendered.getByText('active:')).toBeInTheDocument() + expect(rendered.getByText('true')).toBeInTheDocument() + }) + + it('should render a "label: value" row for a "null" value', () => { + const rendered = renderExplorer({ label: 'missing', value: null }) + + expect(rendered.getByText('missing:')).toBeInTheDocument() + expect(rendered.getByText('null')).toBeInTheDocument() + }) + }) + + describe('arrays and objects', () => { + it('should render an empty object as a primitive row (no expander)', () => { + const rendered = renderExplorer({ label: 'data', value: {} }) + + expect(rendered.getByText('data:')).toBeInTheDocument() + expect(rendered.queryByRole('button', { expanded: false })).toBeNull() + }) + + it('should render an array with an expander showing the item count', () => { + const rendered = renderExplorer({ + label: 'list', + value: ['a', 'b', 'c'], + }) + + const expander = rendered.getByRole('button', { expanded: false }) + expect(expander).toBeInTheDocument() + expect(expander.textContent).toContain('list') + expect(expander.textContent).toContain('3 items') + }) + + it('should render children under their index labels when the array expander is clicked', () => { + const rendered = renderExplorer({ + label: 'list', + value: ['a', 'b'], + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.getByText('0:')).toBeInTheDocument() + expect(rendered.getByText('1:')).toBeInTheDocument() + expect(rendered.getByText('"a"')).toBeInTheDocument() + expect(rendered.getByText('"b"')).toBeInTheDocument() + }) + + it('should render object entries under their keys when expanded', () => { + const rendered = renderExplorer({ + label: 'user', + value: { name: 'Anna', age: 30 }, + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.getByText('name:')).toBeInTheDocument() + expect(rendered.getByText('"Anna"')).toBeInTheDocument() + expect(rendered.getByText('age:')).toBeInTheDocument() + expect(rendered.getByText('30')).toBeInTheDocument() + }) + }) +}) From 334161f2f511689b3998c6e041d9c25f792a2721 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 18 May 2026 09:38:20 +0900 Subject: [PATCH 269/414] test(query-devtools/Explorer): add tests for 'Map' and iterable rendering branches (#10721) --- .../src/__tests__/Explorer.test.tsx | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index 30bc632b316..a242cc19cba 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -120,4 +120,44 @@ describe('Explorer', () => { expect(rendered.getByText('30')).toBeInTheDocument() }) }) + + describe('Map and iterable values', () => { + it('should preserve "Map" keys as labels when expanded', () => { + const rendered = renderExplorer({ + label: 'm', + value: new Map([ + ['first', 1], + ['second', 2], + ]), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.getByText('first:')).toBeInTheDocument() + expect(rendered.getByText('second:')).toBeInTheDocument() + }) + + it('should mark an iterable value with an "(Iterable)" prefix on the expander', () => { + const rendered = renderExplorer({ + label: 's', + value: new Set(['x', 'y']), + }) + + expect( + rendered.getByRole('button', { expanded: false }).textContent, + ).toContain('(Iterable)') + }) + + it('should render iterable children under their numeric index when expanded', () => { + const rendered = renderExplorer({ + label: 's', + value: new Set(['x', 'y']), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.getByText('0:')).toBeInTheDocument() + expect(rendered.getByText('1:')).toBeInTheDocument() + }) + }) }) From 3e85350749751eef055fffb65f6838dfafa74891 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 21:44:23 +0200 Subject: [PATCH 270/414] ci: Version Packages (#10706) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- ...ix-vue-query-options-query-key-reactive.md | 13 - .changeset/vue-devtools-class-attribute.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/lit/basic/package.json | 4 +- examples/lit/pagination/package.json | 4 +- examples/lit/ssr/package.json | 4 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/lit-query/CHANGELOG.md | 7 + packages/lit-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 10 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 17 ++ packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 258 +++++++++--------- 115 files changed, 467 insertions(+), 301 deletions(-) delete mode 100644 .changeset/fix-vue-query-options-query-key-reactive.md delete mode 100644 .changeset/vue-devtools-class-attribute.md diff --git a/.changeset/fix-vue-query-options-query-key-reactive.md b/.changeset/fix-vue-query-options-query-key-reactive.md deleted file mode 100644 index 744a0d8b49e..00000000000 --- a/.changeset/fix-vue-query-options-query-key-reactive.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -'@tanstack/vue-query': patch ---- - -fix(vue-query): allow reactive and getter values as `queryKey` property in `queryOptions` - -This fixes a regression introduced in #10452 where `queryOptions` only accepted plain arrays for the `queryKey` property, but not `computed` refs, `Ref` values, or getter functions. The related fix in #10465 only covered the `enabled` property. - -Now the `queryKey` property in `queryOptions` accepts the same reactive forms as `enabled`: -- Plain `QueryKey` arrays -- `Ref` -- `ComputedRef` -- `() => QueryKey` (getter) diff --git a/.changeset/vue-devtools-class-attribute.md b/.changeset/vue-devtools-class-attribute.md deleted file mode 100644 index 1435da6a0df..00000000000 --- a/.changeset/vue-devtools-class-attribute.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/vue-query-devtools': patch ---- - -Use the Vue `class` attribute for devtools template containers. diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 1ade6caab0b..febb49bc7ad 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 608337f9715..544fe014a87 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", - "@tanstack/angular-query-persist-client": "^5.100.10", - "@tanstack/query-async-storage-persister": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-persist-client": "^5.100.11", + "@tanstack/query-async-storage-persister": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 2d58e42992b..88c52ccc131 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index d788d3009ca..a959e39e831 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 07f919009db..ecd847d901b 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 4a3174277c0..0b408d1b660 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index b6effa02a34..2acfec4bdef 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 81049a0ecae..2354daf47fc 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index dc3f06dff47..856000aaa24 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 8622d8ee54d..25725e04a03 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 2aaa8ceb4dc..8aead27b6cd 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index 6643996a84f..8e701b6554e 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.1", - "@tanstack/query-core": "^5.100.10", + "@tanstack/lit-query": "^0.2.2", + "@tanstack/query-core": "^5.100.11", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index 957df29070e..a90220cef38 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.1", - "@tanstack/query-core": "^5.100.10", + "@tanstack/lit-query": "^0.2.2", + "@tanstack/query-core": "^5.100.11", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index 13a942263ae..00bd216c31b 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -8,8 +8,8 @@ }, "dependencies": { "@lit-labs/ssr": "^3.3.0", - "@tanstack/lit-query": "^0.2.1", - "@tanstack/query-core": "^5.100.10", + "@tanstack/lit-query": "^0.2.2", + "@tanstack/query-core": "^5.100.11", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 2844f35c2bc..df121c07b1f 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.10", + "@tanstack/preact-query": "^5.100.11", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 9e0d4fe60b4..532192f6fdb 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.10", + "@tanstack/eslint-plugin-query": "^5.100.11", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index f968c9a10f8..2e74e57b0c0 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index f5f27c05858..f98c06840f9 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 646653aa83a..1673e90248e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.10", - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", - "@tanstack/react-query-persist-client": "^5.100.10", + "@tanstack/query-async-storage-persister": "^5.100.11", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query-persist-client": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.10", + "@tanstack/eslint-plugin-query": "^5.100.11", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 9e5950cbcb8..1ad174ab5ca 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index bd954ae174b..6ba10592357 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index ca748f162c9..a04cf3f8153 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 5628dde1570..dea2990d6b8 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.10", - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", - "@tanstack/react-query-persist-client": "^5.100.10", + "@tanstack/query-async-storage-persister": "^5.100.11", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query-persist-client": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.10", + "@tanstack/eslint-plugin-query": "^5.100.11", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index a38ef6616b8..c32411b4174 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", + "@tanstack/react-query": "^5.100.11", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.10", + "@tanstack/eslint-plugin-query": "^5.100.11", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b87d10afddc..afeb5f5db2c 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 30982ded5db..e6c59f94e84 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index c10e680910b..9c513f2cf0a 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 3bcc690c40a..80743d8a323 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", - "@tanstack/react-query-next-experimental": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query-next-experimental": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 5f1a5649afa..9d937f509d9 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index a28896e226d..470445a844f 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.10", + "@tanstack/query-async-storage-persister": "^5.100.11", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", - "@tanstack/react-query-persist-client": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query-persist-client": "^5.100.11", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 3975944e284..f7e076fc344 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 5a7d471a4d8..85eb4c83ee1 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 518c6a2467f..1070ecbbecd 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 05d8ad19590..56ab13f63e6 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index f3e421bf9e8..4569c302373 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 50cbc0b4ce4..2bcf197b543 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 1fb67565d3e..07ac7839cd1 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index e69cbdd8e40..0add8cb0861 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 30a027076de..32d4e29ef48 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 9aaae1fffa5..f6cc746e2dc 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 4ead29168ec..b0bcbf9d1cd 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index d49f0aebc64..cc7f42897cd 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 69664eed55d..f9d2483476d 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.10", - "@tanstack/solid-query-devtools": "^5.100.10", + "@tanstack/solid-query": "^5.100.11", + "@tanstack/solid-query-devtools": "^5.100.11", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index f24c869ccad..9de064b1e80 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.10", - "@tanstack/solid-query-devtools": "^5.100.10", + "@tanstack/solid-query": "^5.100.11", + "@tanstack/solid-query-devtools": "^5.100.11", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 009993fedba..fd925c7a1bb 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.10", - "@tanstack/solid-query-devtools": "^5.100.10", + "@tanstack/solid-query": "^5.100.11", + "@tanstack/solid-query-devtools": "^5.100.11", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 95362ea23d6..0f3b643c577 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.10", - "@tanstack/solid-query-devtools": "^5.100.10", + "@tanstack/solid-query": "^5.100.11", + "@tanstack/solid-query-devtools": "^5.100.11", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 050ba1f46f1..ef41a5a6e9a 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.10", - "@tanstack/solid-query": "^5.100.10", - "@tanstack/solid-query-devtools": "^5.100.10", - "@tanstack/solid-query-persist-client": "^5.100.10", + "@tanstack/query-async-storage-persister": "^5.100.11", + "@tanstack/solid-query": "^5.100.11", + "@tanstack/solid-query-devtools": "^5.100.11", + "@tanstack/solid-query-persist-client": "^5.100.11", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index e24b7a1883e..7d73e27dd95 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.10", - "@tanstack/solid-query-devtools": "^5.100.10", + "@tanstack/solid-query": "^5.100.11", + "@tanstack/solid-query-devtools": "^5.100.11", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.10", + "@tanstack/eslint-plugin-query": "^5.100.11", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 13d5cdd0482..b2afd03ecf3 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.10", - "@tanstack/solid-query-devtools": "^5.100.10", + "@tanstack/solid-query": "^5.100.11", + "@tanstack/solid-query-devtools": "^5.100.11", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 2f7fdf84144..831dec12ded 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29" + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 9fe9f4eabae..7046d743908 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.10", - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29", - "@tanstack/svelte-query-persist-client": "^6.1.29" + "@tanstack/query-async-storage-persister": "^5.100.11", + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30", + "@tanstack/svelte-query-persist-client": "^6.1.30" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 985b3b5aefa..b0af7297451 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29" + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index df86861fb80..04e0b5cd2bc 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29" + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index f84e5e14a30..7a7df95f3fa 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29" + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index acb6d3d1355..d763e3852ef 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29" + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 25924465e4a..e9fd288546e 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29" + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 0d21b1d1a9e..253f2fbf76e 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.29", - "@tanstack/svelte-query-devtools": "^6.1.29" + "@tanstack/svelte-query": "^6.1.30", + "@tanstack/svelte-query-devtools": "^6.1.30" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 12c4ec5fa30..2e449b7968a 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.10", - "@tanstack/vue-query-devtools": "^6.1.29", + "@tanstack/vue-query": "^5.100.11", + "@tanstack/vue-query-devtools": "^6.1.30", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 21b68733e72..3073ad2f5c1 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.10", + "@tanstack/vue-query": "^5.100.11", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index f1415d72656..158c7f42d72 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.10", - "@tanstack/query-persist-client-core": "^5.100.10", - "@tanstack/query-sync-storage-persister": "^5.100.10", - "@tanstack/vue-query": "^5.100.10", + "@tanstack/query-core": "^5.100.11", + "@tanstack/query-persist-client-core": "^5.100.11", + "@tanstack/query-sync-storage-persister": "^5.100.11", + "@tanstack/vue-query": "^5.100.11", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 6f88a371768..f2736b452c1 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.10", - "@tanstack/vue-query-devtools": "^6.1.29", + "@tanstack/vue-query": "^5.100.11", + "@tanstack/vue-query-devtools": "^6.1.30", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index de01d72e657..31a6499a436 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.10", + "@tanstack/angular-query-experimental": "^5.100.11", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index e7375c1a445..c3589fdf3b1 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 6a6c7c5c592..fc1aab2a2bc 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.10", + "version": "5.100.11", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index a75741bdfa5..cf9ed5091ae 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.11 + - @tanstack/query-persist-client-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index c1da9c0c573..f20b9373223 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.10", + "version": "5.100.11", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 5e4c6c4697a..b7c88956a9e 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.11 + ## 5.100.10 ## 5.100.9 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index fa726ff9731..c0145aad6f9 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.10", + "version": "5.100.11", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/lit-query/CHANGELOG.md b/packages/lit-query/CHANGELOG.md index 1f0c0521165..c797a777958 100644 --- a/packages/lit-query/CHANGELOG.md +++ b/packages/lit-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/lit-query +## 0.2.2 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 0.2.1 ### Patch Changes diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index 2a09ad21fde..786540938e5 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-query", - "version": "0.2.1", + "version": "0.2.2", "description": "Lit adapter for TanStack Query Core", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 36f59236ea5..94b543a64b8 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.11 + - @tanstack/query-devtools@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index b9ad74c3925..28c5be2dd2b 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.10", + "version": "5.100.11", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 359522647fd..be90f688fdb 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.11 + - @tanstack/query-persist-client-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index acfa1b788a0..6df627dc4a6 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.10", + "version": "5.100.11", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index 6c3d7f40c32..e6c05c1ea9b 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 247633b974f..e203fe73e81 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.10", + "version": "5.100.11", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 25e1e3695f4..5d5814a6f35 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + - @tanstack/query-persist-client-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 5e37a43553e..3e427ae4c98 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.10", + "version": "5.100.11", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index aaf596edf3c..3aa59cfca1b 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 779323f923f..22eef418672 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.10", + "version": "5.100.11", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index e76cb4ea9de..1226463e69e 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.11 + ## 5.100.10 ## 5.100.9 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 783d85b77e9..1a3505d9304 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.10", + "version": "5.100.11", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 935fa8f8f4b..2604e805283 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 8ccc13e1273..eac6ef297b1 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.10", + "version": "5.100.11", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 40776df272f..a6f7d42b4bf 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 17984d1049a..f1e3d3695eb 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.10", + "version": "5.100.11", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 061cb67468a..6e292112ed6 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + - @tanstack/query-persist-client-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 18163d34b8a..5612909b9ee 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.10", + "version": "5.100.11", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index dc3f92e4f45..ec3b3527081 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.11 + - @tanstack/react-query@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index cbcbaf5a863..9f0fcc6db1c 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.10", + "version": "5.100.11", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index f6ccd43f6c2..243471db882 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index ff68340a015..9187a585a6d 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.10", + "version": "5.100.11", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 30c40f5a343..af0cebb6bd0 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.11 + - @tanstack/react-query@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 79614de39bd..76d096a1416 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.10", + "version": "5.100.11", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index dc9408410b4..c9c5e9a08cf 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index b456b31386f..90e560b6db0 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.10", + "version": "5.100.11", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 778d042aba1..e84f03f13b5 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.11 + - @tanstack/solid-query@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 3457bf73797..21e8e1b4e07 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.10", + "version": "5.100.11", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 562a792e3f1..eb7d18c3649 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.11 + - @tanstack/solid-query@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index ee301b267be..37c0ced7e78 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.10", + "version": "5.100.11", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index c1889bf2998..296e66247ba 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.11 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 66d3efce6fb..ca5d339fe81 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.10", + "version": "5.100.11", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 1c07df9a4f2..0801c96a231 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.30 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.11 + - @tanstack/svelte-query@6.1.30 + ## 6.1.29 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 0a9735b5d0c..8f46e01f69f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.29", + "version": "6.1.30", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index d25aa16db6a..3a93c5ef530 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.30 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.11 + - @tanstack/svelte-query@6.1.30 + ## 6.1.29 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 019a0b4f48a..97891f5fb6f 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.29", + "version": "6.1.30", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 645228d8e94..6fd1cc49c3d 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.30 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 6.1.29 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 0830b4906ab..73d849e7657 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.29", + "version": "6.1.30", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 248424546f7..110c01a8ecc 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/vue-query-devtools +## 6.1.30 + +### Patch Changes + +- Use the Vue `class` attribute for devtools template containers. ([#10635](https://github.com/TanStack/query/pull/10635)) + +- Updated dependencies [[`139e67c`](https://github.com/TanStack/query/commit/139e67ccab2c8efba7c4dccdffa6f447350446ae)]: + - @tanstack/vue-query@5.100.11 + - @tanstack/query-devtools@5.100.11 + ## 6.1.29 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 6a21d5f8d77..74caf2cf18d 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.29", + "version": "6.1.30", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 8f81fd91e0f..4960f0e1064 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,22 @@ # @tanstack/vue-query +## 5.100.11 + +### Patch Changes + +- fix(vue-query): allow reactive and getter values as `queryKey` property in `queryOptions` ([#10530](https://github.com/TanStack/query/pull/10530)) + + This fixes a regression introduced in #10452 where `queryOptions` only accepted plain arrays for the `queryKey` property, but not `computed` refs, `Ref` values, or getter functions. The related fix in #10465 only covered the `enabled` property. + + Now the `queryKey` property in `queryOptions` accepts the same reactive forms as `enabled`: + - Plain `QueryKey` arrays + - `Ref` + - `ComputedRef` + - `() => QueryKey` (getter) + +- Updated dependencies []: + - @tanstack/query-core@5.100.11 + ## 5.100.10 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index fb6dbbd6f33..499ba290f77 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.10", + "version": "5.100.11", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d17befd221..091a1ee3bde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -209,7 +209,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -249,13 +249,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -298,7 +298,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -338,7 +338,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -381,7 +381,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -421,7 +421,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -464,7 +464,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -507,7 +507,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -550,7 +550,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -590,7 +590,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -618,10 +618,10 @@ importers: examples/lit/basic: dependencies: '@tanstack/lit-query': - specifier: ^0.2.1 + specifier: ^0.2.2 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -637,10 +637,10 @@ importers: examples/lit/pagination: dependencies: '@tanstack/lit-query': - specifier: ^0.2.1 + specifier: ^0.2.2 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -659,10 +659,10 @@ importers: specifier: ^3.3.0 version: 3.3.1 '@tanstack/lit-query': - specifier: ^0.2.1 + specifier: ^0.2.2 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -684,7 +684,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -712,10 +712,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -725,7 +725,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -746,10 +746,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -774,16 +774,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -793,7 +793,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -814,10 +814,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -842,10 +842,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -873,10 +873,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -898,10 +898,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -923,16 +923,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -942,7 +942,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -963,14 +963,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -985,10 +985,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1013,10 +1013,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1044,10 +1044,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1072,10 +1072,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1100,13 +1100,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1131,19 +1131,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1171,10 +1171,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1199,10 +1199,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1227,10 +1227,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1255,10 +1255,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1280,10 +1280,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1317,10 +1317,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1369,10 +1369,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1421,10 +1421,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1458,10 +1458,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1489,10 +1489,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1514,10 +1514,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1551,10 +1551,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1597,10 +1597,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1618,10 +1618,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1640,10 +1640,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1668,10 +1668,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1690,16 +1690,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1721,17 +1721,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1755,10 +1755,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1770,10 +1770,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1801,16 +1801,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1838,10 +1838,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1869,10 +1869,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1900,10 +1900,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1931,10 +1931,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1959,10 +1959,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1990,10 +1990,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -2027,10 +2027,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2049,7 +2049,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2068,16 +2068,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2099,10 +2099,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.29 + specifier: ^6.1.30 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2139,7 +2139,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.10 + specifier: ^5.100.11 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From caace8526d37b69ea4bd0983c5c77ab1c27465f1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 19 May 2026 09:57:19 +0900 Subject: [PATCH 271/414] test(query-devtools/Explorer): add tests for 'defaultExpanded' and pagination behavior (#10727) --- .../src/__tests__/Explorer.test.tsx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index a242cc19cba..60b3d1af337 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -160,4 +160,57 @@ describe('Explorer', () => { expect(rendered.getByText('1:')).toBeInTheDocument() }) }) + + describe('"defaultExpanded"', () => { + it('should render children eagerly when the label is in "defaultExpanded"', () => { + const rendered = renderExplorer({ + label: 'list', + value: ['a'], + defaultExpanded: ['list'], + }) + + expect( + rendered.getByRole('button', { expanded: true }), + ).toBeInTheDocument() + expect(rendered.getByText('0:')).toBeInTheDocument() + }) + }) + + describe('pagination', () => { + it('should group entries into 100-item pages when the array has more than 100 entries', () => { + const rendered = renderExplorer({ + label: 'big', + value: Array.from({ length: 101 }, (_, i) => i), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.getByText('[0...99]')).toBeInTheDocument() + expect(rendered.getByText('[100...199]')).toBeInTheDocument() + }) + + it('should keep the items of a page hidden until the page header is clicked', () => { + const rendered = renderExplorer({ + label: 'big', + value: Array.from({ length: 101 }, (_, i) => `item-${i}`), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.queryByText('0:')).toBeNull() + }) + + it('should reveal the items of a page when the page header is clicked', () => { + const rendered = renderExplorer({ + label: 'big', + value: Array.from({ length: 101 }, (_, i) => `item-${i}`), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + fireEvent.click(rendered.getByText('[0...99]')) + + expect(rendered.getByText('0:')).toBeInTheDocument() + expect(rendered.getByText('"item-0"')).toBeInTheDocument() + }) + }) }) From 57f8ec7b49c766799fb28380a04a9891fe7e5293 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 19 May 2026 10:29:15 +0900 Subject: [PATCH 272/414] test(query-devtools/Explorer): add tests for action menu buttons (#10729) * test(query-devtools/Explorer): add tests for action menu buttons * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Explorer.test.tsx | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index 60b3d1af337..e6ac7816169 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -3,6 +3,7 @@ import { fireEvent, render } from '@solidjs/testing-library' import { QueryClient, onlineManager } from '@tanstack/query-core' import Explorer from '../Explorer' import { QueryDevtoolsContext, ThemeContext } from '../contexts' +import type { Query } from '@tanstack/query-core' // `goober` compiles every `css\`...\`` template literal at mount time; // replace it with a no-op factory so label/role-based assertions stay fast. @@ -176,6 +177,119 @@ describe('Explorer', () => { }) }) + describe('action menu', () => { + it('should copy the serialized value to the clipboard when the copy button is clicked', () => { + const writeText = vi.fn().mockResolvedValue(undefined) + vi.stubGlobal('navigator', { clipboard: { writeText } }) + queryClient.setQueryData(['data'], { name: 'Anna' }) + + const rendered = renderExplorer({ + label: 'data', + value: { name: 'Anna' }, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + fireEvent.click(rendered.getByLabelText('Copy object to clipboard')) + + expect(writeText).toHaveBeenCalledTimes(1) + const [arg] = writeText.mock.calls[0]! + expect(JSON.parse(arg as string)).toMatchObject({ + json: { name: 'Anna' }, + }) + }) + + it('should clear array items via "setQueryData" when the clear-array button is clicked', () => { + queryClient.setQueryData(['data'], ['a', 'b', 'c']) + + const rendered = renderExplorer({ + label: 'list', + value: ['a', 'b', 'c'], + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + fireEvent.click(rendered.getByLabelText('Remove all items')) + + expect(queryClient.getQueryData(['data'])).toEqual([]) + }) + + it('should delete the entry at the current "dataPath" when the delete button is clicked', () => { + queryClient.setQueryData(['data'], ['a', 'b', 'c']) + + const rendered = renderExplorer({ + label: 'list', + value: ['a', 'b', 'c'], + editable: true, + itemsDeletable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + dataPath: ['1'], + }) + + fireEvent.click(rendered.getByLabelText('Delete item')) + + expect(queryClient.getQueryData(['data'])).toEqual(['a', 'c']) + }) + + it('should toggle a boolean value via "setQueryData" when the toggle button is clicked', () => { + queryClient.setQueryData(['data'], { flag: true }) + + const rendered = renderExplorer({ + label: 'flag', + value: true, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + dataPath: ['flag'], + }) + + fireEvent.click(rendered.getByLabelText('Toggle value')) + + expect(queryClient.getQueryData(['data'])).toEqual({ flag: false }) + }) + + it('should not render action buttons when "editable" is false', () => { + queryClient.setQueryData(['data'], ['a']) + + const rendered = renderExplorer({ + label: 'list', + value: ['a'], + editable: false, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + expect(rendered.queryByLabelText('Copy object to clipboard')).toBeNull() + expect(rendered.queryByLabelText('Remove all items')).toBeNull() + }) + + it('should not render "ClearArrayButton" when value is not an array', () => { + queryClient.setQueryData(['data'], { name: 'Anna' }) + + const rendered = renderExplorer({ + label: 'user', + value: { name: 'Anna' }, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + expect(rendered.queryByLabelText('Remove all items')).toBeNull() + expect( + rendered.getByLabelText('Copy object to clipboard'), + ).toBeInTheDocument() + }) + }) + describe('pagination', () => { it('should group entries into 100-item pages when the array has more than 100 entries', () => { const rendered = renderExplorer({ From a4cebdb45a87fd96ce7d279fabacf8f2ab11135f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 19 May 2026 11:15:50 +0900 Subject: [PATCH 273/414] test(query-devtools/Explorer): add tests for inline edit on primitive rows (#10731) * test(query-devtools/Explorer): add tests for inline edit on primitive rows * test(query-devtools/Explorer): explicitly provide 'valueAsNumber' in change event payload --- .../src/__tests__/Explorer.test.tsx | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index e6ac7816169..d6aa870a3c1 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -327,4 +327,83 @@ describe('Explorer', () => { expect(rendered.getByText('"item-0"')).toBeInTheDocument() }) }) + + describe('inline edit', () => { + it('should write the new string value via "setQueryData" when a text input is changed', () => { + queryClient.setQueryData(['data'], { name: 'Anna' }) + + const rendered = renderExplorer({ + label: 'name', + value: 'Anna', + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + dataPath: ['name'], + }) + + const input = rendered.getByLabelText('name:') + expect(input).toHaveAttribute('type', 'text') + + fireEvent.change(input, { target: { value: 'Bob' } }) + + expect(queryClient.getQueryData(['data'])).toEqual({ name: 'Bob' }) + }) + + it('should write the new number value via "setQueryData" when a number input is changed', () => { + queryClient.setQueryData(['data'], { count: 1 }) + + const rendered = renderExplorer({ + label: 'count', + value: 1, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + dataPath: ['count'], + }) + + const input = rendered.getByLabelText('count:') + expect(input).toHaveAttribute('type', 'number') + + fireEvent.change(input, { + target: { value: '42', valueAsNumber: 42 }, + }) + + expect(queryClient.getQueryData(['data'])).toEqual({ count: 42 }) + }) + + it('should render "ToggleValueButton" inline for a boolean primitive row', () => { + queryClient.setQueryData(['data'], { flag: false }) + + const rendered = renderExplorer({ + label: 'flag', + value: false, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + dataPath: ['flag'], + }) + + expect(rendered.getByLabelText('Toggle value')).toBeInTheDocument() + }) + + it('should render "DeleteItemButton" inline when a primitive row has "itemsDeletable"', () => { + queryClient.setQueryData(['data'], { name: 'Anna' }) + + const rendered = renderExplorer({ + label: 'name', + value: 'Anna', + editable: true, + itemsDeletable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + dataPath: ['name'], + }) + + expect(rendered.getByLabelText('Delete item')).toBeInTheDocument() + }) + }) }) From 359184ebc159513772dff1209bd0beaca39fbbae Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 19 May 2026 21:53:48 +0900 Subject: [PATCH 274/414] test(query-devtools/Explorer): add test for 'CopyButton' error state on clipboard failure (#10734) --- .../src/__tests__/Explorer.test.tsx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index d6aa870a3c1..fb94f5695e5 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -19,10 +19,12 @@ describe('Explorer', () => { let queryClient: QueryClient beforeEach(() => { + vi.useFakeTimers() queryClient = new QueryClient() }) afterEach(() => { + vi.useRealTimers() queryClient.clear() }) @@ -201,6 +203,35 @@ describe('Explorer', () => { }) }) + it('should switch the copy button to an error state when clipboard write fails', async () => { + const writeText = vi.fn().mockRejectedValue(new Error('denied')) + vi.stubGlobal('navigator', { clipboard: { writeText } }) + const consoleError = vi + .spyOn(console, 'error') + .mockImplementation(() => {}) + queryClient.setQueryData(['data'], { name: 'Anna' }) + + const rendered = renderExplorer({ + label: 'data', + value: { name: 'Anna' }, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + fireEvent.click(rendered.getByLabelText('Copy object to clipboard')) + await vi.advanceTimersByTimeAsync(0) + + expect( + rendered.getByLabelText('Error copying object to clipboard'), + ).toBeInTheDocument() + expect(consoleError).toHaveBeenCalledWith( + 'Failed to copy: ', + expect.any(Error), + ) + }) + it('should clear array items via "setQueryData" when the clear-array button is clicked', () => { queryClient.setQueryData(['data'], ['a', 'b', 'c']) From e3ebf3f2424b00e8fe96ee590c0835a92a57283c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 20 May 2026 10:12:36 +0900 Subject: [PATCH 275/414] test(query-devtools/Explorer): add test for independently toggling two pages (#10737) --- .../src/__tests__/Explorer.test.tsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index fb94f5695e5..d3424cd28f0 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -357,6 +357,25 @@ describe('Explorer', () => { expect(rendered.getByText('0:')).toBeInTheDocument() expect(rendered.getByText('"item-0"')).toBeInTheDocument() }) + + it('should independently toggle two pages when their headers are clicked', () => { + const rendered = renderExplorer({ + label: 'big', + value: Array.from({ length: 200 }, (_, i) => `item-${i}`), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + fireEvent.click(rendered.getByText('[0...99]')) + fireEvent.click(rendered.getByText('[100...199]')) + + expect(rendered.getByText('"item-0"')).toBeInTheDocument() + expect(rendered.getByText('"item-100"')).toBeInTheDocument() + + fireEvent.click(rendered.getByText('[0...99]')) + + expect(rendered.queryByText('"item-0"')).toBeNull() + expect(rendered.getByText('"item-100"')).toBeInTheDocument() + }) }) describe('inline edit', () => { From 48b7d660fa7a8c6f52ea8efd4958d10db9db30bf Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 20 May 2026 10:38:47 +0900 Subject: [PATCH 276/414] test(query-devtools/Explorer): add tests for resetting 'CopyButton' state after success and failure (#10738) --- .../src/__tests__/Explorer.test.tsx | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index d3424cd28f0..accb25f4368 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -232,6 +232,63 @@ describe('Explorer', () => { ) }) + it('should reset the copy button to the idle state 1500ms after a successful copy', async () => { + const writeText = vi.fn().mockResolvedValue(undefined) + vi.stubGlobal('navigator', { clipboard: { writeText } }) + queryClient.setQueryData(['data'], { name: 'Anna' }) + + const rendered = renderExplorer({ + label: 'data', + value: { name: 'Anna' }, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + fireEvent.click(rendered.getByLabelText('Copy object to clipboard')) + await vi.advanceTimersByTimeAsync(0) + + expect( + rendered.getByLabelText('Object copied to clipboard'), + ).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(1500) + + expect( + rendered.getByLabelText('Copy object to clipboard'), + ).toBeInTheDocument() + }) + + it('should reset the copy button to the idle state 1500ms after a failed copy', async () => { + const writeText = vi.fn().mockRejectedValue(new Error('denied')) + vi.stubGlobal('navigator', { clipboard: { writeText } }) + vi.spyOn(console, 'error').mockImplementation(() => {}) + queryClient.setQueryData(['data'], { name: 'Anna' }) + + const rendered = renderExplorer({ + label: 'data', + value: { name: 'Anna' }, + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + fireEvent.click(rendered.getByLabelText('Copy object to clipboard')) + await vi.advanceTimersByTimeAsync(0) + + expect( + rendered.getByLabelText('Error copying object to clipboard'), + ).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(1500) + + expect( + rendered.getByLabelText('Copy object to clipboard'), + ).toBeInTheDocument() + }) + it('should clear array items via "setQueryData" when the clear-array button is clicked', () => { queryClient.setQueryData(['data'], ['a', 'b', 'c']) From e196f9fc352a42e8cd9efbd45b8a6f7c4414095c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 20 May 2026 20:02:28 +0900 Subject: [PATCH 277/414] test(query-devtools/Explorer): add test for deleting fields via inline delete buttons (#10742) --- .../src/__tests__/Explorer.test.tsx | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index accb25f4368..eb4422d2828 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { fireEvent, render } from '@solidjs/testing-library' +import { fireEvent, render, within } from '@solidjs/testing-library' import { QueryClient, onlineManager } from '@tanstack/query-core' import Explorer from '../Explorer' import { QueryDevtoolsContext, ThemeContext } from '../contexts' @@ -512,5 +512,30 @@ describe('Explorer', () => { expect(rendered.getByLabelText('Delete item')).toBeInTheDocument() }) + + it('should delete fields from the active query when their inline delete buttons are clicked', () => { + const value = { name: 'Anna', age: 30 } + queryClient.setQueryData(['data'], value) + + const rendered = renderExplorer({ + label: 'Data', + value, + defaultExpanded: ['Data'], + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + const ageRow = rendered.getByText('age:').parentElement! + fireEvent.click(within(ageRow).getByLabelText('Delete item')) + + expect(queryClient.getQueryData(['data'])).toEqual({ name: 'Anna' }) + + const nameRow = rendered.getByText('name:').parentElement! + fireEvent.click(within(nameRow).getByLabelText('Delete item')) + + expect(queryClient.getQueryData(['data'])).toEqual({}) + }) }) }) From ec4a59a47325e59d7991d00e05498053c47598ae Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 20 May 2026 20:50:25 +0900 Subject: [PATCH 278/414] test(query-devtools/Explorer): add test for action buttons rendered inside a paginated page (#10743) * test(query-devtools/Explorer): add test for action buttons rendered inside a paginated page * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Explorer.test.tsx | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index eb4422d2828..fb329a98db3 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -433,6 +433,30 @@ describe('Explorer', () => { expect(rendered.queryByText('"item-0"')).toBeNull() expect(rendered.getByText('"item-100"')).toBeInTheDocument() }) + + it('should render action buttons for items inside a paginated page', () => { + const value: Array> = Array.from( + { length: 200 }, + (_, i) => [i], + ) + queryClient.setQueryData(['data'], value) + + const rendered = renderExplorer({ + label: 'Data', + value, + defaultExpanded: ['Data'], + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }) + + fireEvent.click(rendered.getByText('[0...99]')) + + expect( + rendered.getAllByLabelText('Remove all items').length, + ).toBeGreaterThan(1) + }) }) describe('inline edit', () => { From 3a5753f94e2d87f5df1ea007b365a28d9334cf82 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 21 May 2026 14:49:01 +0900 Subject: [PATCH 279/414] test(query-devtools/Devtools): add tests for clearing edit error on refocus and 'Cancel' button (#10745) * test(query-devtools/Devtools): add tests for clearing edit error on refocus and 'Cancel' button * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/Devtools.test.tsx | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 3ae1b72865e..2f054b5fad9 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -707,6 +707,41 @@ describe('Devtools', () => { expect(rendered.getByText('Invalid Value')).toBeInTheDocument() }) + + it('should clear the error state when the textarea is focused after a submit failure', () => { + queryClient.setQueryData(['edit-refocus'], { name: 'a' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["edit-refocus"\]/)) + fireEvent.click(rendered.getByLabelText('Bulk Edit Data')) + + const textarea = rendered.getByLabelText('Edit query data as JSON') + fireEvent.input(textarea, { target: { value: 'not json' } }) + fireEvent.submit(textarea.closest('form')!) + + expect(rendered.getByText('Invalid Value')).toBeInTheDocument() + + fireEvent.focus(textarea) + + expect(rendered.queryByText('Invalid Value')).toBeNull() + }) + + it('should return to the data view when the editor "Cancel" button is clicked', () => { + queryClient.setQueryData(['edit-cancel'], { name: 'a' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByLabelText(/Query key \["edit-cancel"\]/)) + fireEvent.click(rendered.getByLabelText('Bulk Edit Data')) + + expect( + rendered.getByLabelText('Edit query data as JSON'), + ).toBeInTheDocument() + + fireEvent.click(rendered.getByText('Cancel')) + + expect(rendered.queryByLabelText('Edit query data as JSON')).toBeNull() + expect(rendered.getByLabelText('Bulk Edit Data')).toBeInTheDocument() + }) }) describe('error type select', () => { From fe54a9caf45a11e7013d74619d2e0d4c07be9fc3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 21 May 2026 20:28:51 +0900 Subject: [PATCH 280/414] test(query-devtools/Devtools): add test for 'static' indicator on a query with 'staleTime: static' (#10748) --- .../src/__tests__/Devtools.test.tsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 2f054b5fad9..7c1c0a62a83 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -356,6 +356,24 @@ describe('Devtools', () => { expect(rendered.getByLabelText(/disabled/)).toBeInTheDocument() }) + + it('should render a "static" indicator for a query with "staleTime: \'static\'"', () => { + const query = queryClient.getQueryCache().build(queryClient, { + queryKey: ['static-q'], + queryFn: () => 'x', + }) + const observer = new QueryObserver(queryClient, { + queryKey: ['static-q'], + queryFn: () => 'x', + staleTime: 'static', + }) + query.addObserver(observer) + query.setState({ ...query.state, data: 'x' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + expect(rendered.getByText('static')).toBeInTheDocument() + expect(rendered.getByLabelText(/, static/)).toBeInTheDocument() + }) }) describe('status counts', () => { From c00ea27eb5d1ea6e7aa8ae9e824b8c7235b9c582 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 22 May 2026 14:01:26 +0900 Subject: [PATCH 281/414] test(query-devtools/{DevtoolsComponent,DevtoolsPanelComponent}): add tests for rendering with all props (#10752) --- .../src/__tests__/DevtoolsComponent.test.tsx | 23 ++++++++++++++++++- .../__tests__/DevtoolsPanelComponent.test.tsx | 21 ++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx b/packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx index b3f7ee5d9e3..75dcf60f1db 100644 --- a/packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx +++ b/packages/query-devtools/src/__tests__/DevtoolsComponent.test.tsx @@ -61,7 +61,7 @@ describe('DevtoolsComponent', () => { queryClient.clear() }) - it('should render without throwing', () => { + it('should render without throwing when only required props are provided', () => { expect(() => render(() => ( { )), ).not.toThrow() }) + + it('should render without throwing when all props are provided', () => { + expect(() => + render(() => ( + new Error('Network') }, + ]} + hideDisabledQueries={true} + theme="dark" + /> + )), + ).not.toThrow() + }) }) diff --git a/packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx b/packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx index 1cb7c4d461f..ee7d3c02155 100644 --- a/packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx +++ b/packages/query-devtools/src/__tests__/DevtoolsPanelComponent.test.tsx @@ -77,7 +77,7 @@ describe('DevtoolsPanelComponent', () => { document.documentElement.style.fontSize = previousRootFontSize }) - it('should render the panel without throwing', () => { + it('should render the panel without throwing when only required props are provided', () => { expect(() => render(() => ( { ).not.toThrow() }) + it('should render the panel without throwing when all props are provided', () => { + expect(() => + render(() => ( + new Error('Network') }, + ]} + hideDisabledQueries={true} + theme="dark" + onClose={() => {}} + /> + )), + ).not.toThrow() + }) + it('should not render the open devtools button in panel-only mode', () => { const rendered = render(() => ( Date: Fri, 22 May 2026 16:32:03 +0530 Subject: [PATCH 282/414] fix(lit-query): avoid redundant function option updates (#10716) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(lit-query): avoid redundant option updates Co-authored-by: Dominik Dorfmeister 🔮 --- .../lit-query-stable-function-options.md | 5 +++ .../lit-query/src/createQueryController.ts | 2 +- .../src/tests/query-controller.test.ts | 42 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .changeset/lit-query-stable-function-options.md diff --git a/.changeset/lit-query-stable-function-options.md b/.changeset/lit-query-stable-function-options.md new file mode 100644 index 00000000000..3845502305e --- /dev/null +++ b/.changeset/lit-query-stable-function-options.md @@ -0,0 +1,5 @@ +--- +'@tanstack/lit-query': patch +--- + +Avoid scheduling redundant host updates when accessor function options resolve to an unchanged query result. diff --git a/packages/lit-query/src/createQueryController.ts b/packages/lit-query/src/createQueryController.ts index 2ea540e3404..1aac214cf43 100644 --- a/packages/lit-query/src/createQueryController.ts +++ b/packages/lit-query/src/createQueryController.ts @@ -243,7 +243,7 @@ class QueryController< const options = this.defaultOptions(this.queryClient) this.observer.setOptions(options) - this.setResult(this.observer.getOptimisticResult(options)) + this.setResult(this.observer.getCurrentResult()) return true } diff --git a/packages/lit-query/src/tests/query-controller.test.ts b/packages/lit-query/src/tests/query-controller.test.ts index bc618ff830e..6b59ba2e769 100644 --- a/packages/lit-query/src/tests/query-controller.test.ts +++ b/packages/lit-query/src/tests/query-controller.test.ts @@ -344,6 +344,48 @@ describe('createQueryController', () => { expect(seenKeys.includes(2)).toBe(true) }) + it('does not request a host update when function options resolve to an unchanged result', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let callCount = 0 + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 'stable-function-options'] as const, + staleTime: Infinity, + queryFn: async () => { + callCount += 1 + return 'stable' + }, + }), + client, + ) + + host.connect() + host.update() + await waitFor(() => query().isSuccess) + + await Promise.resolve() + await Promise.resolve() + const updatesAfterSuccess = host.updatesRequested + + host.update() + await Promise.resolve() + await Promise.resolve() + + expect(query().data).toBe('stable') + expect(callCount).toBe(1) + expect(host.updatesRequested).toBe(updatesAfterSuccess) + }) + it('QSEM-01: refetchOnMount follows stale-vs-fresh policy', async () => { const client = new QueryClient({ defaultOptions: { From eff8f740a4824908698bfa47a157804d8ba33465 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 15:24:46 +0200 Subject: [PATCH 283/414] ci: Version Packages (#10754) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/lit-query-stable-function-options.md | 5 ----- examples/lit/basic/package.json | 2 +- examples/lit/pagination/package.json | 2 +- examples/lit/ssr/package.json | 2 +- packages/lit-query/CHANGELOG.md | 6 ++++++ packages/lit-query/package.json | 2 +- pnpm-lock.yaml | 6 +++--- 7 files changed, 13 insertions(+), 12 deletions(-) delete mode 100644 .changeset/lit-query-stable-function-options.md diff --git a/.changeset/lit-query-stable-function-options.md b/.changeset/lit-query-stable-function-options.md deleted file mode 100644 index 3845502305e..00000000000 --- a/.changeset/lit-query-stable-function-options.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/lit-query': patch ---- - -Avoid scheduling redundant host updates when accessor function options resolve to an unchanged query result. diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index 8e701b6554e..7c1781fd3d0 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.2", + "@tanstack/lit-query": "^0.2.3", "@tanstack/query-core": "^5.100.11", "lit": "^3.3.1" }, diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index a90220cef38..efcc9d07b60 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.2", + "@tanstack/lit-query": "^0.2.3", "@tanstack/query-core": "^5.100.11", "lit": "^3.3.1" }, diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index 00bd216c31b..ce9845889ec 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "@lit-labs/ssr": "^3.3.0", - "@tanstack/lit-query": "^0.2.2", + "@tanstack/lit-query": "^0.2.3", "@tanstack/query-core": "^5.100.11", "lit": "^3.3.1" }, diff --git a/packages/lit-query/CHANGELOG.md b/packages/lit-query/CHANGELOG.md index c797a777958..1b7cfd52910 100644 --- a/packages/lit-query/CHANGELOG.md +++ b/packages/lit-query/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/lit-query +## 0.2.3 + +### Patch Changes + +- Avoid scheduling redundant host updates when accessor function options resolve to an unchanged query result. ([#10716](https://github.com/TanStack/query/pull/10716)) + ## 0.2.2 ### Patch Changes diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index 786540938e5..6a978244dcb 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-query", - "version": "0.2.2", + "version": "0.2.3", "description": "Lit adapter for TanStack Query Core", "author": "tannerlinsley", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 091a1ee3bde..45de820c9c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -618,7 +618,7 @@ importers: examples/lit/basic: dependencies: '@tanstack/lit-query': - specifier: ^0.2.2 + specifier: ^0.2.3 version: link:../../../packages/lit-query '@tanstack/query-core': specifier: ^5.100.11 @@ -637,7 +637,7 @@ importers: examples/lit/pagination: dependencies: '@tanstack/lit-query': - specifier: ^0.2.2 + specifier: ^0.2.3 version: link:../../../packages/lit-query '@tanstack/query-core': specifier: ^5.100.11 @@ -659,7 +659,7 @@ importers: specifier: ^3.3.0 version: 3.3.1 '@tanstack/lit-query': - specifier: ^0.2.2 + specifier: ^0.2.3 version: link:../../../packages/lit-query '@tanstack/query-core': specifier: ^5.100.11 From ae054a0e9a0230bcd3e82416e51ff7af2916f95a Mon Sep 17 00:00:00 2001 From: Stephen Gibler Date: Fri, 22 May 2026 07:18:07 -0700 Subject: [PATCH 284/414] docs: update Next.js TypeScript docs reference (#10753) Co-authored-by: Stephen Gibler <261876204+sgibler-droid@users.noreply.github.com> --- docs/framework/react/guides/advanced-ssr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/guides/advanced-ssr.md b/docs/framework/react/guides/advanced-ssr.md index dbc70d8995e..56ebc377ae9 100644 --- a/docs/framework/react/guides/advanced-ssr.md +++ b/docs/framework/react/guides/advanced-ssr.md @@ -216,7 +216,7 @@ One neat thing about the examples above is that the only thing that is Next.js-s In the SSR guide, we noted that you could get rid of the boilerplate of having `` in every route. This is not possible with Server Components. -> NOTE: If you encounter a type error while using async Server Components with TypeScript versions lower than `5.1.3` and `@types/react` versions lower than `18.2.8`, it is recommended to update to the latest versions of both. Alternatively, you can use the temporary workaround of adding `{/* @ts-expect-error Server Component */}` when calling this component inside another. For more information, see [Async Server Component TypeScript Error](https://nextjs.org/docs/app/building-your-application/configuring/typescript#async-server-component-typescript-error) in the Next.js 13 docs. +> NOTE: If you encounter a type error while using async Server Components with TypeScript versions lower than `5.1.3` and `@types/react` versions lower than `18.2.8`, it is recommended to update to the latest versions of both. Alternatively, you can use the temporary workaround of adding `{/* @ts-expect-error Server Component */}` when calling this component inside another. For more information, see [Async Server Component TypeScript Error](https://nextjs.org/docs/app/building-your-application/configuring/typescript#async-server-component-typescript-error) in the Next.js TypeScript docs. > NOTE: If you encounter an error `Only plain objects, and a few built-ins, can be passed to Server Actions. Classes or null prototypes are not supported.` make sure that you're **not** passing to queryFn a function reference, instead call the function because queryFn args has a bunch of properties and not all of it would be serializable. see [Server Action only works when queryFn isn't a reference](https://github.com/TanStack/query/issues/6264). From 87013d518831abd3a293fe350ec35a6f67c9ae0e Mon Sep 17 00:00:00 2001 From: Harry Whorlow <79278353+harry-whorlow@users.noreply.github.com> Date: Fri, 22 May 2026 17:56:10 +0200 Subject: [PATCH 285/414] chore(pnpm): update pnpm to v11 (#10699) Co-authored-by: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> --- package.json | 23 +---------------------- pnpm-workspace.yaml | 46 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index b00e2ce430b..e3baadd4ab0 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "git+https://github.com/TanStack/query.git" }, - "packageManager": "pnpm@10.24.0", + "packageManager": "pnpm@11.1.0", "type": "module", "scripts": { "clean": "pnpm --filter \"./packages/**\" run clean", @@ -82,26 +82,5 @@ "typescript60": "npm:typescript@6.0.1-rc", "vite": "^6.4.1", "vitest": "^4.0.18" - }, - "pnpm": { - "overrides": { - "@types/react": "^19.2.7", - "@types/react-dom": "^19.2.3", - "@types/node": "^22.15.3", - "@typescript-eslint/eslint-plugin": "8.58.1", - "@typescript-eslint/parser": "8.58.1", - "@typescript-eslint/project-service": "8.58.1", - "@typescript-eslint/rule-tester": "8.58.1", - "@typescript-eslint/scope-manager": "8.58.1", - "@typescript-eslint/tsconfig-utils": "8.58.1", - "@typescript-eslint/type-utils": "8.58.1", - "@typescript-eslint/types": "8.58.1", - "@typescript-eslint/typescript-estree": "8.58.1", - "@typescript-eslint/utils": "8.58.1", - "@typescript-eslint/visitor-keys": "8.58.1", - "typescript-eslint": "8.58.1", - "vite": "^6.4.1", - "esbuild": "^0.27.2" - } } } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 34482c7ec4f..d0663df8d61 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -14,3 +14,49 @@ packages: - 'examples/vue/*' - '!examples/vue/2*' - '!examples/vue/nuxt*' + +overrides: + '@types/react': '^19.2.7' + '@types/react-dom': '^19.2.3' + '@types/node': '^22.15.3' + '@typescript-eslint/eslint-plugin': '8.58.1' + '@typescript-eslint/parser': '8.58.1' + '@typescript-eslint/project-service': '8.58.1' + '@typescript-eslint/rule-tester': '8.58.1' + '@typescript-eslint/scope-manager': '8.58.1' + '@typescript-eslint/tsconfig-utils': '8.58.1' + '@typescript-eslint/type-utils': '8.58.1' + '@typescript-eslint/types': '8.58.1' + '@typescript-eslint/typescript-estree': '8.58.1' + '@typescript-eslint/utils': '8.58.1' + '@typescript-eslint/visitor-keys': '8.58.1' + typescript-eslint: '8.58.1' + vite: '^6.4.1' + esbuild: '^0.27.2' + +allowBuilds: + # root dependency + nx: true + unrs-resolver: false # not directly required for build + esbuild: true + + # vite + fsevents: false # optional dependency + + # msw + msw: false # used for example only + + # nx, @vitejs/plugin-react-swc, terser-webpack-plugin + '@swc/core': true + + # @angular/build + '@parcel/watcher': false # optional dep of @angular/build + lmdb: false # optional dep of @angular/build + msgpackr-extract: false # optional dep of @angular/build + + # @tanstack/vue-store + vue-demi: false # only required for vue 2 support + + # nextJs + sharp: false # not directly required for build + From d9b2ca7051ef7bf4d06eb1f82d0abb0923ac8809 Mon Sep 17 00:00:00 2001 From: Seydi Charyyev Date: Fri, 22 May 2026 21:00:20 +0500 Subject: [PATCH 286/414] docs: correct refetchOnReconnect default in JSDoc (#10632) --- packages/query-core/src/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 6cfe16484e5..cb8fa4a747c 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -365,7 +365,7 @@ export interface QueryObserverOptions< * If set to `false`, the query will not refetch on reconnect. * If set to `'always'`, the query will always refetch on reconnect. * If set to a function, the function will be executed with the latest data and query to compute the value. - * Defaults to the value of `networkOnline` (`true`) + * Defaults to `true` unless `networkMode` is `'always'`. */ refetchOnReconnect?: | boolean From 98fd431f7cf7420b4d046eddafa44eb92108b614 Mon Sep 17 00:00:00 2001 From: 0Jaemin0 <127086869+0Jaemin0@users.noreply.github.com> Date: Sat, 23 May 2026 01:07:42 +0900 Subject: [PATCH 287/414] docs(reference/QueryClient): clarify query client query methods (#10725) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs(reference): clarify query client query methods * Apply suggestions from code review Co-authored-by: Dominik Dorfmeister 🔮 --------- Co-authored-by: Dominik Dorfmeister 🔮 --- docs/reference/QueryClient.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md index a4783788b4c..3c9e1b31c27 100644 --- a/docs/reference/QueryClient.md +++ b/docs/reference/QueryClient.md @@ -352,6 +352,11 @@ await queryClient.invalidateQueries( - Per default, a currently running request will be cancelled before a new request is made - When set to `false`, no refetch will be made if there is already a request running. +**Notes** + +- Unlike [`refetchQueries`](#queryclientrefetchqueries), `invalidateQueries` marks matching queries as invalidated and then refetches `active` queries (unless otherwise specified with the `refetchType` option). +- Unlike [`removeQueries`](#queryclientremovequeries), `invalidateQueries` keeps matching queries in the cache. + ## `queryClient.refetchQueries` The `refetchQueries` method can be used to refetch queries based on certain conditions. @@ -395,6 +400,7 @@ This function returns a promise that will resolve when all of the queries are do - Queries that are "disabled" because they only have disabled Observers will never be refetched. - Queries that are "static" because they only have Observers with a Static StaleTime will never be refetched. +- Unlike [`invalidateQueries`](#queryclientinvalidatequeries), `refetchQueries` refetches all matching queries. ## `queryClient.cancelQueries` @@ -434,6 +440,10 @@ queryClient.removeQueries({ queryKey, exact: true }) This method does not return anything +**Notes** + +- Unlike [`invalidateQueries`](#queryclientinvalidatequeries) or [`refetchQueries`](#queryclientrefetchqueries), `removeQueries` removes matching queries from the cache instead of refetching them. + ## `queryClient.resetQueries` The `resetQueries` method can be used to reset queries in the cache to their From bb4556a68807d3f207bd488f1907be92eb0da265 Mon Sep 17 00:00:00 2001 From: Rayan Salhab Date: Fri, 22 May 2026 19:25:28 +0300 Subject: [PATCH 288/414] fix(eslint-plugin-query): allow suspense queries combine deps (#10642) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: cyphercodes Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/fuzzy-bobcats-remember.md | 5 +++++ .../src/__tests__/no-unstable-deps.test.ts | 18 ++++++++++++++++++ .../no-unstable-deps/no-unstable-deps.rule.ts | 7 ++++--- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 .changeset/fuzzy-bobcats-remember.md diff --git a/.changeset/fuzzy-bobcats-remember.md b/.changeset/fuzzy-bobcats-remember.md new file mode 100644 index 00000000000..c043f588b7f --- /dev/null +++ b/.changeset/fuzzy-bobcats-remember.md @@ -0,0 +1,5 @@ +--- +"@tanstack/eslint-plugin-query": patch +--- + +Fix `no-unstable-deps` false positives for `useSuspenseQueries` results returned from `combine`. diff --git a/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts b/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts index b111fc0ed73..be3419242e5 100644 --- a/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts @@ -63,6 +63,24 @@ const baseTestCases = { } `, }, + { + name: `should pass when useSuspenseQueries with combine is passed to ${reactHookAlias} as dependency`, + code: ` + ${reactHookImport} + import { useSuspenseQueries } from "@tanstack/react-query"; + + function Component() { + const queries = useSuspenseQueries({ + queries: [ + { queryKey: ['test'], queryFn: () => 'test' } + ], + combine: (results) => ({ data: results[0]?.data }) + }); + const callback = ${reactHookInvocation}(() => { queries.data }, [queries]); + return; + } + `, + }, ]) .concat([ { diff --git a/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts b/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts index 32e68464682..25d093f6907 100644 --- a/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts +++ b/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts @@ -112,12 +112,13 @@ export const rule = createRule({ allHookNames.includes(node.init.callee.name) && helpers.isTanstackQueryImport(node.init.callee) ) { - // Special case for useQueries with combine property - it's stable + // Special case for useQueries/useSuspenseQueries with combine property - it's stable if ( - node.init.callee.name === 'useQueries' && + (node.init.callee.name === 'useQueries' || + node.init.callee.name === 'useSuspenseQueries') && hasCombineProperty(node.init) ) { - // Don't track useQueries with combine as unstable + // Don't track useQueries/useSuspenseQueries with combine as unstable return } collectVariableNames(node.id, node.init.callee.name) From f0865fd20cfbba2d02c116bef92ec5c1157b58f4 Mon Sep 17 00:00:00 2001 From: Flo Date: Fri, 22 May 2026 18:30:43 +0200 Subject: [PATCH 289/414] security: stricter pnpm config blockExoticSubdeps & trustPolicy (#10719) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dominik Dorfmeister 🔮 --- .github/workflows/pr.yml | 14 -------------- pnpm-workspace.yaml | 2 ++ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 998938bfd22..8429337ad27 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -66,20 +66,6 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} skip_step: install build_script: build:all - provenance: - name: Provenance - runs-on: ubuntu-latest - permissions: - contents: read - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - name: Check Provenance - uses: danielroe/provenance-action@41bcc969e579d9e29af08ba44fcbfdf95cee6e6c # v0.1.1 - with: - fail-on-downgrade: true version-preview: name: Version Preview runs-on: ubuntu-latest diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d0663df8d61..94aa07db65a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,8 @@ cleanupUnusedCatalogs: true linkWorkspacePackages: true preferWorkspacePackages: true +blockExoticSubdeps: true +trustPolicy: 'no-downgrade' packages: - 'packages/*' From c066ab8ab5690628dfbb997a2911897e3a601269 Mon Sep 17 00:00:00 2001 From: Flo Date: Fri, 22 May 2026 18:31:11 +0200 Subject: [PATCH 290/414] chore: enforce pnpm 11 (#10749) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dominik Dorfmeister 🔮 --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index e3baadd4ab0..05d6c8529a8 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,9 @@ "url": "git+https://github.com/TanStack/query.git" }, "packageManager": "pnpm@11.1.0", + "engines": { + "pnpm": ">=11.0.0" + }, "type": "module", "scripts": { "clean": "pnpm --filter \"./packages/**\" run clean", From b125ba9c5c5e4299cf276b4ef8d4903a4a390849 Mon Sep 17 00:00:00 2001 From: Cam Jackson <1930451+camjackson@users.noreply.github.com> Date: Sat, 23 May 2026 02:37:05 +1000 Subject: [PATCH 291/414] docs(react-query): undefined vs. null in query-functions.md (#10008) * docs(react-query): undefined vs. null in query-functions.md * Apply suggestion from @TkDodo --------- Co-authored-by: Dominik Dorfmeister --- docs/framework/react/guides/query-functions.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/framework/react/guides/query-functions.md b/docs/framework/react/guides/query-functions.md index 4fa621c6977..e121bab54a2 100644 --- a/docs/framework/react/guides/query-functions.md +++ b/docs/framework/react/guides/query-functions.md @@ -5,6 +5,8 @@ title: Query Functions A query function can be literally any function that **returns a promise**. The promise that is returned should either **resolve the data** or **throw an error**. +On success, the resolved value may be anything **except `undefined`**. Queries that resolve to `undefined` will be [treated as failed](https://tanstack.com/query/latest/docs/framework/react/guides/migrating-to-react-query-4#undefined-is-an-illegal-cache-value-for-successful-queries). To store "nothing" as a successful result in the query cache, resolve `null` instead. + All of the following are valid query function configurations: [//]: # 'Example' From ab9f0d593261663432daf2fa527f24b611a9d569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Fri, 22 May 2026 20:04:59 +0200 Subject: [PATCH 292/414] fix: trust vite v6.4.1 (#10756) * fix: trust vite v6.4.1 * fix: update detect-agent because it has pinned setup actions --- .github/workflows/detect-agent.yml | 4 ++-- pnpm-workspace.yaml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/detect-agent.yml b/.github/workflows/detect-agent.yml index 42d564a6ace..f4cdfa6cd4f 100644 --- a/.github/workflows/detect-agent.yml +++ b/.github/workflows/detect-agent.yml @@ -13,11 +13,11 @@ jobs: permissions: issues: write pull-requests: write - uses: bombshell-dev/automation/.github/workflows/detect-agent.yml@a1553cebd9318d416f6a8e9f38f363b6aaa19c72 + uses: bombshell-dev/automation/.github/workflows/detect-agent.yml@fefdda5cafd503bf3caaccd0a350c5d863d4289c backfill: if: github.event_name == 'workflow_dispatch' permissions: issues: write pull-requests: write - uses: bombshell-dev/automation/.github/workflows/detect-agent-backfill.yml@a1553cebd9318d416f6a8e9f38f363b6aaa19c72 + uses: bombshell-dev/automation/.github/workflows/detect-agent-backfill.yml@fefdda5cafd503bf3caaccd0a350c5d863d4289c diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 94aa07db65a..e838a676033 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,6 +3,8 @@ linkWorkspacePackages: true preferWorkspacePackages: true blockExoticSubdeps: true trustPolicy: 'no-downgrade' +trustPolicyExclude: + - 'vite@6.4.1' packages: - 'packages/*' From b9eb3afa9e6af262b365309e41eecc5310b315c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Fri, 22 May 2026 20:36:09 +0200 Subject: [PATCH 293/414] chore: pin chokidar to 5.0.0 (#10757) --- pnpm-lock.yaml | 639 +++++++++++--------------------------------- pnpm-workspace.yaml | 1 + 2 files changed, 161 insertions(+), 479 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 45de820c9c3..281276b7926 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: + chokidar: 5.0.0 '@types/react': ^19.2.7 '@types/react-dom': ^19.2.3 '@types/node': ^22.15.3 @@ -183,10 +184,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -223,10 +224,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -269,10 +270,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -312,10 +313,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -352,10 +353,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -395,10 +396,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -435,10 +436,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -478,10 +479,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -521,10 +522,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -564,10 +565,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -604,10 +605,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -2153,10 +2154,10 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3) '@angular/cli': specifier: ^20.0.0 - version: 20.3.22(@types/node@22.19.15)(chokidar@4.0.3) + version: 20.3.22(@types/node@22.19.15)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^20.0.0 version: 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) @@ -3274,7 +3275,7 @@ packages: resolution: {integrity: sha512-1vZnZTAjGcCM+86v2al+2eiROiSw0uAWeVllfHSQe0KsKOP1FE8UUUiWChhxVn7vIxypphlfGunkeeIn1C/ZFw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - chokidar: ^4.0.0 + chokidar: 5.0.0 peerDependenciesMeta: chokidar: optional: true @@ -5076,89 +5077,105 @@ packages: resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} @@ -5633,42 +5650,49 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-arm64-musl@1.1.1': resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/nice-linux-ppc64-gnu@1.1.1': resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-riscv64-gnu@1.1.1': resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-s390x-gnu@1.1.1': resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-gnu@1.1.1': resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-musl@1.1.1': resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/nice-openharmony-arm64@1.1.1': resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} @@ -5760,72 +5784,84 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-gnu@15.5.14': resolution: {integrity: sha512-tjlpia+yStPRS//6sdmlVwuO1Rioern4u2onafa5n+h2hCS9MAvMXqpVbSrjgiEOoCs0nJy7oPOmWgtRRNSM5Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-gnu@16.2.2': resolution: {integrity: sha512-c3m8kBHMziMgo2fICOP/cd/5YlrxDU5YYjAJeQLyFsCqVF8xjOTH/QYG4a2u48CvvZZSj1eHQfBCbyh7kBr30Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@14.2.33': resolution: {integrity: sha512-Bm+QulsAItD/x6Ih8wGIMfRJy4G73tu1HJsrccPW6AfqdZd0Sfm5Imhgkgq2+kly065rYMnCOxTBvmvFY1BKfg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-arm64-musl@15.5.14': resolution: {integrity: sha512-8B8cngBaLadl5lbDRdxGCP1Lef8ipD6KlxS3v0ElDAGil6lafrAM3B258p1KJOglInCVFUjk751IXMr2ixeQOQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-arm64-musl@16.2.2': resolution: {integrity: sha512-VKLuscm0P/mIfzt+SDdn2+8TNNJ7f0qfEkA+az7OqQbjzKdBxAHs0UvuiVoCtbwX+dqMEL9U54b5wQ/aN3dHeg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@14.2.33': resolution: {integrity: sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-gnu@15.5.14': resolution: {integrity: sha512-bAS6tIAg8u4Gn3Nz7fCPpSoKAexEt2d5vn1mzokcqdqyov6ZJ6gu6GdF9l8ORFrBuRHgv3go/RfzYz5BkZ6YSQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-gnu@16.2.2': resolution: {integrity: sha512-kU3OPHJq6sBUjOk7wc5zJ7/lipn8yGldMoAv4z67j6ov6Xo/JvzA7L7LCsyzzsXmgLEhk3Qkpwqaq/1+XpNR3g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@14.2.33': resolution: {integrity: sha512-345tsIWMzoXaQndUTDv1qypDRiebFxGYx9pYkhwY4hBRaOLt8UGfiWKr9FSSHs25dFIf8ZqIFaPdy5MljdoawA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-linux-x64-musl@15.5.14': resolution: {integrity: sha512-mMxv/FcrT7Gfaq4tsR22l17oKWXZmH/lVqcvjX0kfp5I0lKodHYLICKPoX1KRnnE+ci6oIUdriUhuA3rBCDiSw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-linux-x64-musl@16.2.2': resolution: {integrity: sha512-CKXRILyErMtUftp+coGcZ38ZwE/Aqq45VMCcRLr2I4OXKrgxIBDXHnBgeX/UMil0S09i2JXaDL3Q+TN8D/cKmg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@14.2.33': resolution: {integrity: sha512-nscpt0G6UCTkrT2ppnJnFsYbPDQwmum4GNXYTeoTIdsmMydSKFz9Iny2jpaRupTb+Wl298+Rh82WKzt9LCcqSQ==} @@ -5949,21 +5985,25 @@ packages: resolution: {integrity: sha512-wgpPaTpQKl+cCkSuE5zamTVrg14mRvT+bLAeN/yHSUgMztvGxwl3Ll+K9DgEcktBo1PLECTWNkVaW8IAsJm4Rg==} cpu: [arm64] os: [linux] + libc: [glibc] '@nx/nx-linux-arm64-musl@22.1.3': resolution: {integrity: sha512-o9XmQehSPR2y0RD4evD+Ob3lNFuwsFOL5upVJqZ3rcE6GkJIFPg8SwEP5FaRIS5MwS04fxnek20NZ18BHjjV/g==} cpu: [arm64] os: [linux] + libc: [musl] '@nx/nx-linux-x64-gnu@22.1.3': resolution: {integrity: sha512-ekcinyDNTa2huVe02T2SFMR8oArohozRbMGO19zftbObXXI4dLdoAuLNb3vK9Pe4vYOpkhfxBVkZvcWMmx7JdA==} cpu: [x64] os: [linux] + libc: [glibc] '@nx/nx-linux-x64-musl@22.1.3': resolution: {integrity: sha512-CqpRIJeIgELCqIgjtSsYnnLi6G0uqjbp/Pw9d7w4im4/NmJXqaE9gxpdHA1eowXLgAy9W1LkfzCPS8Q2IScPuQ==} cpu: [x64] os: [linux] + libc: [musl] '@nx/nx-win32-arm64-msvc@22.1.3': resolution: {integrity: sha512-YbuWb8KQsAR9G0+7b4HA16GV962/VWtRcdS7WY2yaScmPT2W5rObl528Y2j4DuB0j/MVZj12qJKrYfUyjL+UJA==} @@ -6034,48 +6074,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-arm64-musl@0.121.0': resolution: {integrity: sha512-qT663J/W8yQFw3dtscbEi9LKJevr20V7uWs2MPGTnvNZ3rm8anhhE16gXGpxDOHeg9raySaSHKhd4IGa3YZvuw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@oxc-parser/binding-linux-ppc64-gnu@0.121.0': resolution: {integrity: sha512-mYNe4NhVvDBbPkAP8JaVS8lC1dsoJZWH5WCjpw5E+sjhk1R08wt3NnXYUzum7tIiWPfgQxbCMcoxgeemFASbRw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-riscv64-gnu@0.121.0': resolution: {integrity: sha512-+QiFoGxhAbaI/amqX567784cDyyuZIpinBrJNxUzb+/L2aBRX67mN6Jv40pqduHf15yYByI+K5gUEygCuv0z9w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-riscv64-musl@0.121.0': resolution: {integrity: sha512-9ykEgyTa5JD/Uhv2sttbKnCfl2PieUfOjyxJC/oDL2UO0qtXOtjPLl7H8Kaj5G7p3hIvFgu3YWvAxvE0sqY+hQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [musl] '@oxc-parser/binding-linux-s390x-gnu@0.121.0': resolution: {integrity: sha512-DB1EW5VHZdc1lIRjOI3bW/wV6R6y0xlfvdVrqj6kKi7Ayu2U3UqUBdq9KviVkcUGd5Oq+dROqvUEEFRXGAM7EQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-x64-gnu@0.121.0': resolution: {integrity: sha512-s4lfobX9p4kPTclvMiH3gcQUd88VlnkMTF6n2MTMDAyX5FPNRhhRSFZK05Ykhf8Zy5NibV4PbGR6DnK7FGNN6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-x64-musl@0.121.0': resolution: {integrity: sha512-P9KlyTpuBuMi3NRGpJO8MicuGZfOoqZVRP1WjOecwx8yk4L/+mrCRNc5egSi0byhuReblBF2oVoDSMgV9Bj4Hw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@oxc-parser/binding-openharmony-arm64@0.121.0': resolution: {integrity: sha512-R+4jrWOfF2OAPPhj3Eb3U5CaKNAH9/btMveMULIrcNW/hjfysFQlF8wE0GaVBr81dWz8JLgQlsxwctoL78JwXw==} @@ -6148,41 +6196,49 @@ packages: resolution: {integrity: sha512-heV2+jmXyYnUrpUXSPugqWDRpnsQcDm2AX4wzTuvgdlZfoNYO0O3W2AVpJYaDn9AG4JdM6Kxom8+foE7/BcSig==} cpu: [arm64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-arm64-musl@11.19.1': resolution: {integrity: sha512-jvo2Pjs1c9KPxMuMPIeQsgu0mOJF9rEb3y3TdpsrqwxRM+AN6/nDDwv45n5ZrUnQMsdBy5gIabioMKnQfWo9ew==} cpu: [arm64] os: [linux] + libc: [musl] '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': resolution: {integrity: sha512-vLmdNxWCdN7Uo5suays6A/+ywBby2PWBBPXctWPg5V0+eVuzsJxgAn6MMB4mPlshskYbppjpN2Zg83ArHze9gQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': resolution: {integrity: sha512-/b+WgR+VTSBxzgOhDO7TlMXC1ufPIMR6Vj1zN+/x+MnyXGW7prTLzU9eW85Aj7Th7CCEG9ArCbTeqxCzFWdg2w==} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': resolution: {integrity: sha512-YlRdeWb9j42p29ROh+h4eg/OQ3dTJlpHSa+84pUM9+p6i3djtPz1q55yLJhgW9XfDch7FN1pQ/Vd6YP+xfRIuw==} cpu: [riscv64] os: [linux] + libc: [musl] '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': resolution: {integrity: sha512-EDpafVOQWF8/MJynsjOGFThcqhRHy417sRyLfQmeiamJ8qVhSKAn2Dn2VVKUGCjVB9C46VGjhNo7nOPUi1x6uA==} cpu: [s390x] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-x64-gnu@11.19.1': resolution: {integrity: sha512-NxjZe+rqWhr+RT8/Ik+5ptA3oz7tUw361Wa5RWQXKnfqwSSHdHyrw6IdcTfYuml9dM856AlKWZIUXDmA9kkiBQ==} cpu: [x64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-x64-musl@11.19.1': resolution: {integrity: sha512-cM/hQwsO3ReJg5kR+SpI69DMfvNCp+A/eVR4b4YClE5bVZwz8rh2Nh05InhwI5HR/9cArbEkzMjcKgTHS6UaNw==} cpu: [x64] os: [linux] + libc: [musl] '@oxc-resolver/binding-openharmony-arm64@11.19.1': resolution: {integrity: sha512-QF080IowFB0+9Rh6RcD19bdgh49BpQHUW5TajG1qvWHvmrQznTZZjYlgE2ltLXyKY+qs4F/v5xuX1XS7Is+3qA==} @@ -6241,36 +6297,42 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.6': resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.6': resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.6': resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.6': resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.6': resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-wasm@2.3.0': resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} @@ -6609,131 +6671,157 @@ packages: resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-gnueabihf@4.60.1': resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.59.0': resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm-musleabihf@4.60.1': resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.59.0': resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.60.1': resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.59.0': resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-musl@4.60.1': resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.59.0': resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loong64-gnu@4.60.1': resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.59.0': resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} cpu: [loong64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-musl@4.60.1': resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} cpu: [loong64] os: [linux] + libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.59.0': resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-gnu@4.60.1': resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.59.0': resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} cpu: [ppc64] os: [linux] + libc: [musl] '@rollup/rollup-linux-ppc64-musl@4.60.1': resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} cpu: [ppc64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.59.0': resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.60.1': resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.59.0': resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-musl@4.60.1': resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.59.0': resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.60.1': resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.59.0': resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.60.1': resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.59.0': resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-linux-x64-musl@4.60.1': resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-openbsd-x64@4.59.0': resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} @@ -7135,24 +7223,28 @@ packages: engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.2.2': resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.2.2': resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.2.2': resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-wasm32-wasi@4.2.2': resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} @@ -7562,41 +7654,49 @@ packages: resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-arm64-musl@1.11.1': resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-gnu@1.11.1': resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-musl@1.11.1': resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] + libc: [musl] '@unrs/resolver-binding-wasm32-wasi@1.11.1': resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} @@ -7732,23 +7832,9 @@ packages: vitest: optional: true - '@vitest/expect@3.2.4': - resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/expect@4.1.2': resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==} - '@vitest/mocker@3.2.4': - resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} - peerDependencies: - msw: ^2.4.9 - vite: ^6.4.1 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - '@vitest/mocker@4.1.2': resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} peerDependencies: @@ -7760,33 +7846,18 @@ packages: vite: optional: true - '@vitest/pretty-format@3.2.4': - resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/pretty-format@4.1.2': resolution: {integrity: sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==} - '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/runner@4.1.2': resolution: {integrity: sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==} - '@vitest/snapshot@3.2.4': - resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - '@vitest/snapshot@4.1.2': resolution: {integrity: sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==} - '@vitest/spy@3.2.4': - resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/spy@4.1.2': resolution: {integrity: sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==} - '@vitest/utils@3.2.4': - resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vitest/utils@4.1.2': resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} @@ -8236,9 +8307,6 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -8380,9 +8448,6 @@ packages: engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true - async-each@1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} - async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -8635,14 +8700,6 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-extensions@1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -8871,10 +8928,6 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.3.3: - resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} - engines: {node: '>=18'} - chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} @@ -8910,10 +8963,6 @@ packages: charenc@0.0.2: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} - check-error@2.1.3: - resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} - engines: {node: '>= 16'} - cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} @@ -8921,17 +8970,6 @@ packages: resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} engines: {node: '>=20.18.1'} - chokidar@2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - chokidar@5.0.0: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} @@ -9531,10 +9569,6 @@ packages: dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -10603,12 +10637,6 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: Upgrade to fsevents v2 to mitigate potential security issues - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -10697,9 +10725,6 @@ packages: github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - glob-parent@3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -11198,14 +11223,6 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-binary-path@1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -11287,10 +11304,6 @@ packages: resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} - is-glob@3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -11873,48 +11886,56 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-gnu@1.32.0: resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.27.0: resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-arm64-musl@1.32.0: resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.27.0: resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-gnu@1.32.0: resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.27.0: resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-linux-x64-musl@1.32.0: resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.27.0: resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} @@ -12084,9 +12105,6 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.2.1: - resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} - lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -12630,9 +12648,6 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.26.2: - resolution: {integrity: sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==} - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -12849,10 +12864,6 @@ packages: normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - normalize-path@2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -13288,9 +13299,6 @@ packages: path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - path-dirname@1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -13349,10 +13357,6 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.1: - resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} - engines: {node: '>= 14.16'} - pbkdf2@3.1.5: resolution: {integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==} engines: {node: '>= 0.10'} @@ -13917,18 +13921,6 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - readdirp@5.0.0: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} @@ -14061,9 +14053,6 @@ packages: remove-accents@0.5.0: resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} - remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - remove-trailing-slash@0.1.1: resolution: {integrity: sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==} @@ -15175,22 +15164,10 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} - tinyrainbow@3.1.0: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} - tinyspy@4.0.4: - resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} - engines: {node: '>=14.0.0'} - tldts-core@6.1.86: resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} @@ -15724,10 +15701,6 @@ packages: unwasm@0.5.3: resolution: {integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==} - upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -15817,11 +15790,6 @@ packages: resolution: {integrity: sha512-82Qm+EG/b2PRFBvXBbz1lgWBGcd9totIL6SJhnrZYfakjloTVG9+5l6gfO6dbCCtztm5pqWFzLY0qpZ3H3ww/w==} hasBin: true - vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - vite-plugin-dts@4.2.3: resolution: {integrity: sha512-O5NalzHANQRwVw1xj8KQun3Bv8OSDAlNJXrnqoAz10BOuW8FVvY5g4ygj+DlJZL5mtSPuMu9vd3OfrdW5d4k6w==} engines: {node: ^14.18.0 || >=16.0.0} @@ -15913,34 +15881,6 @@ packages: vite: optional: true - vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^22.15.3 - '@vitest/browser': 3.2.4 - '@vitest/ui': 3.2.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vitest@4.1.2: resolution: {integrity: sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -16689,14 +16629,14 @@ snapshots: '@andrewbranch/untar.js@1.0.3': {} - '@angular-devkit/architect@0.2003.22(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.22(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 20.3.22(chokidar@4.0.3) + '@angular-devkit/core': 20.3.22(chokidar@5.0.0) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.22(chokidar@4.0.3)': + '@angular-devkit/core@20.3.22(chokidar@5.0.0)': dependencies: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) @@ -16705,11 +16645,11 @@ snapshots: rxjs: 7.8.2 source-map: 0.7.6 optionalDependencies: - chokidar: 4.0.3 + chokidar: 5.0.0 - '@angular-devkit/schematics@20.3.22(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.22(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 20.3.22(chokidar@4.0.3) + '@angular-devkit/core': 20.3.22(chokidar@5.0.0) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -16722,10 +16662,10 @@ snapshots: '@angular/core': 20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@4.0.3)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3)': + '@angular/build@20.3.22(@angular/compiler-cli@20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3))(@angular/compiler@20.3.18)(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.19.15)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(tailwindcss@4.2.2)(terser@5.46.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.8.3)(vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(yaml@2.8.3)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.22(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.22(chokidar@5.0.0) '@angular/compiler': 20.3.18 '@angular/compiler-cli': 20.3.18(@angular/compiler@20.3.18)(typescript@5.8.3) '@babel/core': 7.28.3 @@ -16760,7 +16700,7 @@ snapshots: lmdb: 3.4.2 postcss: 8.5.8 tailwindcss: 4.2.2 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + vitest: 4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - '@types/node' - chokidar @@ -16774,15 +16714,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.22(@types/node@22.19.15)(chokidar@4.0.3)': + '@angular/cli@20.3.22(@types/node@22.19.15)(chokidar@5.0.0)': dependencies: - '@angular-devkit/architect': 0.2003.22(chokidar@4.0.3) - '@angular-devkit/core': 20.3.22(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.22(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.22(chokidar@5.0.0) + '@angular-devkit/core': 20.3.22(chokidar@5.0.0) + '@angular-devkit/schematics': 20.3.22(chokidar@5.0.0) '@inquirer/prompts': 7.8.2(@types/node@22.19.15) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@22.19.15))(@types/node@22.19.15)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.26.0(zod@4.1.13) - '@schematics/angular': 20.3.22(chokidar@4.0.3) + '@schematics/angular': 20.3.22(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -16811,7 +16751,7 @@ snapshots: '@angular/compiler': 20.3.18 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 - chokidar: 4.0.3 + chokidar: 5.0.0 convert-source-map: 1.9.0 reflect-metadata: 0.2.2 semver: 7.7.4 @@ -16906,7 +16846,7 @@ snapshots: '@astrojs/check@0.9.8(prettier@3.8.1)(typescript@5.8.3)': dependencies: '@astrojs/language-server': 2.16.6(prettier@3.8.1)(typescript@5.8.3) - chokidar: 4.0.3 + chokidar: 5.0.0 kleur: 4.1.5 typescript: 5.8.3 yargs: 17.7.2 @@ -20718,10 +20658,10 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@schematics/angular@20.3.22(chokidar@4.0.3)': + '@schematics/angular@20.3.22(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 20.3.22(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.22(chokidar@4.0.3) + '@angular-devkit/core': 20.3.22(chokidar@5.0.0) + '@angular-devkit/schematics': 20.3.22(chokidar@5.0.0) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -22032,15 +21972,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/expect@3.2.4': - dependencies: - '@types/chai': 5.2.3 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - tinyrainbow: 2.0.0 - optional: true - '@vitest/expect@4.1.2': dependencies: '@standard-schema/spec': 1.1.0 @@ -22050,16 +21981,6 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@3.2.4(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - msw: 2.12.14(@types/node@22.19.15)(typescript@5.8.3) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - optional: true - '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.2 @@ -22069,34 +21990,15 @@ snapshots: msw: 2.12.14(@types/node@22.19.15)(typescript@5.9.3) vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/pretty-format@3.2.4': - dependencies: - tinyrainbow: 2.0.0 - optional: true - '@vitest/pretty-format@4.1.2': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@3.2.4': - dependencies: - '@vitest/utils': 3.2.4 - pathe: 2.0.3 - strip-literal: 3.1.0 - optional: true - '@vitest/runner@4.1.2': dependencies: '@vitest/utils': 4.1.2 pathe: 2.0.3 - '@vitest/snapshot@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.21 - pathe: 2.0.3 - optional: true - '@vitest/snapshot@4.1.2': dependencies: '@vitest/pretty-format': 4.1.2 @@ -22104,20 +22006,8 @@ snapshots: magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@3.2.4': - dependencies: - tinyspy: 4.0.4 - optional: true - '@vitest/spy@4.1.2': {} - '@vitest/utils@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - loupe: 3.2.1 - tinyrainbow: 2.0.0 - optional: true - '@vitest/utils@4.1.2': dependencies: '@vitest/pretty-format': 4.1.2 @@ -22693,14 +22583,6 @@ snapshots: any-promise@1.3.0: {} - anymatch@2.0.0: - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - optional: true - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -22971,9 +22853,6 @@ snapshots: - uploadthing - yaml - async-each@1.0.6: - optional: true - async-function@1.0.0: {} async-limiter@1.0.1: {} @@ -23272,11 +23151,6 @@ snapshots: big.js@5.2.2: {} - binary-extensions@1.13.1: - optional: true - - binary-extensions@2.3.0: {} - bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -23608,15 +23482,6 @@ snapshots: ccount@2.0.1: {} - chai@5.3.3: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.3 - deep-eql: 5.0.2 - loupe: 3.2.1 - pathval: 2.0.1 - optional: true - chai@6.2.2: {} chalk@2.4.2: @@ -23644,9 +23509,6 @@ snapshots: charenc@0.0.2: {} - check-error@2.1.3: - optional: true - cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 @@ -23670,41 +23532,6 @@ snapshots: undici: 7.24.6 whatwg-mimetype: 4.0.0 - chokidar@2.1.8: - dependencies: - anymatch: 2.0.0 - async-each: 1.0.6 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 4.0.3 - normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 - optionalDependencies: - fsevents: 1.2.13 - transitivePeerDependencies: - - supports-color - optional: true - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - chokidar@5.0.0: dependencies: readdirp: 5.0.0 @@ -24337,9 +24164,6 @@ snapshots: dedent-js@1.0.1: {} - deep-eql@5.0.2: - optional: true - deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.2 @@ -25776,12 +25600,6 @@ snapshots: fs.realpath@1.0.0: {} - fsevents@1.2.13: - dependencies: - bindings: 1.5.0 - nan: 2.26.2 - optional: true - fsevents@2.3.3: optional: true @@ -25865,12 +25683,6 @@ snapshots: github-slugger@2.0.0: {} - glob-parent@3.1.0: - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - optional: true - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -26462,15 +26274,6 @@ snapshots: dependencies: has-bigints: 1.1.0 - is-binary-path@1.0.1: - dependencies: - binary-extensions: 1.13.1 - optional: true - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 @@ -26543,11 +26346,6 @@ snapshots: has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 - is-glob@3.1.0: - dependencies: - is-extglob: 2.1.1 - optional: true - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -27460,9 +27258,6 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.2.1: - optional: true - lower-case@2.0.2: dependencies: tslib: 2.8.1 @@ -28377,9 +28172,6 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.26.2: - optional: true - nanoid@3.3.11: {} nanoid@5.1.7: {} @@ -28726,11 +28518,6 @@ snapshots: semver: 5.7.2 validate-npm-package-license: 3.0.4 - normalize-path@2.1.1: - dependencies: - remove-trailing-separator: 1.1.0 - optional: true - normalize-path@3.0.0: {} npm-bundled@5.0.0: @@ -29346,9 +29133,6 @@ snapshots: path-browserify@1.0.1: {} - path-dirname@1.0.2: - optional: true - path-exists@3.0.0: {} path-exists@4.0.0: {} @@ -29387,9 +29171,6 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.1: - optional: true - pbkdf2@3.1.5: dependencies: create-hash: 1.2.0 @@ -30001,21 +29782,6 @@ snapshots: dependencies: minimatch: 5.1.9 - readdirp@2.2.1: - dependencies: - graceful-fs: 4.2.11 - micromatch: 3.1.10 - readable-stream: 2.3.8 - transitivePeerDependencies: - - supports-color - optional: true - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.2 - - readdirp@4.1.2: {} - readdirp@5.0.0: {} readline@1.3.0: {} @@ -30198,9 +29964,6 @@ snapshots: remove-accents@0.5.0: {} - remove-trailing-separator@1.1.0: - optional: true - remove-trailing-slash@0.1.1: {} renderkid@2.0.7: @@ -30498,7 +30261,7 @@ snapshots: sass@1.90.0: dependencies: - chokidar: 4.0.3 + chokidar: 5.0.0 immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: @@ -31288,7 +31051,7 @@ snapshots: svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.8.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 - chokidar: 4.0.3 + chokidar: 5.0.0 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 @@ -31300,7 +31063,7 @@ snapshots: svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 - chokidar: 4.0.3 + chokidar: 5.0.0 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 @@ -31371,7 +31134,7 @@ snapshots: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.6.0 + chokidar: 5.0.0 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.3.3 @@ -31558,17 +31321,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinypool@1.1.1: - optional: true - - tinyrainbow@2.0.0: - optional: true - tinyrainbow@3.1.0: {} - tinyspy@4.0.4: - optional: true - tldts-core@6.1.86: {} tldts-core@7.0.27: {} @@ -31697,7 +31451,7 @@ snapshots: dependencies: bundle-require: 5.1.0(esbuild@0.27.4) cac: 6.7.14 - chokidar: 4.0.3 + chokidar: 5.0.0 consola: 3.4.2 debug: 4.4.3 esbuild: 0.27.4 @@ -32138,9 +31892,6 @@ snapshots: pathe: 2.0.3 pkg-types: 2.3.0 - upath@1.2.0: - optional: true - update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 @@ -32227,7 +31978,7 @@ snapshots: '@types/micromatch': 4.0.10 '@vinxi/listhen': 1.5.6 boxen: 8.0.1 - chokidar: 4.0.3 + chokidar: 5.0.0 citty: 0.1.6 consola: 3.4.2 crossws: 0.3.5 @@ -32301,28 +32052,6 @@ snapshots: - xml2js - yaml - vite-node@3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): - dependencies: - cac: 6.7.14 - debug: 4.4.3 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - optional: true - vite-plugin-dts@4.2.3(@types/node@22.19.15)(rollup@4.60.1)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.19.15) @@ -32475,50 +32204,6 @@ snapshots: optionalDependencies: vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.15)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3): - dependencies: - '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.12.14(@types/node@22.19.15)(typescript@5.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - debug: 4.4.3 - expect-type: 1.3.0 - magic-string: 0.30.21 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.13 - '@types/node': 22.19.15 - jsdom: 27.4.0 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - optional: true - vitest@4.1.2(@types/node@22.19.15)(jsdom@27.4.0)(msw@2.12.14(@types/node@22.19.15)(typescript@5.9.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.2 @@ -32713,9 +32398,7 @@ snapshots: watchpack-chokidar2@2.0.1: dependencies: - chokidar: 2.1.8 - transitivePeerDependencies: - - supports-color + chokidar: 5.0.0 optional: true watchpack@1.7.5: @@ -32723,10 +32406,8 @@ snapshots: graceful-fs: 4.2.11 neo-async: 2.6.2 optionalDependencies: - chokidar: 3.6.0 + chokidar: 5.0.0 watchpack-chokidar2: 2.0.1 - transitivePeerDependencies: - - supports-color watchpack@2.4.4: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e838a676033..9a58ec4796f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -20,6 +20,7 @@ packages: - '!examples/vue/nuxt*' overrides: + 'chokidar': '5.0.0' '@types/react': '^19.2.7' '@types/react-dom': '^19.2.3' '@types/node': '^22.15.3' From 2ccdae8c3724e145d1cc2e369d25a1e8d03e21ed Mon Sep 17 00:00:00 2001 From: Vinamra Bhonsle <143907433+vinamra1102@users.noreply.github.com> Date: Sat, 23 May 2026 00:13:55 +0530 Subject: [PATCH 294/414] fix(eslint-plugin-query): handle array-destructured useQueries results in no-unstable-deps (fix #10746) (#10747) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(eslint-plugin-query): handle array-destructured useQueries results in no-unstable-deps The `collectVariableNames` function in the `no-unstable-deps` rule only handled `Identifier` patterns. When users array-destructure `useQueries` or `useSuspenseQueries` results (e.g. `const [q1, q2] = useQueries(...)`), the individual variables were not tracked as unstable. This meant passing them directly to React hook dependency arrays was never flagged. Extend `collectVariableNames` to also handle `ArrayPattern` — including plain identifier elements and rest elements. Fixes #10746 * ci: apply automated fixes --------- Co-authored-by: Dominik Dorfmeister 🔮 Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../fix-no-unstable-deps-array-pattern.md | 5 + .../src/__tests__/no-unstable-deps.test.ts | 95 +++++++++++++++++++ .../no-unstable-deps/no-unstable-deps.rule.ts | 14 +++ 3 files changed, 114 insertions(+) create mode 100644 .changeset/fix-no-unstable-deps-array-pattern.md diff --git a/.changeset/fix-no-unstable-deps-array-pattern.md b/.changeset/fix-no-unstable-deps-array-pattern.md new file mode 100644 index 00000000000..a0da3857512 --- /dev/null +++ b/.changeset/fix-no-unstable-deps-array-pattern.md @@ -0,0 +1,5 @@ +--- +"@tanstack/eslint-plugin-query": patch +--- + +fix(no-unstable-deps): handle array-destructured useQueries and useSuspenseQueries results diff --git a/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts b/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts index be3419242e5..43bbe0f494f 100644 --- a/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts @@ -82,6 +82,25 @@ const baseTestCases = { `, }, ]) + .concat([ + { + name: `should pass when useQueries is array-destructured and element properties are used with ${reactHookAlias}`, + code: ` + ${reactHookImport} + import { useQueries } from "@tanstack/react-query"; + + function Component() { + const [{ data }] = useQueries({ + queries: [ + { queryKey: ['test'], queryFn: () => 'test' } + ] + }); + const callback = ${reactHookInvocation}(() => { data }, [data]); + return; + } + `, + }, + ]) .concat([ { name: `should pass when useQuery is imported from non-TanStack source and used with ${reactHookAlias}`, @@ -181,6 +200,82 @@ const baseTestCases = { }, ], }, + ]) + .concat([ + { + name: `array-destructured useQueries element is passed to ${reactHookInvocation} as dependency`, + code: ` + ${reactHookImport} + import { useQueries } from "@tanstack/react-query"; + + function Component() { + const [userQuery, postsQuery] = useQueries({ + queries: [ + { queryKey: ['user'], queryFn: () => 'user' }, + { queryKey: ['posts'], queryFn: () => 'posts' } + ] + }); + const callback = ${reactHookInvocation}(() => { userQuery.data }, [userQuery]); + return; + } + `, + errors: [ + { + messageId: 'noUnstableDeps', + data: { reactHook: reactHookAlias, queryHook: 'useQueries' }, + }, + ], + }, + { + name: `array-destructured useSuspenseQueries element is passed to ${reactHookInvocation} as dependency`, + code: ` + ${reactHookImport} + import { useSuspenseQueries } from "@tanstack/react-query"; + + function Component() { + const [query] = useSuspenseQueries({ + queries: [ + { queryKey: ['test'], queryFn: () => 'test' } + ] + }); + const callback = ${reactHookInvocation}(() => { query.data }, [query]); + return; + } + `, + errors: [ + { + messageId: 'noUnstableDeps', + data: { + reactHook: reactHookAlias, + queryHook: 'useSuspenseQueries', + }, + }, + ], + }, + { + name: `rest element of array-destructured useQueries is passed to ${reactHookInvocation} as dependency`, + code: ` + ${reactHookImport} + import { useQueries } from "@tanstack/react-query"; + + function Component() { + const [firstQuery, ...restQueries] = useQueries({ + queries: [ + { queryKey: ['a'], queryFn: () => 'a' }, + { queryKey: ['b'], queryFn: () => 'b' } + ] + }); + const callback = ${reactHookInvocation}(() => {}, [restQueries]); + return; + } + `, + errors: [ + { + messageId: 'noUnstableDeps', + data: { reactHook: reactHookAlias, queryHook: 'useQueries' }, + }, + ], + }, ]), } diff --git a/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts b/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts index 25d093f6907..621993a2c16 100644 --- a/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts +++ b/packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts @@ -64,6 +64,20 @@ export const rule = createRule({ ) { if (pattern.type === AST_NODE_TYPES.Identifier) { trackedVariables[pattern.name] = queryHook + } else if (pattern.type === AST_NODE_TYPES.ArrayPattern) { + for (const element of pattern.elements) { + if (element === null) { + continue + } + if (element.type === AST_NODE_TYPES.Identifier) { + trackedVariables[element.name] = queryHook + } else if ( + element.type === AST_NODE_TYPES.RestElement && + element.argument.type === AST_NODE_TYPES.Identifier + ) { + trackedVariables[element.argument.name] = queryHook + } + } } } From 5ff4f6936bb66a64267eb4413430f956eecf7248 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 20:50:43 +0200 Subject: [PATCH 295/414] ci: Version Packages (#10755) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../fix-no-unstable-deps-array-pattern.md | 5 - .changeset/fuzzy-bobcats-remember.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/lit/basic/package.json | 4 +- examples/lit/pagination/package.json | 4 +- examples/lit/ssr/package.json | 4 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 8 + packages/eslint-plugin-query/package.json | 2 +- packages/lit-query/CHANGELOG.md | 7 + packages/lit-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 258 +++++++++--------- 115 files changed, 461 insertions(+), 293 deletions(-) delete mode 100644 .changeset/fix-no-unstable-deps-array-pattern.md delete mode 100644 .changeset/fuzzy-bobcats-remember.md diff --git a/.changeset/fix-no-unstable-deps-array-pattern.md b/.changeset/fix-no-unstable-deps-array-pattern.md deleted file mode 100644 index a0da3857512..00000000000 --- a/.changeset/fix-no-unstable-deps-array-pattern.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@tanstack/eslint-plugin-query": patch ---- - -fix(no-unstable-deps): handle array-destructured useQueries and useSuspenseQueries results diff --git a/.changeset/fuzzy-bobcats-remember.md b/.changeset/fuzzy-bobcats-remember.md deleted file mode 100644 index c043f588b7f..00000000000 --- a/.changeset/fuzzy-bobcats-remember.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@tanstack/eslint-plugin-query": patch ---- - -Fix `no-unstable-deps` false positives for `useSuspenseQueries` results returned from `combine`. diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index febb49bc7ad..56eb5860d60 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 544fe014a87..26aa1f9a384 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", - "@tanstack/angular-query-persist-client": "^5.100.11", - "@tanstack/query-async-storage-persister": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-persist-client": "^5.100.12", + "@tanstack/query-async-storage-persister": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 88c52ccc131..e7c3db3f6b9 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index a959e39e831..1679d444de8 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index ecd847d901b..de805de3a66 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 0b408d1b660..03cdd6b49a9 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 2acfec4bdef..f629a652bf4 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 2354daf47fc..435b3f3107b 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 856000aaa24..ceb80ca39cc 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 25725e04a03..f35de3902b4 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 8aead27b6cd..1619ba8714b 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index 7c1781fd3d0..94096b60b14 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.3", - "@tanstack/query-core": "^5.100.11", + "@tanstack/lit-query": "^0.2.4", + "@tanstack/query-core": "^5.100.12", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index efcc9d07b60..8a8ce985f27 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.3", - "@tanstack/query-core": "^5.100.11", + "@tanstack/lit-query": "^0.2.4", + "@tanstack/query-core": "^5.100.12", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index ce9845889ec..ad3f981eed6 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -8,8 +8,8 @@ }, "dependencies": { "@lit-labs/ssr": "^3.3.0", - "@tanstack/lit-query": "^0.2.3", - "@tanstack/query-core": "^5.100.11", + "@tanstack/lit-query": "^0.2.4", + "@tanstack/query-core": "^5.100.12", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index df121c07b1f..3a8a9893a1d 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.11", + "@tanstack/preact-query": "^5.100.12", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 532192f6fdb..9d776c368ad 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.11", + "@tanstack/eslint-plugin-query": "^5.100.12", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 2e74e57b0c0..4db78f64b6b 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index f98c06840f9..926ac12d9dc 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1673e90248e..1936e4467de 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.11", - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", - "@tanstack/react-query-persist-client": "^5.100.11", + "@tanstack/query-async-storage-persister": "^5.100.12", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query-persist-client": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.11", + "@tanstack/eslint-plugin-query": "^5.100.12", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 1ad174ab5ca..8bbf17ad038 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 6ba10592357..857f70f3dc3 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index a04cf3f8153..494bfcf5784 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index dea2990d6b8..9427eb89040 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.11", - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", - "@tanstack/react-query-persist-client": "^5.100.11", + "@tanstack/query-async-storage-persister": "^5.100.12", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query-persist-client": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.11", + "@tanstack/eslint-plugin-query": "^5.100.12", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index c32411b4174..ae4e4fe96fc 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query": "^5.100.12", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.11", + "@tanstack/eslint-plugin-query": "^5.100.12", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index afeb5f5db2c..b2252169620 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index e6c59f94e84..7f7531e77a0 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 9c513f2cf0a..cd63d1f85a3 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 80743d8a323..06433374552 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", - "@tanstack/react-query-next-experimental": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query-next-experimental": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 9d937f509d9..ec897fb2ac8 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 470445a844f..a69fe5788d8 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.11", + "@tanstack/query-async-storage-persister": "^5.100.12", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", - "@tanstack/react-query-persist-client": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query-persist-client": "^5.100.12", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index f7e076fc344..cdc368d9e11 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 85eb4c83ee1..b32c66b89c3 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 1070ecbbecd..12dc67928c4 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 56ab13f63e6..0b13f748f20 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 4569c302373..909b62aaae6 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 2bcf197b543..9dc476639d9 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 07ac7839cd1..27e0bf57db4 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 0add8cb0861..c6371a9ccd7 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 32d4e29ef48..d3ac4702b3e 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index f6cc746e2dc..abeed2a6ef1 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index b0bcbf9d1cd..8b8b54d8ef3 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index cc7f42897cd..453df80a400 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query-devtools": "^5.100.12", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index f9d2483476d..c952cc3e5c5 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.11", - "@tanstack/solid-query-devtools": "^5.100.11", + "@tanstack/solid-query": "^5.100.12", + "@tanstack/solid-query-devtools": "^5.100.12", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 9de064b1e80..66c93f65a14 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.11", - "@tanstack/solid-query-devtools": "^5.100.11", + "@tanstack/solid-query": "^5.100.12", + "@tanstack/solid-query-devtools": "^5.100.12", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index fd925c7a1bb..4d05cc6aa79 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.11", - "@tanstack/solid-query-devtools": "^5.100.11", + "@tanstack/solid-query": "^5.100.12", + "@tanstack/solid-query-devtools": "^5.100.12", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 0f3b643c577..6454bd9f392 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.11", - "@tanstack/solid-query-devtools": "^5.100.11", + "@tanstack/solid-query": "^5.100.12", + "@tanstack/solid-query-devtools": "^5.100.12", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index ef41a5a6e9a..ce52d64a51f 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.11", - "@tanstack/solid-query": "^5.100.11", - "@tanstack/solid-query-devtools": "^5.100.11", - "@tanstack/solid-query-persist-client": "^5.100.11", + "@tanstack/query-async-storage-persister": "^5.100.12", + "@tanstack/solid-query": "^5.100.12", + "@tanstack/solid-query-devtools": "^5.100.12", + "@tanstack/solid-query-persist-client": "^5.100.12", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 7d73e27dd95..8fea954c599 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.11", - "@tanstack/solid-query-devtools": "^5.100.11", + "@tanstack/solid-query": "^5.100.12", + "@tanstack/solid-query-devtools": "^5.100.12", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.11", + "@tanstack/eslint-plugin-query": "^5.100.12", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index b2afd03ecf3..57c2b79efdc 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.11", - "@tanstack/solid-query-devtools": "^5.100.11", + "@tanstack/solid-query": "^5.100.12", + "@tanstack/solid-query-devtools": "^5.100.12", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 831dec12ded..f4a18f73bd7 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30" + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 7046d743908..5854ad2499c 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.11", - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30", - "@tanstack/svelte-query-persist-client": "^6.1.30" + "@tanstack/query-async-storage-persister": "^5.100.12", + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31", + "@tanstack/svelte-query-persist-client": "^6.1.31" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index b0af7297451..979f4318b7c 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30" + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 04e0b5cd2bc..26405cf9bac 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30" + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 7a7df95f3fa..dd865e499d2 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30" + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index d763e3852ef..29abcfcbcd0 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30" + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index e9fd288546e..a576906642a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30" + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 253f2fbf76e..fab30e7ea59 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.30", - "@tanstack/svelte-query-devtools": "^6.1.30" + "@tanstack/svelte-query": "^6.1.31", + "@tanstack/svelte-query-devtools": "^6.1.31" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 2e449b7968a..7ce67e0c8ef 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.11", - "@tanstack/vue-query-devtools": "^6.1.30", + "@tanstack/vue-query": "^5.100.12", + "@tanstack/vue-query-devtools": "^6.1.31", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 3073ad2f5c1..b10a5a36393 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.11", + "@tanstack/vue-query": "^5.100.12", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 158c7f42d72..801b8ac5165 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.11", - "@tanstack/query-persist-client-core": "^5.100.11", - "@tanstack/query-sync-storage-persister": "^5.100.11", - "@tanstack/vue-query": "^5.100.11", + "@tanstack/query-core": "^5.100.12", + "@tanstack/query-persist-client-core": "^5.100.12", + "@tanstack/query-sync-storage-persister": "^5.100.12", + "@tanstack/vue-query": "^5.100.12", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index f2736b452c1..0c2ccc741ac 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.11", - "@tanstack/vue-query-devtools": "^6.1.30", + "@tanstack/vue-query": "^5.100.12", + "@tanstack/vue-query-devtools": "^6.1.31", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 31a6499a436..7c82177d6b6 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.11", + "@tanstack/angular-query-experimental": "^5.100.12", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index c3589fdf3b1..f4bf5bec529 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index fc1aab2a2bc..bbfc9f64503 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.11", + "version": "5.100.12", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index cf9ed5091ae..ab5eb7dbf99 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.12 + - @tanstack/query-persist-client-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index f20b9373223..362ae5156e1 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.11", + "version": "5.100.12", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index b7c88956a9e..526ea8f3a95 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/eslint-plugin-query +## 5.100.12 + +### Patch Changes + +- fix(no-unstable-deps): handle array-destructured useQueries and useSuspenseQueries results ([#10747](https://github.com/TanStack/query/pull/10747)) + +- Fix `no-unstable-deps` false positives for `useSuspenseQueries` results returned from `combine`. ([#10642](https://github.com/TanStack/query/pull/10642)) + ## 5.100.11 ## 5.100.10 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index c0145aad6f9..2b69e1c06ad 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.11", + "version": "5.100.12", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/lit-query/CHANGELOG.md b/packages/lit-query/CHANGELOG.md index 1b7cfd52910..68e7c25ca37 100644 --- a/packages/lit-query/CHANGELOG.md +++ b/packages/lit-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/lit-query +## 0.2.4 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 0.2.3 ### Patch Changes diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index 6a978244dcb..0329edc0af2 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-query", - "version": "0.2.3", + "version": "0.2.4", "description": "Lit adapter for TanStack Query Core", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index 94b543a64b8..cc70232a0a6 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.12 + - @tanstack/query-devtools@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 28c5be2dd2b..10a20eb99c7 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.11", + "version": "5.100.12", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index be90f688fdb..089c4aea8fc 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.12 + - @tanstack/query-persist-client-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index 6df627dc4a6..a2156376d5f 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.11", + "version": "5.100.12", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index e6c05c1ea9b..f4b1add425d 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index e203fe73e81..0e1f7d3e895 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.11", + "version": "5.100.12", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 5d5814a6f35..a1d5a3ddbe7 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + - @tanstack/query-persist-client-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 3e427ae4c98..ff59228cf64 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.11", + "version": "5.100.12", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index 3aa59cfca1b..bc51c32669f 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 22eef418672..28a3dbdc666 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.11", + "version": "5.100.12", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 1226463e69e..7922b7be6d3 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.12 + ## 5.100.11 ## 5.100.10 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 1a3505d9304..dde0b6c3bf9 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.11", + "version": "5.100.12", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 2604e805283..7911081ce31 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.12 + ## 5.100.11 ## 5.100.10 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index eac6ef297b1..4d18a30bfea 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.11", + "version": "5.100.12", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index a6f7d42b4bf..40295c6f38f 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index f1e3d3695eb..7f3895b249a 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.11", + "version": "5.100.12", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 6e292112ed6..4dfdc281cee 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + - @tanstack/query-persist-client-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 5612909b9ee..5176c6cc2de 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.11", + "version": "5.100.12", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index ec3b3527081..b70a85f4bb4 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.12 + - @tanstack/react-query@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 9f0fcc6db1c..920fff21609 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.11", + "version": "5.100.12", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 243471db882..411dd45d8ef 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 9187a585a6d..1a0e79a0a70 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.11", + "version": "5.100.12", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index af0cebb6bd0..1ea8af0efc8 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.12 + - @tanstack/react-query@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 76d096a1416..304170369ec 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.11", + "version": "5.100.12", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index c9c5e9a08cf..00acdb3aeee 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 90e560b6db0..614aa7fa129 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.11", + "version": "5.100.12", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index e84f03f13b5..89c2592af19 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.12 + - @tanstack/solid-query@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 21e8e1b4e07..793667dfd10 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.11", + "version": "5.100.12", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index eb7d18c3649..a26a12e9534 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.12 + - @tanstack/solid-query@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 37c0ced7e78..59fabe9d078 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.11", + "version": "5.100.12", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 296e66247ba..e8c811950a2 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index ca5d339fe81..86f658ff094 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.11", + "version": "5.100.12", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 0801c96a231..17f802a12be 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.31 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.12 + - @tanstack/svelte-query@6.1.31 + ## 6.1.30 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 8f46e01f69f..a5d9e7db5cd 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.30", + "version": "6.1.31", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index 3a93c5ef530..bcc770f21df 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.31 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.12 + - @tanstack/svelte-query@6.1.31 + ## 6.1.30 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 97891f5fb6f..b568e21d424 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.30", + "version": "6.1.31", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 6fd1cc49c3d..0cf2baa2504 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.31 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 6.1.30 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 73d849e7657..69cb93aa54b 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.30", + "version": "6.1.31", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 110c01a8ecc..3dffdf3366d 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.31 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.12 + - @tanstack/vue-query@5.100.12 + ## 6.1.30 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 74caf2cf18d..711ba909ea0 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.30", + "version": "6.1.31", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 4960f0e1064..8d9c038fea9 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.12 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.12 + ## 5.100.11 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 499ba290f77..2a006f54651 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.11", + "version": "5.100.12", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 281276b7926..f5d3e11bec1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,7 +170,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -210,7 +210,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -250,13 +250,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -299,7 +299,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -339,7 +339,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -382,7 +382,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -422,7 +422,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -465,7 +465,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -508,7 +508,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -551,7 +551,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -591,7 +591,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -619,10 +619,10 @@ importers: examples/lit/basic: dependencies: '@tanstack/lit-query': - specifier: ^0.2.3 + specifier: ^0.2.4 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -638,10 +638,10 @@ importers: examples/lit/pagination: dependencies: '@tanstack/lit-query': - specifier: ^0.2.3 + specifier: ^0.2.4 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -660,10 +660,10 @@ importers: specifier: ^3.3.0 version: 3.3.1 '@tanstack/lit-query': - specifier: ^0.2.3 + specifier: ^0.2.4 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -685,7 +685,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -713,10 +713,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -726,7 +726,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -747,10 +747,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -775,16 +775,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -794,7 +794,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -815,10 +815,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -843,10 +843,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -874,10 +874,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -899,10 +899,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -924,16 +924,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -943,7 +943,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -964,14 +964,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -986,10 +986,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1014,10 +1014,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1045,10 +1045,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1073,10 +1073,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1101,13 +1101,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1132,19 +1132,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1172,10 +1172,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1200,10 +1200,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1228,10 +1228,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1256,10 +1256,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1281,10 +1281,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1318,10 +1318,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1370,10 +1370,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1422,10 +1422,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1459,10 +1459,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1490,10 +1490,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1515,10 +1515,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1552,10 +1552,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1598,10 +1598,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1619,10 +1619,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1641,10 +1641,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1669,10 +1669,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1691,16 +1691,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1722,17 +1722,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1756,10 +1756,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1771,10 +1771,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1802,16 +1802,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1839,10 +1839,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1870,10 +1870,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1901,10 +1901,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1932,10 +1932,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1960,10 +1960,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1991,10 +1991,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -2028,10 +2028,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2050,7 +2050,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2069,16 +2069,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2100,10 +2100,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.30 + specifier: ^6.1.31 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2140,7 +2140,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.11 + specifier: ^5.100.12 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From d423168f6261a5cb3d353e53b27c8150cc271151 Mon Sep 17 00:00:00 2001 From: Ben Younes Date: Fri, 22 May 2026 21:09:35 +0200 Subject: [PATCH 296/414] fix(query-core): use built-in NoInfer for generic indexed-access types (#10593) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(query-core): use built-in NoInfer to support generic indexed-access types The local `NoInfer = [T][T extends any ? 0 : never]` trick breaks down when `T` is a generic indexed-access type such as `DataTypeToEntity[DT]`, producing errors like "Type '[DataTypeToEntity[DT]]' is not assignable to type 'DataTypeToEntity'". Since the project already requires TypeScript >= 5.4, delegate the public `NoInfer` alias to TypeScript's built-in `NoInfer` (introduced in 5.4). A small `noInfer.ts` helper exposes it as `IntrinsicNoInfer` to avoid the local-shadow recursion problem. Vue's `setQueryData` implementation now forwards the `` generic to `super.setQueryData(...)` so its declared `NoInfer | undefined` return type stays satisfied under the stricter built-in `NoInfer`. Fixes #9937 * test(react-query): move 'generic indexed access TData' describe out of 'initialData' Block was nested inside `describe('initialData', ...)` but is unrelated to initialData behavior. Lift it to sibling level under `describe('useQuery', ...)` so test output groups it correctly. Co-Authored-By: Claude Opus 4.7 (1M context) * test(react-query): document implicit regression guard for generic indexed-access NoInfer Per CodeRabbit nitpick: clarify that the `getLabel(props.dataType, data)` call itself is the regression guard. With the previous hand-rolled NoInfer, this call failed to type-check; with built-in NoInfer (TS 5.4+), it compiles. An explicit `expectTypeOf(data).toEqualTypeOf<...>()` / `toMatchTypeOf<...>()` cannot work here — vitest's type-relation checks reduce to `Extends, T>` which TS leaves unresolved under a generic `TDataType extends DataType` constraint. Co-Authored-By: Claude Opus 4.7 (1M context) * refactor(query-core): drop NoInfer re-export, use built-in everywhere Per @TkDodo's review: TypeScript's intrinsic NoInfer (TS ≥ 5.4) is the canonical type, and the package already requires TS ≥ 5.4. Removing the re-export sidesteps the self-shadowing issue entirely and avoids encouraging consumers to import a duplicate. --------- Co-authored-by: Claude Opus 4.7 (1M context) Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/query-core-noinfer-builtin.md | 6 +++ packages/preact-query/src/useQuery.ts | 7 +-- packages/query-core/src/queryClient.ts | 1 - packages/query-core/src/types.ts | 2 - .../src/__tests__/useQuery.test-d.tsx | 48 +++++++++++++++++++ packages/react-query/src/useQuery.ts | 7 +-- packages/vue-query/src/queryClient.ts | 3 +- 7 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 .changeset/query-core-noinfer-builtin.md diff --git a/.changeset/query-core-noinfer-builtin.md b/.changeset/query-core-noinfer-builtin.md new file mode 100644 index 00000000000..6958486fd61 --- /dev/null +++ b/.changeset/query-core-noinfer-builtin.md @@ -0,0 +1,6 @@ +--- +'@tanstack/query-core': patch +'@tanstack/vue-query': patch +--- + +fix(query-core): drop the custom `NoInfer` re-export and rely on TypeScript's built-in `NoInfer` (TS ≥ 5.4) so `NoInfer` stays assignable to `X[K]` in generic contexts (fixes #9937) diff --git a/packages/preact-query/src/useQuery.ts b/packages/preact-query/src/useQuery.ts index 0633587e094..6d462bc9dd7 100644 --- a/packages/preact-query/src/useQuery.ts +++ b/packages/preact-query/src/useQuery.ts @@ -1,10 +1,5 @@ import { QueryObserver } from '@tanstack/query-core' -import type { - DefaultError, - NoInfer, - QueryClient, - QueryKey, -} from '@tanstack/query-core' +import type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core' import type { DefinedInitialDataOptions, diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts index f448a068f2f..d82106c7375 100644 --- a/packages/query-core/src/queryClient.ts +++ b/packages/query-core/src/queryClient.ts @@ -29,7 +29,6 @@ import type { MutationKey, MutationObserverOptions, MutationOptions, - NoInfer, OmitKeyof, QueryClientConfig, QueryKey, diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index cb8fa4a747c..b2e80f2a144 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -34,8 +34,6 @@ export type Override = { : TTargetA[AKey] } -export type NoInfer = [T][T extends any ? 0 : never] - export interface Register { // defaultError: Error // queryMeta: Record diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index 9eabb3a2ef3..fa104f5f922 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -338,4 +338,52 @@ describe('useQuery', () => { }) }) }) + + describe('generic indexed access TData', () => { + // https://github.com/TanStack/query/issues/9937 + it('should be assignable back to its source indexed type when passed to a generic function parameter', () => { + enum DataType { + Account = 'account', + Product = 'product', + } + + interface Account { + name: string + } + interface Product { + code: string + } + + type DataTypeToEntity = { + [DataType.Account]: Account + [DataType.Product]: Product + } + + const getData = ( + _dataType: TDataType, + ): Promise => + Promise.resolve({} as DataTypeToEntity[TDataType]) + + const getLabel = ( + _dataType: TDataType, + _data: DataTypeToEntity[TDataType], + ) => 'test' + + function Test(props: { + dataType: TDataType + }) { + const { data } = useQuery({ + queryKey: ['test'], + queryFn: () => getData(props.dataType), + }) + + // Regression guard: this call must compile. With the previous + // hand-rolled NoInfer, `data` failed to flow back into the generic + // indexed-access parameter `DataTypeToEntity[TDataType]`. + return data ? getLabel(props.dataType, data) : null + } + + expectTypeOf(Test).toBeFunction() + }) + }) }) diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts index 52d479551d8..c0f2a6a8404 100644 --- a/packages/react-query/src/useQuery.ts +++ b/packages/react-query/src/useQuery.ts @@ -1,12 +1,7 @@ 'use client' import { QueryObserver } from '@tanstack/query-core' import { useBaseQuery } from './useBaseQuery' -import type { - DefaultError, - NoInfer, - QueryClient, - QueryKey, -} from '@tanstack/query-core' +import type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core' import type { DefinedUseQueryResult, UseQueryOptions, diff --git a/packages/vue-query/src/queryClient.ts b/packages/vue-query/src/queryClient.ts index 2568d83f26a..b9f78e26c17 100644 --- a/packages/vue-query/src/queryClient.ts +++ b/packages/vue-query/src/queryClient.ts @@ -21,7 +21,6 @@ import type { MutationFilters, MutationKey, MutationObserverOptions, - NoInfer, OmitKeyof, QueryFilters, QueryKey, @@ -125,7 +124,7 @@ export class QueryClient extends QC { updater: Updater, options: MaybeRefDeep = {}, ): NoInfer | undefined { - return super.setQueryData( + return super.setQueryData( cloneDeepUnref(queryKey), updater, cloneDeepUnref(options), From 05cf2bc0a4eae64959dc8a40152e2878190c971b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 21:16:14 +0200 Subject: [PATCH 297/414] ci: Version Packages (#10758) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/query-core-noinfer-builtin.md | 6 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/lit/basic/package.json | 4 +- examples/lit/pagination/package.json | 4 +- examples/lit/ssr/package.json | 4 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/lit-query/CHANGELOG.md | 7 + packages/lit-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 6 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 7 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 9 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 258 +++++++++--------- 114 files changed, 461 insertions(+), 289 deletions(-) delete mode 100644 .changeset/query-core-noinfer-builtin.md diff --git a/.changeset/query-core-noinfer-builtin.md b/.changeset/query-core-noinfer-builtin.md deleted file mode 100644 index 6958486fd61..00000000000 --- a/.changeset/query-core-noinfer-builtin.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@tanstack/query-core': patch -'@tanstack/vue-query': patch ---- - -fix(query-core): drop the custom `NoInfer` re-export and rely on TypeScript's built-in `NoInfer` (TS ≥ 5.4) so `NoInfer` stays assignable to `X[K]` in generic contexts (fixes #9937) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 56eb5860d60..257c9db03e2 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 26aa1f9a384..e197a58f531 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", - "@tanstack/angular-query-persist-client": "^5.100.12", - "@tanstack/query-async-storage-persister": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-persist-client": "^5.100.13", + "@tanstack/query-async-storage-persister": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index e7c3db3f6b9..3a326090564 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 1679d444de8..21f08d43b3d 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index de805de3a66..fd9ee7e3c4a 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 03cdd6b49a9..1ec360ca647 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index f629a652bf4..21ea2efc95d 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 435b3f3107b..81ab7563092 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index ceb80ca39cc..3f29d9b5a9b 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index f35de3902b4..66e957d5726 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 1619ba8714b..4f21c461da6 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index 94096b60b14..c117155d61a 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.4", - "@tanstack/query-core": "^5.100.12", + "@tanstack/lit-query": "^0.2.5", + "@tanstack/query-core": "^5.100.13", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index 8a8ce985f27..c45d4b74965 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.4", - "@tanstack/query-core": "^5.100.12", + "@tanstack/lit-query": "^0.2.5", + "@tanstack/query-core": "^5.100.13", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index ad3f981eed6..9f3efef2342 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -8,8 +8,8 @@ }, "dependencies": { "@lit-labs/ssr": "^3.3.0", - "@tanstack/lit-query": "^0.2.4", - "@tanstack/query-core": "^5.100.12", + "@tanstack/lit-query": "^0.2.5", + "@tanstack/query-core": "^5.100.13", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 3a8a9893a1d..8acec3dda5e 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.12", + "@tanstack/preact-query": "^5.100.13", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 9d776c368ad..d21031d1579 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.12", + "@tanstack/eslint-plugin-query": "^5.100.13", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 4db78f64b6b..c5f73f808b4 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 926ac12d9dc..ad38115be63 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1936e4467de..1b3ab33af79 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.12", - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", - "@tanstack/react-query-persist-client": "^5.100.12", + "@tanstack/query-async-storage-persister": "^5.100.13", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query-persist-client": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.12", + "@tanstack/eslint-plugin-query": "^5.100.13", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 8bbf17ad038..efd6c915a50 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 857f70f3dc3..5cc59610290 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 494bfcf5784..d8f66253209 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 9427eb89040..7d2e7b68abd 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.12", - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", - "@tanstack/react-query-persist-client": "^5.100.12", + "@tanstack/query-async-storage-persister": "^5.100.13", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query-persist-client": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.12", + "@tanstack/eslint-plugin-query": "^5.100.13", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index ae4e4fe96fc..4c1290e8a2e 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", + "@tanstack/react-query": "^5.100.13", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.12", + "@tanstack/eslint-plugin-query": "^5.100.13", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b2252169620..bef921fa35d 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 7f7531e77a0..f4192837d47 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index cd63d1f85a3..c70b47538b9 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 06433374552..80c41f56114 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", - "@tanstack/react-query-next-experimental": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query-next-experimental": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index ec897fb2ac8..e16adc98f66 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index a69fe5788d8..41599e686bb 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.12", + "@tanstack/query-async-storage-persister": "^5.100.13", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", - "@tanstack/react-query-persist-client": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query-persist-client": "^5.100.13", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index cdc368d9e11..049317e18f5 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index b32c66b89c3..88db47cba2f 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 12dc67928c4..d8ca57038c7 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 0b13f748f20..7e5e171dfd6 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 909b62aaae6..5abfc4a1be6 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 9dc476639d9..2ba263650b3 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 27e0bf57db4..f96ee77bb86 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index c6371a9ccd7..3188a95eb97 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index d3ac4702b3e..93356b8a0dc 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index abeed2a6ef1..fff0e7df118 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 8b8b54d8ef3..a87ac9477f4 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 453df80a400..44a712ec1ce 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.12", - "@tanstack/react-query-devtools": "^5.100.12", + "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query-devtools": "^5.100.13", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index c952cc3e5c5..c8abdd3da81 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.12", - "@tanstack/solid-query-devtools": "^5.100.12", + "@tanstack/solid-query": "^5.100.13", + "@tanstack/solid-query-devtools": "^5.100.13", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 66c93f65a14..40f4a26c947 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.12", - "@tanstack/solid-query-devtools": "^5.100.12", + "@tanstack/solid-query": "^5.100.13", + "@tanstack/solid-query-devtools": "^5.100.13", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 4d05cc6aa79..ddf3fd75b2d 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.12", - "@tanstack/solid-query-devtools": "^5.100.12", + "@tanstack/solid-query": "^5.100.13", + "@tanstack/solid-query-devtools": "^5.100.13", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 6454bd9f392..c4c962ec0a1 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.12", - "@tanstack/solid-query-devtools": "^5.100.12", + "@tanstack/solid-query": "^5.100.13", + "@tanstack/solid-query-devtools": "^5.100.13", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index ce52d64a51f..295f15800eb 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.12", - "@tanstack/solid-query": "^5.100.12", - "@tanstack/solid-query-devtools": "^5.100.12", - "@tanstack/solid-query-persist-client": "^5.100.12", + "@tanstack/query-async-storage-persister": "^5.100.13", + "@tanstack/solid-query": "^5.100.13", + "@tanstack/solid-query-devtools": "^5.100.13", + "@tanstack/solid-query-persist-client": "^5.100.13", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 8fea954c599..35bed60d628 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.12", - "@tanstack/solid-query-devtools": "^5.100.12", + "@tanstack/solid-query": "^5.100.13", + "@tanstack/solid-query-devtools": "^5.100.13", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.12", + "@tanstack/eslint-plugin-query": "^5.100.13", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 57c2b79efdc..4f0fbffe367 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.12", - "@tanstack/solid-query-devtools": "^5.100.12", + "@tanstack/solid-query": "^5.100.13", + "@tanstack/solid-query-devtools": "^5.100.13", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index f4a18f73bd7..05aeb8fa5ad 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31" + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 5854ad2499c..3d41cf4e3f5 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.12", - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31", - "@tanstack/svelte-query-persist-client": "^6.1.31" + "@tanstack/query-async-storage-persister": "^5.100.13", + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32", + "@tanstack/svelte-query-persist-client": "^6.1.32" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 979f4318b7c..ae4030aa08d 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31" + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 26405cf9bac..0d334f0d88b 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31" + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index dd865e499d2..ca2c8d35d6e 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31" + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 29abcfcbcd0..a4b5779dd32 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31" + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index a576906642a..480f96c8d57 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31" + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index fab30e7ea59..dcb0e9df041 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.31", - "@tanstack/svelte-query-devtools": "^6.1.31" + "@tanstack/svelte-query": "^6.1.32", + "@tanstack/svelte-query-devtools": "^6.1.32" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 7ce67e0c8ef..1567788cae4 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.12", - "@tanstack/vue-query-devtools": "^6.1.31", + "@tanstack/vue-query": "^5.100.13", + "@tanstack/vue-query-devtools": "^6.1.32", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index b10a5a36393..37fdcfef6d2 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.12", + "@tanstack/vue-query": "^5.100.13", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 801b8ac5165..99fb3c0773a 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.12", - "@tanstack/query-persist-client-core": "^5.100.12", - "@tanstack/query-sync-storage-persister": "^5.100.12", - "@tanstack/vue-query": "^5.100.12", + "@tanstack/query-core": "^5.100.13", + "@tanstack/query-persist-client-core": "^5.100.13", + "@tanstack/query-sync-storage-persister": "^5.100.13", + "@tanstack/vue-query": "^5.100.13", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 0c2ccc741ac..c494123bf62 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.12", - "@tanstack/vue-query-devtools": "^6.1.31", + "@tanstack/vue-query": "^5.100.13", + "@tanstack/vue-query-devtools": "^6.1.32", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 7c82177d6b6..aa8c97b41d2 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.12", + "@tanstack/angular-query-experimental": "^5.100.13", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index f4bf5bec529..e545a5a1ea3 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index bbfc9f64503..acabd15b57c 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.12", + "version": "5.100.13", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index ab5eb7dbf99..1c679e5c162 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.13 + - @tanstack/query-persist-client-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 362ae5156e1..9c80a6bade7 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.12", + "version": "5.100.13", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 526ea8f3a95..6f08e29c496 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 2b69e1c06ad..f1b01c69b14 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.12", + "version": "5.100.13", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/lit-query/CHANGELOG.md b/packages/lit-query/CHANGELOG.md index 68e7c25ca37..38c816bc8d5 100644 --- a/packages/lit-query/CHANGELOG.md +++ b/packages/lit-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/lit-query +## 0.2.5 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 0.2.4 ### Patch Changes diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index 0329edc0af2..73f17c61d5d 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-query", - "version": "0.2.4", + "version": "0.2.5", "description": "Lit adapter for TanStack Query Core", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index cc70232a0a6..cd4eb3c6ea6 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.13 + - @tanstack/query-devtools@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index 10a20eb99c7..fbfa6ea3d7e 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.12", + "version": "5.100.13", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 089c4aea8fc..57f9ec7d0c2 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.13 + - @tanstack/query-persist-client-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index a2156376d5f..f68b8abf7fd 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.12", + "version": "5.100.13", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index f4b1add425d..ecfcf0b853b 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 0e1f7d3e895..6eca12c3cf0 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.12", + "version": "5.100.13", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index a1d5a3ddbe7..060a970f420 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + - @tanstack/query-persist-client-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index ff59228cf64..ffcbc70a1bc 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.12", + "version": "5.100.13", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index bc51c32669f..fa49d4fe31f 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 28a3dbdc666..48cac90efed 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.12", + "version": "5.100.13", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index 7922b7be6d3..a706ee4bd58 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/query-core +## 5.100.13 + +### Patch Changes + +- fix(query-core): drop the custom `NoInfer` re-export and rely on TypeScript's built-in `NoInfer` (TS ≥ 5.4) so `NoInfer` stays assignable to `X[K]` in generic contexts (fixes [#9937](https://github.com/TanStack/query/issues/9937)) ([#10593](https://github.com/TanStack/query/pull/10593)) + ## 5.100.12 ## 5.100.11 diff --git a/packages/query-core/package.json b/packages/query-core/package.json index dde0b6c3bf9..20fffef7738 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.12", + "version": "5.100.13", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index 7911081ce31..ac48404c7c8 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.13 + ## 5.100.12 ## 5.100.11 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 4d18a30bfea..a328debe92e 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.12", + "version": "5.100.13", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 40295c6f38f..7f4a8e28b38 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 7f3895b249a..3c1cae31199 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.12", + "version": "5.100.13", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index 4dfdc281cee..ed1221337a2 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + - @tanstack/query-persist-client-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 5176c6cc2de..953c7b79c36 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.12", + "version": "5.100.13", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index b70a85f4bb4..709f649e349 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.13 + - @tanstack/react-query@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 920fff21609..8915efc7d2c 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.12", + "version": "5.100.13", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index 411dd45d8ef..f4cce182ec9 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/react-query@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 1a0e79a0a70..b2fc00b4081 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.12", + "version": "5.100.13", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 1ea8af0efc8..05dcdfb1b00 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.13 + - @tanstack/react-query@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 304170369ec..dddc3b5b7e4 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.12", + "version": "5.100.13", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 00acdb3aeee..4276f5bcb2c 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 614aa7fa129..2d0b1edd204 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.12", + "version": "5.100.13", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index 89c2592af19..cc71304c189 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.13 + - @tanstack/solid-query@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 793667dfd10..2bd28802fa8 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.12", + "version": "5.100.13", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index a26a12e9534..5475a18771c 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.13 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.13 + - @tanstack/solid-query@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 59fabe9d078..017486fa7d9 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.12", + "version": "5.100.13", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index e8c811950a2..2de1a87285f 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.13 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 86f658ff094..c709c0bfc24 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.12", + "version": "5.100.13", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 17f802a12be..9856529fbac 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.32 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.13 + - @tanstack/svelte-query@6.1.32 + ## 6.1.31 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index a5d9e7db5cd..570fec16285 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.31", + "version": "6.1.32", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index bcc770f21df..f28bcd56376 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.32 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.13 + - @tanstack/svelte-query@6.1.32 + ## 6.1.31 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index b568e21d424..505868b90bc 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.31", + "version": "6.1.32", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index 0cf2baa2504..c5b8480bbb6 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.32 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 6.1.31 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 69cb93aa54b..cfad231e8d8 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.31", + "version": "6.1.32", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 3dffdf3366d..1fe8b5b28d8 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.32 + +### Patch Changes + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/vue-query@5.100.13 + - @tanstack/query-devtools@5.100.13 + ## 6.1.31 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 711ba909ea0..29718bba41e 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.31", + "version": "6.1.32", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 8d9c038fea9..38e37522f2c 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/vue-query +## 5.100.13 + +### Patch Changes + +- fix(query-core): drop the custom `NoInfer` re-export and rely on TypeScript's built-in `NoInfer` (TS ≥ 5.4) so `NoInfer` stays assignable to `X[K]` in generic contexts (fixes [#9937](https://github.com/TanStack/query/issues/9937)) ([#10593](https://github.com/TanStack/query/pull/10593)) + +- Updated dependencies [[`d423168`](https://github.com/TanStack/query/commit/d423168f6261a5cb3d353e53b27c8150cc271151)]: + - @tanstack/query-core@5.100.13 + ## 5.100.12 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 2a006f54651..302e86f9270 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.12", + "version": "5.100.13", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5d3e11bec1..72b64801f7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,7 +170,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -210,7 +210,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -250,13 +250,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -299,7 +299,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -339,7 +339,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -382,7 +382,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -422,7 +422,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -465,7 +465,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -508,7 +508,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -551,7 +551,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -591,7 +591,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -619,10 +619,10 @@ importers: examples/lit/basic: dependencies: '@tanstack/lit-query': - specifier: ^0.2.4 + specifier: ^0.2.5 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -638,10 +638,10 @@ importers: examples/lit/pagination: dependencies: '@tanstack/lit-query': - specifier: ^0.2.4 + specifier: ^0.2.5 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -660,10 +660,10 @@ importers: specifier: ^3.3.0 version: 3.3.1 '@tanstack/lit-query': - specifier: ^0.2.4 + specifier: ^0.2.5 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -685,7 +685,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -713,10 +713,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -726,7 +726,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -747,10 +747,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -775,16 +775,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -794,7 +794,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -815,10 +815,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -843,10 +843,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -874,10 +874,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -899,10 +899,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -924,16 +924,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -943,7 +943,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -964,14 +964,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -986,10 +986,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1014,10 +1014,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1045,10 +1045,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1073,10 +1073,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1101,13 +1101,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1132,19 +1132,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1172,10 +1172,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1200,10 +1200,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1228,10 +1228,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1256,10 +1256,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1281,10 +1281,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1318,10 +1318,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1370,10 +1370,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1422,10 +1422,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1459,10 +1459,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1490,10 +1490,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1515,10 +1515,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1552,10 +1552,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1598,10 +1598,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1619,10 +1619,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1641,10 +1641,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1669,10 +1669,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1691,16 +1691,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1722,17 +1722,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1756,10 +1756,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1771,10 +1771,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1802,16 +1802,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1839,10 +1839,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1870,10 +1870,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1901,10 +1901,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1932,10 +1932,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1960,10 +1960,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1991,10 +1991,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -2028,10 +2028,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2050,7 +2050,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2069,16 +2069,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2100,10 +2100,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.31 + specifier: ^6.1.32 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2140,7 +2140,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.12 + specifier: ^5.100.13 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From b94b24ec99f037dee4810cb0b64185fa30972899 Mon Sep 17 00:00:00 2001 From: OrbisAI Security Date: Sat, 23 May 2026 03:35:25 +0530 Subject: [PATCH 298/414] fix: upgrade @sveltejs/kit to 2.57.1 (CVE-2026-40073) (#10637) * fix: CVE-2026-40073 security vulnerability Automated dependency upgrade by Orbis Security AI * Address review feedback (1 comments) * Address review feedback (1 comments) * fix package json --------- Co-authored-by: TkDodo --- examples/svelte/auto-refetching/package.json | 2 +- examples/svelte/basic/package.json | 2 +- .../load-more-infinite-scroll/package.json | 2 +- .../svelte/optimistic-updates/package.json | 2 +- examples/svelte/playground/package.json | 2 +- examples/svelte/ssr/package.json | 2 +- examples/svelte/star-wars/package.json | 2 +- pnpm-lock.yaml | 69 ++++++++++--------- 8 files changed, 43 insertions(+), 40 deletions(-) diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 05aeb8fa5ad..ba0c2aee155 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/kit": "^2.42.2", + "@sveltejs/kit": "^2.57.1", "@sveltejs/vite-plugin-svelte": "^5.1.1", "svelte": "^5.39.3", "svelte-check": "^4.3.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 3d41cf4e3f5..afbab678abc 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/kit": "^2.42.2", + "@sveltejs/kit": "^2.57.1", "@sveltejs/vite-plugin-svelte": "^5.1.1", "svelte": "^5.39.3", "svelte-check": "^4.3.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index ae4030aa08d..7ebebb14d45 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/kit": "^2.42.2", + "@sveltejs/kit": "^2.57.1", "@sveltejs/vite-plugin-svelte": "^5.1.1", "svelte": "^5.39.3", "svelte-check": "^4.3.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 0d334f0d88b..9c81d8cf7a8 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/kit": "^2.42.2", + "@sveltejs/kit": "^2.57.1", "@sveltejs/vite-plugin-svelte": "^5.1.1", "svelte": "^5.39.3", "svelte-check": "^4.3.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index ca2c8d35d6e..dabe7e34d24 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/kit": "^2.42.2", + "@sveltejs/kit": "^2.57.1", "@sveltejs/vite-plugin-svelte": "^5.1.1", "svelte": "^5.39.3", "svelte-check": "^4.3.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 480f96c8d57..1cdec035c4a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/kit": "^2.42.2", + "@sveltejs/kit": "^2.57.1", "@sveltejs/vite-plugin-svelte": "^5.1.1", "svelte": "^5.39.3", "svelte-check": "^4.3.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index dcb0e9df041..ba09ec5dfd3 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/kit": "^2.42.2", + "@sveltejs/kit": "^2.57.1", "@sveltejs/vite-plugin-svelte": "^5.1.1", "@tailwindcss/vite": "^4.1.13", "svelte": "^5.39.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72b64801f7c..a05e081e857 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1596,7 +1596,7 @@ importers: version: 6.0.2(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) + version: 8.2.11(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': specifier: ^5.100.13 version: link:../../../packages/solid-query @@ -1779,10 +1779,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': - specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: ^2.57.1 + version: 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -1816,10 +1816,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': - specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: ^2.57.1 + version: 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -1847,10 +1847,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': - specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: ^2.57.1 + version: 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -1878,10 +1878,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': - specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: ^2.57.1 + version: 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -1909,10 +1909,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': - specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: ^2.57.1 + version: 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -1968,10 +1968,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': - specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: ^2.57.1 + version: 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -1999,10 +1999,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.1.0 - version: 6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))) '@sveltejs/kit': - specifier: ^2.42.2 - version: 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: ^2.57.1 + version: 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 version: 5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -7131,15 +7131,15 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/kit@2.55.0': - resolution: {integrity: sha512-MdFRjevVxmAknf2NbaUkDF16jSIzXMWd4Nfah0Qp8TtQVoSp3bV4jKt8mX7z7qTUTWvgSaxtR0EG5WJf53gcuA==} + '@sveltejs/kit@2.57.1': + resolution: {integrity: sha512-VRdSbB96cI1EnRh09CqmnQqP/YJvET5buj8S6k7CxaJqBJD4bw4fRKDjcarAj/eX9k2eHifQfDH8NtOh+ZxxPw==} engines: {node: '>=18.13'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.0.0 '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: ^5.3.3 + typescript: ^5.3.3 || ^6.0.0 vite: ^6.4.1 peerDependenciesMeta: '@opentelemetry/api': @@ -8107,6 +8107,7 @@ packages: '@xmldom/xmldom@0.8.12': resolution: {integrity: sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==} engines: {node: '>=10.0.0'} + deprecated: this version has critical issues, please update to the latest version '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -15756,10 +15757,12 @@ packages: uuid@7.0.3: resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true validate-npm-package-license@3.0.4: @@ -16966,10 +16969,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.2.11(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': + '@astrojs/vercel@8.2.11(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.7.4 - '@vercel/analytics': 1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) + '@vercel/analytics': 1.6.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@vercel/functions': 2.2.13 '@vercel/nft': 0.30.3(rollup@4.60.1) '@vercel/routing-utils': 5.3.3 @@ -20932,11 +20935,11 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))': + '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + '@sveltejs/kit': 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) - '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': + '@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) @@ -20957,7 +20960,7 @@ snapshots: typescript: 5.8.3 optional: true - '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': + '@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) @@ -21813,9 +21816,9 @@ snapshots: '@urql/core': 5.2.0(graphql@16.13.2) wonka: 6.3.6 - '@vercel/analytics@1.6.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': + '@vercel/analytics@1.6.1(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3))': optionalDependencies: - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + '@sveltejs/kit': 2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) next: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0) react: 19.2.4 svelte: 5.55.1 From a00c0d2226fbf0cc5815d75e3e55d239f21a61a6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 23 May 2026 14:02:58 +0900 Subject: [PATCH 299/414] test(query-devtools/Devtools): add tests for opening a picture-in-picture window (#10760) --- .../src/__tests__/Devtools.test.tsx | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 7c1c0a62a83..4a706e1b319 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -376,6 +376,62 @@ describe('Devtools', () => { }) }) + describe('picture-in-picture', () => { + type FakePipWindow = Pick< + Window, + | 'document' + | 'innerWidth' + | 'innerHeight' + | 'addEventListener' + | 'removeEventListener' + | 'close' + > + + function stubPipWindow() { + const pipDocument = document.implementation.createHTMLDocument('PiP') + const fakeWindow: FakePipWindow = { + document: pipDocument, + innerWidth: 800, + innerHeight: 600, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + close: vi.fn(), + } + const open = vi.fn(() => fakeWindow) + vi.stubGlobal('open', open) + return { pipDocument, fakeWindow, open } + } + + it('should open a PiP window when the picture-in-picture button is clicked', () => { + const { open } = stubPipWindow() + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click( + rendered.getByLabelText('Open in picture-in-picture mode'), + ) + + expect(open).toHaveBeenCalledWith( + '', + 'TSQD-Devtools-Panel', + expect.stringMatching(/^width=\d+,height=\d+,popup$/), + ) + expect(localStorage.getItem('TanstackQueryDevtools.pip_open')).toBe( + 'true', + ) + }) + + it('should automatically open a PiP window when "pip_open" is "true" in "localStorage"', () => { + const { open } = stubPipWindow() + + renderDevtools( + { initialIsOpen: true }, + { 'TanstackQueryDevtools.pip_open': 'true' }, + ) + + expect(open).toHaveBeenCalled() + }) + }) + describe('status counts', () => { it('should render status count badges', () => { const rendered = renderDevtools({ initialIsOpen: true }) From 217b67a4b77bd78a128e2c86970dd3a3690ac547 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 23 May 2026 14:26:26 +0900 Subject: [PATCH 300/414] test(query-devtools/Devtools): add test for 'pip_open' reset when the popup is blocked (#10761) --- .../src/__tests__/Devtools.test.tsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 4a706e1b319..fbb747d9613 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -430,6 +430,32 @@ describe('Devtools', () => { expect(open).toHaveBeenCalled() }) + + it('should log and reset "pip_open" when the browser blocks the popup', () => { + vi.stubGlobal( + 'open', + vi.fn(() => null), + ) + const consoleError = vi + .spyOn(console, 'error') + .mockImplementation(() => {}) + + try { + renderDevtools( + { initialIsOpen: true }, + { 'TanstackQueryDevtools.pip_open': 'true' }, + ) + + expect(consoleError).toHaveBeenCalledWith( + expect.stringContaining('Failed to open popup'), + ) + expect(localStorage.getItem('TanstackQueryDevtools.pip_open')).toBe( + 'false', + ) + } finally { + consoleError.mockRestore() + } + }) }) describe('status counts', () => { From 50a71c31ecd1df5bf8c208643dbfc8bd0c4cf16b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 23 May 2026 14:48:09 +0900 Subject: [PATCH 301/414] test(query-devtools/Devtools): add tests for in-page panel visibility while a PiP window is open (#10762) --- .../src/__tests__/Devtools.test.tsx | 48 +++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index fbb747d9613..1e555277a79 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -389,17 +389,29 @@ describe('Devtools', () => { function stubPipWindow() { const pipDocument = document.implementation.createHTMLDocument('PiP') + const listeners = new Map() const fakeWindow: FakePipWindow = { document: pipDocument, innerWidth: 800, innerHeight: 600, - addEventListener: vi.fn(), - removeEventListener: vi.fn(), + addEventListener: vi.fn((event: string, handler: EventListener) => { + listeners.set(event, handler) + }), + removeEventListener: vi.fn((event: string) => { + listeners.delete(event) + }), close: vi.fn(), } const open = vi.fn(() => fakeWindow) vi.stubGlobal('open', open) - return { pipDocument, fakeWindow, open } + return { + pipDocument, + fakeWindow, + open, + fire: (event: string) => { + listeners.get(event)?.(new Event(event)) + }, + } } it('should open a PiP window when the picture-in-picture button is clicked', () => { @@ -456,6 +468,36 @@ describe('Devtools', () => { consoleError.mockRestore() } }) + + it('should hide the in-page panel while a PiP window is open', () => { + stubPipWindow() + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click( + rendered.getByLabelText('Open in picture-in-picture mode'), + ) + + expect( + rendered.container.querySelector('.tsqd-main-panel-container'), + ).toBeNull() + }) + + it('should restore the in-page panel and reset "pip_open" when the PiP window is closed', () => { + const { fire } = stubPipWindow() + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click( + rendered.getByLabelText('Open in picture-in-picture mode'), + ) + fire('pagehide') + + expect(localStorage.getItem('TanstackQueryDevtools.pip_open')).toBe( + 'false', + ) + expect( + rendered.getByLabelText('Open in picture-in-picture mode'), + ).toBeInTheDocument() + }) }) describe('status counts', () => { From d5c6df709008115435dee8f9f7293be9f167ea0e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 23 May 2026 16:15:15 +0900 Subject: [PATCH 302/414] test(query-devtools/Devtools): add test for restoring 'width' to the rendered minimum after a drag clamp (#10763) --- .../src/__tests__/Devtools.test.tsx | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 1e555277a79..284304d7b8b 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1341,6 +1341,60 @@ describe('Devtools', () => { ) }) + it('should restore "width" to the rendered minimum when the panel is dragged below its content width', () => { + const initialWidth = 400 + // The panel uses `min-width: min-content`, so the rendered width may + // exceed the 192px `minWidth` constant when its children are wider; any + // value > 192 here triggers the `localStore.width < newWidth` restore + // branch. + const renderedMinWidth = 250 + const rendered = renderDevtools( + { position: 'left', initialIsOpen: true }, + { 'TanstackQueryDevtools.width': String(initialWidth) }, + ) + + const handle = rendered.getByLabelText('Resize devtools panel') + const panel = handle.parentElement + expect(panel).toBeInstanceOf(HTMLElement) + const getBoundingClientRect = vi + .spyOn(panel!, 'getBoundingClientRect') + .mockReturnValueOnce({ + height: 0, + width: initialWidth, + x: 0, + y: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + toJSON: () => ({}), + }) + getBoundingClientRect.mockReturnValue({ + height: 0, + width: renderedMinWidth, + x: 0, + y: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + toJSON: () => ({}), + }) + + // Drag 300px left shrinks the panel to 100 — below `minWidth`, so the + // clamp + restore branches both fire. + fireEvent.mouseDown(handle, { clientX: 300, clientY: 0 }) + fireEvent( + document, + new MouseEvent('mousemove', { clientX: 0, clientY: 0 }), + ) + fireEvent(document, new MouseEvent('mouseup')) + + expect(Number(localStorage.getItem('TanstackQueryDevtools.width'))).toBe( + renderedMinWidth, + ) + }) + it('should close the query details panel when dragging shrinks the panel below the minimum height', () => { queryClient.setQueryData(['shrink-below-min-height'], [{ id: 1 }]) const rendered = renderDevtools({ From 3f10705579e82ad59c24b3da87c3b3094d510a97 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 23 May 2026 21:52:15 +0900 Subject: [PATCH 303/414] test(query-devtools/Devtools): add test for rendering an idle mutation row (#10764) --- .../src/__tests__/Devtools.test.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 284304d7b8b..066f71268ab 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -339,6 +339,22 @@ describe('Devtools', () => { rendered.getByLabelText(/Mutation submitted at/), ).toBeInTheDocument() }) + + it('should render an idle mutation that has been built but not executed', async () => { + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click(rendered.getByText('Mutations')) + + queryClient.getMutationCache().build(queryClient, { + mutationKey: ['idle-mut'], + mutationFn: () => Promise.resolve('ok'), + }) + await vi.advanceTimersByTimeAsync(0) + + expect( + rendered.getByLabelText(/Mutation submitted at/), + ).toBeInTheDocument() + }) }) describe('disabled and static queries', () => { From ed20b6d7541c908033acfcad92b0cd112930d1c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Dorfmeister=20=F0=9F=94=AE?= Date: Sat, 23 May 2026 17:34:07 +0200 Subject: [PATCH 304/414] fix(react): do not go into optimistic fetching state when not subscribed (#10759) * fix(react): do not go into optimistic fetching state when not subscribed * changeset --- .changeset/strong-toes-knock.md | 5 +++ .../src/__tests__/useQuery.test.tsx | 36 +++++++++++++++++++ packages/react-query/src/useBaseQuery.ts | 8 +++-- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 .changeset/strong-toes-knock.md diff --git a/.changeset/strong-toes-knock.md b/.changeset/strong-toes-knock.md new file mode 100644 index 00000000000..42f1258ecd1 --- /dev/null +++ b/.changeset/strong-toes-knock.md @@ -0,0 +1,5 @@ +--- +'@tanstack/react-query': patch +--- + +fix(react-query): do not go into optimistic fetching state when not subscribed diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 7504b9b4cb0..47a060067fc 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -5916,6 +5916,42 @@ describe('useQuery', () => { ).toBe(1) }) + it('should not optimistically show fetching when unsubscribed', async () => { + const key = queryKey() + const queryFn = vi.fn(() => Promise.resolve('data')) + + function Page() { + const [subscribed, setSubscribed] = React.useState(true) + const query = useQuery({ + queryKey: key, + queryFn, + subscribed, + }) + + return ( +
+ isFetching: {String(query.isFetching)} + fetchStatus: {query.fetchStatus} + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('isFetching: false') + rendered.getByText('fetchStatus: idle') + + fireEvent.click(rendered.getByRole('button', { name: 'unsubscribe' })) + + expect(queryFn).toHaveBeenCalledTimes(1) + expect( + queryClient.getQueryCache().find({ queryKey: key })!.observers.length, + ).toBe(0) + rendered.getByText('isFetching: false') + rendered.getByText('fetchStatus: idle') + }) + it('should not be attached to the query when subscribed is false', async () => { const key = queryKey() const queryFn = vi.fn(() => Promise.resolve('data')) diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index a88f7d40fbf..eb6a40d9a23 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -74,10 +74,14 @@ export function useBaseQuery< } } + const subscribed = options.subscribed !== false + // Make sure results are optimistically set in fetching state before subscribing or updating options defaultedOptions._optimisticResults = isRestoring ? 'isRestoring' - : 'optimistic' + : subscribed + ? 'optimistic' + : undefined ensureSuspenseTimers(defaultedOptions) ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query) @@ -99,7 +103,7 @@ export function useBaseQuery< // note: this must be called before useSyncExternalStore const result = observer.getOptimisticResult(defaultedOptions) - const shouldSubscribe = !isRestoring && options.subscribed !== false + const shouldSubscribe = !isRestoring && subscribed React.useSyncExternalStore( React.useCallback( (onStoreChange) => { From ba6e7beebd50143408f01fcf5d9aee2ec1486f60 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 19:13:22 +0200 Subject: [PATCH 305/414] ci: Version Packages (#10767) ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/strong-toes-knock.md | 5 - examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 6 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../package.json | 2 +- .../angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/lit/basic/package.json | 4 +- examples/lit/pagination/package.json | 4 +- examples/lit/ssr/package.json | 4 +- examples/preact/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +- examples/react/auto-refetching/package.json | 4 +- .../react/basic-graphql-request/package.json | 4 +- examples/react/basic/package.json | 10 +- examples/react/chat/package.json | 4 +- .../react/default-query-function/package.json | 4 +- examples/react/devtools-panel/package.json | 4 +- examples/react/eslint-legacy/package.json | 10 +- .../react/eslint-plugin-demo/package.json | 4 +- .../package.json | 4 +- .../load-more-infinite-scroll/package.json | 4 +- .../react/nextjs-app-prefetching/package.json | 4 +- .../nextjs-suspense-streaming/package.json | 6 +- examples/react/nextjs/package.json | 4 +- examples/react/offline/package.json | 8 +- .../optimistic-updates-cache/package.json | 4 +- .../react/optimistic-updates-ui/package.json | 4 +- examples/react/pagination/package.json | 4 +- examples/react/playground/package.json | 4 +- examples/react/prefetching/package.json | 4 +- examples/react/react-native/package.json | 4 +- examples/react/react-router/package.json | 4 +- examples/react/rick-morty/package.json | 4 +- examples/react/shadow-dom/package.json | 4 +- examples/react/simple/package.json | 4 +- examples/react/star-wars/package.json | 4 +- examples/react/suspense/package.json | 4 +- examples/solid/astro/package.json | 4 +- .../solid/basic-graphql-request/package.json | 4 +- examples/solid/basic/package.json | 4 +- .../solid/default-query-function/package.json | 4 +- examples/solid/offline/package.json | 8 +- examples/solid/simple/package.json | 6 +- .../solid/solid-start-streaming/package.json | 4 +- examples/svelte/auto-refetching/package.json | 4 +- examples/svelte/basic/package.json | 8 +- .../load-more-infinite-scroll/package.json | 4 +- .../svelte/optimistic-updates/package.json | 4 +- examples/svelte/playground/package.json | 4 +- examples/svelte/simple/package.json | 4 +- examples/svelte/ssr/package.json | 4 +- examples/svelte/star-wars/package.json | 4 +- examples/vue/basic/package.json | 4 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 8 +- examples/vue/simple/package.json | 4 +- integrations/angular-cli-20/package.json | 2 +- .../angular-query-experimental/CHANGELOG.md | 7 + .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/CHANGELOG.md | 8 + .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/CHANGELOG.md | 2 + packages/eslint-plugin-query/package.json | 2 +- packages/lit-query/CHANGELOG.md | 7 + packages/lit-query/package.json | 2 +- packages/preact-query-devtools/CHANGELOG.md | 8 + packages/preact-query-devtools/package.json | 2 +- .../preact-query-persist-client/CHANGELOG.md | 8 + .../preact-query-persist-client/package.json | 2 +- packages/preact-query/CHANGELOG.md | 7 + packages/preact-query/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- packages/query-core/CHANGELOG.md | 2 + packages/query-core/package.json | 2 +- packages/query-devtools/CHANGELOG.md | 2 + packages/query-devtools/package.json | 2 +- .../query-persist-client-core/CHANGELOG.md | 7 + .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/CHANGELOG.md | 8 + .../query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/CHANGELOG.md | 8 + packages/react-query-devtools/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../react-query-persist-client/CHANGELOG.md | 8 + .../react-query-persist-client/package.json | 2 +- packages/react-query/CHANGELOG.md | 9 + packages/react-query/package.json | 2 +- packages/solid-query-devtools/CHANGELOG.md | 8 + packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/CHANGELOG.md | 8 + .../solid-query-persist-client/package.json | 2 +- packages/solid-query/CHANGELOG.md | 7 + packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/CHANGELOG.md | 8 + packages/svelte-query-devtools/package.json | 2 +- .../svelte-query-persist-client/CHANGELOG.md | 8 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/CHANGELOG.md | 7 + packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/CHANGELOG.md | 8 + packages/vue-query-devtools/package.json | 2 +- packages/vue-query/CHANGELOG.md | 7 + packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 258 +++++++++--------- 114 files changed, 457 insertions(+), 288 deletions(-) delete mode 100644 .changeset/strong-toes-knock.md diff --git a/.changeset/strong-toes-knock.md b/.changeset/strong-toes-knock.md deleted file mode 100644 index 42f1258ecd1..00000000000 --- a/.changeset/strong-toes-knock.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/react-query': patch ---- - -fix(react-query): do not go into optimistic fetching state when not subscribed diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 257c9db03e2..56b321a8562 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index e197a58f531..c5fb5ce697e 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", - "@tanstack/angular-query-persist-client": "^5.100.13", - "@tanstack/query-async-storage-persister": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", + "@tanstack/angular-query-persist-client": "^5.100.14", + "@tanstack/query-async-storage-persister": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 3a326090564..545b1079466 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 21f08d43b3d..418e6947493 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index fd9ee7e3c4a..6a857a980a8 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 1ec360ca647..dba1f115ca2 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 21ea2efc95d..04c4c939cef 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 81ab7563092..117f3e27f5c 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 3f29d9b5a9b..3c636f90b97 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 66e957d5726..c4be8d83f97 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 4f21c461da6..bd3403b101b 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/lit/basic/package.json b/examples/lit/basic/package.json index c117155d61a..e374723131a 100644 --- a/examples/lit/basic/package.json +++ b/examples/lit/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.5", - "@tanstack/query-core": "^5.100.13", + "@tanstack/lit-query": "^0.2.6", + "@tanstack/query-core": "^5.100.14", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/pagination/package.json b/examples/lit/pagination/package.json index c45d4b74965..2589ae2f0ab 100644 --- a/examples/lit/pagination/package.json +++ b/examples/lit/pagination/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/lit-query": "^0.2.5", - "@tanstack/query-core": "^5.100.13", + "@tanstack/lit-query": "^0.2.6", + "@tanstack/query-core": "^5.100.14", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/lit/ssr/package.json b/examples/lit/ssr/package.json index 9f3efef2342..54da9205c5b 100644 --- a/examples/lit/ssr/package.json +++ b/examples/lit/ssr/package.json @@ -8,8 +8,8 @@ }, "dependencies": { "@lit-labs/ssr": "^3.3.0", - "@tanstack/lit-query": "^0.2.5", - "@tanstack/query-core": "^5.100.13", + "@tanstack/lit-query": "^0.2.6", + "@tanstack/query-core": "^5.100.14", "lit": "^3.3.1" }, "devDependencies": { diff --git a/examples/preact/simple/package.json b/examples/preact/simple/package.json index 8acec3dda5e..d7ac40228dc 100644 --- a/examples/preact/simple/package.json +++ b/examples/preact/simple/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/preact-query": "^5.100.13", + "@tanstack/preact-query": "^5.100.14", "preact": "^10.28.0" }, "devDependencies": { diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index d21031d1579..5abbb590a8c 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.13", + "@tanstack/eslint-plugin-query": "^5.100.14", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index c5f73f808b4..fd7e5d629d6 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index ad38115be63..e54c31461af 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1b3ab33af79..6832c643633 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.13", - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", - "@tanstack/react-query-persist-client": "^5.100.13", + "@tanstack/query-async-storage-persister": "^5.100.14", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", + "@tanstack/react-query-persist-client": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.13", + "@tanstack/eslint-plugin-query": "^5.100.14", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index efd6c915a50..39b51ab9dc1 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 5cc59610290..aeaf60a61ce 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index d8f66253209..1fc8c7312b4 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 7d2e7b68abd..5f215e3827b 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.13", - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", - "@tanstack/react-query-persist-client": "^5.100.13", + "@tanstack/query-async-storage-persister": "^5.100.14", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", + "@tanstack/react-query-persist-client": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.13", + "@tanstack/eslint-plugin-query": "^5.100.14", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-plugin-demo/package.json b/examples/react/eslint-plugin-demo/package.json index 4c1290e8a2e..82486fb1079 100644 --- a/examples/react/eslint-plugin-demo/package.json +++ b/examples/react/eslint-plugin-demo/package.json @@ -6,11 +6,11 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", + "@tanstack/react-query": "^5.100.14", "react": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.13", + "@tanstack/eslint-plugin-query": "^5.100.14", "eslint": "^9.39.0", "typescript": "5.8.3", "typescript-eslint": "^8.48.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index bef921fa35d..c2380e9edc4 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index f4192837d47..1efb9c2458f 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index c70b47538b9..c56b8adb049 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 80c41f56114..277a21321af 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", - "@tanstack/react-query-next-experimental": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", + "@tanstack/react-query-next-experimental": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index e16adc98f66..df41e066252 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 41599e686bb..a5061ee4804 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.13", + "@tanstack/query-async-storage-persister": "^5.100.14", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", - "@tanstack/react-query-persist-client": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", + "@tanstack/react-query-persist-client": "^5.100.14", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 049317e18f5..664df9c3e1c 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 88db47cba2f..11535fbc79e 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index d8ca57038c7..54eb548a2b8 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 7e5e171dfd6..5ea38ff52d2 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 5abfc4a1be6..b153d0a05f6 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "next": "^16.0.7", "react": "^19.2.1", "react-dom": "^19.2.1" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 2ba263650b3..812cb0ffc00 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index f96ee77bb86..f93be4f3606 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 3188a95eb97..41fdba3658d 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 93356b8a0dc..acca2806bcf 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index fff0e7df118..67744d95153 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index a87ac9477f4..ec3b5c98dce 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 44a712ec1ce..db8bdde224c 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.100.13", - "@tanstack/react-query-devtools": "^5.100.13", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index c8abdd3da81..7c8a8bd51c2 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.100.13", - "@tanstack/solid-query-devtools": "^5.100.13", + "@tanstack/solid-query": "^5.100.14", + "@tanstack/solid-query-devtools": "^5.100.14", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 40f4a26c947..8dd756430e8 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.13", - "@tanstack/solid-query-devtools": "^5.100.13", + "@tanstack/solid-query": "^5.100.14", + "@tanstack/solid-query-devtools": "^5.100.14", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index ddf3fd75b2d..2cdf3257d4a 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.13", - "@tanstack/solid-query-devtools": "^5.100.13", + "@tanstack/solid-query": "^5.100.14", + "@tanstack/solid-query-devtools": "^5.100.14", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index c4c962ec0a1..e364b41663c 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.13", - "@tanstack/solid-query-devtools": "^5.100.13", + "@tanstack/solid-query": "^5.100.14", + "@tanstack/solid-query-devtools": "^5.100.14", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/offline/package.json b/examples/solid/offline/package.json index 295f15800eb..7ab677db807 100644 --- a/examples/solid/offline/package.json +++ b/examples/solid/offline/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.13", - "@tanstack/solid-query": "^5.100.13", - "@tanstack/solid-query-devtools": "^5.100.13", - "@tanstack/solid-query-persist-client": "^5.100.13", + "@tanstack/query-async-storage-persister": "^5.100.14", + "@tanstack/solid-query": "^5.100.14", + "@tanstack/solid-query-devtools": "^5.100.14", + "@tanstack/solid-query-persist-client": "^5.100.14", "msw": "^2.6.6", "solid-js": "^1.9.7" }, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 35bed60d628..ca12481c4e9 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.100.13", - "@tanstack/solid-query-devtools": "^5.100.13", + "@tanstack/solid-query": "^5.100.14", + "@tanstack/solid-query-devtools": "^5.100.14", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.100.13", + "@tanstack/eslint-plugin-query": "^5.100.14", "typescript": "5.8.3", "vite": "^6.4.1", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 4f0fbffe367..792a803d74a 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.100.13", - "@tanstack/solid-query-devtools": "^5.100.13", + "@tanstack/solid-query": "^5.100.14", + "@tanstack/solid-query-devtools": "^5.100.14", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index ba0c2aee155..5cf5ca0162d 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32" + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index afbab678abc..1ae40d056d3 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.100.13", - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32", - "@tanstack/svelte-query-persist-client": "^6.1.32" + "@tanstack/query-async-storage-persister": "^5.100.14", + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33", + "@tanstack/svelte-query-persist-client": "^6.1.33" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 7ebebb14d45..e59afec3d5f 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32" + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 9c81d8cf7a8..50d9e0a01f5 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32" + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index dabe7e34d24..6860cfd427d 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32" + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index a4b5779dd32..a7c1308cc76 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32" + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 1cdec035c4a..b40117e48d2 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32" + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index ba09ec5dfd3..f40a299674a 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^6.1.32", - "@tanstack/svelte-query-devtools": "^6.1.32" + "@tanstack/svelte-query": "^6.1.33", + "@tanstack/svelte-query-devtools": "^6.1.33" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 1567788cae4..5f98affe652 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.13", - "@tanstack/vue-query-devtools": "^6.1.32", + "@tanstack/vue-query": "^5.100.14", + "@tanstack/vue-query-devtools": "^6.1.33", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 37fdcfef6d2..cc722bce667 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.13", + "@tanstack/vue-query": "^5.100.14", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 99fb3c0773a..7513e317120 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.100.13", - "@tanstack/query-persist-client-core": "^5.100.13", - "@tanstack/query-sync-storage-persister": "^5.100.13", - "@tanstack/vue-query": "^5.100.13", + "@tanstack/query-core": "^5.100.14", + "@tanstack/query-persist-client-core": "^5.100.14", + "@tanstack/query-sync-storage-persister": "^5.100.14", + "@tanstack/vue-query": "^5.100.14", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index c494123bf62..d6e72d947a4 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.100.13", - "@tanstack/vue-query-devtools": "^6.1.32", + "@tanstack/vue-query": "^5.100.14", + "@tanstack/vue-query-devtools": "^6.1.33", "vue": "^3.4.27" }, "devDependencies": { diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index aa8c97b41d2..d108ad2c2fc 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.100.13", + "@tanstack/angular-query-experimental": "^5.100.14", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/packages/angular-query-experimental/CHANGELOG.md b/packages/angular-query-experimental/CHANGELOG.md index e545a5a1ea3..dd3f04bd35c 100644 --- a/packages/angular-query-experimental/CHANGELOG.md +++ b/packages/angular-query-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/angular-query-experimental +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index acabd15b57c..aa45b2ade2c 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.100.13", + "version": "5.100.14", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-persist-client/CHANGELOG.md b/packages/angular-query-persist-client/CHANGELOG.md index 1c679e5c162..fab62eaaecc 100644 --- a/packages/angular-query-persist-client/CHANGELOG.md +++ b/packages/angular-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/angular-query-persist-client +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/angular-query-experimental@5.100.14 + - @tanstack/query-persist-client-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 9c80a6bade7..cc443a471ea 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/angular-query-persist-client", "private": true, - "version": "5.100.13", + "version": "5.100.14", "description": "Angular bindings to work with persisters in TanStack/angular-query", "author": "Omer Gronich", "license": "MIT", diff --git a/packages/eslint-plugin-query/CHANGELOG.md b/packages/eslint-plugin-query/CHANGELOG.md index 6f08e29c496..e90c829f9a0 100644 --- a/packages/eslint-plugin-query/CHANGELOG.md +++ b/packages/eslint-plugin-query/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/eslint-plugin-query +## 5.100.14 + ## 5.100.13 ## 5.100.12 diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index f1b01c69b14..b635a50e25f 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.100.13", + "version": "5.100.14", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/lit-query/CHANGELOG.md b/packages/lit-query/CHANGELOG.md index 38c816bc8d5..27bbf9b3706 100644 --- a/packages/lit-query/CHANGELOG.md +++ b/packages/lit-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/lit-query +## 0.2.6 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 0.2.5 ### Patch Changes diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index 73f17c61d5d..a5a615fe594 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/lit-query", - "version": "0.2.5", + "version": "0.2.6", "description": "Lit adapter for TanStack Query Core", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-devtools/CHANGELOG.md b/packages/preact-query-devtools/CHANGELOG.md index cd4eb3c6ea6..8a07fd5afe7 100644 --- a/packages/preact-query-devtools/CHANGELOG.md +++ b/packages/preact-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-devtools +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.14 + - @tanstack/query-devtools@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json index fbfa6ea3d7e..0b23877a6ea 100644 --- a/packages/preact-query-devtools/package.json +++ b/packages/preact-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-devtools", - "version": "5.100.13", + "version": "5.100.14", "description": "Developer tools to interact with and visualize the TanStack/preact-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query-persist-client/CHANGELOG.md b/packages/preact-query-persist-client/CHANGELOG.md index 57f9ec7d0c2..65b8007a0b5 100644 --- a/packages/preact-query-persist-client/CHANGELOG.md +++ b/packages/preact-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/preact-query-persist-client +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/preact-query@5.100.14 + - @tanstack/query-persist-client-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json index f68b8abf7fd..85ec58cb682 100644 --- a/packages/preact-query-persist-client/package.json +++ b/packages/preact-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query-persist-client", - "version": "5.100.13", + "version": "5.100.14", "description": "Preact bindings to work with persisters in TanStack/preact-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/preact-query/CHANGELOG.md b/packages/preact-query/CHANGELOG.md index ecfcf0b853b..e4d60b80c0b 100644 --- a/packages/preact-query/CHANGELOG.md +++ b/packages/preact-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/preact-query +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json index 6eca12c3cf0..354bf072406 100644 --- a/packages/preact-query/package.json +++ b/packages/preact-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/preact-query", - "version": "5.100.13", + "version": "5.100.14", "description": "Hooks for managing, caching and syncing asynchronous and remote data in preact", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-async-storage-persister/CHANGELOG.md b/packages/query-async-storage-persister/CHANGELOG.md index 060a970f420..7938c614320 100644 --- a/packages/query-async-storage-persister/CHANGELOG.md +++ b/packages/query-async-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-async-storage-persister +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + - @tanstack/query-persist-client-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index ffcbc70a1bc..bfb2ef8687f 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.100.13", + "version": "5.100.14", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/CHANGELOG.md b/packages/query-broadcast-client-experimental/CHANGELOG.md index fa49d4fe31f..7e98620eb0c 100644 --- a/packages/query-broadcast-client-experimental/CHANGELOG.md +++ b/packages/query-broadcast-client-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-broadcast-client-experimental +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 48cac90efed..8d2ba7707a6 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.100.13", + "version": "5.100.14", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/CHANGELOG.md b/packages/query-core/CHANGELOG.md index a706ee4bd58..f8318a4f715 100644 --- a/packages/query-core/CHANGELOG.md +++ b/packages/query-core/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-core +## 5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 20fffef7738..96dce14ef96 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.100.13", + "version": "5.100.14", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/CHANGELOG.md b/packages/query-devtools/CHANGELOG.md index ac48404c7c8..2955bc41d8d 100644 --- a/packages/query-devtools/CHANGELOG.md +++ b/packages/query-devtools/CHANGELOG.md @@ -1,5 +1,7 @@ # @tanstack/query-devtools +## 5.100.14 + ## 5.100.13 ## 5.100.12 diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index a328debe92e..345154a61f7 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.100.13", + "version": "5.100.14", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/CHANGELOG.md b/packages/query-persist-client-core/CHANGELOG.md index 7f4a8e28b38..b36d26f5d25 100644 --- a/packages/query-persist-client-core/CHANGELOG.md +++ b/packages/query-persist-client-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/query-persist-client-core +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 3c1cae31199..3764b960f4d 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.100.13", + "version": "5.100.14", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/CHANGELOG.md b/packages/query-sync-storage-persister/CHANGELOG.md index ed1221337a2..96281898705 100644 --- a/packages/query-sync-storage-persister/CHANGELOG.md +++ b/packages/query-sync-storage-persister/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/query-sync-storage-persister +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + - @tanstack/query-persist-client-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 953c7b79c36..58e434a6620 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.100.13", + "version": "5.100.14", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/CHANGELOG.md b/packages/react-query-devtools/CHANGELOG.md index 709f649e349..57588789508 100644 --- a/packages/react-query-devtools/CHANGELOG.md +++ b/packages/react-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-devtools +## 5.100.14 + +### Patch Changes + +- Updated dependencies [[`ed20b6d`](https://github.com/TanStack/query/commit/ed20b6d7541c908033acfcad92b0cd112930d1c3)]: + - @tanstack/react-query@5.100.14 + - @tanstack/query-devtools@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 8915efc7d2c..cb1814d0219 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.100.13", + "version": "5.100.14", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/CHANGELOG.md b/packages/react-query-next-experimental/CHANGELOG.md index f4cce182ec9..37b1c87473f 100644 --- a/packages/react-query-next-experimental/CHANGELOG.md +++ b/packages/react-query-next-experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/react-query-next-experimental +## 5.100.14 + +### Patch Changes + +- Updated dependencies [[`ed20b6d`](https://github.com/TanStack/query/commit/ed20b6d7541c908033acfcad92b0cd112930d1c3)]: + - @tanstack/react-query@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index b2fc00b4081..36ada455ddb 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.100.13", + "version": "5.100.14", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/CHANGELOG.md b/packages/react-query-persist-client/CHANGELOG.md index 05dcdfb1b00..6c2b768077d 100644 --- a/packages/react-query-persist-client/CHANGELOG.md +++ b/packages/react-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/react-query-persist-client +## 5.100.14 + +### Patch Changes + +- Updated dependencies [[`ed20b6d`](https://github.com/TanStack/query/commit/ed20b6d7541c908033acfcad92b0cd112930d1c3)]: + - @tanstack/react-query@5.100.14 + - @tanstack/query-persist-client-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index dddc3b5b7e4..35b85810e54 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.100.13", + "version": "5.100.14", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/CHANGELOG.md b/packages/react-query/CHANGELOG.md index 4276f5bcb2c..5dfb4b8cb65 100644 --- a/packages/react-query/CHANGELOG.md +++ b/packages/react-query/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/react-query +## 5.100.14 + +### Patch Changes + +- fix(react-query): do not go into optimistic fetching state when not subscribed ([#10759](https://github.com/TanStack/query/pull/10759)) + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 2d0b1edd204..1cec0ea88f4 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.100.13", + "version": "5.100.14", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/CHANGELOG.md b/packages/solid-query-devtools/CHANGELOG.md index cc71304c189..e1a45c5659a 100644 --- a/packages/solid-query-devtools/CHANGELOG.md +++ b/packages/solid-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-devtools +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.14 + - @tanstack/solid-query@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 2bd28802fa8..3f5033a279f 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.100.13", + "version": "5.100.14", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/CHANGELOG.md b/packages/solid-query-persist-client/CHANGELOG.md index 5475a18771c..2ce245d76bd 100644 --- a/packages/solid-query-persist-client/CHANGELOG.md +++ b/packages/solid-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/solid-query-persist-client +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.14 + - @tanstack/solid-query@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 017486fa7d9..09baa1b0716 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.100.13", + "version": "5.100.14", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/CHANGELOG.md b/packages/solid-query/CHANGELOG.md index 2de1a87285f..c7831384384 100644 --- a/packages/solid-query/CHANGELOG.md +++ b/packages/solid-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/solid-query +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index c709c0bfc24..7899d9cb2c1 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.100.13", + "version": "5.100.14", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/CHANGELOG.md b/packages/svelte-query-devtools/CHANGELOG.md index 9856529fbac..d0ad403dc18 100644 --- a/packages/svelte-query-devtools/CHANGELOG.md +++ b/packages/svelte-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-devtools +## 6.1.33 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.14 + - @tanstack/svelte-query@6.1.33 + ## 6.1.32 ### Patch Changes diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 570fec16285..e8fc23d154f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "6.1.32", + "version": "6.1.33", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/CHANGELOG.md b/packages/svelte-query-persist-client/CHANGELOG.md index f28bcd56376..30c462eff49 100644 --- a/packages/svelte-query-persist-client/CHANGELOG.md +++ b/packages/svelte-query-persist-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/svelte-query-persist-client +## 6.1.33 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-persist-client-core@5.100.14 + - @tanstack/svelte-query@6.1.33 + ## 6.1.32 ### Patch Changes diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 505868b90bc..766b9b73e49 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "6.1.32", + "version": "6.1.33", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/CHANGELOG.md b/packages/svelte-query/CHANGELOG.md index c5b8480bbb6..4c362839efd 100644 --- a/packages/svelte-query/CHANGELOG.md +++ b/packages/svelte-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/svelte-query +## 6.1.33 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 6.1.32 ### Patch Changes diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index cfad231e8d8..e0330eca1e1 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "6.1.32", + "version": "6.1.33", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/CHANGELOG.md b/packages/vue-query-devtools/CHANGELOG.md index 1fe8b5b28d8..ad22e6d3d31 100644 --- a/packages/vue-query-devtools/CHANGELOG.md +++ b/packages/vue-query-devtools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/vue-query-devtools +## 6.1.33 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-devtools@5.100.14 + - @tanstack/vue-query@5.100.14 + ## 6.1.32 ### Patch Changes diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 29718bba41e..423c0f73a0f 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "6.1.32", + "version": "6.1.33", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/CHANGELOG.md b/packages/vue-query/CHANGELOG.md index 38e37522f2c..df875c58622 100644 --- a/packages/vue-query/CHANGELOG.md +++ b/packages/vue-query/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/vue-query +## 5.100.14 + +### Patch Changes + +- Updated dependencies []: + - @tanstack/query-core@5.100.14 + ## 5.100.13 ### Patch Changes diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 302e86f9270..7b57dfbbfee 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.100.13", + "version": "5.100.14", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a05e081e857..388deebfc0b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,7 +170,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -210,7 +210,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -250,13 +250,13 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental '@tanstack/angular-query-persist-client': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-persist-client '@tanstack/query-async-storage-persister': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 @@ -299,7 +299,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -339,7 +339,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -382,7 +382,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -422,7 +422,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -465,7 +465,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -508,7 +508,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -551,7 +551,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -591,7 +591,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/angular-query-experimental rxjs: specifier: ^7.8.2 @@ -619,10 +619,10 @@ importers: examples/lit/basic: dependencies: '@tanstack/lit-query': - specifier: ^0.2.5 + specifier: ^0.2.6 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -638,10 +638,10 @@ importers: examples/lit/pagination: dependencies: '@tanstack/lit-query': - specifier: ^0.2.5 + specifier: ^0.2.6 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -660,10 +660,10 @@ importers: specifier: ^3.3.0 version: 3.3.1 '@tanstack/lit-query': - specifier: ^0.2.5 + specifier: ^0.2.6 version: link:../../../packages/lit-query '@tanstack/query-core': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-core lit: specifier: ^3.3.1 @@ -685,7 +685,7 @@ importers: examples/preact/simple: dependencies: '@tanstack/preact-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/preact-query preact: specifier: ^10.28.0 @@ -713,10 +713,10 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -726,7 +726,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -747,10 +747,10 @@ importers: examples/react/auto-refetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -775,16 +775,16 @@ importers: examples/react/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -794,7 +794,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -815,10 +815,10 @@ importers: examples/react/basic-graphql-request: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools graphql: specifier: ^16.9.0 @@ -843,10 +843,10 @@ importers: examples/react/chat: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -874,10 +874,10 @@ importers: examples/react/default-query-function: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -899,10 +899,10 @@ importers: examples/react/devtools-panel: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -924,16 +924,16 @@ importers: examples/react/eslint-legacy: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-persist-client react: specifier: ^19.0.0 @@ -943,7 +943,7 @@ importers: version: 19.2.4(react@19.2.4) devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/eslint-plugin-query '@types/react': specifier: ^19.2.7 @@ -964,14 +964,14 @@ importers: examples/react/eslint-plugin-demo: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query react: specifier: ^19.0.0 version: 19.2.4 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/eslint-plugin-query eslint: specifier: ^9.39.0 @@ -986,10 +986,10 @@ importers: examples/react/infinite-query-with-max-pages: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1014,10 +1014,10 @@ importers: examples/react/load-more-infinite-scroll: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1045,10 +1045,10 @@ importers: examples/react/nextjs: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1073,10 +1073,10 @@ importers: examples/react/nextjs-app-prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1101,13 +1101,13 @@ importers: examples/react/nextjs-suspense-streaming: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools '@tanstack/react-query-next-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-next-experimental next: specifier: ^16.0.7 @@ -1132,19 +1132,19 @@ importers: examples/react/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools '@tanstack/react-query-persist-client': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 @@ -1172,10 +1172,10 @@ importers: examples/react/optimistic-updates-cache: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1200,10 +1200,10 @@ importers: examples/react/optimistic-updates-ui: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1228,10 +1228,10 @@ importers: examples/react/pagination: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1256,10 +1256,10 @@ importers: examples/react/playground: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1281,10 +1281,10 @@ importers: examples/react/prefetching: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools next: specifier: ^16.0.7 @@ -1318,10 +1318,10 @@ importers: specifier: ^6.4.1 version: 6.4.1(@react-navigation/native@6.1.18(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-gesture-handler@2.30.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-safe-area-context@4.14.1(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native-screens@4.24.0(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.2.4))(react@19.2.4) '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools expo: specifier: ^52.0.11 @@ -1370,10 +1370,10 @@ importers: examples/react/react-router: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools localforage: specifier: ^1.10.0 @@ -1422,10 +1422,10 @@ importers: examples/react/rick-morty: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1459,10 +1459,10 @@ importers: examples/react/shadow-dom: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1490,10 +1490,10 @@ importers: examples/react/simple: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1515,10 +1515,10 @@ importers: examples/react/star-wars: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools react: specifier: ^19.0.0 @@ -1552,10 +1552,10 @@ importers: examples/react/suspense: dependencies: '@tanstack/react-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query '@tanstack/react-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/react-query-devtools font-awesome: specifier: ^4.7.0 @@ -1598,10 +1598,10 @@ importers: specifier: ^8.1.3 version: 8.2.11(@sveltejs/kit@2.57.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.1)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.1)(typescript@5.8.3)(vite@6.4.1(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(astro@5.18.1(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@1.21.7)(lightningcss@1.32.0)(rollup@4.60.1)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.90.0))(react@19.2.4)(rollup@4.60.1)(svelte@5.55.1)(vue@3.5.31(typescript@5.8.3)) '@tanstack/solid-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 @@ -1619,10 +1619,10 @@ importers: examples/solid/basic: dependencies: '@tanstack/solid-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1641,10 +1641,10 @@ importers: examples/solid/basic-graphql-request: dependencies: '@tanstack/solid-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-devtools graphql: specifier: ^16.9.0 @@ -1669,10 +1669,10 @@ importers: examples/solid/default-query-function: dependencies: '@tanstack/solid-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1691,16 +1691,16 @@ importers: examples/solid/offline: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-async-storage-persister '@tanstack/solid-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-devtools '@tanstack/solid-query-persist-client': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-persist-client msw: specifier: ^2.6.6 @@ -1722,17 +1722,17 @@ importers: examples/solid/simple: dependencies: '@tanstack/solid-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 version: 1.9.12 devDependencies: '@tanstack/eslint-plugin-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/eslint-plugin-query typescript: specifier: 5.8.3 @@ -1756,10 +1756,10 @@ importers: specifier: ^1.1.3 version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.12)(vinxi@0.5.11(@types/node@22.19.15)(@vercel/functions@2.2.13)(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/solid-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query '@tanstack/solid-query-devtools': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/solid-query-devtools solid-js: specifier: ^1.9.7 @@ -1771,10 +1771,10 @@ importers: examples/svelte/auto-refetching: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1802,16 +1802,16 @@ importers: examples/svelte/basic: dependencies: '@tanstack/query-async-storage-persister': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools '@tanstack/svelte-query-persist-client': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': @@ -1839,10 +1839,10 @@ importers: examples/svelte/load-more-infinite-scroll: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1870,10 +1870,10 @@ importers: examples/svelte/optimistic-updates: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1901,10 +1901,10 @@ importers: examples/svelte/playground: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1932,10 +1932,10 @@ importers: examples/svelte/simple: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/vite-plugin-svelte': @@ -1960,10 +1960,10 @@ importers: examples/svelte/ssr: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -1991,10 +1991,10 @@ importers: examples/svelte/star-wars: dependencies: '@tanstack/svelte-query': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query '@tanstack/svelte-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': @@ -2028,10 +2028,10 @@ importers: examples/vue/basic: dependencies: '@tanstack/vue-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2050,7 +2050,7 @@ importers: examples/vue/dependent-queries: dependencies: '@tanstack/vue-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/vue-query vue: specifier: ^3.4.27 @@ -2069,16 +2069,16 @@ importers: examples/vue/persister: dependencies: '@tanstack/query-core': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-core '@tanstack/query-persist-client-core': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-persist-client-core '@tanstack/query-sync-storage-persister': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/query-sync-storage-persister '@tanstack/vue-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/vue-query idb-keyval: specifier: ^6.2.1 @@ -2100,10 +2100,10 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-query': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../../packages/vue-query '@tanstack/vue-query-devtools': - specifier: ^6.1.32 + specifier: ^6.1.33 version: link:../../../packages/vue-query-devtools vue: specifier: ^3.4.27 @@ -2140,7 +2140,7 @@ importers: specifier: ^20.0.0 version: 20.3.18(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.3.18(@angular/animations@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.3.18(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.3.18(@angular/compiler@20.3.18)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': - specifier: ^5.100.13 + specifier: ^5.100.14 version: link:../../packages/angular-query-experimental rxjs: specifier: ~7.8.0 From e631dc3fa17bff71f413246b7a770a730016d346 Mon Sep 17 00:00:00 2001 From: Puneet Dixit Date: Sun, 24 May 2026 18:32:26 +0530 Subject: [PATCH 306/414] Fix devtools query rows with mutable keys (#10750) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix devtools query rows with mutable keys * ci: apply automated fixes --------- Co-authored-by: puneetdixit200 <236133619+puneetdixit200@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister 🔮 Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/stable-devtools-query-rows.md | 5 ++++ packages/query-devtools/src/Devtools.tsx | 30 ++++--------------- .../src/__tests__/Devtools.test.tsx | 12 ++++++++ 3 files changed, 22 insertions(+), 25 deletions(-) create mode 100644 .changeset/stable-devtools-query-rows.md diff --git a/.changeset/stable-devtools-query-rows.md b/.changeset/stable-devtools-query-rows.md new file mode 100644 index 00000000000..d58a0a9dbc0 --- /dev/null +++ b/.changeset/stable-devtools-query-rows.md @@ -0,0 +1,5 @@ +--- +"@tanstack/query-devtools": patch +--- + +Resolve devtools query rows from their stable query hash so mutated object query keys do not break row rendering. diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index 8e9b1f4a321..36ac87da1a6 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -1384,54 +1384,34 @@ const QueryRow: Component<{ query: Query }> = (props) => { const t = (light: string, dark: string) => (theme() === 'dark' ? dark : light) const queryState = createSubscribeToQueryCacheBatcher( - (queryCache) => - queryCache().find({ - queryKey: props.query.queryKey, - })?.state, + (queryCache) => queryCache().get(props.query.queryHash)?.state, true, (e) => e.query.queryHash === props.query.queryHash, ) const isDisabled = createSubscribeToQueryCacheBatcher( (queryCache) => - queryCache() - .find({ - queryKey: props.query.queryKey, - }) - ?.isDisabled() ?? false, + queryCache().get(props.query.queryHash)?.isDisabled() ?? false, true, (e) => e.query.queryHash === props.query.queryHash, ) const isStatic = createSubscribeToQueryCacheBatcher( (queryCache) => - queryCache() - .find({ - queryKey: props.query.queryKey, - }) - ?.isStatic() ?? false, + queryCache().get(props.query.queryHash)?.isStatic() ?? false, true, (e) => e.query.queryHash === props.query.queryHash, ) const isStale = createSubscribeToQueryCacheBatcher( - (queryCache) => - queryCache() - .find({ - queryKey: props.query.queryKey, - }) - ?.isStale() ?? false, + (queryCache) => queryCache().get(props.query.queryHash)?.isStale() ?? false, true, (e) => e.query.queryHash === props.query.queryHash, ) const observers = createSubscribeToQueryCacheBatcher( (queryCache) => - queryCache() - .find({ - queryKey: props.query.queryKey, - }) - ?.getObserversCount() ?? 0, + queryCache().get(props.query.queryHash)?.getObserversCount() ?? 0, true, (e) => e.query.queryHash === props.query.queryHash, ) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 066f71268ab..864698429c1 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -390,6 +390,18 @@ describe('Devtools', () => { expect(rendered.getByText('static')).toBeInTheDocument() expect(rendered.getByLabelText(/, static/)).toBeInTheDocument() }) + + it('should render a query row when an object query key is mutated in place', () => { + const filters = { page: 1 } + queryClient.setQueryData(['mutable-key', filters], 'x') + filters.page = 2 + + const rendered = renderDevtools({ initialIsOpen: true }) + + expect( + rendered.getByLabelText(/Query key \["mutable-key",\{"page":1\}\]/), + ).toBeInTheDocument() + }) }) describe('picture-in-picture', () => { From 3042860e3c8731c94ca4dec0e277e415d0484fce Mon Sep 17 00:00:00 2001 From: Raashish Aggarwal <94279692+raashish1601@users.noreply.github.com> Date: Sun, 24 May 2026 19:16:56 +0530 Subject: [PATCH 307/414] fix(query-devtools): handle missing query row state (#10772) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dominik Dorfmeister 🔮 --- .changeset/query-devtools-missing-state.md | 5 +++++ packages/query-devtools/src/Devtools.tsx | 2 +- packages/query-devtools/src/__tests__/utils.test.ts | 10 ++++++++++ packages/query-devtools/src/utils.tsx | 6 +++--- 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 .changeset/query-devtools-missing-state.md diff --git a/.changeset/query-devtools-missing-state.md b/.changeset/query-devtools-missing-state.md new file mode 100644 index 00000000000..b50b9bdf7ab --- /dev/null +++ b/.changeset/query-devtools-missing-state.md @@ -0,0 +1,5 @@ +--- +'@tanstack/query-devtools': patch +--- + +Avoid crashing devtools query rows when a cached query state is temporarily unavailable. diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index 36ac87da1a6..dfb66e496a7 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -1418,7 +1418,7 @@ const QueryRow: Component<{ query: Query }> = (props) => { const color = createMemo(() => getQueryStatusColor({ - queryState: queryState()!, + queryState: queryState(), observerCount: observers(), isStale: isStale(), }), diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index 07dff9ece4d..511553e2bb8 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -1573,6 +1573,16 @@ describe('Utils tests', () => { ).toBe('gray') }) + it('should return "gray" when the query state is unavailable', () => { + expect( + getQueryStatusColor({ + queryState: undefined, + observerCount: 0, + isStale: false, + }), + ).toBe('gray') + }) + it('should return "purple" when fetchStatus is "paused"', () => { expect( getQueryStatusColor({ diff --git a/packages/query-devtools/src/utils.tsx b/packages/query-devtools/src/utils.tsx index 9a826cd21e3..5306f2cf5f2 100644 --- a/packages/query-devtools/src/utils.tsx +++ b/packages/query-devtools/src/utils.tsx @@ -31,15 +31,15 @@ export function getQueryStatusColor({ observerCount, isStale, }: { - queryState: Query['state'] + queryState: Query['state'] | undefined observerCount: number isStale: boolean }) { - return queryState.fetchStatus === 'fetching' + return queryState?.fetchStatus === 'fetching' ? 'blue' : !observerCount ? 'gray' - : queryState.fetchStatus === 'paused' + : queryState?.fetchStatus === 'paused' ? 'purple' : isStale ? 'yellow' From 63b3a72d137d72843952ea7725ec63b716a1380d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 01:59:20 +0900 Subject: [PATCH 308/414] test(query-devtools/Explorer): add test for rendering under the 'light' theme (#10768) --- .../src/__tests__/Explorer.test.tsx | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index fb329a98db3..9a4940b1c60 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -28,7 +28,11 @@ describe('Explorer', () => { queryClient.clear() }) - function renderExplorer(props: Parameters[0]) { + function renderExplorer( + props: Parameters[0], + options: { theme?: 'dark' | 'light' } = {}, + ) { + const theme = options.theme ?? 'dark' return render(() => ( { onlineManager, }} > - 'dark'}> + theme}> @@ -562,4 +566,26 @@ describe('Explorer', () => { expect(queryClient.getQueryData(['data'])).toEqual({}) }) }) + + describe('theme', () => { + it('should render without throwing under the "light" theme', () => { + const value = { items: ['a'], flag: true } + queryClient.setQueryData(['data'], value) + + expect(() => + renderExplorer( + { + label: 'Data', + value, + defaultExpanded: ['Data'], + editable: true, + activeQuery: queryClient + .getQueryCache() + .find({ queryKey: ['data'] }) as Query, + }, + { theme: 'light' }, + ), + ).not.toThrow() + }) + }) }) From b9ec780ea6d1897ac9b049129d8af84fc640646b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 03:34:02 +0900 Subject: [PATCH 309/414] ci(labeler): remove the labeler workflow and its configuration (#10766) --- .github/workflows/labeler.yml | 20 -------- labeler-config.yml | 87 ----------------------------------- 2 files changed, 107 deletions(-) delete mode 100644 .github/workflows/labeler.yml delete mode 100644 labeler-config.yml diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index e92ce68ae59..00000000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Labeler - -on: - pull_request: - -permissions: {} - -jobs: - labeler: - name: Labeler - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write - steps: - - name: Labeler - uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - configuration-path: labeler-config.yml diff --git a/labeler-config.yml b/labeler-config.yml deleted file mode 100644 index 444b9210acf..00000000000 --- a/labeler-config.yml +++ /dev/null @@ -1,87 +0,0 @@ -'package: angular-query-devtools-experimental': - - changed-files: - - any-glob-to-any-file: 'packages/angular-query-devtools-experimental/**/*' -'package: angular-query-experimental': - - changed-files: - - any-glob-to-any-file: 'packages/angular-query-experimental/**/*' -'package: angular-query-persist-client': - - changed-files: - - any-glob-to-any-file: 'packages/angular-query-persist-client/**/*' -'package: eslint-plugin-query': - - changed-files: - - any-glob-to-any-file: 'packages/eslint-plugin-query/**/*' -'package: lit-query': - - changed-files: - - any-glob-to-any-file: 'packages/lit-query/**/*' -'package: preact-query': - - changed-files: - - any-glob-to-any-file: 'packages/preact-query/**/*' -'package: preact-query-devtools': - - changed-files: - - any-glob-to-any-file: 'packages/preact-query-devtools/**/*' -'package: preact-query-persist-client': - - changed-files: - - any-glob-to-any-file: 'packages/preact-query-persist-client/**/*' -'package: query-async-storage-persister': - - changed-files: - - any-glob-to-any-file: 'packages/query-async-storage-persister/**/*' -'package: query-broadcast-client-experimental': - - changed-files: - - any-glob-to-any-file: 'packages/query-broadcast-client-experimental/**/*' -'package: query-codemods': - - changed-files: - - any-glob-to-any-file: 'packages/query-codemods/**/*' -'package: query-core': - - changed-files: - - any-glob-to-any-file: 'packages/query-core/**/*' -'package: query-devtools': - - changed-files: - - any-glob-to-any-file: 'packages/query-devtools/**/*' -'package: query-persist-client-core': - - changed-files: - - any-glob-to-any-file: 'packages/query-persist-client-core/**/*' -'package: query-sync-storage-persister': - - changed-files: - - any-glob-to-any-file: 'packages/query-sync-storage-persister/**/*' -'package: query-test-utils': - - changed-files: - - any-glob-to-any-file: 'packages/query-test-utils/**/*' -'package: react-query': - - changed-files: - - any-glob-to-any-file: 'packages/react-query/**/*' -'package: react-query-devtools': - - changed-files: - - any-glob-to-any-file: 'packages/react-query-devtools/**/*' -'package: react-query-next-experimental': - - changed-files: - - any-glob-to-any-file: 'packages/react-query-next-experimental/**/*' -'package: react-query-persist-client': - - changed-files: - - any-glob-to-any-file: 'packages/react-query-persist-client/**/*' -'package: solid-query': - - changed-files: - - any-glob-to-any-file: 'packages/solid-query/**/*' -'package: solid-query-devtools': - - changed-files: - - any-glob-to-any-file: 'packages/solid-query-devtools/**/*' -'package: solid-query-persist-client': - - changed-files: - - any-glob-to-any-file: 'packages/solid-query-persist-client/**/*' -'package: svelte-query': - - changed-files: - - any-glob-to-any-file: 'packages/svelte-query/**/*' -'package: svelte-query-devtools': - - changed-files: - - any-glob-to-any-file: 'packages/svelte-query-devtools/**/*' -'package: svelte-query-persist-client': - - changed-files: - - any-glob-to-any-file: 'packages/svelte-query-persist-client/**/*' -'package: vue-query': - - changed-files: - - any-glob-to-any-file: 'packages/vue-query/**/*' -'package: vue-query-devtools': - - changed-files: - - any-glob-to-any-file: 'packages/vue-query-devtools/**/*' -'documentation': - - changed-files: - - any-glob-to-any-file: 'docs/**/*' From bde5a7f3bd224c21a56777fe36d400fae54c777a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 12:51:32 +0900 Subject: [PATCH 310/414] test(query-devtools/Explorer): add test for rendering with a 'shadowDOMTarget' (#10782) --- .../src/__tests__/Explorer.test.tsx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index 9a4940b1c60..816f984b4ee 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -588,4 +588,46 @@ describe('Explorer', () => { ).not.toThrow() }) }) + + describe('"shadowDOMTarget"', () => { + it('should render without throwing when a "shadowDOMTarget" is provided', () => { + const host = document.createElement('div') + document.body.appendChild(host) + const shadowRoot = host.attachShadow({ mode: 'open' }) + const value = { items: ['a'], flag: true } + queryClient.setQueryData(['data'], value) + + try { + expect(() => + render(() => ( + + 'dark'}> + + + + )), + ).not.toThrow() + } finally { + host.remove() + } + }) + }) }) From 04fb3fb8a556f161668f201c5d94b7e33269962f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 14:14:01 +0900 Subject: [PATCH 311/414] test(query-devtools/Devtools): add test for PiP panel narrow layout below the second breakpoint (#10784) --- .../src/__tests__/Devtools.test.tsx | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 864698429c1..ddaa730ec63 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -415,7 +415,11 @@ describe('Devtools', () => { | 'close' > - function stubPipWindow() { + function stubPipWindow( + overrides: Partial< + Pick + > = {}, + ) { const pipDocument = document.implementation.createHTMLDocument('PiP') const listeners = new Map() const fakeWindow: FakePipWindow = { @@ -429,6 +433,7 @@ describe('Devtools', () => { listeners.delete(event) }), close: vi.fn(), + ...overrides, } const open = vi.fn(() => fakeWindow) vi.stubGlobal('open', open) @@ -526,6 +531,27 @@ describe('Devtools', () => { rendered.getByLabelText('Open in picture-in-picture mode'), ).toBeInTheDocument() }) + + it('should render the PiP panel with the narrow layout when the PiP window is below the second breakpoint', () => { + // secondBreakpoint = 796; pick a width comfortably below it so the + // PiP panel evaluates its narrow (`flex-direction: column`) branch. + const { pipDocument } = stubPipWindow({ innerWidth: 500 }) + queryClient.setQueryData(['narrow-pip-query'], { hello: 'world' }) + const rendered = renderDevtools({ initialIsOpen: true }) + + fireEvent.click( + rendered.getByLabelText('Open in picture-in-picture mode'), + ) + + expect( + pipDocument.querySelector( + '[aria-label="Close Tanstack query devtools"]', + ), + ).not.toBeNull() + expect( + pipDocument.querySelector('[aria-label*="narrow-pip-query"]'), + ).not.toBeNull() + }) }) describe('status counts', () => { From 67e250bb1d1266afdfb7be5b8e57114acc6ddc6b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 14:41:18 +0900 Subject: [PATCH 312/414] test(query-devtools/Devtools): add test for rendering without a 'ThemeContext.Provider' (#10785) --- .../src/__tests__/Devtools.test.tsx | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index ddaa730ec63..5179c5be01c 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -1516,4 +1516,36 @@ describe('Devtools', () => { ).not.toBeInTheDocument() }) }) + + describe('default theme', () => { + it('should render without throwing when no "ThemeContext.Provider" wraps it', () => { + expect(() => + render(() => { + const [localStore, setLocalStore] = createLocalStorage({ + prefix: 'TanstackQueryDevtools', + }) + return ( + + + + + + ) + }), + ).not.toThrow() + }) + }) }) From 0cfde2a9e8874fcfde04c781c13ec359402a4643 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 14:59:51 +0900 Subject: [PATCH 313/414] test(query-devtools/Devtools): add assertion for default theme falling back to 'dark' without a 'ThemeContext.Provider' (#10786) --- .../src/__tests__/Devtools.test.tsx | 68 +++++++++++-------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 5179c5be01c..7aa12fe052a 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -3,7 +3,12 @@ import { QueryClient, QueryObserver, onlineManager } from '@tanstack/query-core' import { fireEvent, render } from '@solidjs/testing-library' import { createLocalStorage } from '@solid-primitives/storage' import { Devtools } from '../Devtools' -import { PiPProvider, QueryDevtoolsContext, ThemeContext } from '../contexts' +import { + PiPProvider, + QueryDevtoolsContext, + ThemeContext, + useTheme, +} from '../contexts' import type { QueryDevtoolsProps } from '../contexts' // `solid-transition-group` internally imports from @@ -1518,34 +1523,39 @@ describe('Devtools', () => { }) describe('default theme', () => { - it('should render without throwing when no "ThemeContext.Provider" wraps it', () => { - expect(() => - render(() => { - const [localStore, setLocalStore] = createLocalStorage({ - prefix: 'TanstackQueryDevtools', - }) - return ( - - - - - - ) - }), - ).not.toThrow() + it('should fall back to the "dark" theme when no "ThemeContext.Provider" wraps it', () => { + let resolvedTheme: ReturnType> | undefined + function ThemeProbe() { + const theme = useTheme() + resolvedTheme = theme() + return null + } + + const rendered = render(() => { + const [localStore, setLocalStore] = createLocalStorage({ + prefix: 'TanstackQueryDevtools', + }) + return ( + + + + + + + ) + }) + + expect(resolvedTheme).toBe('dark') + expect( + rendered.getByLabelText('Open Tanstack query devtools'), + ).toBeInTheDocument() }) }) }) From 514c132c1b8580e667463839fdbbcd4e25e007ba Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 15:35:01 +0900 Subject: [PATCH 314/414] test(query-devtools/contexts/ThemeContext): split 'ThemeContext' tests into a unit test file mirroring the 'src/contexts' structure (#10787) --- .../src/__tests__/Devtools.test.tsx | 44 +------------ .../__tests__/contexts/ThemeContext.test.tsx | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+), 43 deletions(-) create mode 100644 packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx diff --git a/packages/query-devtools/src/__tests__/Devtools.test.tsx b/packages/query-devtools/src/__tests__/Devtools.test.tsx index 7aa12fe052a..ddaa730ec63 100644 --- a/packages/query-devtools/src/__tests__/Devtools.test.tsx +++ b/packages/query-devtools/src/__tests__/Devtools.test.tsx @@ -3,12 +3,7 @@ import { QueryClient, QueryObserver, onlineManager } from '@tanstack/query-core' import { fireEvent, render } from '@solidjs/testing-library' import { createLocalStorage } from '@solid-primitives/storage' import { Devtools } from '../Devtools' -import { - PiPProvider, - QueryDevtoolsContext, - ThemeContext, - useTheme, -} from '../contexts' +import { PiPProvider, QueryDevtoolsContext, ThemeContext } from '../contexts' import type { QueryDevtoolsProps } from '../contexts' // `solid-transition-group` internally imports from @@ -1521,41 +1516,4 @@ describe('Devtools', () => { ).not.toBeInTheDocument() }) }) - - describe('default theme', () => { - it('should fall back to the "dark" theme when no "ThemeContext.Provider" wraps it', () => { - let resolvedTheme: ReturnType> | undefined - function ThemeProbe() { - const theme = useTheme() - resolvedTheme = theme() - return null - } - - const rendered = render(() => { - const [localStore, setLocalStore] = createLocalStorage({ - prefix: 'TanstackQueryDevtools', - }) - return ( - - - - - - - ) - }) - - expect(resolvedTheme).toBe('dark') - expect( - rendered.getByLabelText('Open Tanstack query devtools'), - ).toBeInTheDocument() - }) - }) }) diff --git a/packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx b/packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx new file mode 100644 index 00000000000..5d0cb2c727e --- /dev/null +++ b/packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx @@ -0,0 +1,65 @@ +import { describe, expect, it } from 'vitest' +import { render } from '@solidjs/testing-library' +import { createEffect, createSignal } from 'solid-js' +import { ThemeContext, useTheme } from '../../contexts' + +type Theme = ReturnType> + +function renderThemeProbe(provider?: () => Theme) { + let resolvedTheme: Theme | undefined + function ThemeProbe() { + const theme = useTheme() + resolvedTheme = theme() + return null + } + + render(() => + provider ? ( + + + + ) : ( + + ), + ) + + return resolvedTheme +} + +describe('ThemeContext', () => { + describe('default value', () => { + it('should resolve to "dark" when no "ThemeContext.Provider" wraps the consumer', () => { + expect(renderThemeProbe()).toBe('dark') + }) + }) + + describe('with a "ThemeContext.Provider"', () => { + it('should resolve to the value provided by the "Provider"', () => { + expect(renderThemeProbe(() => 'light')).toBe('light') + expect(renderThemeProbe(() => 'dark')).toBe('dark') + }) + + it('should reflect updates when the "Provider" value is a reactive "Accessor"', () => { + const [theme, setTheme] = createSignal('dark') + let observed: Theme | undefined + function ThemeProbe() { + const resolved = useTheme() + createEffect(() => { + observed = resolved() + }) + return null + } + + render(() => ( + + + + )) + + expect(observed).toBe('dark') + + setTheme('light') + expect(observed).toBe('light') + }) + }) +}) From 3023dadec37ce74d4fbeb28f94adebacc6d43d60 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Mon, 25 May 2026 18:06:52 +0530 Subject: [PATCH 315/414] Fix(lit-query): prevent redundant host updates (#10789) * fix(lit-query): prevent redundant host updates * ci: apply automated fixes --------- Co-authored-by: gauravchugh Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .changeset/lit-query-tracked-updates.md | 5 + .../src/controllers/BaseController.ts | 12 +- .../src/createInfiniteQueryController.ts | 67 +++-- .../lit-query/src/createQueriesController.ts | 132 ++++++++-- .../lit-query/src/createQueryController.ts | 57 ++++- .../src/queryObserverResultTracker.ts | 30 +++ .../src/tests/counters-and-state.test.ts | 86 +++++++ .../src/tests/infinite-and-options.test.ts | 159 ++++++++++++ .../src/tests/queries-controller.test.ts | 230 ++++++++++++++++++ .../src/tests/query-controller.test.ts | 147 +++++++++++ packages/lit-query/src/useMutationState.ts | 27 +- 11 files changed, 893 insertions(+), 59 deletions(-) create mode 100644 .changeset/lit-query-tracked-updates.md create mode 100644 packages/lit-query/src/queryObserverResultTracker.ts diff --git a/.changeset/lit-query-tracked-updates.md b/.changeset/lit-query-tracked-updates.md new file mode 100644 index 00000000000..b27855c79f5 --- /dev/null +++ b/.changeset/lit-query-tracked-updates.md @@ -0,0 +1,5 @@ +--- +"@tanstack/lit-query": patch +--- + +Fix redundant Lit host updates for function-backed query options, mutation state selectors, and tracked query result reads. diff --git a/packages/lit-query/src/controllers/BaseController.ts b/packages/lit-query/src/controllers/BaseController.ts index ba303edd417..c619ece3158 100644 --- a/packages/lit-query/src/controllers/BaseController.ts +++ b/packages/lit-query/src/controllers/BaseController.ts @@ -24,6 +24,7 @@ export abstract class BaseController implements ReactiveController { private updateQueued = false private clientChangeQueued = false private connectionAttempt = 0 + private isHostUpdating = false private queryClientResolutionState: QueryClientResolutionState protected constructor( @@ -92,7 +93,12 @@ export abstract class BaseController implements ReactiveController { return } - this.onHostUpdate() + this.isHostUpdating = true + try { + this.onHostUpdate() + } finally { + this.isHostUpdating = false + } } destroy(): void { @@ -133,7 +139,9 @@ export abstract class BaseController implements ReactiveController { } this.result = next - this.queueUpdate() + if (!this.isHostUpdating) { + this.queueUpdate() + } } get current(): TResult { diff --git a/packages/lit-query/src/createInfiniteQueryController.ts b/packages/lit-query/src/createInfiniteQueryController.ts index 4e41edbf818..6a41bb68371 100644 --- a/packages/lit-query/src/createInfiniteQueryController.ts +++ b/packages/lit-query/src/createInfiniteQueryController.ts @@ -17,6 +17,7 @@ import { } from './accessor.js' import { createMissingQueryClientError } from './context.js' import { BaseController } from './controllers/BaseController.js' +import { QueryObserverResultTracker } from './queryObserverResultTracker.js' /** * Options accepted by `createInfiniteQueryController`. @@ -131,6 +132,9 @@ class InfiniteQueryController< private observer: | InfiniteQueryObserver | undefined + private readonly resultTracker = new QueryObserverResultTracker< + InfiniteQueryObserverResult + >() private unsubscribe: (() => void) | undefined private queryClient: QueryClient | undefined @@ -162,7 +166,7 @@ class InfiniteQueryController< const observer = new InfiniteQueryObserver(queryClient, defaulted) this.queryClient = queryClient this.observer = observer - this.result = observer.getOptimisticResult(defaulted) + this.assignObserverResult(observer.getOptimisticResult(defaulted)) } protected onConnected(): void { @@ -174,7 +178,7 @@ class InfiniteQueryController< this.subscribe() this.observer?.updateResult() if (this.observer) { - this.setResult(this.observer.getCurrentResult()) + this.setObserverResult(this.observer.getCurrentResult()) } } @@ -200,39 +204,47 @@ class InfiniteQueryController< this.subscribe() this.observer?.updateResult() if (this.observer) { - this.setResult(this.observer.getCurrentResult()) + this.setObserverResult(this.observer.getCurrentResult()) } } refetch: InfiniteQueryObserverResult['refetch'] = ( ...args ) => { - if (!this.refreshOptions()) { + if (!this.applyOptions() || !this.observer) { return Promise.reject(createMissingQueryClientError()) } - return this.result.refetch(...args) + return this.observer.refetch(...args) } fetchNextPage: InfiniteQueryObserverResult['fetchNextPage'] = ( ...args ) => { - if (!this.refreshOptions()) { + if (!this.applyOptions() || !this.observer) { return Promise.reject(createMissingQueryClientError()) } - return this.result.fetchNextPage(...args) + return this.observer.fetchNextPage(...args) } fetchPreviousPage: InfiniteQueryObserverResult< TData, TError >['fetchPreviousPage'] = (...args) => { - if (!this.refreshOptions()) { + if (!this.applyOptions() || !this.observer) { return Promise.reject(createMissingQueryClientError()) } - return this.result.fetchPreviousPage(...args) + return this.observer.fetchPreviousPage(...args) + } + + readCurrent(): InfiniteQueryObserverResult { + if (this.observer) { + this.assignObserverResult(this.observer.getCurrentResult()) + } + + return this.current } private subscribe(): void { @@ -245,7 +257,7 @@ class InfiniteQueryController< } this.unsubscribe = this.observer.subscribe((next) => { - this.setResult(next) + this.setObserverResult(next) }) } @@ -260,6 +272,7 @@ class InfiniteQueryController< this.unsubscribeObserver() this.queryClient = undefined this.observer = undefined + this.resultTracker.reset() this.setResult(createPendingInfiniteQueryResult()) return false } @@ -272,21 +285,47 @@ class InfiniteQueryController< this.queryClient = nextClient const options = this.defaultOptions(this.queryClient) this.observer = new InfiniteQueryObserver(this.queryClient, options) - this.setResult(this.observer.getOptimisticResult(options)) + this.setObserverResult(this.observer.getOptimisticResult(options)) return true } - private refreshOptions(): boolean { + private applyOptions(): boolean { if (!this.syncClient() || !this.observer || !this.queryClient) { return false } const options = this.defaultOptions(this.queryClient) this.observer.setOptions(options) - this.setResult(this.observer.getOptimisticResult(options)) return true } + private refreshOptions(): boolean { + if (!this.applyOptions() || !this.observer) { + return false + } + + this.setObserverResult(this.observer.getCurrentResult()) + return true + } + + private assignObserverResult( + result: InfiniteQueryObserverResult, + ): void { + const trackedResult = this.resultTracker.update(this.observer, result) + if (trackedResult) { + this.result = trackedResult + } + } + + private setObserverResult( + result: InfiniteQueryObserverResult, + ): void { + const trackedResult = this.resultTracker.update(this.observer, result) + if (trackedResult) { + this.setResult(trackedResult) + } + } + private defaultOptions( client = this.queryClient, ): DefaultedInfiniteQueryObserverOptions< @@ -383,7 +422,7 @@ export function createInfiniteQueryController< const controller = new InfiniteQueryController(host, options, queryClient) return Object.assign( - createValueAccessor(() => controller.current), + createValueAccessor(() => controller.readCurrent()), { refetch: controller.refetch, fetchNextPage: controller.fetchNextPage, diff --git a/packages/lit-query/src/createQueriesController.ts b/packages/lit-query/src/createQueriesController.ts index c686cfa9b40..2af3b312004 100644 --- a/packages/lit-query/src/createQueriesController.ts +++ b/packages/lit-query/src/createQueriesController.ts @@ -1,5 +1,6 @@ import { QueriesObserver, + replaceEqualDeep, type DefaultError, type DefinedQueryObserverResult, type OmitKeyof, @@ -322,6 +323,10 @@ class QueriesController< private observer: QueriesObserver | undefined private unsubscribe: (() => void) | undefined private queryClient: QueryClient | undefined + private queries: Array = [] + private combine: QueriesObserverOptions['combine'] + private combinedResult: TCombinedResult | undefined + private rawResult: Array = [] private explicitInitializationError: unknown | undefined private placeholderInitialized = false private placeholderRetryableFailure = true @@ -394,8 +399,7 @@ class QueriesController< } this.unsubscribe = this.observer.subscribe((next) => { - const { combine } = this.readResolvedOptions() - this.setResult(this.computeResult(next, combine)) + this.setObserverResult(next) }) } @@ -405,12 +409,14 @@ class QueriesController< this.options, queryClient, ) - const observer = new QueriesObserver(queryClient, queries, { - combine, + this.queries = queries + this.combine = combine + const observer = new QueriesObserver(queryClient, this.queries, { + combine: this.combine, } as QueriesObserverOptions) this.queryClient = queryClient this.observer = observer - this.result = this.computeResult(observer.getCurrentResult(), combine) + this.assignObserverResult(observer.getCurrentResult(), true) this.explicitInitializationError = undefined this.placeholderInitialized = true return true @@ -448,6 +454,10 @@ class QueriesController< this.unsubscribeObserver() this.queryClient = undefined this.observer = undefined + this.queries = [] + this.combine = undefined + this.combinedResult = undefined + this.rawResult = [] this.setPlaceholderResult() return false } @@ -459,12 +469,12 @@ class QueriesController< this.unsubscribeObserver() this.queryClient = nextClient const { queries, combine } = this.readResolvedOptions() - this.observer = new QueriesObserver(this.queryClient, queries, { - combine, + this.queries = queries + this.combine = combine + this.observer = new QueriesObserver(this.queryClient, this.queries, { + combine: this.combine, } as QueriesObserverOptions) - this.setResult( - this.computeResult(this.observer.getCurrentResult(), combine), - ) + this.setObserverResult(this.observer.getCurrentResult(), true) this.placeholderInitialized = true return true } @@ -475,17 +485,14 @@ class QueriesController< } const { queries, combine } = this.readResolvedOptions() + this.queries = queries + this.combine = combine - this.observer.setQueries(queries, { - combine, + this.observer.setQueries(this.queries, { + combine: this.combine, } as QueriesObserverOptions) - const [rawResult, getCombinedResult] = this.observer.getOptimisticResult( - queries, - combine, - ) - - this.setResult(getCombinedResult(rawResult)) + this.setObserverResult(this.observer.getCurrentResult(), true) return true } @@ -513,11 +520,87 @@ class QueriesController< return typeof this.options.queries === 'function' } - private computeResult( + private createResult(rawResult: Array): TCombinedResult { + const trackedResult = this.trackResult(rawResult) + const combine = this.combine + + if (!combine) { + return trackedResult as TCombinedResult + } + + this.combinedResult = replaceEqualDeep( + this.combinedResult, + combine(trackedResult), + ) as TCombinedResult + + return this.combinedResult + } + + private assignObserverResult( rawResult: Array, - combine: QueriesObserverOptions['combine'], - ): TCombinedResult { - return (combine ? combine(rawResult) : rawResult) as TCombinedResult + force = false, + ): void { + if (!force && this.hasObserverResult(rawResult)) { + return + } + + this.rawResult = rawResult + this.result = this.createResult(rawResult) + } + + private setObserverResult( + rawResult: Array, + force = false, + ): void { + if (!force && this.hasObserverResult(rawResult)) { + return + } + + this.rawResult = rawResult + this.setResult(this.createResult(rawResult)) + } + + private hasObserverResult(rawResult: Array): boolean { + return ( + this.rawResult.length === rawResult.length && + rawResult.every((result, index) => + Object.is(this.rawResult[index], result), + ) + ) + } + + private getCurrentObserverResults(): Array { + if (!this.observer) { + return [] + } + + return this.observer + .getObservers() + .map((observer) => observer.getCurrentResult()) + } + + private trackResult( + rawResult: Array, + ): Array { + if (!this.observer) { + return rawResult + } + + const observers = this.observer.getObservers() + + return rawResult.map((result, index) => { + const observer = observers[index] + + if (!observer || observer.options.notifyOnChangeProps) { + return result + } + + return observer.trackResult(result, (accessedProp) => { + observers.forEach((observer) => { + observer.trackProp(accessedProp) + }) + }) + }) } private static createPlaceholderResult( @@ -559,10 +642,15 @@ class QueriesController< } } + if (this.observer) { + this.assignObserverResult(this.getCurrentObserverResults()) + } + return this.current } private setPlaceholderResult(): void { + this.rawResult = [] this.result = QueriesController.createPlaceholderResult(this.options) this.placeholderInitialized = true } diff --git a/packages/lit-query/src/createQueryController.ts b/packages/lit-query/src/createQueryController.ts index 1aac214cf43..09ec7af1391 100644 --- a/packages/lit-query/src/createQueryController.ts +++ b/packages/lit-query/src/createQueryController.ts @@ -16,6 +16,7 @@ import { } from './accessor.js' import { createMissingQueryClientError } from './context.js' import { BaseController } from './controllers/BaseController.js' +import { QueryObserverResultTracker } from './queryObserverResultTracker.js' /** * Options accepted by `createQueryController`. @@ -100,6 +101,9 @@ class QueryController< private observer: | QueryObserver | undefined + private readonly resultTracker = new QueryObserverResultTracker< + QueryObserverResult + >() private unsubscribe: (() => void) | undefined private queryClient: QueryClient | undefined @@ -126,7 +130,7 @@ class QueryController< const observer = new QueryObserver(initialClient, defaulted) this.queryClient = initialClient this.observer = observer - this.result = observer.getOptimisticResult(defaulted) + this.assignObserverResult(observer.getOptimisticResult(defaulted)) } protected onConnected(): void { @@ -138,7 +142,7 @@ class QueryController< this.subscribe() this.observer?.updateResult() if (this.observer) { - this.setResult(this.observer.getCurrentResult()) + this.setObserverResult(this.observer.getCurrentResult()) } } @@ -168,16 +172,16 @@ class QueryController< this.subscribe() this.observer?.updateResult() if (this.observer) { - this.setResult(this.observer.getCurrentResult()) + this.setObserverResult(this.observer.getCurrentResult()) } } refetch: QueryObserverResult['refetch'] = (...args) => { - if (!this.refreshOptions()) { + if (!this.applyOptions() || !this.observer) { return Promise.reject(createMissingQueryClientError()) } - return this.result.refetch(...args) + return this.observer.refetch(...args) } suspense = async (): Promise> => { @@ -195,6 +199,14 @@ class QueryController< return optimistic } + readCurrent(): QueryObserverResult { + if (this.observer) { + this.assignObserverResult(this.observer.getCurrentResult()) + } + + return this.current + } + private subscribe(): void { if (!this.observer) { return @@ -205,7 +217,7 @@ class QueryController< } this.unsubscribe = this.observer.subscribe((next) => { - this.setResult(next) + this.setObserverResult(next) }) } @@ -220,6 +232,7 @@ class QueryController< this.unsubscribeObserver() this.queryClient = undefined this.observer = undefined + this.resultTracker.reset() this.setResult(createPendingQueryResult()) return false } @@ -232,21 +245,45 @@ class QueryController< this.queryClient = nextClient const options = this.defaultOptions() this.observer = new QueryObserver(this.queryClient, options) - this.setResult(this.observer.getOptimisticResult(options)) + this.setObserverResult(this.observer.getOptimisticResult(options)) return true } - private refreshOptions(): boolean { + private applyOptions(): boolean { if (!this.syncClient() || !this.observer) { return false } const options = this.defaultOptions(this.queryClient) this.observer.setOptions(options) - this.setResult(this.observer.getCurrentResult()) return true } + private refreshOptions(): boolean { + if (!this.applyOptions() || !this.observer) { + return false + } + + this.setObserverResult(this.observer.getCurrentResult()) + return true + } + + private assignObserverResult( + result: QueryObserverResult, + ): void { + const trackedResult = this.resultTracker.update(this.observer, result) + if (trackedResult) { + this.result = trackedResult + } + } + + private setObserverResult(result: QueryObserverResult): void { + const trackedResult = this.resultTracker.update(this.observer, result) + if (trackedResult) { + this.setResult(trackedResult) + } + } + private defaultOptions( client = this.queryClient, ): DefaultedQueryObserverOptions< @@ -332,7 +369,7 @@ export function createQueryController< const controller = new QueryController(host, options, queryClient) return Object.assign( - createValueAccessor(() => controller.current), + createValueAccessor(() => controller.readCurrent()), { refetch: controller.refetch, suspense: controller.suspense, diff --git a/packages/lit-query/src/queryObserverResultTracker.ts b/packages/lit-query/src/queryObserverResultTracker.ts new file mode 100644 index 00000000000..650df3937c8 --- /dev/null +++ b/packages/lit-query/src/queryObserverResultTracker.ts @@ -0,0 +1,30 @@ +type TrackableQueryObserver = { + options: { notifyOnChangeProps?: unknown } + trackResult: (result: TResult) => unknown +} + +export class QueryObserverResultTracker { + private result: TResult | undefined + private usesTracking = false + + reset(): void { + this.result = undefined + this.usesTracking = false + } + + update( + observer: TrackableQueryObserver | undefined, + result: TResult, + ): TResult | undefined { + const usesTracking = !!observer && !observer.options.notifyOnChangeProps + + if (Object.is(this.result, result) && this.usesTracking === usesTracking) { + return undefined + } + + this.result = result + this.usesTracking = usesTracking + + return usesTracking ? (observer.trackResult(result) as TResult) : result + } +} diff --git a/packages/lit-query/src/tests/counters-and-state.test.ts b/packages/lit-query/src/tests/counters-and-state.test.ts index 3a28b5a5161..d2b14739f4a 100644 --- a/packages/lit-query/src/tests/counters-and-state.test.ts +++ b/packages/lit-query/src/tests/counters-and-state.test.ts @@ -89,6 +89,92 @@ if (!customElements.get(contextCountersTagName)) { } describe('useIsFetching/useIsMutating/useMutationState', () => { + it('does not request another update when stable mutation state selectors refresh during host update', async () => { + const client = new QueryClient({ + defaultOptions: { + mutations: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + const mutationStates = useMutationState( + host, + { + select: (mutation) => mutation.state.status, + }, + client, + ) + + try { + host.connect() + await Promise.resolve() + + expect(mutationStates()).toEqual([]) + + host.updatesRequested = 0 + + for (let i = 0; i < 5; i += 1) { + host.update() + await Promise.resolve() + } + + expect(host.updatesRequested).toBe(0) + expect(mutationStates()).toEqual([]) + } finally { + mutationStates.destroy() + } + }) + + it('does not request another update when mutation cache emits with unchanged selected state', async () => { + const client = new QueryClient({ + defaultOptions: { + mutations: { + retry: false, + }, + }, + }) + + const mutationKey = ['mutation-state', 'stable-cache-events'] as const + const mutation = client.getMutationCache().build(client, { + mutationKey, + }) + + const host = new TestControllerHost() + const mutationStates = useMutationState( + host, + { + filters: { mutationKey }, + select: (mutation) => mutation.state.status, + }, + client, + ) + + try { + host.connect() + await Promise.resolve() + + expect(mutationStates()).toEqual(['idle']) + + host.updatesRequested = 0 + + for (let i = 0; i < 5; i += 1) { + client.getMutationCache().notify({ + type: 'updated', + mutation, + action: { type: 'pause' } as never, + }) + await Promise.resolve() + } + + expect(host.updatesRequested).toBe(0) + expect(mutationStates()).toEqual(['idle']) + } finally { + mutationStates.destroy() + } + }) + it('LC-COUNTERS-01: pre-connect placeholders stay zero/empty until a provider binds', async () => { const consumer = document.createElement( contextCountersTagName, diff --git a/packages/lit-query/src/tests/infinite-and-options.test.ts b/packages/lit-query/src/tests/infinite-and-options.test.ts index cd3418f69fd..6ef06b6cdc1 100644 --- a/packages/lit-query/src/tests/infinite-and-options.test.ts +++ b/packages/lit-query/src/tests/infinite-and-options.test.ts @@ -169,6 +169,165 @@ describe('createInfiniteQueryController', () => { expect(infinite().data?.pages).toEqual([-1, 0, 1]) }) + it('does not request another update when stable function options refresh during host update', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let callCount = 0 + + const infinite = createInfiniteQueryController( + host, + () => ({ + queryKey: ['infinite-controller', 'stable-function-options'], + initialPageParam: 0, + queryFn: async ({ pageParam }) => { + callCount += 1 + return Number(pageParam) + }, + getNextPageParam: () => undefined, + staleTime: Infinity, + }), + client, + ) + + try { + host.connect() + host.update() + + await waitFor(() => infinite().isSuccess) + + host.updatesRequested = 0 + + for (let i = 0; i < 5; i += 1) { + host.update() + await Promise.resolve() + } + + expect(host.updatesRequested).toBe(0) + expect(infinite().data?.pages).toEqual([0]) + expect(callCount).toBe(1) + } finally { + infinite.destroy() + } + }) + + it('does not request an update for refetch-only state changes when only data was read', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let resolveRefetch: (() => void) | undefined + + const infinite = createInfiniteQueryController( + host, + { + queryKey: ['infinite-controller', 'tracked-data-only'], + initialPageParam: 0, + initialData: { + pages: ['stable-page'], + pageParams: [0], + }, + staleTime: Infinity, + queryFn: () => + new Promise((resolve) => { + resolveRefetch = () => resolve('stable-page') + }), + getNextPageParam: () => undefined, + }, + client, + ) + + try { + host.connect() + host.update() + + expect(infinite().data?.pages).toEqual(['stable-page']) + + await Promise.resolve() + await Promise.resolve() + + host.updatesRequested = 0 + + const refetch = infinite.refetch() + + await waitFor(() => resolveRefetch !== undefined) + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + + resolveRefetch!() + await refetch + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + } finally { + infinite.destroy() + } + }) + + it('refreshes a suppressed result on the next accessor read when a newly read property changed', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const queryKey = ['infinite-controller', 'late-read-freshness'] as const + const host = new TestControllerHost() + + const infinite = createInfiniteQueryController( + host, + { + queryKey, + initialPageParam: 0, + initialData: { + pages: ['initial-page'], + pageParams: [0], + }, + staleTime: Infinity, + queryFn: async () => 'unused', + getNextPageParam: () => undefined, + }, + client, + ) + + try { + host.connect() + host.update() + + expect(infinite().status).toBe('success') + + await Promise.resolve() + await Promise.resolve() + + host.updatesRequested = 0 + + client.setQueryData(queryKey, { + pages: ['updated-page'], + pageParams: [0], + }) + await Promise.resolve() + + expect(infinite().data?.pages).toEqual(['updated-page']) + expect(host.updatesRequested).toBe(0) + } finally { + infinite.destroy() + } + }) + it('INFEDGE-01: next-page failure preserves prior pages consistently', async () => { const client = new QueryClient({ defaultOptions: { diff --git a/packages/lit-query/src/tests/queries-controller.test.ts b/packages/lit-query/src/tests/queries-controller.test.ts index 1fd9c536007..67f6c5456bb 100644 --- a/packages/lit-query/src/tests/queries-controller.test.ts +++ b/packages/lit-query/src/tests/queries-controller.test.ts @@ -227,6 +227,236 @@ describe('createQueriesController', () => { expect(queries()).toEqual(['alpha', 'beta']) }) + it('does not request another update when stable function query options refresh during host update', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let callCount = 0 + + const queries = createQueriesController( + host, + () => ({ + queries: [ + { + queryKey: [ + 'queries-controller', + 'stable-function-options', + ] as const, + queryFn: async () => { + callCount += 1 + return 'stable-result' + }, + staleTime: Infinity, + }, + ] as const, + }), + client, + ) + + try { + host.connect() + host.update() + + await waitFor(() => queries()[0]?.isSuccess === true) + + host.updatesRequested = 0 + + for (let i = 0; i < 5; i += 1) { + host.update() + await Promise.resolve() + } + + expect(host.updatesRequested).toBe(0) + expect(queries()[0]?.data).toBe('stable-result') + expect(callCount).toBe(1) + } finally { + queries.destroy() + } + }) + + it('does not request an update for refetch-only state changes when data was read and result refetch is invoked', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const queryKey = ['queries-controller', 'tracked-data-only'] as const + const host = new TestControllerHost() + let resolveRefetch: (() => void) | undefined + + const queries = createQueriesController( + host, + { + queries: [ + { + queryKey, + initialData: 'stable-data', + staleTime: Infinity, + queryFn: () => + new Promise((resolve) => { + resolveRefetch = () => resolve('stable-data') + }), + }, + ] as const, + }, + client, + ) + + try { + host.connect() + host.update() + + expect(queries()[0]?.data).toBe('stable-data') + + await Promise.resolve() + await Promise.resolve() + + host.updatesRequested = 0 + + const refetch = queries()[0]!.refetch() + + await waitFor(() => resolveRefetch !== undefined) + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + + resolveRefetch!() + await refetch + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + } finally { + queries.destroy() + } + }) + + it('does not re-default query options when subscribed queries emit', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const originalDefaultQueryOptions = client.defaultQueryOptions + let defaultQueryOptionsCalls = 0 + client.defaultQueryOptions = ((options) => { + defaultQueryOptionsCalls += 1 + return originalDefaultQueryOptions.call(client, options as never) + }) as typeof client.defaultQueryOptions + + const queryKey = ['queries-controller', 'per-emit-defaulting'] as const + const host = new TestControllerHost() + let resolveRefetch: (() => void) | undefined + + const queries = createQueriesController( + host, + { + queries: [ + { + queryKey, + initialData: 'stable-data', + staleTime: Infinity, + queryFn: () => + new Promise((resolve) => { + resolveRefetch = () => resolve('stable-data') + }), + }, + ] as const, + }, + client, + ) + + try { + host.connect() + host.update() + + expect(queries()[0]?.isFetching).toBe(false) + + await Promise.resolve() + await Promise.resolve() + + defaultQueryOptionsCalls = 0 + + const refetch = queries()[0]!.refetch() + + await waitFor(() => resolveRefetch !== undefined) + await Promise.resolve() + + expect(queries()[0]?.isFetching).toBe(true) + expect(defaultQueryOptionsCalls).toBe(0) + + resolveRefetch!() + await refetch + await Promise.resolve() + + expect(queries()[0]?.isFetching).toBe(false) + expect(defaultQueryOptionsCalls).toBe(0) + } finally { + queries.destroy() + } + }) + + it('refreshes suppressed query results on the next accessor read when a newly read property changed', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const queryKey = ['queries-controller', 'late-read-freshness'] as const + const host = new TestControllerHost() + + const queries = createQueriesController( + host, + { + queries: [ + { + queryKey, + initialData: 'initial-data', + staleTime: Infinity, + queryFn: async () => 'unused', + }, + ] as const, + }, + client, + ) + + try { + host.connect() + host.update() + + expect(queries()[0]?.status).toBe('success') + + await Promise.resolve() + await Promise.resolve() + + host.updatesRequested = 0 + + client.setQueryData(queryKey, 'updated-data') + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + + expect(queries()[0]?.data).toBe('updated-data') + expect(host.updatesRequested).toBe(0) + } finally { + queries.destroy() + } + }) + it('M13: supports dynamic add/remove and keeps partial failure stability', async () => { const client = new QueryClient({ defaultOptions: { diff --git a/packages/lit-query/src/tests/query-controller.test.ts b/packages/lit-query/src/tests/query-controller.test.ts index 6b59ba2e769..d8261e585c9 100644 --- a/packages/lit-query/src/tests/query-controller.test.ts +++ b/packages/lit-query/src/tests/query-controller.test.ts @@ -161,6 +161,153 @@ describe('createQueryController', () => { expect(host.updatesRequested).toBeGreaterThan(0) }) + it('does not request another update when stable function options refresh during host update', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const host = new TestControllerHost() + let callCount = 0 + + const query = createQueryController( + host, + () => ({ + queryKey: ['query-controller', 'stable-function-options'], + queryFn: async () => { + callCount += 1 + return 'stable-result' + }, + staleTime: Infinity, + }), + client, + ) + + try { + host.connect() + host.update() + + await waitFor(() => query().isSuccess) + + host.updatesRequested = 0 + + for (let i = 0; i < 5; i += 1) { + host.update() + await Promise.resolve() + } + + expect(host.updatesRequested).toBe(0) + expect(query().data).toBe('stable-result') + expect(callCount).toBe(1) + } finally { + query.destroy() + } + }) + + it('does not request an update for refetch-only state changes when only data was read', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const queryKey = ['query-controller', 'tracked-data-only'] as const + const host = new TestControllerHost() + let resolveRefetch: (() => void) | undefined + + const query = createQueryController( + host, + { + queryKey, + initialData: 'stable-data', + staleTime: Infinity, + queryFn: () => + new Promise((resolve) => { + resolveRefetch = () => resolve('stable-data') + }), + }, + client, + ) + + try { + host.connect() + host.update() + + expect(query().data).toBe('stable-data') + + await Promise.resolve() + await Promise.resolve() + + host.updatesRequested = 0 + + const refetch = query.refetch() + + await waitFor(() => resolveRefetch !== undefined) + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + + resolveRefetch!() + await refetch + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + } finally { + query.destroy() + } + }) + + it('refreshes a suppressed result on the next accessor read when a newly read property changed', async () => { + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + + const queryKey = ['query-controller', 'late-read-freshness'] as const + const host = new TestControllerHost() + + const query = createQueryController( + host, + { + queryKey, + initialData: 'initial-data', + staleTime: Infinity, + queryFn: async () => 'unused', + }, + client, + ) + + try { + host.connect() + host.update() + + expect(query().status).toBe('success') + + await Promise.resolve() + await Promise.resolve() + + host.updatesRequested = 0 + + client.setQueryData(queryKey, 'updated-data') + await Promise.resolve() + + expect(host.updatesRequested).toBe(0) + + expect(query().data).toBe('updated-data') + expect(host.updatesRequested).toBe(0) + } finally { + query.destroy() + } + }) + it('M4: transitions from pending to success with expected contract', async () => { const client = new QueryClient({ defaultOptions: { diff --git a/packages/lit-query/src/useMutationState.ts b/packages/lit-query/src/useMutationState.ts index f3bc477db0a..ed362ea0944 100644 --- a/packages/lit-query/src/useMutationState.ts +++ b/packages/lit-query/src/useMutationState.ts @@ -1,8 +1,9 @@ -import type { - Mutation, - MutationFilters, - MutationState, - QueryClient, +import { + replaceEqualDeep, + type Mutation, + type MutationFilters, + type MutationState, + type QueryClient, } from '@tanstack/query-core' import type { ReactiveControllerHost } from 'lit' import { @@ -55,12 +56,12 @@ class MutationStateController extends BaseController { protected onConnected(): void { if (!this.syncClient()) { - this.setResult([]) + this.setMutationState([]) return } this.subscribe() - this.setResult(this.computeState()) + this.setMutationState(this.computeState()) } protected onDisconnected(): void { @@ -74,18 +75,18 @@ class MutationStateController extends BaseController { return } - this.setResult(this.syncClient() ? this.computeState() : []) + this.setMutationState(this.syncClient() ? this.computeState() : []) } protected onQueryClientChanged(): void { if (!this.syncClient()) { - this.setResult([]) + this.setMutationState([]) return } if (this.connectedState) { this.subscribe() - this.setResult(this.computeState()) + this.setMutationState(this.computeState()) } } @@ -118,10 +119,14 @@ class MutationStateController extends BaseController { } this.unsubscribe = this.queryClient.getMutationCache().subscribe(() => { - this.setResult(this.computeState()) + this.setMutationState(this.computeState()) }) } + private setMutationState(next: TResult[]): void { + this.setResult(replaceEqualDeep(this.result, next)) + } + private shouldRefreshOnHostUpdate(): boolean { return ( typeof this.options.filters === 'function' || From 7252bdc6120c1911445cb6ce5d94d687c18f171b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 25 May 2026 21:52:47 +0900 Subject: [PATCH 316/414] ci(detect-agent): remove the detect-agent workflow (#10781) --- .github/workflows/detect-agent.yml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .github/workflows/detect-agent.yml diff --git a/.github/workflows/detect-agent.yml b/.github/workflows/detect-agent.yml deleted file mode 100644 index f4cdfa6cd4f..00000000000 --- a/.github/workflows/detect-agent.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Detect Agent - -on: - pull_request: - types: [opened] - workflow_dispatch: {} - -permissions: {} - -jobs: - detect: - if: github.event_name != 'workflow_dispatch' - permissions: - issues: write - pull-requests: write - uses: bombshell-dev/automation/.github/workflows/detect-agent.yml@fefdda5cafd503bf3caaccd0a350c5d863d4289c - - backfill: - if: github.event_name == 'workflow_dispatch' - permissions: - issues: write - pull-requests: write - uses: bombshell-dev/automation/.github/workflows/detect-agent-backfill.yml@fefdda5cafd503bf3caaccd0a350c5d863d4289c From b110d25c40ee56fd57862e932d1d65bee360dbda Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 26 May 2026 02:45:16 +0900 Subject: [PATCH 317/414] test(query-devtools/contexts/ThemeContext): drop the 'Provider' value pass-through case in favor of the reactive 'Accessor' case (#10794) --- .../__tests__/contexts/ThemeContext.test.tsx | 45 ++++++------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx b/packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx index 5d0cb2c727e..af8c49179a2 100644 --- a/packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx +++ b/packages/query-devtools/src/__tests__/contexts/ThemeContext.test.tsx @@ -5,47 +5,30 @@ import { ThemeContext, useTheme } from '../../contexts' type Theme = ReturnType> -function renderThemeProbe(provider?: () => Theme) { - let resolvedTheme: Theme | undefined - function ThemeProbe() { - const theme = useTheme() - resolvedTheme = theme() - return null - } - - render(() => - provider ? ( - - - - ) : ( - - ), - ) - - return resolvedTheme -} - describe('ThemeContext', () => { describe('default value', () => { it('should resolve to "dark" when no "ThemeContext.Provider" wraps the consumer', () => { - expect(renderThemeProbe()).toBe('dark') + let resolvedTheme: Theme | undefined + function ThemeProbe() { + const theme = useTheme() + resolvedTheme = theme() + return null + } + + render(() => ) + + expect(resolvedTheme).toBe('dark') }) }) describe('with a "ThemeContext.Provider"', () => { - it('should resolve to the value provided by the "Provider"', () => { - expect(renderThemeProbe(() => 'light')).toBe('light') - expect(renderThemeProbe(() => 'dark')).toBe('dark') - }) - it('should reflect updates when the "Provider" value is a reactive "Accessor"', () => { const [theme, setTheme] = createSignal('dark') - let observed: Theme | undefined + const observed: Array = [] function ThemeProbe() { const resolved = useTheme() createEffect(() => { - observed = resolved() + observed.push(resolved()) }) return null } @@ -56,10 +39,10 @@ describe('ThemeContext', () => { )) - expect(observed).toBe('dark') + expect(observed).toEqual(['dark']) setTheme('light') - expect(observed).toBe('light') + expect(observed).toEqual(['dark', 'light']) }) }) }) From 828858de1ceba2956167535818c0bd9216dbce73 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 26 May 2026 02:54:29 +0900 Subject: [PATCH 318/414] test(query-devtools/contexts/QueryDevtoolsContext): add test for 'Provider' value reactivity via getter properties (#10793) * test(query-devtools/contexts/QueryDevtoolsContext): add test for 'Provider' value reactivity via getter properties * ci: apply automated fixes * test(query-devtools/contexts/QueryDevtoolsContext): clear 'QueryClient' instances after the reactive getter test --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../contexts/QueryDevtoolsContext.test.tsx | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 packages/query-devtools/src/__tests__/contexts/QueryDevtoolsContext.test.tsx diff --git a/packages/query-devtools/src/__tests__/contexts/QueryDevtoolsContext.test.tsx b/packages/query-devtools/src/__tests__/contexts/QueryDevtoolsContext.test.tsx new file mode 100644 index 00000000000..eb9a6e688bb --- /dev/null +++ b/packages/query-devtools/src/__tests__/contexts/QueryDevtoolsContext.test.tsx @@ -0,0 +1,44 @@ +import { describe, expect, it } from 'vitest' +import { render } from '@solidjs/testing-library' +import { createEffect, createSignal } from 'solid-js' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import { QueryDevtoolsContext, useQueryDevtoolsContext } from '../../contexts' + +describe('QueryDevtoolsContext', () => { + it('should reflect updates when the "Provider" value exposes a reactive getter', () => { + const initialClient = new QueryClient() + const nextClient = new QueryClient() + const [client, setClient] = createSignal(initialClient) + const observed: Array = [] + function ContextProbe() { + const ctx = useQueryDevtoolsContext() + createEffect(() => { + observed.push(ctx.client) + }) + return null + } + + render(() => ( + + + + )) + + expect(observed).toEqual([initialClient]) + + setClient(nextClient) + expect(observed).toEqual([initialClient, nextClient]) + + initialClient.clear() + nextClient.clear() + }) +}) From 335975d88d363fbb5a9c438128b236b1b826076c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 26 May 2026 03:13:59 +0900 Subject: [PATCH 319/414] test(query-devtools/contexts/PiPContext): add test for 'usePiPWindow' throwing outside a 'PiPProvider' (#10796) --- .../src/__tests__/contexts/PiPContext.test.tsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx diff --git a/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx new file mode 100644 index 00000000000..18fb38ca741 --- /dev/null +++ b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx @@ -0,0 +1,18 @@ +import { describe, expect, it } from 'vitest' +import { render } from '@solidjs/testing-library' +import { usePiPWindow } from '../../contexts' + +describe('PiPContext', () => { + describe('usePiPWindow', () => { + it('should throw when used outside a "PiPProvider"', () => { + function PiPProbe() { + usePiPWindow() + return null + } + + expect(() => render(() => )).toThrow( + 'usePiPWindow must be used within a PiPProvider', + ) + }) + }) +}) From 25009cd45684a88ed904b4af199fbc8a2ec00386 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 26 May 2026 03:35:06 +0900 Subject: [PATCH 320/414] test(query-devtools/contexts/PiPContext): add tests for 'requestPipWindow' opening a PiP window and persisting 'pip_open' (#10797) --- .../__tests__/contexts/PiPContext.test.tsx | 98 ++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx index 18fb38ca741..c0049e21be4 100644 --- a/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx +++ b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx @@ -1,8 +1,66 @@ -import { describe, expect, it } from 'vitest' +import { afterEach, describe, expect, it, vi } from 'vitest' import { render } from '@solidjs/testing-library' -import { usePiPWindow } from '../../contexts' +import { createEffect } from 'solid-js' +import { createLocalStorage } from '@solid-primitives/storage' +import { PiPProvider, usePiPWindow } from '../../contexts' + +type FakePipWindow = Pick< + Window, + | 'document' + | 'innerWidth' + | 'innerHeight' + | 'addEventListener' + | 'removeEventListener' + | 'close' +> + +function stubPipWindow(overrides: Partial = {}) { + const pipDocument = document.implementation.createHTMLDocument('PiP') + const fakeWindow: FakePipWindow = { + document: pipDocument, + innerWidth: 800, + innerHeight: 600, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + close: vi.fn(), + ...overrides, + } + const open = vi.fn(() => fakeWindow) + vi.stubGlobal('open', open) + return { pipDocument, fakeWindow, open } +} describe('PiPContext', () => { + afterEach(() => { + vi.unstubAllGlobals() + }) + + function renderAndAct( + action: (pip: ReturnType) => void, + ) { + render(() => { + const [localStore, setLocalStore] = createLocalStorage({ + prefix: 'TanstackQueryDevtools', + }) + return ( + + + + ) + }) + } + + function PiPActor(props: { + run: (pip: ReturnType) => void + }) { + const pip = usePiPWindow() + createEffect(() => { + pip() + props.run(pip) + }) + return null + } + describe('usePiPWindow', () => { it('should throw when used outside a "PiPProvider"', () => { function PiPProbe() { @@ -15,4 +73,40 @@ describe('PiPContext', () => { ) }) }) + + describe('"requestPipWindow"', () => { + it('should call "window.open" with the expected target and features', () => { + const { open } = stubPipWindow() + + renderAndAct((pip) => pip().requestPipWindow(640, 480)) + + expect(open).toHaveBeenCalledWith( + '', + 'TSQD-Devtools-Panel', + 'width=640,height=480,popup', + ) + }) + + it('should set the "pipWindow" signal to the opened window', () => { + const { fakeWindow } = stubPipWindow() + let observed: Window | null = null + + renderAndAct((pip) => { + pip().requestPipWindow(640, 480) + observed = pip().pipWindow + }) + + expect(observed).toBe(fakeWindow) + }) + + it('should persist "pip_open" as "true" to "localStore" after a successful open', () => { + stubPipWindow() + + renderAndAct((pip) => pip().requestPipWindow(640, 480)) + + expect(localStorage.getItem('TanstackQueryDevtools.pip_open')).toBe( + 'true', + ) + }) + }) }) From 1b7d28adda41f73b0f4430ad487ee0963fab07d1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 26 May 2026 03:56:55 +0900 Subject: [PATCH 321/414] test(query-devtools/contexts/PiPContext): add tests for 'requestPipWindow' resetting the PiP document title, body margin, and head/body contents (#10798) --- .../__tests__/contexts/PiPContext.test.tsx | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx index c0049e21be4..a4595346ffb 100644 --- a/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx +++ b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx @@ -108,5 +108,41 @@ describe('PiPContext', () => { 'true', ) }) + + it('should set the PiP document title to "TanStack Query Devtools"', () => { + const { pipDocument } = stubPipWindow() + + renderAndAct((pip) => pip().requestPipWindow(640, 480)) + + expect(pipDocument.title).toBe('TanStack Query Devtools') + }) + + it('should reset the PiP document body margin to "0"', () => { + const { pipDocument } = stubPipWindow() + + renderAndAct((pip) => pip().requestPipWindow(640, 480)) + + expect(pipDocument.body.style.margin).toMatch(/^0(px)?$/) + }) + + it('should clear any existing nodes in the PiP document "head"', () => { + const { pipDocument } = stubPipWindow() + pipDocument.head.appendChild(pipDocument.createElement('meta')) + + renderAndAct((pip) => pip().requestPipWindow(640, 480)) + + expect(pipDocument.head.querySelector('meta')).toBeNull() + }) + + it('should clear any existing nodes in the PiP document "body"', () => { + const { pipDocument } = stubPipWindow() + const leftover = pipDocument.createElement('div') + leftover.id = 'leftover' + pipDocument.body.appendChild(leftover) + + renderAndAct((pip) => pip().requestPipWindow(640, 480)) + + expect(pipDocument.body.querySelector('#leftover')).toBeNull() + }) }) }) From 8c666496ce3d645d6ecbabfd58918de3368080f5 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 26 May 2026 04:11:54 +0900 Subject: [PATCH 322/414] test(query-devtools/contexts/PiPContext): add tests for 'requestPipWindow' copying parent stylesheets into the PiP document head (#10800) --- .../__tests__/contexts/PiPContext.test.tsx | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx index a4595346ffb..e7aa7441ad4 100644 --- a/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx +++ b/packages/query-devtools/src/__tests__/contexts/PiPContext.test.tsx @@ -145,4 +145,90 @@ describe('PiPContext', () => { expect(pipDocument.body.querySelector('#leftover')).toBeNull() }) }) + + describe('styleSheet propagation', () => { + type FakeCssRule = { readonly cssText: string } + type FakeStyleSheet = { + readonly cssRules?: ArrayLike + readonly href?: string | null + readonly type?: string + readonly media?: { toString: () => string } + readonly ownerNode?: Element | null + } + + function makeCssRules(...cssTexts: Array): ArrayLike { + return cssTexts.map((cssText) => ({ cssText })) + } + + function stubParentStyleSheet(sheet: FakeStyleSheet) { + return vi + .spyOn(document, 'styleSheets', 'get') + .mockReturnValue([sheet] as unknown as StyleSheetList) + } + + it('should copy parent stylesheets as "