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/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() { 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/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-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', () => { 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/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-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-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 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/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/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-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/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/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/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, 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