diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index fada8ed643a..0640dcb4dac 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 81f817fbc84..3b49b3f26c2 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 66311097e2f..1b04c0248af 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.72.3", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-devtools-experimental": "^5.73.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index fefff870251..f1fa1f4e62c 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 0f39c3f1164..9b9428a9f5e 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 50650428cbc..e4eb191caad 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 181428a1971..db05db09a04 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index b8aa13f40ab..6013ebab04d 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 0c5b9cdacbf..307b3dd95e0 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 9f41844153c..e0e633a35d4 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.72.3", + "@tanstack/angular-query-experimental": "^5.73.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 0f1315cb177..f26f48788b4 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.72.2", + "@tanstack/eslint-plugin-query": "^5.73.3", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 5c14623a0a0..0932b68afcd 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index fc5c7da699c..18bff357403 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index fa230270764..1407eca850b 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.73.1", - "@tanstack/react-query": "^5.72.2", - "@tanstack/react-query-devtools": "^5.72.2", - "@tanstack/react-query-persist-client": "^5.73.1", + "@tanstack/query-sync-storage-persister": "^5.73.3", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", + "@tanstack/react-query-persist-client": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.72.2", + "@tanstack/eslint-plugin-query": "^5.73.3", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index e8cefd333cc..8792493ad2a 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index d0302fc3caa..7a622da2ce8 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index b5bdc222904..5d8b3f236a7 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 0376b399c0e..f2660d7c7e8 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-sync-storage-persister": "^5.73.1", - "@tanstack/react-query": "^5.72.2", - "@tanstack/react-query-devtools": "^5.72.2", - "@tanstack/react-query-persist-client": "^5.73.1", + "@tanstack/query-sync-storage-persister": "^5.73.3", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", + "@tanstack/react-query-persist-client": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.72.2", + "@tanstack/eslint-plugin-query": "^5.73.3", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 83bf209544c..e9594827fcf 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 24483c73a76..0e8987b1e69 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index a40494374a7..040aebe64f4 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index d0a96d87b4f..7fba8fffa86 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", - "@tanstack/react-query-next-experimental": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", + "@tanstack/react-query-next-experimental": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 7f8bafbeff9..1372308f8f4 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index ee1e032d063..7ced307c2e0 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.73.1", + "@tanstack/query-sync-storage-persister": "^5.73.3", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.72.2", - "@tanstack/react-query-devtools": "^5.72.2", - "@tanstack/react-query-persist-client": "^5.73.1", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", + "@tanstack/react-query-persist-client": "^5.73.3", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 14a353a7674..b77f49530a4 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index d33cb6edc7b..261a80d992c 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index d5984e735cc..132048c7213 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 792b1ea9c12..0c08a9705da 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index fe08883172b..0fbc517327e 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index a4659f5f75b..3e19c6939b5 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index d1a2936485d..5cf5d6ad42f 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 6683391b80a..1af75114ad9 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index f0ebcd0bb8c..7651d2ae54e 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index af3501fc0f2..cad16b2b6ad 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 8f7476df22d..bc7ec30a211 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index a985b27d83d..3e80e3a4058 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.72.2", - "@tanstack/react-query-devtools": "^5.72.2", + "@tanstack/react-query": "^5.73.3", + "@tanstack/react-query-devtools": "^5.73.3", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index b32b9c5b9ff..bd56d3bc56f 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.72.2", - "@tanstack/solid-query-devtools": "^5.72.2", + "@tanstack/solid-query": "^5.73.3", + "@tanstack/solid-query-devtools": "^5.73.3", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 793f9673eae..ceda64bfb53 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.72.2", - "@tanstack/solid-query-devtools": "^5.72.2", + "@tanstack/solid-query": "^5.73.3", + "@tanstack/solid-query-devtools": "^5.73.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index c8e10778aee..73540187df0 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.72.2", - "@tanstack/solid-query-devtools": "^5.72.2", + "@tanstack/solid-query": "^5.73.3", + "@tanstack/solid-query-devtools": "^5.73.3", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index ff7863f72f9..e81575cf051 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.72.2", - "@tanstack/solid-query-devtools": "^5.72.2", + "@tanstack/solid-query": "^5.73.3", + "@tanstack/solid-query-devtools": "^5.73.3", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 5d8abf7a08d..2ccd94df789 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.72.2", - "@tanstack/solid-query-devtools": "^5.72.2", + "@tanstack/solid-query": "^5.73.3", + "@tanstack/solid-query-devtools": "^5.73.3", "solid-js": "^1.9.5" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.72.2", + "@tanstack/eslint-plugin-query": "^5.73.3", "typescript": "5.8.3", "vite": "^6.2.4", "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 41adeaae3b4..20df3b72e2f 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.72.2", - "@tanstack/solid-query-devtools": "^5.72.2", + "@tanstack/solid-query": "^5.73.3", + "@tanstack/solid-query-devtools": "^5.73.3", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index faebb52bef2..06c0e7e2c42 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": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2" + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index ad463f8834c..4b47f6cdc3c 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.73.1", - "@tanstack/svelte-query": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2", - "@tanstack/svelte-query-persist-client": "^5.73.2" + "@tanstack/query-sync-storage-persister": "^5.73.3", + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3", + "@tanstack/svelte-query-persist-client": "^5.73.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 9766bb71919..a2aaf3c2283 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": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2" + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 9f331572ac3..ccf1990958a 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": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2" + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 7778b6b98ca..369d327d2cf 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2" + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index ccbb982b88c..fe7e381af7f 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2" + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 8e2d9600563..3b5cd38e5fc 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2" + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 61dacf37ebf..bdc3db2ab7c 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": "^5.73.2", - "@tanstack/svelte-query-devtools": "^5.73.2" + "@tanstack/svelte-query": "^5.73.3", + "@tanstack/svelte-query-devtools": "^5.73.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 91d1e4186a5..81a29b9650b 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.73.0", + "@tanstack/vue-query": "^5.73.3", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 86715aa9070..c1ea9db69ca 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.73.0", + "@tanstack/vue-query": "^5.73.3", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index dc339816428..997a14715e4 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.73.0", - "@tanstack/vue-query-devtools": "^5.73.0", + "@tanstack/vue-query": "^5.73.3", + "@tanstack/vue-query-devtools": "^5.73.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 292e0a5c6cd..bcf6b378014 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.73.0", + "@tanstack/vue-query": "^5.73.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index d501840cd38..05f832d5934 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.73.0" + "@tanstack/vue-query": "^5.73.3" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 8ed4d6c2b75..45c86f3259c 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.72.2", - "@tanstack/query-persist-client-core": "^5.73.1", - "@tanstack/query-sync-storage-persister": "^5.73.1", - "@tanstack/vue-query": "^5.73.0", + "@tanstack/query-core": "^5.73.3", + "@tanstack/query-persist-client-core": "^5.73.3", + "@tanstack/query-sync-storage-persister": "^5.73.3", + "@tanstack/vue-query": "^5.73.3", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 18f0b19aba4..6fed2504717 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.73.0", - "@tanstack/vue-query-devtools": "^5.73.0", + "@tanstack/vue-query": "^5.73.3", + "@tanstack/vue-query-devtools": "^5.73.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 13672820b21..2e282be8283 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.72.3", + "version": "5.73.3", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index a98dfe47009..616354f92e3 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.72.3", + "version": "5.73.3", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 4e9fc9c0857..62e6707ed85 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.72.2", + "version": "5.73.3", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts index c136a2582c0..569668dc612 100644 --- a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts @@ -1,6 +1,6 @@ import path from 'node:path' import { RuleTester } from '@typescript-eslint/rule-tester' -import { afterAll, describe, it } from 'vitest' +import { afterAll, describe, it, test } from 'vitest' import { rule } from '../rules/no-void-query-fn/no-void-query-fn.rule' import { normalizeIndent } from './test-utils' @@ -18,11 +18,12 @@ const ruleTester = new RuleTester({ }, }) -ruleTester.run('no-void-query-fn', rule, { - valid: [ - { - name: 'queryFn returns a value', - code: normalizeIndent` +test('should run rule tests', () => { + ruleTester.run('no-void-query-fn', rule, { + valid: [ + { + name: 'queryFn returns a value', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -33,10 +34,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn returns a Promise', - code: normalizeIndent` + }, + { + name: 'queryFn returns a Promise', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -47,10 +48,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn returns Promise.resolve', - code: normalizeIndent` + }, + { + name: 'queryFn returns Promise.resolve', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -61,10 +62,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn with explicit Promise type', - code: normalizeIndent` + }, + { + name: 'queryFn with explicit Promise type', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' interface Data { @@ -81,10 +82,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn with generic Promise type', - code: normalizeIndent` + }, + { + name: 'queryFn with generic Promise type', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' interface Response { @@ -101,10 +102,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn with external async function', - code: normalizeIndent` + }, + { + name: 'queryFn with external async function', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' async function fetchData(): Promise<{ data: string }> { @@ -119,10 +120,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn returns null', - code: normalizeIndent` + }, + { + name: 'queryFn returns null', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -133,10 +134,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn returns 0', - code: normalizeIndent` + }, + { + name: 'queryFn returns 0', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -147,10 +148,10 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - { - name: 'queryFn returns false', - code: normalizeIndent` + }, + { + name: 'queryFn returns false', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -161,12 +162,12 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - }, - ], - invalid: [ - { - name: 'queryFn returns void', - code: normalizeIndent` + }, + ], + invalid: [ + { + name: 'queryFn returns void', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -179,11 +180,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'queryFn returns undefined', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'queryFn returns undefined', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -194,11 +195,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'async queryFn returns void', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'async queryFn returns void', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -211,11 +212,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'queryFn with explicit void Promise', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'queryFn with explicit void Promise', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -228,11 +229,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'queryFn with Promise.resolve(undefined)', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'queryFn with Promise.resolve(undefined)', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -243,11 +244,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'queryFn with external void async function', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'queryFn with external void async function', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' async function voidOperation(): Promise { @@ -262,11 +263,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'queryFn with conditional return (one branch missing)', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'queryFn with conditional return (one branch missing)', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -282,11 +283,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'queryFn with ternary operator returning undefined', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'queryFn with ternary operator returning undefined', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -297,11 +298,11 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - { - name: 'async queryFn with try/catch missing return in catch', - code: normalizeIndent` + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'async queryFn with try/catch missing return in catch', + code: normalizeIndent` import { useQuery } from '@tanstack/react-query' function Component() { @@ -319,7 +320,8 @@ ruleTester.run('no-void-query-fn', rule, { return null } `, - errors: [{ messageId: 'noVoidReturn' }], - }, - ], -}) + errors: [{ messageId: 'noVoidReturn' }], + }, + ], + }) +}, 10_000) diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 7bcf46675d3..c38d7fede28 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.73.1", + "version": "5.73.3", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index c712f57afb6..a61d4cfb6ef 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.72.2", + "version": "5.73.3", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 21922660a44..640d02c978b 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.72.2", + "version": "5.73.3", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 7346b7a0e70..6b44576de5d 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -925,42 +925,6 @@ describe('queryObserver', () => { expect(observer.getCurrentResult().data).toBe(selectedData2) }) - test('should not use an undefined value returned by select as placeholderData', () => { - const key = queryKey() - - const data = { value: 'data' } - const selectedData = { value: 'data' } - const placeholderData1 = { value: 'data' } - const placeholderData2 = { value: 'data' } - - const observer = new QueryObserver(queryClient, { - queryKey: key, - queryFn: () => data, - select: () => data, - }) - - observer.setOptions({ - queryKey: key, - queryFn: () => data, - select: () => { - return selectedData - }, - placeholderData: placeholderData1, - }) - - expect(observer.getCurrentResult().isPlaceholderData).toBe(true) - - observer.setOptions({ - queryKey: key, - queryFn: () => data, - // @ts-expect-error - select: () => undefined, - placeholderData: placeholderData2, - }) - - expect(observer.getCurrentResult().isPlaceholderData).toBe(false) - }) - test('should pass the correct previous queryKey (from prevQuery) to placeholderData function params with select', async () => { const results: Array = [] const keys: Array | null> = [] @@ -1036,11 +1000,16 @@ describe('queryObserver', () => { const data1 = { value: 'data1' } const data2 = { value: 'data2' } + let selectCount = 0 + const observer = new QueryObserver(queryClient, { queryKey: key1, queryFn: () => data1, placeholderData: (prev) => prev, - select: (data) => data.value, + select: (data) => { + selectCount++ + return data.value + }, }) const unsubscribe = observer.subscribe((result) => { @@ -1053,7 +1022,70 @@ describe('queryObserver', () => { queryKey: key2, queryFn: () => data2, placeholderData: (prev) => prev, - select: (data) => data.value, + select: (data) => { + selectCount++ + return data.value + }, + }) + + await sleep(1) + unsubscribe() + + expect(results.length).toBe(4) + expect(results[0]).toMatchObject({ + data: undefined, + status: 'pending', + fetchStatus: 'fetching', + }) // Initial fetch + expect(results[1]).toMatchObject({ + data: 'data1', + status: 'success', + fetchStatus: 'idle', + }) // Successful fetch + expect(results[2]).toMatchObject({ + data: 'data1', + status: 'success', + fetchStatus: 'fetching', + }) // Fetch for new key, but using previous data as placeholder + expect(results[3]).toMatchObject({ + data: 'data2', + status: 'success', + fetchStatus: 'idle', + }) // Successful fetch for new key + + // it's 3 because select is an inline function + expect(selectCount).toBe(3) + }) + + test('should use cached selectResult when switching between queries and placeholderData returns previousData', async () => { + const results: Array = [] + + const key1 = queryKey() + const key2 = queryKey() + + const data1 = { value: 'data1' } + const data2 = { value: 'data2' } + + const stableSelect = vi.fn((data: { value: string }) => data.value) + + const observer = new QueryObserver(queryClient, { + queryKey: key1, + queryFn: () => data1, + placeholderData: (prev) => prev, + select: stableSelect, + }) + + const unsubscribe = observer.subscribe((result) => { + results.push(result) + }) + + await sleep(1) + + observer.setOptions({ + queryKey: key2, + queryFn: () => data2, + placeholderData: (prev) => prev, + select: stableSelect, }) await sleep(1) @@ -1080,6 +1112,10 @@ describe('queryObserver', () => { status: 'success', fetchStatus: 'idle', }) // Successful fetch for new key + + expect(stableSelect).toHaveBeenCalledTimes(2) + expect(stableSelect.mock.calls[0]![0]).toEqual(data1) + expect(stableSelect.mock.calls[1]![0]).toEqual(data2) }) test('setOptions should notify cache listeners', () => { diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index 12bb90d5040..6f01860d304 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -474,33 +474,11 @@ export class QueryObserver< let { error, errorUpdatedAt, status } = newState - // Select data if needed - if (options.select && newState.data !== undefined) { - // Memoize select result - if ( - prevResult && - newState.data === prevResultState?.data && - options.select === this.#selectFn - ) { - data = this.#selectResult - } else { - try { - this.#selectFn = options.select - data = options.select(newState.data) - data = replaceData(prevResult?.data, data, options) - this.#selectResult = data - this.#selectError = null - } catch (selectError) { - this.#selectError = selectError as TError - } - } - } - // Use query data - else { - data = newState.data as unknown as TData - } + // Per default, use query data + data = newState.data as unknown as TData + let skipSelect = false - // Show placeholder data if needed + // use placeholderData if needed if ( options.placeholderData !== undefined && data === undefined && @@ -514,7 +492,11 @@ export class QueryObserver< options.placeholderData === prevResultOptions?.placeholderData ) { placeholderData = prevResult.data + // we have to skip select when reading this memoization + // because prevResult.data is already "selected" + skipSelect = true } else { + // compute placeholderData placeholderData = typeof options.placeholderData === 'function' ? ( @@ -524,14 +506,6 @@ export class QueryObserver< this.#lastQueryWithDefinedData as any, ) : options.placeholderData - if (options.select && placeholderData !== undefined) { - try { - placeholderData = options.select(placeholderData) - this.#selectError = null - } catch (selectError) { - this.#selectError = selectError as TError - } - } } if (placeholderData !== undefined) { @@ -545,6 +519,29 @@ export class QueryObserver< } } + // Select data if needed + // this also runs placeholderData through the select function + if (options.select && data !== undefined && !skipSelect) { + // Memoize select result + if ( + prevResult && + data === prevResultState?.data && + options.select === this.#selectFn + ) { + data = this.#selectResult + } else { + try { + this.#selectFn = options.select + data = options.select(data as any) + data = replaceData(prevResult?.data, data, options) + this.#selectResult = data + this.#selectError = null + } catch (selectError) { + this.#selectError = selectError as TError + } + } + } + if (this.#selectError) { error = this.#selectError as any data = this.#selectResult diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index cb40964f928..0f0afae6fa2 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.72.2", + "version": "5.73.3", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index ffa55d7452a..e507d5642bf 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.73.1", + "version": "5.73.3", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 8951a66e0b7..b4ee109b4fe 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.73.1", + "version": "5.73.3", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 648ab2f875d..4856d2cd01c 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.72.2", + "version": "5.73.3", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index b4b39ae2905..d0483c32a6f 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.72.2", + "version": "5.73.3", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 244ba226db4..4105542ace9 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.73.1", + "version": "5.73.3", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 12ff66f03d3..047af612651 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.72.2", + "version": "5.73.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index d9bd7f9f65f..7b81e7a3dc4 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.72.2", + "version": "5.73.3", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 62e1adf3609..cf54aa33a11 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.73.1", + "version": "5.73.3", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 2f63f4914e2..1e05152aa7a 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.72.2", + "version": "5.73.3", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 1b0563ebd85..d5a22023dc2 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": "5.73.2", + "version": "5.73.3", "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/package.json b/packages/svelte-query-persist-client/package.json index 500737497fe..149ff9068a1 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": "5.73.2", + "version": "5.73.3", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 9c01f768079..d24c4033fc4 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.73.2", + "version": "5.73.3", "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/package.json b/packages/vue-query-devtools/package.json index 52982959915..3945630ac6b 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": "5.73.0", + "version": "5.73.3", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 0cbee5bc745..e26c2470656 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.73.0", + "version": "5.73.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", @@ -59,15 +59,6 @@ "src", "!src/__tests__" ], - "nx": { - "targets": { - "test:lib": { - "dependsOn": [ - "test:types" - ] - } - } - }, "dependencies": { "@tanstack/match-sorter-utils": "^8.19.4", "@tanstack/query-core": "workspace:*",