From 7e2db911dd5fc6a7ae4d65f0cd4df3717f709dfe Mon Sep 17 00:00:00 2001
From: Alex Liu <dsa1314@gmail.com>
Date: Wed, 25 Oct 2023 21:04:04 +0800
Subject: [PATCH 01/45] perf(vue-query): clean up the type definition about
 query composables (#6126)

---
 packages/vue-query/src/useInfiniteQuery.ts | 17 ++-------------
 packages/vue-query/src/useQuery.ts         | 24 ++++++----------------
 2 files changed, 8 insertions(+), 33 deletions(-)

diff --git a/packages/vue-query/src/useInfiniteQuery.ts b/packages/vue-query/src/useInfiniteQuery.ts
index 021f90299c..93d84accb9 100644
--- a/packages/vue-query/src/useInfiniteQuery.ts
+++ b/packages/vue-query/src/useInfiniteQuery.ts
@@ -11,7 +11,6 @@ import type { UseQueryReturnType } from './useBaseQuery'
 
 import type {
   DeepUnwrapRef,
-  DistributiveOmit,
   VueInfiniteQueryObserverOptions,
   WithQueryClientKey,
 } from './types'
@@ -31,23 +30,11 @@ export type UseInfiniteQueryOptions<
   >
 >
 
-type InfiniteQueryReturnType<TData, TError> = UseQueryReturnType<
+export type UseInfiniteQueryReturnType<TData, TError> = UseQueryReturnType<
   TData,
   TError,
   InfiniteQueryObserverResult<TData, TError>
 >
-export type UseInfiniteQueryReturnType<TData, TError> = DistributiveOmit<
-  InfiniteQueryReturnType<TData, TError>,
-  'fetchNextPage' | 'fetchPreviousPage' | 'refetch' | 'remove'
-> & {
-  fetchNextPage: InfiniteQueryObserverResult<TData, TError>['fetchNextPage']
-  fetchPreviousPage: InfiniteQueryObserverResult<
-    TData,
-    TError
-  >['fetchPreviousPage']
-  refetch: InfiniteQueryObserverResult<TData, TError>['refetch']
-  remove: InfiniteQueryObserverResult<TData, TError>['remove']
-}
 
 export function useInfiniteQuery<
   TQueryFnData = unknown,
@@ -104,7 +91,7 @@ export function useInfiniteQuery<
     arg1,
     arg2,
     arg3,
-  ) as InfiniteQueryReturnType<TData, TError>
+  ) as UseInfiniteQueryReturnType<TData, TError>
 
   return result
 }
diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts
index dc574c309a..139fd08f70 100644
--- a/packages/vue-query/src/useQuery.ts
+++ b/packages/vue-query/src/useQuery.ts
@@ -1,37 +1,25 @@
 import { QueryObserver } from '@tanstack/query-core'
 import { useBaseQuery } from './useBaseQuery'
-import type { ToRefs } from 'vue-demi'
 import type {
   DefinedQueryObserverResult,
   QueryFunction,
   QueryKey,
-  QueryObserverResult,
 } from '@tanstack/query-core'
 import type { UseQueryReturnType as UQRT } from './useBaseQuery'
 import type {
   DeepUnwrapRef,
-  DistributiveOmit,
   MaybeRef,
   VueQueryObserverOptions,
   WithQueryClientKey,
 } from './types'
 
-export type UseQueryReturnType<TData, TError> = DistributiveOmit<
-  UQRT<TData, TError>,
-  'refetch' | 'remove'
-> & {
-  refetch: QueryObserverResult<TData, TError>['refetch']
-  remove: QueryObserverResult<TData, TError>['remove']
-}
+export type UseQueryReturnType<TData, TError> = UQRT<TData, TError>
 
-export type UseQueryDefinedReturnType<TData, TError> = DistributiveOmit<
-  ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,
-  'refetch' | 'remove'
-> & {
-  suspense: () => Promise<QueryObserverResult<TData, TError>>
-  refetch: QueryObserverResult<TData, TError>['refetch']
-  remove: QueryObserverResult<TData, TError>['remove']
-}
+export type UseQueryDefinedReturnType<TData, TError> = UQRT<
+  TData,
+  TError,
+  DefinedQueryObserverResult<TData, TError>
+>
 
 export type UseQueryOptions<
   TQueryFnData = unknown,

From 01436d47cbea0c31a41a55ed0763f2e16149b40e Mon Sep 17 00:00:00 2001
From: Damian Osipiuk <osipiukd+git@gmail.com>
Date: Wed, 25 Oct 2023 15:23:13 +0200
Subject: [PATCH 02/45] chore: add v4 branch to ci.yaml

---
 .github/workflows/ci.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9f591ef7ed..861ca42229 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -12,6 +12,7 @@ on:
       - 'alpha'
       - 'beta'
       - 'rc'
+      - 'v4'
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
@@ -23,7 +24,7 @@ env:
 
 jobs:
   test-and-publish:
-    if: github.repository == 'TanStack/query' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/alpha' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/rc')
+    if: github.repository == 'TanStack/query' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/alpha' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/v4')
     name: 'Test & Publish'
     runs-on: ubuntu-latest
     steps:

From acc8ac813517a69ae273d76ada79e16cf534fbb0 Mon Sep 17 00:00:00 2001
From: Damian Osipiuk <osipiukd+git@gmail.com>
Date: Wed, 25 Oct 2023 21:42:48 +0200
Subject: [PATCH 03/45] chore: fix publish script for v4

---
 scripts/config.ts  |  6 ++++--
 scripts/publish.ts | 14 +++++++++-----
 scripts/types.ts   |  1 +
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/scripts/config.ts b/scripts/config.ts
index 2101c34c2e..ccbe8660f9 100644
--- a/scripts/config.ts
+++ b/scripts/config.ts
@@ -77,8 +77,6 @@ export const packages: Package[] = [
   },
 ]
 
-export const latestBranch = 'main'
-
 export const branchConfigs: Record<string, BranchConfig> = {
   main: {
     prerelease: false,
@@ -95,6 +93,10 @@ export const branchConfigs: Record<string, BranchConfig> = {
   rc: {
     prerelease: true,
   },
+  v4: {
+    prerelease: false,
+    previousVersion: true,
+  },
 }
 
 export const rootDir = path.resolve(__dirname, '..')
diff --git a/scripts/publish.ts b/scripts/publish.ts
index ef8178e146..0184105d7c 100644
--- a/scripts/publish.ts
+++ b/scripts/publish.ts
@@ -10,8 +10,8 @@ import log from 'git-log-parser'
 import streamToArray from 'stream-to-array'
 import axios from 'axios'
 import { DateTime } from 'luxon'
-import { branchConfigs, latestBranch, packages, rootDir } from './config'
-import type { BranchConfig, Commit, Package } from './types'
+import { branchConfigs, packages, rootDir } from './config'
+import type { BranchConfig, Commit } from './types'
 
 import type { PackageJson } from 'type-fest'
 
@@ -22,8 +22,10 @@ async function run() {
     process.env.BRANCH ??
     // (process.env.PR_NUMBER ? `pr-${process.env.PR_NUMBER}` : currentGitBranch())
     currentGitBranch()
+  const branchConfig: BranchConfig | undefined = branchConfigs[branchName]
 
   const isMainBranch = branchName === 'main'
+  const isPreviousRelease = branchConfig?.previousVersion
   const npmTag = isMainBranch ? 'latest' : branchName
 
   // Get tags
@@ -33,6 +35,10 @@ async function run() {
   tags = tags
     .filter((tag) => semver.valid(tag))
     .filter((tag) => {
+      // If this is an older release, filter to only include that version
+      if (isPreviousRelease) {
+        return tag.startsWith(branchName)
+      }
       if (semver.prerelease(tag) === null) {
         return isMainBranch
       } else {
@@ -286,8 +292,6 @@ async function run() {
     recommendedReleaseLevel = 0
   }
 
-  const branchConfig: BranchConfig | undefined = branchConfigs[branchName]
-
   if (!branchConfig) {
     console.log(`No publish config found for branch: ${branchName}`)
     console.log('Exiting...')
@@ -405,7 +409,7 @@ async function run() {
   // Stringify the markdown to excape any quotes
   execSync(
     `gh release create v${version} ${
-      !isMainBranch ? '--prerelease' : ''
+      branchConfig.prerelease ? '--prerelease' : ''
     } --notes '${changelogMd.replace(/'/g, '"')}'`,
   )
   console.info(`  Github release created.`)
diff --git a/scripts/types.ts b/scripts/types.ts
index b4c6f9edb9..3c2ab7a8ff 100644
--- a/scripts/types.ts
+++ b/scripts/types.ts
@@ -43,4 +43,5 @@ export type Package = {
 
 export type BranchConfig = {
   prerelease: boolean
+  previousVersion?: boolean
 }

From 77009ab2769b162802a953b1536ac3ddf16f6933 Mon Sep 17 00:00:00 2001
From: Damian Osipiuk <osipiukd+git@gmail.com>
Date: Wed, 25 Oct 2023 15:23:13 +0200
Subject: [PATCH 04/45] chore: fix v4 publish script

---
 .github/workflows/ci.yml | 2 +-
 scripts/publish.ts       | 9 ++++-----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 861ca42229..a0b22e8ddd 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -24,7 +24,7 @@ env:
 
 jobs:
   test-and-publish:
-    if: github.repository == 'TanStack/query' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/alpha' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/v4')
+    if: github.repository == 'TanStack/query'
     name: 'Test & Publish'
     runs-on: ubuntu-latest
     steps:
diff --git a/scripts/publish.ts b/scripts/publish.ts
index 0184105d7c..a41c722b29 100644
--- a/scripts/publish.ts
+++ b/scripts/publish.ts
@@ -371,15 +371,14 @@ async function run() {
   }
 
   console.info()
-  console.info(`Publishing all packages to npm with tag "${npmTag}"`)
+  console.info(`Publishing all packages to npm`)
 
   // Publish each package
   changedPackages.forEach((pkg) => {
     const packageDir = path.join(rootDir, 'packages', pkg.packageDir)
-    const cmd = `cd ${packageDir} && pnpm publish --tag ${npmTag} --access=public --no-git-checks`
-    console.info(
-      `  Publishing ${pkg.name}@${version} to npm with tag "${npmTag}"...`,
-    )
+    const tagParam = branchConfig.previousVersion ? `--tag ${npmTag}` : ''
+    const cmd = `cd ${packageDir} && pnpm publish ${tagParam} --access=public --no-git-checks`
+    console.info(`  Publishing ${pkg.name}@${version} to npm "${tagParam}"...`)
     execSync(cmd, {
       stdio: [process.stdin, process.stdout, process.stderr],
     })

From 829807007fdc71d21117a72b66304ff676af15b0 Mon Sep 17 00:00:00 2001
From: Damian Osipiuk <osipiukd+git@gmail.com>
Date: Wed, 25 Oct 2023 22:14:44 +0200
Subject: [PATCH 05/45] chore: fix npm tag assignment

---
 scripts/publish.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/publish.ts b/scripts/publish.ts
index a41c722b29..6ad22f170c 100644
--- a/scripts/publish.ts
+++ b/scripts/publish.ts
@@ -376,7 +376,7 @@ async function run() {
   // Publish each package
   changedPackages.forEach((pkg) => {
     const packageDir = path.join(rootDir, 'packages', pkg.packageDir)
-    const tagParam = branchConfig.previousVersion ? `--tag ${npmTag}` : ''
+    const tagParam = branchConfig.previousVersion ? `` : `--tag ${npmTag}`
     const cmd = `cd ${packageDir} && pnpm publish ${tagParam} --access=public --no-git-checks`
     console.info(`  Publishing ${pkg.name}@${version} to npm "${tagParam}"...`)
     execSync(cmd, {

From 39afe4a727a10edf8ce3ca07b7bf80cf89e0ea7c Mon Sep 17 00:00:00 2001
From: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Date: Wed, 25 Oct 2023 20:17:22 +0000
Subject: [PATCH 06/45] release: v4.37.1

---
 packages/vue-query/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json
index 2afdc69612..695d5f7d91 100644
--- a/packages/vue-query/package.json
+++ b/packages/vue-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/vue-query",
-  "version": "4.37.0",
+  "version": "4.37.1",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
   "author": "Damian Osipiuk",
   "license": "MIT",

From 8d4d4fd849d11f144a6f160d3bc3ab9149846f66 Mon Sep 17 00:00:00 2001
From: Jonghyeon Ko <manudeli.ko@gmail.com>
Date: Sun, 5 Nov 2023 23:54:05 +0900
Subject: [PATCH 07/45] docs(suspensive-react-query): update link (#6183)

---
 docs/react/community/suspensive-react-query.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/react/community/suspensive-react-query.md b/docs/react/community/suspensive-react-query.md
index 4d2ccbc9be..3c20ee8b48 100644
--- a/docs/react/community/suspensive-react-query.md
+++ b/docs/react/community/suspensive-react-query.md
@@ -5,7 +5,7 @@ title: Suspensive React Query
 
 Typesafe useQuery, useQueries, useInfiniteQuery with default suspense option.
 
-Use @suspensive/react-query, delegate loading and error handling to the outside of the component with [useSuspenseQuery](https://suspensive.org/docs/react-query/src/useSuspenseQuery.i18n), [useSuspenseQueries](https://suspensive.org/docs/react-query/src/useSuspenseQueries.i18n) and [useSuspenseInfiniteQuery](https://suspensive.org/docs/react-query/src/useSuspenseInfiniteQuery.i18n), and focus on success inside the component.
+Use @suspensive/react-query, delegate loading and error handling to the outside of the component with [useSuspenseQuery](https://suspensive.org/docs/react-query/useSuspenseQuery), [useSuspenseQueries](https://suspensive.org/docs/react-query/useSuspenseQueries) and [useSuspenseInfiniteQuery](https://suspensive.org/docs/react-query/useSuspenseInfiniteQuery), and focus on success inside the component.
 
 You don't even need to use the isSuccess flag.
 
@@ -44,7 +44,7 @@ const Example = () => {
 ```
 
 Typically query.data will be `TData | undefined` like this code example.
-But actual useQuery's return type:query.data will be always fulfilled because of [Suspense](https://suspensive.org/docs/react/src/Suspense.i18n) and [ErrorBoundary](https://suspensive.org/docs/react/src/ErrorBoundary.i18n) as parent of this component.
+But actual useQuery's return type:query.data will be always fulfilled because of [Suspense](https://suspensive.org/docs/react/Suspense) and [ErrorBoundary](https://suspensive.org/docs/react/ErrorBoundary) as parent of this component.
 
 This is why @suspensive/react-query provide **useSuspenseQuery**
 
@@ -74,7 +74,7 @@ Now, we can concentrate component as any fetching will be always success in comp
 
 ### useSuspenseQuery is Official API now! (from v5)
 
-@suspensive/react-query provides not only [useSuspenseQuery](https://suspensive.org/docs/react-query/src/useSuspenseQuery.i18n), also [useSuspenseQueries](https://suspensive.org/docs/react-query/src/useSuspenseQueries.i18n), [useSuspenseInfiniteQuery](https://suspensive.org/docs/react-query/src/useSuspenseInfiniteQuery.i18n). From @tanstack/react-query v5 provides [official public hook apis for suspense](https://tanstack.com/query/v5/docs/react/guides/suspense) like @suspensive/react-query's hooks. If want to use them early in v4, use this @suspensive/react-query first.
+@suspensive/react-query provides not only [useSuspenseQuery](https://suspensive.org/docs/react-query/useSuspenseQuery), also [useSuspenseQueries](https://suspensive.org/docs/react-query/useSuspenseQueries), [useSuspenseInfiniteQuery](https://suspensive.org/docs/react-query/useSuspenseInfiniteQuery). From @tanstack/react-query v5 provides [official public hook apis for suspense](https://tanstack.com/query/v5/docs/react/guides/suspense) like @suspensive/react-query's hooks. If want to use them early in v4, use this @suspensive/react-query first.
 
 Check the complete documentation on [Suspensive Official Docs Site](https://suspensive.org/) and also welcome Pull Request on [Suspensive GitHub](https://github.com/suspensive/react)
 

From 0c097df60706116ce42d2d567d257a27a4ba6057 Mon Sep 17 00:00:00 2001
From: Mihai Crisan <61682879+crisanmm@users.noreply.github.com>
Date: Tue, 7 Nov 2023 21:30:15 +0200
Subject: [PATCH 08/45] =?UTF-8?q?docs(QueryClient.md):=20typo=20`immuatabl?=
 =?UTF-8?q?e`=20=E2=86=92=20`immutable`=20(#6328)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 docs/react/reference/QueryClient.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/react/reference/QueryClient.md b/docs/react/reference/QueryClient.md
index ffdf967e8d..14d501437b 100644
--- a/docs/react/reference/QueryClient.md
+++ b/docs/react/reference/QueryClient.md
@@ -256,7 +256,7 @@ If the updater function returns `undefined`, the query data will not be updated.
 
 **Immutability**
 
-Updates via `setQueryData` must be performed in an _immuatable_ way. **DO NOT** attempt to write directly to the cache by mutating `oldData` or data that you retrieved via `getQueryData` in place.
+Updates via `setQueryData` must be performed in an _immutable_ way. **DO NOT** attempt to write directly to the cache by mutating `oldData` or data that you retrieved via `getQueryData` in place.
 
 ## `queryClient.getQueryState`
 

From 377a7b19bda9a9e2fb842c8b6585bebd3b18d686 Mon Sep 17 00:00:00 2001
From: Shahzeb K <1383831+shahzeb1@users.noreply.github.com>
Date: Fri, 24 Nov 2023 00:43:49 -0800
Subject: [PATCH 09/45] docs(ssr): Fix `prefetchQuery()` function calls (#6428)

This is the correct signature for [prefetchQuery](https://tanstack.com/query/v4/docs/react/reference/QueryClient#queryclientprefetchquery):

```js
await queryClient.prefetchQuery({ queryKey, queryFn })
```

I noticed the docs were using a slightly stale signature.

^(Thank you for building an amazing library.)
---
 docs/react/guides/ssr.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/react/guides/ssr.md b/docs/react/guides/ssr.md
index 6e0419bd91..b9304a1d16 100644
--- a/docs/react/guides/ssr.md
+++ b/docs/react/guides/ssr.md
@@ -93,7 +93,7 @@ import { dehydrate, QueryClient, useQuery } from '@tanstack/react-query'
 export async function getStaticProps() {
   const queryClient = new QueryClient()
 
-  await queryClient.prefetchQuery(['posts'], getPosts)
+  await queryClient.prefetchQuery({ queryKey: ['posts'], queryFn: getPosts })
 
   return {
     props: {
@@ -214,7 +214,7 @@ import { dehydrate, QueryClient, useQuery } from '@tanstack/react-query'
 export async function loader() {
   const queryClient = new QueryClient()
 
-  await queryClient.prefetchQuery(['posts'], getPosts)
+  await queryClient.prefetchQuery({ queryKey: ['posts'], queryFn: getPosts })
 
   return json({ dehydratedState: dehydrate(queryClient) })
 }
@@ -264,7 +264,7 @@ import {
 
 async function handleRequest(req, res) {
   const queryClient = new QueryClient()
-  await queryClient.prefetchQuery(['key'], fn)
+  await queryClient.prefetchQuery({ queryKey: ['key'], queryFn: fn })
   const dehydratedState = dehydrate(queryClient)
 
   const html = ReactDOM.renderToString(
@@ -426,7 +426,7 @@ import getQueryClient from './getQueryClient'
 
 export default async function HydratedPosts() {
   const queryClient = getQueryClient()
-  await queryClient.prefetchQuery(['posts'], getPosts)
+  await queryClient.prefetchQuery({ queryKey: ['posts'], queryFn: getPosts })
   const dehydratedState = dehydrate(queryClient)
 
   return (

From 4a2c3058712e719e2073cfdeb78d20b218166389 Mon Sep 17 00:00:00 2001
From: Jonghyeon Ko <manudeli.ko@gmail.com>
Date: Tue, 12 Dec 2023 17:46:50 +0900
Subject: [PATCH 10/45] docs: update spelling consistency (#6524)

---
 .browserslistrc            | 2 +-
 docs/react/installation.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.browserslistrc b/.browserslistrc
index 01b924286a..3cd64bf22e 100644
--- a/.browserslistrc
+++ b/.browserslistrc
@@ -4,4 +4,4 @@ Firefox >= 78
 Edge >= 79
 Safari >= 12.0
 iOS >= 12.0
-opera >= 53
+Opera >= 53
diff --git a/docs/react/installation.md b/docs/react/installation.md
index 0b5c6e2b48..f25f1a9bda 100644
--- a/docs/react/installation.md
+++ b/docs/react/installation.md
@@ -43,7 +43,7 @@ Firefox >= 78
 Edge >= 79
 Safari >= 12.1
 iOS >= 12.2
-opera >= 53
+Opera >= 53
 ```
 
 > Depending on your environment, you might need to add polyfills. If you want to support older browsers, you need to transpile the library from `node_modules` yourselves.

From a3e569d95d41021ef71ecc9489166f99a40b4e49 Mon Sep 17 00:00:00 2001
From: Shahzar Mazhar <mohdshahzar.1996@gmail.com>
Date: Sat, 6 Jan 2024 00:12:28 +0530
Subject: [PATCH 11/45] docs: syntax error in object passing in function call
 (#6649)

---
 docs/react/plugins/persistQueryClient.md | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/docs/react/plugins/persistQueryClient.md b/docs/react/plugins/persistQueryClient.md
index 0e1d70c8c3..2801703a5b 100644
--- a/docs/react/plugins/persistQueryClient.md
+++ b/docs/react/plugins/persistQueryClient.md
@@ -65,8 +65,8 @@ You can use this to explicitly persist the cache at the moment(s) you choose.
 persistQueryClientSave({
   queryClient,
   persister,
-  buster = '',
-  dehydrateOptions = undefined,
+  buster: '',
+  dehydrateOptions: undefined,
 })
 ```
 
@@ -81,8 +81,8 @@ Runs `persistQueryClientSave` whenever the cache changes for your `queryClient`.
 persistQueryClientSubscribe({
   queryClient,
   persister,
-  buster = '',
-  dehydrateOptions = undefined,
+  buster: '',
+  dehydrateOptions: undefined,
 })
 ```
 
@@ -97,9 +97,9 @@ You can use this to restore the cache at moment(s) you choose.
 persistQueryClientRestore({
   queryClient,
   persister,
-  maxAge = 1000 * 60 * 60 * 24, // 24 hours
-  buster = '',
-  hydrateOptions = undefined,
+  maxAge: 1000 * 60 * 60 * 24, // 24 hours
+  buster: '',
+  hydrateOptions: undefined,
 })
 ```
 
@@ -116,10 +116,10 @@ This functionality is preserved from version 3.x.
 persistQueryClient({
   queryClient,
   persister,
-  maxAge = 1000 * 60 * 60 * 24, // 24 hours
-  buster = '',
-  hydrateOptions = undefined,
-  dehydrateOptions = undefined,
+  maxAge: 1000 * 60 * 60 * 24, // 24 hours
+  buster: '',
+  hydrateOptions: undefined,
+  dehydrateOptions: undefined,
 })
 ```
 

From 84e8ae57cf546d538cd5eb47113174c9e5fd7c77 Mon Sep 17 00:00:00 2001
From: Minjee Son <104430030+iammminzzy@users.noreply.github.com>
Date: Fri, 5 Jan 2024 20:56:38 +0000
Subject: [PATCH 12/45] feat(eslint-plugin): add `no-deprecated-options` rule
 (#6622)

* feat(eslint-plugin): add `no-callbacks` rule

* rename rule and add docs

* handle isDataEqual and improve rule

* rename a reference

---------

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>
---
 docs/config.json                              |   4 +
 docs/react/eslint/eslint-plugin-query.md      |   1 +
 docs/react/eslint/no-deprecated-options.md    |  65 +++++
 .../src/configs/index.test.ts                 |   1 +
 .../eslint-plugin-query/src/rules/index.ts    |   2 +
 .../no-deprecated-options.rule.ts             | 166 +++++++++++
 .../no-deprecated-options.test.ts             | 263 ++++++++++++++++++
 7 files changed, 502 insertions(+)
 create mode 100644 docs/react/eslint/no-deprecated-options.md
 create mode 100644 packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.rule.ts
 create mode 100644 packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.test.ts

diff --git a/docs/config.json b/docs/config.json
index bde7e2d5df..b87d7987ef 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -303,6 +303,10 @@
               "label": "Exhaustive Deps",
               "to": "react/eslint/exhaustive-deps"
             },
+            {
+              "label": "No deprecated options",
+              "to": "react/eslint/no-deprecated-options"
+            },
             {
               "label": "Prefer object syntax",
               "to": "react/eslint/prefer-query-object-syntax"
diff --git a/docs/react/eslint/eslint-plugin-query.md b/docs/react/eslint/eslint-plugin-query.md
index e470a59f19..e7132497b1 100644
--- a/docs/react/eslint/eslint-plugin-query.md
+++ b/docs/react/eslint/eslint-plugin-query.md
@@ -33,6 +33,7 @@ Then configure the rules you want to use under the rules section:
 {
   "rules": {
     "@tanstack/query/exhaustive-deps": "error",
+    "@tanstack/query/no-deprecated-options": "error",
     "@tanstack/query/prefer-query-object-syntax": "error",
     "@tanstack/query/stable-query-client": "error"
   }
diff --git a/docs/react/eslint/no-deprecated-options.md b/docs/react/eslint/no-deprecated-options.md
new file mode 100644
index 0000000000..eb5501ccb4
--- /dev/null
+++ b/docs/react/eslint/no-deprecated-options.md
@@ -0,0 +1,65 @@
+---
+id: no-deprecated-options
+title: Disallowing deprecated options
+---
+
+This rule warns about deprecated [`useQuery`](https://tanstack.com/query/v4/docs/reference/useQuery) options which will be removed in [TanStack Query v5](https://tanstack.com/query/v5/docs/react/guides/migrating-to-v5).
+
+## Rule Details
+
+Examples of **incorrect** code for this rule:
+
+```tsx
+/* eslint "@tanstack/query/no-deprecated-options": "error" */
+
+useQuery({
+  queryKey: ['todo', todoId],
+  queryFn: () => api.getTodo(todoId),
+  onSuccess: () => {},
+})
+
+useQuery({
+  queryKey: ['todo', todoId],
+  queryFn: () => api.getTodo(todoId),
+  onError: () => {},
+})
+
+useQuery({
+  queryKey: ['todo', todoId],
+  queryFn: () => api.getTodo(todoId),
+  onSettled: () => {},
+})
+
+useQuery({
+  queryKey: ['todo', todoId],
+  queryFn: () => api.getTodo(todoId),
+  isDataEqual: (oldData, newData) => customCheck(oldData, newData),
+})
+```
+
+Examples of **correct** code for this rule:
+
+```tsx
+useQuery({
+  queryKey: ['todo', todoId],
+  queryFn: () => api.getTodo(todoId),
+})
+
+useQuery({
+  queryKey: ['todo', todoId],
+  queryFn: () => api.getTodo(todoId),
+  structuralSharing: (oldData, newData) =>
+    customCheck(oldData, newData)
+      ? oldData
+      : replaceEqualDeep(oldData, newData),
+})
+```
+
+## When Not To Use It
+
+If you don't plan to upgrade to TanStack Query v5, then you will not need this rule.
+
+## Attributes
+
+- [x] ✅ Recommended
+- [ ] 🔧 Fixable
diff --git a/packages/eslint-plugin-query/src/configs/index.test.ts b/packages/eslint-plugin-query/src/configs/index.test.ts
index 6bab6df741..4cd8c5312b 100644
--- a/packages/eslint-plugin-query/src/configs/index.test.ts
+++ b/packages/eslint-plugin-query/src/configs/index.test.ts
@@ -10,6 +10,7 @@ describe('configs', () => {
           ],
           "rules": {
             "@tanstack/query/exhaustive-deps": "error",
+            "@tanstack/query/no-deprecated-options": "error",
             "@tanstack/query/prefer-query-object-syntax": "error",
             "@tanstack/query/stable-query-client": "error",
           },
diff --git a/packages/eslint-plugin-query/src/rules/index.ts b/packages/eslint-plugin-query/src/rules/index.ts
index 392479bf6b..ae01c20916 100644
--- a/packages/eslint-plugin-query/src/rules/index.ts
+++ b/packages/eslint-plugin-query/src/rules/index.ts
@@ -1,9 +1,11 @@
 import * as exhaustiveDeps from './exhaustive-deps/exhaustive-deps.rule'
+import * as noDeprecatedOptions from './no-deprecated-options/no-deprecated-options.rule'
 import * as preferObjectSyntax from './prefer-query-object-syntax/prefer-query-object-syntax'
 import * as stableQueryClient from './stable-query-client/stable-query-client.rule'
 
 export const rules = {
   [exhaustiveDeps.name]: exhaustiveDeps.rule,
+  [noDeprecatedOptions.name]: noDeprecatedOptions.rule,
   [preferObjectSyntax.name]: preferObjectSyntax.rule,
   [stableQueryClient.name]: stableQueryClient.rule,
 }
diff --git a/packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.rule.ts b/packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.rule.ts
new file mode 100644
index 0000000000..97ec1e0731
--- /dev/null
+++ b/packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.rule.ts
@@ -0,0 +1,166 @@
+import { AST_NODE_TYPES } from '@typescript-eslint/utils'
+import { createRule } from '../../utils/create-rule'
+import { ASTUtils } from '../../utils/ast-utils'
+import type { TSESLint, TSESTree } from '@typescript-eslint/utils'
+
+const ON_SUCCESS = 'onSuccess'
+const ON_ERROR = 'onError'
+const ON_SETTLED = 'onSettled'
+const IS_DATA_EQUAL = 'isDataEqual'
+
+const DEPRECATED_OPTIONS = [
+  ON_SUCCESS,
+  ON_ERROR,
+  ON_SETTLED,
+  IS_DATA_EQUAL,
+] as const
+
+const QUERY_CALLS = ['useQuery' as const]
+
+const messages = {
+  noDeprecatedOptions: `Option \`{{option}}\` will be removed in the next major version`,
+}
+
+type MessageKey = keyof typeof messages
+
+export const name = 'no-deprecated-options'
+
+export const rule: TSESLint.RuleModule<MessageKey, readonly unknown[]> =
+  createRule({
+    name,
+    meta: {
+      type: 'problem',
+      docs: {
+        description: 'Disallows deprecated options',
+        recommended: 'error',
+      },
+      messages: messages,
+      schema: [],
+    },
+    defaultOptions: [],
+
+    create(context, _, helpers) {
+      return {
+        CallExpression(node) {
+          if (
+            !ASTUtils.isIdentifierWithOneOfNames(node.callee, QUERY_CALLS) ||
+            !helpers.isTanstackQueryImport(node.callee)
+          ) {
+            return
+          }
+
+          const firstArgument = node.arguments[0]
+
+          if (!firstArgument) {
+            return
+          }
+
+          if (
+            node.arguments.length === 1 &&
+            firstArgument.type === AST_NODE_TYPES.CallExpression
+          ) {
+            const referencedCallExpression =
+              ASTUtils.getReferencedExpressionByIdentifier({
+                context,
+                node: firstArgument.callee,
+              })
+
+            if (
+              referencedCallExpression === null ||
+              !ASTUtils.isNodeOfOneOf(referencedCallExpression, [
+                AST_NODE_TYPES.ArrowFunctionExpression,
+                AST_NODE_TYPES.FunctionDeclaration,
+                AST_NODE_TYPES.FunctionExpression,
+              ])
+            ) {
+              return
+            }
+
+            if (
+              referencedCallExpression.type ===
+                AST_NODE_TYPES.ArrowFunctionExpression &&
+              referencedCallExpression.expression
+            ) {
+              return runCheckOnNode({
+                context: context,
+                callNode: node,
+                expression: referencedCallExpression.body,
+                messageId: 'noDeprecatedOptions',
+              })
+            }
+
+            const returnStmts = ASTUtils.getNestedReturnStatements(
+              referencedCallExpression,
+            )
+
+            for (const stmt of returnStmts) {
+              if (stmt.argument === null) {
+                return
+              }
+
+              runCheckOnNode({
+                context: context,
+                callNode: node,
+                expression: stmt.argument,
+                messageId: 'noDeprecatedOptions',
+              })
+            }
+
+            return
+          }
+
+          if (firstArgument.type === AST_NODE_TYPES.Identifier) {
+            const referencedNode = ASTUtils.getReferencedExpressionByIdentifier(
+              {
+                context,
+                node: firstArgument,
+              },
+            )
+
+            if (referencedNode?.type === AST_NODE_TYPES.ObjectExpression) {
+              return runCheckOnNode({
+                context: context,
+                callNode: node,
+                expression: referencedNode,
+                messageId: 'noDeprecatedOptions',
+              })
+            }
+          }
+
+          runCheckOnNode({
+            context: context,
+            callNode: node,
+            expression: firstArgument,
+            messageId: 'noDeprecatedOptions',
+          })
+        },
+      }
+    },
+  })
+
+function runCheckOnNode(params: {
+  context: Readonly<TSESLint.RuleContext<MessageKey, readonly unknown[]>>
+  callNode: TSESTree.CallExpression
+  expression: TSESTree.Node
+  messageId: MessageKey
+}) {
+  const { context, expression, messageId, callNode } = params
+
+  const nodes = new Set([expression, ...callNode.arguments])
+
+  for (const node of nodes) {
+    for (const option of DEPRECATED_OPTIONS) {
+      if (node.type !== AST_NODE_TYPES.ObjectExpression) {
+        continue
+      }
+
+      const property = ASTUtils.findPropertyWithIdentifierKey(
+        node.properties,
+        option,
+      )
+      if (property) {
+        context.report({ node: property, messageId, data: { option } })
+      }
+    }
+  }
+}
diff --git a/packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.test.ts b/packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.test.ts
new file mode 100644
index 0000000000..249a3ad449
--- /dev/null
+++ b/packages/eslint-plugin-query/src/rules/no-deprecated-options/no-deprecated-options.test.ts
@@ -0,0 +1,263 @@
+import { ESLintUtils } from '@typescript-eslint/utils'
+import { normalizeIndent } from '../../utils/test-utils'
+import { name, rule } from './no-deprecated-options.rule'
+
+const ruleTester = new ESLintUtils.RuleTester({
+  parser: '@typescript-eslint/parser',
+  settings: {},
+})
+
+ruleTester.run(name, rule, {
+  valid: [
+    {
+      code: normalizeIndent`
+        useQuery()
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery();
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery({ queryKey, queryFn, enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        const result = useQuery({ queryKey, queryFn, enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { createQuery } from "@tanstack/solid-query";
+        const result = createQuery({ queryKey, queryFn, enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "somewhere-else";
+        useQuery(queryKey, queryFn, { enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        const getPosts = async () => Promise.resolve([]);
+        const postsQuery = { queryKey: ["posts"], queryFn: () => getPosts() };
+        const usePosts = () => useQuery(postsQuery);
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        const getQuery = () => ({ queryKey: ['foo'], queryFn: () => Promise.resolve(5) })
+        useQuery(getQuery())
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        const getQuery = () => {
+          return { queryKey: ['foo'], queryFn: () => Promise.resolve(5) };
+        }
+        useQuery(getQuery())
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        const getQuery = () => {
+          const queryKey = () => ['foo'];
+          const queryFn = () => {
+            return Promise.resolve(5);
+          }
+          return { queryKey, queryFn };
+        }
+        useQuery(getQuery())
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        const getQuery = () => {
+          try {
+            return { queryKey: ['foo'], queryFn: () => Promise.resolve(5) };  
+          } finally {
+            return { queryKey: ['foo'], queryFn: () => Promise.resolve(5) };
+          }
+        }
+        useQuery(getQuery())
+      `,
+    },
+    {
+      code: normalizeIndent`
+        useMutation()
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useMutation } from "@tanstack/react-query";
+        useMutation();
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useMutation } from "@tanstack/react-query";
+        useMutation({ mutationKey, mutationFn, enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useMutation } from "@tanstack/react-query";
+        const result = useMutation({ mutationKey, mutationFn, enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { createMutation } from "@tanstack/solid-query";
+        const result = createMutation({ mutationKey, mutationFn, enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useMutation } from "somewhere-else";
+        useMutation(mutationKey, mutationFn, { enabled });
+      `,
+    },
+    {
+      code: normalizeIndent`
+        import { useMutation } from "@tanstack/react-query";
+        const getPosts = async () => Promise.resolve([]);
+        const postsQuery = { mutationKey: ["posts"], mutationFn: () => getPosts() };
+        const usePosts = () => useMutation(postsQuery);
+      `,
+    },
+  ],
+
+  invalid: [
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery({ queryKey, queryFn, enabled, onSuccess: () => {} });
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery({ queryKey, queryFn, enabled, onError: () => {} });
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery({ queryKey, queryFn, enabled, onSettled: () => {} });
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery({ queryKey, queryFn, enabled, isDataEqual: () => {} });
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery(queryKey, queryFn, { enabled, onSuccess: () => {} });
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        const getQuery = () => ({ queryKey: ['foo'], onSuccess: () => {} })
+        useQuery(getQuery())
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery(['data'], () => fetchData(), { enabled: false, onSuccess: () => {} });
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+        import { useQuery } from "@tanstack/react-query";
+        useQuery(queryKey, { queryFn, enabled, onSuccess: () => {} });
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+
+    {
+      code: normalizeIndent`
+      import { useQuery } from "@tanstack/react-query";
+      const getQuery = (x) => {
+        try {
+          return { queryKey: "foo", queryFn: () => Promise.resolve(1), onSuccess: () => {} };
+        } catch (e) {
+          if (x > 1) {
+            return { queryKey: "bar", queryFn: () => Promise.resolve(2) };
+          } else {
+            return null;
+          }
+        }
+      };
+      useQuery(getQuery(x));
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+      import { useQuery } from "@tanstack/react-query";
+      const getQuery = (x) => {
+        switch (x) {
+          case 1:
+            return { queryKey: "foo", queryFn: () => Promise.resolve(1), onSuccess: () => {} };
+          default:
+            return null;
+        }
+      };
+      useQuery(getQuery(x));
+      `,
+      errors: [{ messageId: 'noDeprecatedOptions' }],
+    },
+    {
+      code: normalizeIndent`
+      import { useQuery } from "@tanstack/react-query";
+      const getQuery = (x, y) => {
+        if (x) {
+          return { queryKey: "foo", queryFn: () => Promise.resolve(1), onSuccess: () => {}, onError: () => {} };
+        } else {
+          if (y) {
+            return { queryKey: "bar", queryFn: () => Promise.resolve(2) };
+          } else {
+            return () => Promise.resolve(3);
+          }
+        }
+      };
+      useQuery(getQuery(x));
+      `,
+      errors: [
+        {
+          messageId: 'noDeprecatedOptions',
+          data: { option: 'onSuccess' },
+        },
+        {
+          messageId: 'noDeprecatedOptions',
+          data: { option: 'onError' },
+        },
+      ],
+    },
+  ],
+})

From bdc746abdbf40df809648b1501240391a06e833d Mon Sep 17 00:00:00 2001
From: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Date: Fri, 5 Jan 2024 20:58:25 +0000
Subject: [PATCH 13/45] release: v4.38.0

---
 packages/eslint-plugin-query/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json
index 89f0da5f2f..808b432a35 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": "4.36.1",
+  "version": "4.38.0",
   "description": "ESLint plugin for TanStack Query",
   "author": "Eliya Cohen",
   "license": "MIT",

From ce313afdfc57dae3bb14de338747d39e9cf8e358 Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Sun, 7 Jan 2024 08:17:42 +1100
Subject: [PATCH 14/45] chore: Fix incorrect npm tag for previous version
 release (v4) (#6659)

---
 scripts/publish.ts | 30 ++++++++++++------------------
 1 file changed, 12 insertions(+), 18 deletions(-)

diff --git a/scripts/publish.ts b/scripts/publish.ts
index 6ad22f170c..bdd3273503 100644
--- a/scripts/publish.ts
+++ b/scripts/publish.ts
@@ -18,16 +18,16 @@ import type { PackageJson } from 'type-fest'
 const releaseCommitMsg = (version: string) => `release: v${version}`
 
 async function run() {
-  const branchName: string =
-    process.env.BRANCH ??
-    // (process.env.PR_NUMBER ? `pr-${process.env.PR_NUMBER}` : currentGitBranch())
-    currentGitBranch()
-  const branchConfig: BranchConfig | undefined = branchConfigs[branchName]
-
+  const branchName: string = process.env.BRANCH ?? currentGitBranch()
   const isMainBranch = branchName === 'main'
-  const isPreviousRelease = branchConfig?.previousVersion
   const npmTag = isMainBranch ? 'latest' : branchName
 
+  const branchConfig: BranchConfig | undefined = branchConfigs[branchName]
+
+  if (!branchConfig) {
+    throw new Error(`No publish config found for branch: ${branchName}`)
+  }
+
   // Get tags
   let tags: string[] = execSync('git tag').toString().split('\n')
 
@@ -36,7 +36,7 @@ async function run() {
     .filter((tag) => semver.valid(tag))
     .filter((tag) => {
       // If this is an older release, filter to only include that version
-      if (isPreviousRelease) {
+      if (branchConfig.previousVersion) {
         return tag.startsWith(branchName)
       }
       if (semver.prerelease(tag) === null) {
@@ -292,12 +292,6 @@ async function run() {
     recommendedReleaseLevel = 0
   }
 
-  if (!branchConfig) {
-    console.log(`No publish config found for branch: ${branchName}`)
-    console.log('Exiting...')
-    process.exit(0)
-  }
-
   const releaseType = branchConfig.prerelease
     ? 'prerelease'
     : ({ 0: 'patch', 1: 'minor', 2: 'major' } as const)[recommendedReleaseLevel]
@@ -371,14 +365,14 @@ async function run() {
   }
 
   console.info()
-  console.info(`Publishing all packages to npm`)
+  console.info(`Publishing all packages to npm with tag "${npmTag}"`)
 
   // Publish each package
   changedPackages.forEach((pkg) => {
     const packageDir = path.join(rootDir, 'packages', pkg.packageDir)
-    const tagParam = branchConfig.previousVersion ? `` : `--tag ${npmTag}`
-    const cmd = `cd ${packageDir} && pnpm publish ${tagParam} --access=public --no-git-checks`
-    console.info(`  Publishing ${pkg.name}@${version} to npm "${tagParam}"...`)
+
+    const cmd = `cd ${packageDir} && pnpm publish --tag ${npmTag} --access=public --no-git-checks`
+    console.info(`  Publishing ${pkg.name}@${version} to npm...`)
     execSync(cmd, {
       stdio: [process.stdin, process.stdout, process.stderr],
     })

From 84bfc661c9732169edc4ec8fc4eb832dd61edb6b Mon Sep 17 00:00:00 2001
From: clay <iamclaytonray@gmail.com>
Date: Sun, 21 Jan 2024 09:44:40 -0500
Subject: [PATCH 15/45] docs: update react-native.md (#6744)

---
 docs/react/react-native.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/react/react-native.md b/docs/react/react-native.md
index c325353c65..8d3496af80 100644
--- a/docs/react/react-native.md
+++ b/docs/react/react-native.md
@@ -134,6 +134,6 @@ function MyComponent() {
     notifyOnChangeProps,
   });
 
-  return <div>DataUpdatedAt: {dataUpdatedAt}</div>;
+  return <Text>DataUpdatedAt: {dataUpdatedAt}</Text>;
 };
 ```

From e62e60fb47985a29649d4bc4d4a3b5175a493e2b Mon Sep 17 00:00:00 2001
From: fuko <43729152+fulopkovacs@users.noreply.github.com>
Date: Sun, 21 Jan 2024 21:27:53 +0100
Subject: [PATCH 16/45] docs: Use the new config format (v4) (#6742)

---
 docs/config.json | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/docs/config.json b/docs/config.json
index b87d7987ef..e9c2c61114 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -4,7 +4,8 @@
     "apiKey": "93e0b83eb0b5af4549b6bf47f90af3f7",
     "indexName": "tanstack-query"
   },
-  "menu": [
+  "menu": [],
+  "frameworkMenus": [
     {
       "framework": "react",
       "menuItems": [

From 6cc4a678c996abffea7ec3f931b2c8fb1a0d3e83 Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Fri, 26 Jan 2024 07:57:29 +1100
Subject: [PATCH 17/45] docs: Re-organise for new docs layout (v4) (#6764)

---
 docs/config.json                              | 333 +++++++++---------
 .../react/adapters/react-query.md             |   0
 .../react/adapters/solid-query.md             |   0
 .../react/adapters/svelte-query.md            |   0
 .../react/adapters/vue-query.md               |   0
 .../react/community/angular-query.md          |   0
 .../batching-requests-using-bathshit.md       |   0
 .../community/liaoliao666-react-query-kit.md  |   0
 .../lukemorales-query-key-factory.md          |   0
 .../react/community/suspensive-react-query.md |   0
 .../react/community/tkdodos-blog.md           |   0
 docs/{ => framework}/react/comparison.md      |   0
 docs/{ => framework}/react/devtools.md        |   0
 .../react/eslint/eslint-plugin-query.md       |   0
 .../react/eslint/exhaustive-deps.md           |   0
 .../react/eslint/no-deprecated-options.md     |   0
 .../eslint/prefer-query-object-syntax.md      |   0
 .../react/eslint/stable-query-client.md       |   0
 docs/{ => framework}/react/graphql.md         |   0
 .../guides/background-fetching-indicators.md  |   0
 docs/{ => framework}/react/guides/caching.md  |   0
 .../react/guides/custom-logger.md             |   0
 .../react/guides/default-query-function.md    |   0
 .../react/guides/dependent-queries.md         |   0
 .../react/guides/disabling-queries.md         |   0
 .../guides/does-this-replace-client-state.md  |   0
 docs/{ => framework}/react/guides/filters.md  |   0
 .../react/guides/important-defaults.md        |   0
 .../react/guides/infinite-queries.md          |   0
 .../react/guides/initial-query-data.md        |   0
 .../guides/invalidations-from-mutations.md    |   0
 .../guides/migrating-to-react-query-3.md      |   0
 .../guides/migrating-to-react-query-4.md      |   0
 .../{ => framework}/react/guides/mutations.md |   0
 .../react/guides/network-mode.md              |   0
 .../react/guides/optimistic-updates.md        |   0
 .../react/guides/paginated-queries.md         |   0
 .../react/guides/parallel-queries.md          |   0
 .../react/guides/placeholder-query-data.md    |   0
 .../react/guides/prefetching.md               |   0
 docs/{ => framework}/react/guides/queries.md  |   0
 .../react/guides/query-cancellation.md        |   0
 .../react/guides/query-functions.md           |   0
 .../react/guides/query-invalidation.md        |   0
 .../react/guides/query-keys.md                |   0
 .../react/guides/query-retries.md             |   0
 .../react/guides/scroll-restoration.md        |   0
 docs/{ => framework}/react/guides/ssr.md      |   0
 docs/{ => framework}/react/guides/suspense.md |   0
 docs/{ => framework}/react/guides/testing.md  |   0
 .../guides/updates-from-mutation-responses.md |   0
 .../react/guides/window-focus-refetching.md   |   0
 docs/{ => framework}/react/installation.md    |   0
 docs/{ => framework}/react/overview.md        |   0
 .../react/plugins/broadcastQueryClient.md     |   0
 .../plugins/createAsyncStoragePersister.md    |   0
 .../plugins/createSyncStoragePersister.md     |   0
 .../react/plugins/persistQueryClient.md       |   0
 docs/{ => framework}/react/quick-start.md     |   0
 docs/{ => framework}/react/react-native.md    |   0
 .../react/reference/InfiniteQueryObserver.md  |   0
 .../react/reference/MutationCache.md          |   0
 .../react/reference/QueriesObserver.md        |   0
 .../react/reference/QueryCache.md             |   0
 .../react/reference/QueryClient.md            |   0
 .../react/reference/QueryClientProvider.md    |   0
 .../reference/QueryErrorResetBoundary.md      |   0
 .../react/reference/QueryObserver.md          |   0
 .../react/reference/focusManager.md           |   0
 .../react/reference/hydration.md              |   0
 .../react/reference/onlineManager.md          |   0
 .../react/reference/useInfiniteQuery.md       |   0
 .../react/reference/useIsFetching.md          |   0
 .../react/reference/useIsMutating.md          |   0
 .../react/reference/useMutation.md            |   0
 .../react/reference/useQueries.md             |   0
 .../react/reference/useQuery.md               |   0
 .../react/reference/useQueryClient.md         |   0
 .../reference/useQueryErrorResetBoundary.md   |   0
 docs/{ => framework}/react/typescript.md      |   0
 docs/{ => framework}/react/videos.md          |   0
 docs/{ => framework}/solid/overview.md        |   0
 docs/{ => framework}/svelte/installation.md   |   0
 docs/{ => framework}/svelte/overview.md       |   0
 docs/{ => framework}/svelte/reactivity.md     |   0
 docs/{ => framework}/svelte/ssr.md            |   0
 .../lukemorales-query-key-factory.md          |   0
 .../vue/community/tkdodos-blog.md             |   0
 docs/{ => framework}/vue/devtools.md          |   0
 docs/{ => framework}/vue/graphql.md           |   0
 .../guides/background-fetching-indicators.md  |   0
 docs/{ => framework}/vue/guides/caching.md    |   0
 .../vue/guides/custom-client.md               |   0
 .../vue/guides/custom-logger.md               |   0
 .../vue/guides/default-query-function.md      |   0
 .../vue/guides/dependent-queries.md           |   0
 .../vue/guides/disabling-queries.md           |   0
 .../guides/does-this-replace-client-state.md  |   0
 docs/{ => framework}/vue/guides/filters.md    |   0
 .../vue/guides/important-defaults.md          |   0
 .../vue/guides/infinite-queries.md            |   0
 .../vue/guides/initial-query-data.md          |   0
 .../guides/invalidations-from-mutations.md    |   0
 docs/{ => framework}/vue/guides/mutations.md  |   0
 .../vue/guides/network-mode.md                |   0
 .../vue/guides/optimistic-updates.md          |   0
 .../vue/guides/paginated-queries.md           |   0
 .../vue/guides/parallel-queries.md            |   0
 .../vue/guides/placeholder-query-data.md      |   0
 .../{ => framework}/vue/guides/prefetching.md |   0
 docs/{ => framework}/vue/guides/queries.md    |   0
 .../vue/guides/query-cancellation.md          |   0
 .../vue/guides/query-functions.md             |   0
 .../vue/guides/query-invalidation.md          |   0
 docs/{ => framework}/vue/guides/query-keys.md |   0
 .../vue/guides/query-retries.md               |   0
 .../vue/guides/scroll-restoration.md          |   0
 docs/{ => framework}/vue/guides/ssr.md        |   0
 docs/{ => framework}/vue/guides/suspense.md   |   0
 docs/{ => framework}/vue/guides/testing.md    |   0
 .../guides/updates-from-mutation-responses.md |   0
 .../vue/guides/window-focus-refetching.md     |   0
 docs/{ => framework}/vue/installation.md      |   0
 docs/{ => framework}/vue/overview.md          |   0
 docs/{ => framework}/vue/quick-start.md       |   0
 .../vue/reference/InfiniteQueryObserver.md    |   0
 .../vue/reference/MutationCache.md            |   0
 .../vue/reference/QueriesObserver.md          |   0
 .../vue/reference/QueryCache.md               |   0
 .../vue/reference/QueryClient.md              |   0
 .../vue/reference/QueryObserver.md            |   0
 .../vue/reference/focusManager.md             |   0
 .../vue/reference/hydration.md                |   0
 .../vue/reference/onlineManager.md            |   0
 .../vue/reference/useInfiniteQuery.md         |   0
 .../vue/reference/useIsFetching.md            |   0
 .../vue/reference/useIsMutating.md            |   0
 .../vue/reference/useMutation.md              |   0
 .../vue/reference/useQueries.md               |   0
 .../{ => framework}/vue/reference/useQuery.md |   0
 .../vue/reference/useQueryClient.md           |   0
 docs/{ => framework}/vue/typescript.md        |   0
 142 files changed, 167 insertions(+), 166 deletions(-)
 rename docs/{ => framework}/react/adapters/react-query.md (100%)
 rename docs/{ => framework}/react/adapters/solid-query.md (100%)
 rename docs/{ => framework}/react/adapters/svelte-query.md (100%)
 rename docs/{ => framework}/react/adapters/vue-query.md (100%)
 rename docs/{ => framework}/react/community/angular-query.md (100%)
 rename docs/{ => framework}/react/community/batching-requests-using-bathshit.md (100%)
 rename docs/{ => framework}/react/community/liaoliao666-react-query-kit.md (100%)
 rename docs/{ => framework}/react/community/lukemorales-query-key-factory.md (100%)
 rename docs/{ => framework}/react/community/suspensive-react-query.md (100%)
 rename docs/{ => framework}/react/community/tkdodos-blog.md (100%)
 rename docs/{ => framework}/react/comparison.md (100%)
 rename docs/{ => framework}/react/devtools.md (100%)
 rename docs/{ => framework}/react/eslint/eslint-plugin-query.md (100%)
 rename docs/{ => framework}/react/eslint/exhaustive-deps.md (100%)
 rename docs/{ => framework}/react/eslint/no-deprecated-options.md (100%)
 rename docs/{ => framework}/react/eslint/prefer-query-object-syntax.md (100%)
 rename docs/{ => framework}/react/eslint/stable-query-client.md (100%)
 rename docs/{ => framework}/react/graphql.md (100%)
 rename docs/{ => framework}/react/guides/background-fetching-indicators.md (100%)
 rename docs/{ => framework}/react/guides/caching.md (100%)
 rename docs/{ => framework}/react/guides/custom-logger.md (100%)
 rename docs/{ => framework}/react/guides/default-query-function.md (100%)
 rename docs/{ => framework}/react/guides/dependent-queries.md (100%)
 rename docs/{ => framework}/react/guides/disabling-queries.md (100%)
 rename docs/{ => framework}/react/guides/does-this-replace-client-state.md (100%)
 rename docs/{ => framework}/react/guides/filters.md (100%)
 rename docs/{ => framework}/react/guides/important-defaults.md (100%)
 rename docs/{ => framework}/react/guides/infinite-queries.md (100%)
 rename docs/{ => framework}/react/guides/initial-query-data.md (100%)
 rename docs/{ => framework}/react/guides/invalidations-from-mutations.md (100%)
 rename docs/{ => framework}/react/guides/migrating-to-react-query-3.md (100%)
 rename docs/{ => framework}/react/guides/migrating-to-react-query-4.md (100%)
 rename docs/{ => framework}/react/guides/mutations.md (100%)
 rename docs/{ => framework}/react/guides/network-mode.md (100%)
 rename docs/{ => framework}/react/guides/optimistic-updates.md (100%)
 rename docs/{ => framework}/react/guides/paginated-queries.md (100%)
 rename docs/{ => framework}/react/guides/parallel-queries.md (100%)
 rename docs/{ => framework}/react/guides/placeholder-query-data.md (100%)
 rename docs/{ => framework}/react/guides/prefetching.md (100%)
 rename docs/{ => framework}/react/guides/queries.md (100%)
 rename docs/{ => framework}/react/guides/query-cancellation.md (100%)
 rename docs/{ => framework}/react/guides/query-functions.md (100%)
 rename docs/{ => framework}/react/guides/query-invalidation.md (100%)
 rename docs/{ => framework}/react/guides/query-keys.md (100%)
 rename docs/{ => framework}/react/guides/query-retries.md (100%)
 rename docs/{ => framework}/react/guides/scroll-restoration.md (100%)
 rename docs/{ => framework}/react/guides/ssr.md (100%)
 rename docs/{ => framework}/react/guides/suspense.md (100%)
 rename docs/{ => framework}/react/guides/testing.md (100%)
 rename docs/{ => framework}/react/guides/updates-from-mutation-responses.md (100%)
 rename docs/{ => framework}/react/guides/window-focus-refetching.md (100%)
 rename docs/{ => framework}/react/installation.md (100%)
 rename docs/{ => framework}/react/overview.md (100%)
 rename docs/{ => framework}/react/plugins/broadcastQueryClient.md (100%)
 rename docs/{ => framework}/react/plugins/createAsyncStoragePersister.md (100%)
 rename docs/{ => framework}/react/plugins/createSyncStoragePersister.md (100%)
 rename docs/{ => framework}/react/plugins/persistQueryClient.md (100%)
 rename docs/{ => framework}/react/quick-start.md (100%)
 rename docs/{ => framework}/react/react-native.md (100%)
 rename docs/{ => framework}/react/reference/InfiniteQueryObserver.md (100%)
 rename docs/{ => framework}/react/reference/MutationCache.md (100%)
 rename docs/{ => framework}/react/reference/QueriesObserver.md (100%)
 rename docs/{ => framework}/react/reference/QueryCache.md (100%)
 rename docs/{ => framework}/react/reference/QueryClient.md (100%)
 rename docs/{ => framework}/react/reference/QueryClientProvider.md (100%)
 rename docs/{ => framework}/react/reference/QueryErrorResetBoundary.md (100%)
 rename docs/{ => framework}/react/reference/QueryObserver.md (100%)
 rename docs/{ => framework}/react/reference/focusManager.md (100%)
 rename docs/{ => framework}/react/reference/hydration.md (100%)
 rename docs/{ => framework}/react/reference/onlineManager.md (100%)
 rename docs/{ => framework}/react/reference/useInfiniteQuery.md (100%)
 rename docs/{ => framework}/react/reference/useIsFetching.md (100%)
 rename docs/{ => framework}/react/reference/useIsMutating.md (100%)
 rename docs/{ => framework}/react/reference/useMutation.md (100%)
 rename docs/{ => framework}/react/reference/useQueries.md (100%)
 rename docs/{ => framework}/react/reference/useQuery.md (100%)
 rename docs/{ => framework}/react/reference/useQueryClient.md (100%)
 rename docs/{ => framework}/react/reference/useQueryErrorResetBoundary.md (100%)
 rename docs/{ => framework}/react/typescript.md (100%)
 rename docs/{ => framework}/react/videos.md (100%)
 rename docs/{ => framework}/solid/overview.md (100%)
 rename docs/{ => framework}/svelte/installation.md (100%)
 rename docs/{ => framework}/svelte/overview.md (100%)
 rename docs/{ => framework}/svelte/reactivity.md (100%)
 rename docs/{ => framework}/svelte/ssr.md (100%)
 rename docs/{ => framework}/vue/community/lukemorales-query-key-factory.md (100%)
 rename docs/{ => framework}/vue/community/tkdodos-blog.md (100%)
 rename docs/{ => framework}/vue/devtools.md (100%)
 rename docs/{ => framework}/vue/graphql.md (100%)
 rename docs/{ => framework}/vue/guides/background-fetching-indicators.md (100%)
 rename docs/{ => framework}/vue/guides/caching.md (100%)
 rename docs/{ => framework}/vue/guides/custom-client.md (100%)
 rename docs/{ => framework}/vue/guides/custom-logger.md (100%)
 rename docs/{ => framework}/vue/guides/default-query-function.md (100%)
 rename docs/{ => framework}/vue/guides/dependent-queries.md (100%)
 rename docs/{ => framework}/vue/guides/disabling-queries.md (100%)
 rename docs/{ => framework}/vue/guides/does-this-replace-client-state.md (100%)
 rename docs/{ => framework}/vue/guides/filters.md (100%)
 rename docs/{ => framework}/vue/guides/important-defaults.md (100%)
 rename docs/{ => framework}/vue/guides/infinite-queries.md (100%)
 rename docs/{ => framework}/vue/guides/initial-query-data.md (100%)
 rename docs/{ => framework}/vue/guides/invalidations-from-mutations.md (100%)
 rename docs/{ => framework}/vue/guides/mutations.md (100%)
 rename docs/{ => framework}/vue/guides/network-mode.md (100%)
 rename docs/{ => framework}/vue/guides/optimistic-updates.md (100%)
 rename docs/{ => framework}/vue/guides/paginated-queries.md (100%)
 rename docs/{ => framework}/vue/guides/parallel-queries.md (100%)
 rename docs/{ => framework}/vue/guides/placeholder-query-data.md (100%)
 rename docs/{ => framework}/vue/guides/prefetching.md (100%)
 rename docs/{ => framework}/vue/guides/queries.md (100%)
 rename docs/{ => framework}/vue/guides/query-cancellation.md (100%)
 rename docs/{ => framework}/vue/guides/query-functions.md (100%)
 rename docs/{ => framework}/vue/guides/query-invalidation.md (100%)
 rename docs/{ => framework}/vue/guides/query-keys.md (100%)
 rename docs/{ => framework}/vue/guides/query-retries.md (100%)
 rename docs/{ => framework}/vue/guides/scroll-restoration.md (100%)
 rename docs/{ => framework}/vue/guides/ssr.md (100%)
 rename docs/{ => framework}/vue/guides/suspense.md (100%)
 rename docs/{ => framework}/vue/guides/testing.md (100%)
 rename docs/{ => framework}/vue/guides/updates-from-mutation-responses.md (100%)
 rename docs/{ => framework}/vue/guides/window-focus-refetching.md (100%)
 rename docs/{ => framework}/vue/installation.md (100%)
 rename docs/{ => framework}/vue/overview.md (100%)
 rename docs/{ => framework}/vue/quick-start.md (100%)
 rename docs/{ => framework}/vue/reference/InfiniteQueryObserver.md (100%)
 rename docs/{ => framework}/vue/reference/MutationCache.md (100%)
 rename docs/{ => framework}/vue/reference/QueriesObserver.md (100%)
 rename docs/{ => framework}/vue/reference/QueryCache.md (100%)
 rename docs/{ => framework}/vue/reference/QueryClient.md (100%)
 rename docs/{ => framework}/vue/reference/QueryObserver.md (100%)
 rename docs/{ => framework}/vue/reference/focusManager.md (100%)
 rename docs/{ => framework}/vue/reference/hydration.md (100%)
 rename docs/{ => framework}/vue/reference/onlineManager.md (100%)
 rename docs/{ => framework}/vue/reference/useInfiniteQuery.md (100%)
 rename docs/{ => framework}/vue/reference/useIsFetching.md (100%)
 rename docs/{ => framework}/vue/reference/useIsMutating.md (100%)
 rename docs/{ => framework}/vue/reference/useMutation.md (100%)
 rename docs/{ => framework}/vue/reference/useQueries.md (100%)
 rename docs/{ => framework}/vue/reference/useQuery.md (100%)
 rename docs/{ => framework}/vue/reference/useQueryClient.md (100%)
 rename docs/{ => framework}/vue/typescript.md (100%)

diff --git a/docs/config.json b/docs/config.json
index e9c2c61114..001be90c97 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -1,4 +1,5 @@
 {
+  "$schema": "https://raw.githubusercontent.com/TanStack/tanstack.com/main/tanstack-docs-config.schema.json",
   "docSearch": {
     "appId": "ZFKQRGRQA8",
     "apiKey": "93e0b83eb0b5af4549b6bf47f90af3f7",
@@ -14,39 +15,39 @@
           "children": [
             {
               "label": "Overview",
-              "to": "react/overview"
+              "to": "framework/react/overview"
             },
             {
               "label": "Installation",
-              "to": "react/installation"
+              "to": "framework/react/installation"
             },
             {
               "label": "Quick Start",
-              "to": "react/quick-start"
+              "to": "framework/react/quick-start"
             },
             {
               "label": "Devtools",
-              "to": "react/devtools"
+              "to": "framework/react/devtools"
             },
             {
               "label": "Videos & Talks",
-              "to": "react/videos"
+              "to": "framework/react/videos"
             },
             {
               "label": "Comparison",
-              "to": "react/comparison"
+              "to": "framework/react/comparison"
             },
             {
               "label": "TypeScript",
-              "to": "react/typescript"
+              "to": "framework/react/typescript"
             },
             {
               "label": "GraphQL",
-              "to": "react/graphql"
+              "to": "framework/react/graphql"
             },
             {
               "label": "React Native",
-              "to": "react/react-native"
+              "to": "framework/react/react-native"
             }
           ]
         },
@@ -55,135 +56,135 @@
           "children": [
             {
               "label": "Important Defaults",
-              "to": "react/guides/important-defaults"
+              "to": "framework/react/guides/important-defaults"
             },
             {
               "label": "Queries",
-              "to": "react/guides/queries"
+              "to": "framework/react/guides/queries"
             },
             {
               "label": "Query Keys",
-              "to": "react/guides/query-keys"
+              "to": "framework/react/guides/query-keys"
             },
             {
               "label": "Query Functions",
-              "to": "react/guides/query-functions"
+              "to": "framework/react/guides/query-functions"
             },
             {
               "label": "Network Mode",
-              "to": "react/guides/network-mode"
+              "to": "framework/react/guides/network-mode"
             },
             {
               "label": "Parallel Queries",
-              "to": "react/guides/parallel-queries"
+              "to": "framework/react/guides/parallel-queries"
             },
             {
               "label": "Dependent Queries",
-              "to": "react/guides/dependent-queries"
+              "to": "framework/react/guides/dependent-queries"
             },
             {
               "label": "Background Fetching Indicators",
-              "to": "react/guides/background-fetching-indicators"
+              "to": "framework/react/guides/background-fetching-indicators"
             },
             {
               "label": "Window Focus Refetching",
-              "to": "react/guides/window-focus-refetching"
+              "to": "framework/react/guides/window-focus-refetching"
             },
             {
               "label": "Disabling/Pausing Queries",
-              "to": "react/guides/disabling-queries"
+              "to": "framework/react/guides/disabling-queries"
             },
             {
               "label": "Query Retries",
-              "to": "react/guides/query-retries"
+              "to": "framework/react/guides/query-retries"
             },
             {
               "label": "Paginated Queries",
-              "to": "react/guides/paginated-queries"
+              "to": "framework/react/guides/paginated-queries"
             },
             {
               "label": "Infinite Queries",
-              "to": "react/guides/infinite-queries"
+              "to": "framework/react/guides/infinite-queries"
             },
             {
               "label": "Initial Query Data",
-              "to": "react/guides/initial-query-data"
+              "to": "framework/react/guides/initial-query-data"
             },
             {
               "label": "Placeholder Query Data",
-              "to": "react/guides/placeholder-query-data"
+              "to": "framework/react/guides/placeholder-query-data"
             },
             {
               "label": "Prefetching",
-              "to": "react/guides/prefetching"
+              "to": "framework/react/guides/prefetching"
             },
             {
               "label": "Mutations",
-              "to": "react/guides/mutations"
+              "to": "framework/react/guides/mutations"
             },
             {
               "label": "Query Invalidation",
-              "to": "react/guides/query-invalidation"
+              "to": "framework/react/guides/query-invalidation"
             },
             {
               "label": "Invalidation from Mutations",
-              "to": "react/guides/invalidations-from-mutations"
+              "to": "framework/react/guides/invalidations-from-mutations"
             },
             {
               "label": "Updates from Mutation Responses",
-              "to": "react/guides/updates-from-mutation-responses"
+              "to": "framework/react/guides/updates-from-mutation-responses"
             },
             {
               "label": "Optimistic Updates",
-              "to": "react/guides/optimistic-updates"
+              "to": "framework/react/guides/optimistic-updates"
             },
             {
               "label": "Query Cancellation",
-              "to": "react/guides/query-cancellation"
+              "to": "framework/react/guides/query-cancellation"
             },
             {
               "label": "Scroll Restoration",
-              "to": "react/guides/scroll-restoration"
+              "to": "framework/react/guides/scroll-restoration"
             },
             {
               "label": "Filters",
-              "to": "react/guides/filters"
+              "to": "framework/react/guides/filters"
             },
             {
               "label": "SSR & Next.js",
-              "to": "react/guides/ssr"
+              "to": "framework/react/guides/ssr"
             },
             {
               "label": "Caching",
-              "to": "react/guides/caching"
+              "to": "framework/react/guides/caching"
             },
             {
               "label": "Default Query Fn",
-              "to": "react/guides/default-query-function"
+              "to": "framework/react/guides/default-query-function"
             },
             {
               "label": "Suspense",
-              "to": "react/guides/suspense"
+              "to": "framework/react/guides/suspense"
             },
             {
               "label": "Custom Logger",
-              "to": "react/guides/custom-logger"
+              "to": "framework/react/guides/custom-logger"
             },
             {
               "label": "Testing",
-              "to": "react/guides/testing"
+              "to": "framework/react/guides/testing"
             },
             {
               "label": "Does this replace [Redux, MobX, etc]?",
-              "to": "react/guides/does-this-replace-client-state"
+              "to": "framework/react/guides/does-this-replace-client-state"
             },
             {
               "label": "Migrating to React Query 3",
-              "to": "react/guides/migrating-to-react-query-3"
+              "to": "framework/react/guides/migrating-to-react-query-3"
             },
             {
               "label": "Migrating to React Query 4",
-              "to": "react/guides/migrating-to-react-query-4"
+              "to": "framework/react/guides/migrating-to-react-query-4"
             }
           ]
         },
@@ -192,27 +193,27 @@
           "children": [
             {
               "label": "TkDodo's Blog",
-              "to": "react/community/tkdodos-blog"
+              "to": "framework/react/community/tkdodos-blog"
             },
             {
               "label": "Batching Requests",
-              "to": "react/community/batching-requests-using-bathshit"
+              "to": "framework/react/community/batching-requests-using-bathshit"
             },
             {
               "label": "Query Key Factory",
-              "to": "react/community/lukemorales-query-key-factory"
+              "to": "framework/react/community/lukemorales-query-key-factory"
             },
             {
               "label": "React Query Kit",
-              "to": "react/community/liaoliao666-react-query-kit"
+              "to": "framework/react/community/liaoliao666-react-query-kit"
             },
             {
               "label": "Angular Query",
-              "to": "react/community/angular-query"
+              "to": "framework/react/community/angular-query"
             },
             {
               "label": "Suspensive React Query",
-              "to": "react/community/suspensive-react-query"
+              "to": "framework/react/community/suspensive-react-query"
             }
           ]
         },
@@ -221,75 +222,75 @@
           "children": [
             {
               "label": "Simple",
-              "to": "react/examples/react/simple"
+              "to": "framework/react/examples/simple"
             },
             {
               "label": "Basic",
-              "to": "react/examples/react/basic"
+              "to": "framework/react/examples/basic"
             },
             {
               "label": "Basic w/ GraphQL-Request",
-              "to": "react/examples/react/basic-graphql-request"
+              "to": "framework/react/examples/basic-graphql-request"
             },
             {
               "label": "Auto Refetching / Polling / Realtime",
-              "to": "react/examples/react/auto-refetching"
+              "to": "framework/react/examples/auto-refetching"
             },
             {
               "label": "Optimistic Updates in TypeScript",
-              "to": "react/examples/react/optimistic-updates-typescript"
+              "to": "framework/react/examples/optimistic-updates-typescript"
             },
             {
               "label": "Pagination",
-              "to": "react/examples/react/pagination"
+              "to": "framework/react/examples/pagination"
             },
             {
               "label": "Load-More & Infinite Scroll",
-              "to": "react/examples/react/load-more-infinite-scroll"
+              "to": "framework/react/examples/load-more-infinite-scroll"
             },
             {
               "label": "Suspense",
-              "to": "react/examples/react/suspense"
+              "to": "framework/react/examples/suspense"
             },
             {
               "label": "Default Query Function",
-              "to": "react/examples/react/default-query-function"
+              "to": "framework/react/examples/default-query-function"
             },
             {
               "label": "Playground",
-              "to": "react/examples/react/playground"
+              "to": "framework/react/examples/playground"
             },
             {
               "label": "Prefetching",
-              "to": "react/examples/react/prefetching"
+              "to": "framework/react/examples/prefetching"
             },
             {
               "label": "Star Wars",
-              "to": "react/examples/react/star-wars"
+              "to": "framework/react/examples/star-wars"
             },
             {
               "label": "Rick And Morty",
-              "to": "react/examples/react/rick-morty"
+              "to": "framework/react/examples/rick-morty"
             },
             {
               "label": "Next.js",
-              "to": "react/examples/react/nextjs"
+              "to": "framework/react/examples/nextjs"
             },
             {
               "label": "React Native",
-              "to": "react/examples/react/react-native"
+              "to": "framework/react/examples/react-native"
             },
             {
               "label": "React Router",
-              "to": "react/examples/react/react-router"
+              "to": "framework/react/examples/react-router"
             },
             {
               "label": "Offline Queries and Mutations",
-              "to": "react/examples/react/offline"
+              "to": "framework/react/examples/offline"
             },
             {
               "label": "Algolia",
-              "to": "react/examples/react/algolia"
+              "to": "framework/react/examples/algolia"
             }
           ]
         },
@@ -298,23 +299,23 @@
           "children": [
             {
               "label": "ESLint Plugin Query",
-              "to": "react/eslint/eslint-plugin-query"
+              "to": "framework/react/eslint/eslint-plugin-query"
             },
             {
               "label": "Exhaustive Deps",
-              "to": "react/eslint/exhaustive-deps"
+              "to": "framework/react/eslint/exhaustive-deps"
             },
             {
               "label": "No deprecated options",
-              "to": "react/eslint/no-deprecated-options"
+              "to": "framework/react/eslint/no-deprecated-options"
             },
             {
               "label": "Prefer object syntax",
-              "to": "react/eslint/prefer-query-object-syntax"
+              "to": "framework/react/eslint/prefer-query-object-syntax"
             },
             {
               "label": "Stable Query Client",
-              "to": "react/eslint/stable-query-client"
+              "to": "framework/react/eslint/stable-query-client"
             }
           ]
         },
@@ -323,19 +324,19 @@
           "children": [
             {
               "label": "persistQueryClient",
-              "to": "react/plugins/persistQueryClient"
+              "to": "framework/react/plugins/persistQueryClient"
             },
             {
               "label": "createSyncStoragePersister",
-              "to": "react/plugins/createSyncStoragePersister"
+              "to": "framework/react/plugins/createSyncStoragePersister"
             },
             {
               "label": "createAsyncStoragePersister",
-              "to": "react/plugins/createAsyncStoragePersister"
+              "to": "framework/react/plugins/createAsyncStoragePersister"
             },
             {
               "label": "broadcastQueryClient (Experimental)",
-              "to": "react/plugins/broadcastQueryClient"
+              "to": "framework/react/plugins/broadcastQueryClient"
             }
           ]
         },
@@ -344,79 +345,79 @@
           "children": [
             {
               "label": "useQuery",
-              "to": "react/reference/useQuery"
+              "to": "framework/react/reference/useQuery"
             },
             {
               "label": "useQueries",
-              "to": "react/reference/useQueries"
+              "to": "framework/react/reference/useQueries"
             },
             {
               "label": "useInfiniteQuery",
-              "to": "react/reference/useInfiniteQuery"
+              "to": "framework/react/reference/useInfiniteQuery"
             },
             {
               "label": "useMutation",
-              "to": "react/reference/useMutation"
+              "to": "framework/react/reference/useMutation"
             },
             {
               "label": "useIsFetching",
-              "to": "react/reference/useIsFetching"
+              "to": "framework/react/reference/useIsFetching"
             },
             {
               "label": "useIsMutating",
-              "to": "react/reference/useIsMutating"
+              "to": "framework/react/reference/useIsMutating"
             },
             {
               "label": "QueryClient",
-              "to": "react/reference/QueryClient"
+              "to": "framework/react/reference/QueryClient"
             },
             {
               "label": "QueryClientProvider",
-              "to": "react/reference/QueryClientProvider"
+              "to": "framework/react/reference/QueryClientProvider"
             },
             {
               "label": "useQueryClient",
-              "to": "react/reference/useQueryClient"
+              "to": "framework/react/reference/useQueryClient"
             },
             {
               "label": "QueryCache",
-              "to": "react/reference/QueryCache"
+              "to": "framework/react/reference/QueryCache"
             },
             {
               "label": "MutationCache",
-              "to": "react/reference/MutationCache"
+              "to": "framework/react/reference/MutationCache"
             },
             {
               "label": "QueryObserver",
-              "to": "react/reference/QueryObserver"
+              "to": "framework/react/reference/QueryObserver"
             },
             {
               "label": "InfiniteQueryObserver",
-              "to": "react/reference/InfiniteQueryObserver"
+              "to": "framework/react/reference/InfiniteQueryObserver"
             },
             {
               "label": "QueriesObserver",
-              "to": "react/reference/QueriesObserver"
+              "to": "framework/react/reference/QueriesObserver"
             },
             {
               "label": "QueryErrorResetBoundary",
-              "to": "react/reference/QueryErrorResetBoundary"
+              "to": "framework/react/reference/QueryErrorResetBoundary"
             },
             {
               "label": "useQueryErrorResetBoundary",
-              "to": "react/reference/useQueryErrorResetBoundary"
+              "to": "framework/react/reference/useQueryErrorResetBoundary"
             },
             {
               "label": "focusManager",
-              "to": "react/reference/focusManager"
+              "to": "framework/react/reference/focusManager"
             },
             {
               "label": "onlineManager",
-              "to": "react/reference/onlineManager"
+              "to": "framework/react/reference/onlineManager"
             },
             {
               "label": "hydration",
-              "to": "react/reference/hydration"
+              "to": "framework/react/reference/hydration"
             }
           ]
         }
@@ -430,7 +431,7 @@
           "children": [
             {
               "label": "Overview",
-              "to": "solid/overview"
+              "to": "framework/solid/overview"
             }
           ]
         }
@@ -444,27 +445,27 @@
           "children": [
             {
               "label": "Overview",
-              "to": "vue/overview"
+              "to": "framework/vue/overview"
             },
             {
               "label": "Installation",
-              "to": "vue/installation"
+              "to": "framework/vue/installation"
             },
             {
               "label": "Quick Start",
-              "to": "vue/quick-start"
+              "to": "framework/vue/quick-start"
             },
             {
               "label": "Devtools",
-              "to": "vue/devtools"
+              "to": "framework/vue/devtools"
             },
             {
               "label": "TypeScript",
-              "to": "vue/typescript"
+              "to": "framework/vue/typescript"
             },
             {
               "label": "GraphQL",
-              "to": "vue/graphql"
+              "to": "framework/vue/graphql"
             }
           ]
         },
@@ -473,127 +474,127 @@
           "children": [
             {
               "label": "Important Defaults",
-              "to": "vue/guides/important-defaults"
+              "to": "framework/vue/guides/important-defaults"
             },
             {
               "label": "Queries",
-              "to": "vue/guides/queries"
+              "to": "framework/vue/guides/queries"
             },
             {
               "label": "Query Keys",
-              "to": "vue/guides/query-keys"
+              "to": "framework/vue/guides/query-keys"
             },
             {
               "label": "Query Functions",
-              "to": "vue/guides/query-functions"
+              "to": "framework/vue/guides/query-functions"
             },
             {
               "label": "Network Mode",
-              "to": "vue/guides/network-mode"
+              "to": "framework/vue/guides/network-mode"
             },
             {
               "label": "Parallel Queries",
-              "to": "vue/guides/parallel-queries"
+              "to": "framework/vue/guides/parallel-queries"
             },
             {
               "label": "Dependent Queries",
-              "to": "vue/guides/dependent-queries"
+              "to": "framework/vue/guides/dependent-queries"
             },
             {
               "label": "Background Fetching Indicators",
-              "to": "vue/guides/background-fetching-indicators"
+              "to": "framework/vue/guides/background-fetching-indicators"
             },
             {
               "label": "Window Focus Refetching",
-              "to": "vue/guides/window-focus-refetching"
+              "to": "framework/vue/guides/window-focus-refetching"
             },
             {
               "label": "Disabling/Pausing Queries",
-              "to": "vue/guides/disabling-queries"
+              "to": "framework/vue/guides/disabling-queries"
             },
             {
               "label": "Query Retries",
-              "to": "vue/guides/query-retries"
+              "to": "framework/vue/guides/query-retries"
             },
             {
               "label": "Paginated Queries",
-              "to": "vue/guides/paginated-queries"
+              "to": "framework/vue/guides/paginated-queries"
             },
             {
               "label": "Infinite Queries",
-              "to": "vue/guides/infinite-queries"
+              "to": "framework/vue/guides/infinite-queries"
             },
             {
               "label": "Initial Query Data",
-              "to": "vue/guides/initial-query-data"
+              "to": "framework/vue/guides/initial-query-data"
             },
             {
               "label": "Placeholder Query Data",
-              "to": "vue/guides/placeholder-query-data"
+              "to": "framework/vue/guides/placeholder-query-data"
             },
             {
               "label": "Prefetching",
-              "to": "vue/guides/prefetching"
+              "to": "framework/vue/guides/prefetching"
             },
             {
               "label": "Mutations",
-              "to": "vue/guides/mutations"
+              "to": "framework/vue/guides/mutations"
             },
             {
               "label": "Query Invalidation",
-              "to": "vue/guides/query-invalidation"
+              "to": "framework/vue/guides/query-invalidation"
             },
             {
               "label": "Invalidation from Mutations",
-              "to": "vue/guides/invalidations-from-mutations"
+              "to": "framework/vue/guides/invalidations-from-mutations"
             },
             {
               "label": "Updates from Mutation",
-              "to": "vue/guides/updates-from-mutation-responses"
+              "to": "framework/vue/guides/updates-from-mutation-responses"
             },
             {
               "label": "Optimistic Updates",
-              "to": "vue/guides/optimistic-updates"
+              "to": "framework/vue/guides/optimistic-updates"
             },
             {
               "label": "Query Cancellation",
-              "to": "vue/guides/query-cancellation"
+              "to": "framework/vue/guides/query-cancellation"
             },
             {
               "label": "Scroll Restoration",
-              "to": "vue/guides/scroll-restoration"
+              "to": "framework/vue/guides/scroll-restoration"
             },
             {
               "label": "Filters",
-              "to": "vue/guides/filters"
+              "to": "framework/vue/guides/filters"
             },
             {
               "label": "SSR & Nuxt",
-              "to": "vue/guides/ssr"
+              "to": "framework/vue/guides/ssr"
             },
             {
               "label": "Caching",
-              "to": "vue/guides/caching"
+              "to": "framework/vue/guides/caching"
             },
             {
               "label": "Default Query Fn",
-              "to": "vue/guides/default-query-function"
+              "to": "framework/vue/guides/default-query-function"
             },
             {
               "label": "Suspense",
-              "to": "vue/guides/suspense"
+              "to": "framework/vue/guides/suspense"
             },
             {
               "label": "Custom Logger",
-              "to": "vue/guides/custom-logger"
+              "to": "framework/vue/guides/custom-logger"
             },
             {
               "label": "Custom Client",
-              "to": "vue/guides/custom-client"
+              "to": "framework/vue/guides/custom-client"
             },
             {
               "label": "Does this replace [Vuex, Pinia]?",
-              "to": "vue/guides/does-this-replace-client-state"
+              "to": "framework/vue/guides/does-this-replace-client-state"
             }
           ]
         },
@@ -602,11 +603,11 @@
           "children": [
             {
               "label": "TkDodo's Blog",
-              "to": "vue/community/tkdodos-blog"
+              "to": "framework/vue/community/tkdodos-blog"
             },
             {
               "label": "Query Key Factory",
-              "to": "vue/community/lukemorales-query-key-factory"
+              "to": "framework/vue/community/lukemorales-query-key-factory"
             }
           ]
         },
@@ -615,19 +616,19 @@
           "children": [
             {
               "label": "Basic",
-              "to": "vue/examples/vue/basic"
+              "to": "framework/vue/examples/basic"
             },
             {
               "label": "Vue 2.6",
-              "to": "vue/examples/vue/2.6-basic"
+              "to": "framework/vue/examples/2.6-basic"
             },
             {
               "label": "Nuxt 3",
-              "to": "vue/examples/vue/nuxt3"
+              "to": "framework/vue/examples/nuxt3"
             },
             {
               "label": "Persister",
-              "to": "vue/examples/vue/persister"
+              "to": "framework/vue/examples/persister"
             }
           ]
         },
@@ -636,67 +637,67 @@
           "children": [
             {
               "label": "useQuery",
-              "to": "vue/reference/useQuery"
+              "to": "framework/vue/reference/useQuery"
             },
             {
               "label": "useQueries",
-              "to": "vue/reference/useQueries"
+              "to": "framework/vue/reference/useQueries"
             },
             {
               "label": "useInfiniteQuery",
-              "to": "vue/reference/useInfiniteQuery"
+              "to": "framework/vue/reference/useInfiniteQuery"
             },
             {
               "label": "useMutation",
-              "to": "vue/reference/useMutation"
+              "to": "framework/vue/reference/useMutation"
             },
             {
               "label": "useIsFetching",
-              "to": "vue/reference/useIsFetching"
+              "to": "framework/vue/reference/useIsFetching"
             },
             {
               "label": "useIsMutating",
-              "to": "vue/reference/useIsMutating"
+              "to": "framework/vue/reference/useIsMutating"
             },
             {
               "label": "useQueryClient",
-              "to": "vue/reference/useQueryClient"
+              "to": "framework/vue/reference/useQueryClient"
             },
             {
               "label": "QueryClient",
-              "to": "vue/reference/QueryClient"
+              "to": "framework/vue/reference/QueryClient"
             },
             {
               "label": "QueryCache",
-              "to": "vue/reference/QueryCache"
+              "to": "framework/vue/reference/QueryCache"
             },
             {
               "label": "MutationCache",
-              "to": "vue/reference/MutationCache"
+              "to": "framework/vue/reference/MutationCache"
             },
             {
               "label": "QueryObserver",
-              "to": "vue/reference/QueryObserver"
+              "to": "framework/vue/reference/QueryObserver"
             },
             {
               "label": "InfiniteQueryObserver",
-              "to": "vue/reference/InfiniteQueryObserver"
+              "to": "framework/vue/reference/InfiniteQueryObserver"
             },
             {
               "label": "QueriesObserver",
-              "to": "vue/reference/QueriesObserver"
+              "to": "framework/vue/reference/QueriesObserver"
             },
             {
               "label": "focusManager",
-              "to": "vue/reference/focusManager"
+              "to": "framework/vue/reference/focusManager"
             },
             {
               "label": "onlineManager",
-              "to": "vue/reference/onlineManager"
+              "to": "framework/vue/reference/onlineManager"
             },
             {
               "label": "hydration",
-              "to": "vue/reference/hydration"
+              "to": "framework/vue/reference/hydration"
             }
           ]
         }
@@ -710,19 +711,19 @@
           "children": [
             {
               "label": "Overview",
-              "to": "svelte/overview"
+              "to": "framework/svelte/overview"
             },
             {
               "label": "Installation",
-              "to": "svelte/installation"
+              "to": "framework/svelte/installation"
             },
             {
               "label": "SSR & SvelteKit",
-              "to": "svelte/ssr"
+              "to": "framework/svelte/ssr"
             },
             {
               "label": "Reactivity",
-              "to": "svelte/reactivity"
+              "to": "framework/svelte/reactivity"
             }
           ]
         },
@@ -731,35 +732,35 @@
           "children": [
             {
               "label": "Simple",
-              "to": "svelte/examples/svelte/simple"
+              "to": "framework/svelte/examples/simple"
             },
             {
               "label": "Basic",
-              "to": "svelte/examples/svelte/basic"
+              "to": "framework/svelte/examples/basic"
             },
             {
               "label": "Auto Refetching / Polling / Realtime",
-              "to": "svelte/examples/svelte/auto-refetching"
+              "to": "framework/svelte/examples/auto-refetching"
             },
             {
               "label": "SSR",
-              "to": "svelte/examples/svelte/ssr"
+              "to": "framework/svelte/examples/ssr"
             },
             {
               "label": "Optimistic Updates in TypeScript",
-              "to": "svelte/examples/svelte/optimistic-updates-typescript"
+              "to": "framework/svelte/examples/optimistic-updates-typescript"
             },
             {
               "label": "Playground",
-              "to": "svelte/examples/svelte/playground"
+              "to": "framework/svelte/examples/playground"
             },
             {
               "label": "Star Wars",
-              "to": "svelte/examples/svelte/star-wars"
+              "to": "framework/svelte/examples/star-wars"
             },
             {
               "label": "Infinite Queries",
-              "to": "svelte/examples/svelte/load-more-infinite-scroll"
+              "to": "framework/svelte/examples/load-more-infinite-scroll"
             }
           ]
         }
diff --git a/docs/react/adapters/react-query.md b/docs/framework/react/adapters/react-query.md
similarity index 100%
rename from docs/react/adapters/react-query.md
rename to docs/framework/react/adapters/react-query.md
diff --git a/docs/react/adapters/solid-query.md b/docs/framework/react/adapters/solid-query.md
similarity index 100%
rename from docs/react/adapters/solid-query.md
rename to docs/framework/react/adapters/solid-query.md
diff --git a/docs/react/adapters/svelte-query.md b/docs/framework/react/adapters/svelte-query.md
similarity index 100%
rename from docs/react/adapters/svelte-query.md
rename to docs/framework/react/adapters/svelte-query.md
diff --git a/docs/react/adapters/vue-query.md b/docs/framework/react/adapters/vue-query.md
similarity index 100%
rename from docs/react/adapters/vue-query.md
rename to docs/framework/react/adapters/vue-query.md
diff --git a/docs/react/community/angular-query.md b/docs/framework/react/community/angular-query.md
similarity index 100%
rename from docs/react/community/angular-query.md
rename to docs/framework/react/community/angular-query.md
diff --git a/docs/react/community/batching-requests-using-bathshit.md b/docs/framework/react/community/batching-requests-using-bathshit.md
similarity index 100%
rename from docs/react/community/batching-requests-using-bathshit.md
rename to docs/framework/react/community/batching-requests-using-bathshit.md
diff --git a/docs/react/community/liaoliao666-react-query-kit.md b/docs/framework/react/community/liaoliao666-react-query-kit.md
similarity index 100%
rename from docs/react/community/liaoliao666-react-query-kit.md
rename to docs/framework/react/community/liaoliao666-react-query-kit.md
diff --git a/docs/react/community/lukemorales-query-key-factory.md b/docs/framework/react/community/lukemorales-query-key-factory.md
similarity index 100%
rename from docs/react/community/lukemorales-query-key-factory.md
rename to docs/framework/react/community/lukemorales-query-key-factory.md
diff --git a/docs/react/community/suspensive-react-query.md b/docs/framework/react/community/suspensive-react-query.md
similarity index 100%
rename from docs/react/community/suspensive-react-query.md
rename to docs/framework/react/community/suspensive-react-query.md
diff --git a/docs/react/community/tkdodos-blog.md b/docs/framework/react/community/tkdodos-blog.md
similarity index 100%
rename from docs/react/community/tkdodos-blog.md
rename to docs/framework/react/community/tkdodos-blog.md
diff --git a/docs/react/comparison.md b/docs/framework/react/comparison.md
similarity index 100%
rename from docs/react/comparison.md
rename to docs/framework/react/comparison.md
diff --git a/docs/react/devtools.md b/docs/framework/react/devtools.md
similarity index 100%
rename from docs/react/devtools.md
rename to docs/framework/react/devtools.md
diff --git a/docs/react/eslint/eslint-plugin-query.md b/docs/framework/react/eslint/eslint-plugin-query.md
similarity index 100%
rename from docs/react/eslint/eslint-plugin-query.md
rename to docs/framework/react/eslint/eslint-plugin-query.md
diff --git a/docs/react/eslint/exhaustive-deps.md b/docs/framework/react/eslint/exhaustive-deps.md
similarity index 100%
rename from docs/react/eslint/exhaustive-deps.md
rename to docs/framework/react/eslint/exhaustive-deps.md
diff --git a/docs/react/eslint/no-deprecated-options.md b/docs/framework/react/eslint/no-deprecated-options.md
similarity index 100%
rename from docs/react/eslint/no-deprecated-options.md
rename to docs/framework/react/eslint/no-deprecated-options.md
diff --git a/docs/react/eslint/prefer-query-object-syntax.md b/docs/framework/react/eslint/prefer-query-object-syntax.md
similarity index 100%
rename from docs/react/eslint/prefer-query-object-syntax.md
rename to docs/framework/react/eslint/prefer-query-object-syntax.md
diff --git a/docs/react/eslint/stable-query-client.md b/docs/framework/react/eslint/stable-query-client.md
similarity index 100%
rename from docs/react/eslint/stable-query-client.md
rename to docs/framework/react/eslint/stable-query-client.md
diff --git a/docs/react/graphql.md b/docs/framework/react/graphql.md
similarity index 100%
rename from docs/react/graphql.md
rename to docs/framework/react/graphql.md
diff --git a/docs/react/guides/background-fetching-indicators.md b/docs/framework/react/guides/background-fetching-indicators.md
similarity index 100%
rename from docs/react/guides/background-fetching-indicators.md
rename to docs/framework/react/guides/background-fetching-indicators.md
diff --git a/docs/react/guides/caching.md b/docs/framework/react/guides/caching.md
similarity index 100%
rename from docs/react/guides/caching.md
rename to docs/framework/react/guides/caching.md
diff --git a/docs/react/guides/custom-logger.md b/docs/framework/react/guides/custom-logger.md
similarity index 100%
rename from docs/react/guides/custom-logger.md
rename to docs/framework/react/guides/custom-logger.md
diff --git a/docs/react/guides/default-query-function.md b/docs/framework/react/guides/default-query-function.md
similarity index 100%
rename from docs/react/guides/default-query-function.md
rename to docs/framework/react/guides/default-query-function.md
diff --git a/docs/react/guides/dependent-queries.md b/docs/framework/react/guides/dependent-queries.md
similarity index 100%
rename from docs/react/guides/dependent-queries.md
rename to docs/framework/react/guides/dependent-queries.md
diff --git a/docs/react/guides/disabling-queries.md b/docs/framework/react/guides/disabling-queries.md
similarity index 100%
rename from docs/react/guides/disabling-queries.md
rename to docs/framework/react/guides/disabling-queries.md
diff --git a/docs/react/guides/does-this-replace-client-state.md b/docs/framework/react/guides/does-this-replace-client-state.md
similarity index 100%
rename from docs/react/guides/does-this-replace-client-state.md
rename to docs/framework/react/guides/does-this-replace-client-state.md
diff --git a/docs/react/guides/filters.md b/docs/framework/react/guides/filters.md
similarity index 100%
rename from docs/react/guides/filters.md
rename to docs/framework/react/guides/filters.md
diff --git a/docs/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md
similarity index 100%
rename from docs/react/guides/important-defaults.md
rename to docs/framework/react/guides/important-defaults.md
diff --git a/docs/react/guides/infinite-queries.md b/docs/framework/react/guides/infinite-queries.md
similarity index 100%
rename from docs/react/guides/infinite-queries.md
rename to docs/framework/react/guides/infinite-queries.md
diff --git a/docs/react/guides/initial-query-data.md b/docs/framework/react/guides/initial-query-data.md
similarity index 100%
rename from docs/react/guides/initial-query-data.md
rename to docs/framework/react/guides/initial-query-data.md
diff --git a/docs/react/guides/invalidations-from-mutations.md b/docs/framework/react/guides/invalidations-from-mutations.md
similarity index 100%
rename from docs/react/guides/invalidations-from-mutations.md
rename to docs/framework/react/guides/invalidations-from-mutations.md
diff --git a/docs/react/guides/migrating-to-react-query-3.md b/docs/framework/react/guides/migrating-to-react-query-3.md
similarity index 100%
rename from docs/react/guides/migrating-to-react-query-3.md
rename to docs/framework/react/guides/migrating-to-react-query-3.md
diff --git a/docs/react/guides/migrating-to-react-query-4.md b/docs/framework/react/guides/migrating-to-react-query-4.md
similarity index 100%
rename from docs/react/guides/migrating-to-react-query-4.md
rename to docs/framework/react/guides/migrating-to-react-query-4.md
diff --git a/docs/react/guides/mutations.md b/docs/framework/react/guides/mutations.md
similarity index 100%
rename from docs/react/guides/mutations.md
rename to docs/framework/react/guides/mutations.md
diff --git a/docs/react/guides/network-mode.md b/docs/framework/react/guides/network-mode.md
similarity index 100%
rename from docs/react/guides/network-mode.md
rename to docs/framework/react/guides/network-mode.md
diff --git a/docs/react/guides/optimistic-updates.md b/docs/framework/react/guides/optimistic-updates.md
similarity index 100%
rename from docs/react/guides/optimistic-updates.md
rename to docs/framework/react/guides/optimistic-updates.md
diff --git a/docs/react/guides/paginated-queries.md b/docs/framework/react/guides/paginated-queries.md
similarity index 100%
rename from docs/react/guides/paginated-queries.md
rename to docs/framework/react/guides/paginated-queries.md
diff --git a/docs/react/guides/parallel-queries.md b/docs/framework/react/guides/parallel-queries.md
similarity index 100%
rename from docs/react/guides/parallel-queries.md
rename to docs/framework/react/guides/parallel-queries.md
diff --git a/docs/react/guides/placeholder-query-data.md b/docs/framework/react/guides/placeholder-query-data.md
similarity index 100%
rename from docs/react/guides/placeholder-query-data.md
rename to docs/framework/react/guides/placeholder-query-data.md
diff --git a/docs/react/guides/prefetching.md b/docs/framework/react/guides/prefetching.md
similarity index 100%
rename from docs/react/guides/prefetching.md
rename to docs/framework/react/guides/prefetching.md
diff --git a/docs/react/guides/queries.md b/docs/framework/react/guides/queries.md
similarity index 100%
rename from docs/react/guides/queries.md
rename to docs/framework/react/guides/queries.md
diff --git a/docs/react/guides/query-cancellation.md b/docs/framework/react/guides/query-cancellation.md
similarity index 100%
rename from docs/react/guides/query-cancellation.md
rename to docs/framework/react/guides/query-cancellation.md
diff --git a/docs/react/guides/query-functions.md b/docs/framework/react/guides/query-functions.md
similarity index 100%
rename from docs/react/guides/query-functions.md
rename to docs/framework/react/guides/query-functions.md
diff --git a/docs/react/guides/query-invalidation.md b/docs/framework/react/guides/query-invalidation.md
similarity index 100%
rename from docs/react/guides/query-invalidation.md
rename to docs/framework/react/guides/query-invalidation.md
diff --git a/docs/react/guides/query-keys.md b/docs/framework/react/guides/query-keys.md
similarity index 100%
rename from docs/react/guides/query-keys.md
rename to docs/framework/react/guides/query-keys.md
diff --git a/docs/react/guides/query-retries.md b/docs/framework/react/guides/query-retries.md
similarity index 100%
rename from docs/react/guides/query-retries.md
rename to docs/framework/react/guides/query-retries.md
diff --git a/docs/react/guides/scroll-restoration.md b/docs/framework/react/guides/scroll-restoration.md
similarity index 100%
rename from docs/react/guides/scroll-restoration.md
rename to docs/framework/react/guides/scroll-restoration.md
diff --git a/docs/react/guides/ssr.md b/docs/framework/react/guides/ssr.md
similarity index 100%
rename from docs/react/guides/ssr.md
rename to docs/framework/react/guides/ssr.md
diff --git a/docs/react/guides/suspense.md b/docs/framework/react/guides/suspense.md
similarity index 100%
rename from docs/react/guides/suspense.md
rename to docs/framework/react/guides/suspense.md
diff --git a/docs/react/guides/testing.md b/docs/framework/react/guides/testing.md
similarity index 100%
rename from docs/react/guides/testing.md
rename to docs/framework/react/guides/testing.md
diff --git a/docs/react/guides/updates-from-mutation-responses.md b/docs/framework/react/guides/updates-from-mutation-responses.md
similarity index 100%
rename from docs/react/guides/updates-from-mutation-responses.md
rename to docs/framework/react/guides/updates-from-mutation-responses.md
diff --git a/docs/react/guides/window-focus-refetching.md b/docs/framework/react/guides/window-focus-refetching.md
similarity index 100%
rename from docs/react/guides/window-focus-refetching.md
rename to docs/framework/react/guides/window-focus-refetching.md
diff --git a/docs/react/installation.md b/docs/framework/react/installation.md
similarity index 100%
rename from docs/react/installation.md
rename to docs/framework/react/installation.md
diff --git a/docs/react/overview.md b/docs/framework/react/overview.md
similarity index 100%
rename from docs/react/overview.md
rename to docs/framework/react/overview.md
diff --git a/docs/react/plugins/broadcastQueryClient.md b/docs/framework/react/plugins/broadcastQueryClient.md
similarity index 100%
rename from docs/react/plugins/broadcastQueryClient.md
rename to docs/framework/react/plugins/broadcastQueryClient.md
diff --git a/docs/react/plugins/createAsyncStoragePersister.md b/docs/framework/react/plugins/createAsyncStoragePersister.md
similarity index 100%
rename from docs/react/plugins/createAsyncStoragePersister.md
rename to docs/framework/react/plugins/createAsyncStoragePersister.md
diff --git a/docs/react/plugins/createSyncStoragePersister.md b/docs/framework/react/plugins/createSyncStoragePersister.md
similarity index 100%
rename from docs/react/plugins/createSyncStoragePersister.md
rename to docs/framework/react/plugins/createSyncStoragePersister.md
diff --git a/docs/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md
similarity index 100%
rename from docs/react/plugins/persistQueryClient.md
rename to docs/framework/react/plugins/persistQueryClient.md
diff --git a/docs/react/quick-start.md b/docs/framework/react/quick-start.md
similarity index 100%
rename from docs/react/quick-start.md
rename to docs/framework/react/quick-start.md
diff --git a/docs/react/react-native.md b/docs/framework/react/react-native.md
similarity index 100%
rename from docs/react/react-native.md
rename to docs/framework/react/react-native.md
diff --git a/docs/react/reference/InfiniteQueryObserver.md b/docs/framework/react/reference/InfiniteQueryObserver.md
similarity index 100%
rename from docs/react/reference/InfiniteQueryObserver.md
rename to docs/framework/react/reference/InfiniteQueryObserver.md
diff --git a/docs/react/reference/MutationCache.md b/docs/framework/react/reference/MutationCache.md
similarity index 100%
rename from docs/react/reference/MutationCache.md
rename to docs/framework/react/reference/MutationCache.md
diff --git a/docs/react/reference/QueriesObserver.md b/docs/framework/react/reference/QueriesObserver.md
similarity index 100%
rename from docs/react/reference/QueriesObserver.md
rename to docs/framework/react/reference/QueriesObserver.md
diff --git a/docs/react/reference/QueryCache.md b/docs/framework/react/reference/QueryCache.md
similarity index 100%
rename from docs/react/reference/QueryCache.md
rename to docs/framework/react/reference/QueryCache.md
diff --git a/docs/react/reference/QueryClient.md b/docs/framework/react/reference/QueryClient.md
similarity index 100%
rename from docs/react/reference/QueryClient.md
rename to docs/framework/react/reference/QueryClient.md
diff --git a/docs/react/reference/QueryClientProvider.md b/docs/framework/react/reference/QueryClientProvider.md
similarity index 100%
rename from docs/react/reference/QueryClientProvider.md
rename to docs/framework/react/reference/QueryClientProvider.md
diff --git a/docs/react/reference/QueryErrorResetBoundary.md b/docs/framework/react/reference/QueryErrorResetBoundary.md
similarity index 100%
rename from docs/react/reference/QueryErrorResetBoundary.md
rename to docs/framework/react/reference/QueryErrorResetBoundary.md
diff --git a/docs/react/reference/QueryObserver.md b/docs/framework/react/reference/QueryObserver.md
similarity index 100%
rename from docs/react/reference/QueryObserver.md
rename to docs/framework/react/reference/QueryObserver.md
diff --git a/docs/react/reference/focusManager.md b/docs/framework/react/reference/focusManager.md
similarity index 100%
rename from docs/react/reference/focusManager.md
rename to docs/framework/react/reference/focusManager.md
diff --git a/docs/react/reference/hydration.md b/docs/framework/react/reference/hydration.md
similarity index 100%
rename from docs/react/reference/hydration.md
rename to docs/framework/react/reference/hydration.md
diff --git a/docs/react/reference/onlineManager.md b/docs/framework/react/reference/onlineManager.md
similarity index 100%
rename from docs/react/reference/onlineManager.md
rename to docs/framework/react/reference/onlineManager.md
diff --git a/docs/react/reference/useInfiniteQuery.md b/docs/framework/react/reference/useInfiniteQuery.md
similarity index 100%
rename from docs/react/reference/useInfiniteQuery.md
rename to docs/framework/react/reference/useInfiniteQuery.md
diff --git a/docs/react/reference/useIsFetching.md b/docs/framework/react/reference/useIsFetching.md
similarity index 100%
rename from docs/react/reference/useIsFetching.md
rename to docs/framework/react/reference/useIsFetching.md
diff --git a/docs/react/reference/useIsMutating.md b/docs/framework/react/reference/useIsMutating.md
similarity index 100%
rename from docs/react/reference/useIsMutating.md
rename to docs/framework/react/reference/useIsMutating.md
diff --git a/docs/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md
similarity index 100%
rename from docs/react/reference/useMutation.md
rename to docs/framework/react/reference/useMutation.md
diff --git a/docs/react/reference/useQueries.md b/docs/framework/react/reference/useQueries.md
similarity index 100%
rename from docs/react/reference/useQueries.md
rename to docs/framework/react/reference/useQueries.md
diff --git a/docs/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md
similarity index 100%
rename from docs/react/reference/useQuery.md
rename to docs/framework/react/reference/useQuery.md
diff --git a/docs/react/reference/useQueryClient.md b/docs/framework/react/reference/useQueryClient.md
similarity index 100%
rename from docs/react/reference/useQueryClient.md
rename to docs/framework/react/reference/useQueryClient.md
diff --git a/docs/react/reference/useQueryErrorResetBoundary.md b/docs/framework/react/reference/useQueryErrorResetBoundary.md
similarity index 100%
rename from docs/react/reference/useQueryErrorResetBoundary.md
rename to docs/framework/react/reference/useQueryErrorResetBoundary.md
diff --git a/docs/react/typescript.md b/docs/framework/react/typescript.md
similarity index 100%
rename from docs/react/typescript.md
rename to docs/framework/react/typescript.md
diff --git a/docs/react/videos.md b/docs/framework/react/videos.md
similarity index 100%
rename from docs/react/videos.md
rename to docs/framework/react/videos.md
diff --git a/docs/solid/overview.md b/docs/framework/solid/overview.md
similarity index 100%
rename from docs/solid/overview.md
rename to docs/framework/solid/overview.md
diff --git a/docs/svelte/installation.md b/docs/framework/svelte/installation.md
similarity index 100%
rename from docs/svelte/installation.md
rename to docs/framework/svelte/installation.md
diff --git a/docs/svelte/overview.md b/docs/framework/svelte/overview.md
similarity index 100%
rename from docs/svelte/overview.md
rename to docs/framework/svelte/overview.md
diff --git a/docs/svelte/reactivity.md b/docs/framework/svelte/reactivity.md
similarity index 100%
rename from docs/svelte/reactivity.md
rename to docs/framework/svelte/reactivity.md
diff --git a/docs/svelte/ssr.md b/docs/framework/svelte/ssr.md
similarity index 100%
rename from docs/svelte/ssr.md
rename to docs/framework/svelte/ssr.md
diff --git a/docs/vue/community/lukemorales-query-key-factory.md b/docs/framework/vue/community/lukemorales-query-key-factory.md
similarity index 100%
rename from docs/vue/community/lukemorales-query-key-factory.md
rename to docs/framework/vue/community/lukemorales-query-key-factory.md
diff --git a/docs/vue/community/tkdodos-blog.md b/docs/framework/vue/community/tkdodos-blog.md
similarity index 100%
rename from docs/vue/community/tkdodos-blog.md
rename to docs/framework/vue/community/tkdodos-blog.md
diff --git a/docs/vue/devtools.md b/docs/framework/vue/devtools.md
similarity index 100%
rename from docs/vue/devtools.md
rename to docs/framework/vue/devtools.md
diff --git a/docs/vue/graphql.md b/docs/framework/vue/graphql.md
similarity index 100%
rename from docs/vue/graphql.md
rename to docs/framework/vue/graphql.md
diff --git a/docs/vue/guides/background-fetching-indicators.md b/docs/framework/vue/guides/background-fetching-indicators.md
similarity index 100%
rename from docs/vue/guides/background-fetching-indicators.md
rename to docs/framework/vue/guides/background-fetching-indicators.md
diff --git a/docs/vue/guides/caching.md b/docs/framework/vue/guides/caching.md
similarity index 100%
rename from docs/vue/guides/caching.md
rename to docs/framework/vue/guides/caching.md
diff --git a/docs/vue/guides/custom-client.md b/docs/framework/vue/guides/custom-client.md
similarity index 100%
rename from docs/vue/guides/custom-client.md
rename to docs/framework/vue/guides/custom-client.md
diff --git a/docs/vue/guides/custom-logger.md b/docs/framework/vue/guides/custom-logger.md
similarity index 100%
rename from docs/vue/guides/custom-logger.md
rename to docs/framework/vue/guides/custom-logger.md
diff --git a/docs/vue/guides/default-query-function.md b/docs/framework/vue/guides/default-query-function.md
similarity index 100%
rename from docs/vue/guides/default-query-function.md
rename to docs/framework/vue/guides/default-query-function.md
diff --git a/docs/vue/guides/dependent-queries.md b/docs/framework/vue/guides/dependent-queries.md
similarity index 100%
rename from docs/vue/guides/dependent-queries.md
rename to docs/framework/vue/guides/dependent-queries.md
diff --git a/docs/vue/guides/disabling-queries.md b/docs/framework/vue/guides/disabling-queries.md
similarity index 100%
rename from docs/vue/guides/disabling-queries.md
rename to docs/framework/vue/guides/disabling-queries.md
diff --git a/docs/vue/guides/does-this-replace-client-state.md b/docs/framework/vue/guides/does-this-replace-client-state.md
similarity index 100%
rename from docs/vue/guides/does-this-replace-client-state.md
rename to docs/framework/vue/guides/does-this-replace-client-state.md
diff --git a/docs/vue/guides/filters.md b/docs/framework/vue/guides/filters.md
similarity index 100%
rename from docs/vue/guides/filters.md
rename to docs/framework/vue/guides/filters.md
diff --git a/docs/vue/guides/important-defaults.md b/docs/framework/vue/guides/important-defaults.md
similarity index 100%
rename from docs/vue/guides/important-defaults.md
rename to docs/framework/vue/guides/important-defaults.md
diff --git a/docs/vue/guides/infinite-queries.md b/docs/framework/vue/guides/infinite-queries.md
similarity index 100%
rename from docs/vue/guides/infinite-queries.md
rename to docs/framework/vue/guides/infinite-queries.md
diff --git a/docs/vue/guides/initial-query-data.md b/docs/framework/vue/guides/initial-query-data.md
similarity index 100%
rename from docs/vue/guides/initial-query-data.md
rename to docs/framework/vue/guides/initial-query-data.md
diff --git a/docs/vue/guides/invalidations-from-mutations.md b/docs/framework/vue/guides/invalidations-from-mutations.md
similarity index 100%
rename from docs/vue/guides/invalidations-from-mutations.md
rename to docs/framework/vue/guides/invalidations-from-mutations.md
diff --git a/docs/vue/guides/mutations.md b/docs/framework/vue/guides/mutations.md
similarity index 100%
rename from docs/vue/guides/mutations.md
rename to docs/framework/vue/guides/mutations.md
diff --git a/docs/vue/guides/network-mode.md b/docs/framework/vue/guides/network-mode.md
similarity index 100%
rename from docs/vue/guides/network-mode.md
rename to docs/framework/vue/guides/network-mode.md
diff --git a/docs/vue/guides/optimistic-updates.md b/docs/framework/vue/guides/optimistic-updates.md
similarity index 100%
rename from docs/vue/guides/optimistic-updates.md
rename to docs/framework/vue/guides/optimistic-updates.md
diff --git a/docs/vue/guides/paginated-queries.md b/docs/framework/vue/guides/paginated-queries.md
similarity index 100%
rename from docs/vue/guides/paginated-queries.md
rename to docs/framework/vue/guides/paginated-queries.md
diff --git a/docs/vue/guides/parallel-queries.md b/docs/framework/vue/guides/parallel-queries.md
similarity index 100%
rename from docs/vue/guides/parallel-queries.md
rename to docs/framework/vue/guides/parallel-queries.md
diff --git a/docs/vue/guides/placeholder-query-data.md b/docs/framework/vue/guides/placeholder-query-data.md
similarity index 100%
rename from docs/vue/guides/placeholder-query-data.md
rename to docs/framework/vue/guides/placeholder-query-data.md
diff --git a/docs/vue/guides/prefetching.md b/docs/framework/vue/guides/prefetching.md
similarity index 100%
rename from docs/vue/guides/prefetching.md
rename to docs/framework/vue/guides/prefetching.md
diff --git a/docs/vue/guides/queries.md b/docs/framework/vue/guides/queries.md
similarity index 100%
rename from docs/vue/guides/queries.md
rename to docs/framework/vue/guides/queries.md
diff --git a/docs/vue/guides/query-cancellation.md b/docs/framework/vue/guides/query-cancellation.md
similarity index 100%
rename from docs/vue/guides/query-cancellation.md
rename to docs/framework/vue/guides/query-cancellation.md
diff --git a/docs/vue/guides/query-functions.md b/docs/framework/vue/guides/query-functions.md
similarity index 100%
rename from docs/vue/guides/query-functions.md
rename to docs/framework/vue/guides/query-functions.md
diff --git a/docs/vue/guides/query-invalidation.md b/docs/framework/vue/guides/query-invalidation.md
similarity index 100%
rename from docs/vue/guides/query-invalidation.md
rename to docs/framework/vue/guides/query-invalidation.md
diff --git a/docs/vue/guides/query-keys.md b/docs/framework/vue/guides/query-keys.md
similarity index 100%
rename from docs/vue/guides/query-keys.md
rename to docs/framework/vue/guides/query-keys.md
diff --git a/docs/vue/guides/query-retries.md b/docs/framework/vue/guides/query-retries.md
similarity index 100%
rename from docs/vue/guides/query-retries.md
rename to docs/framework/vue/guides/query-retries.md
diff --git a/docs/vue/guides/scroll-restoration.md b/docs/framework/vue/guides/scroll-restoration.md
similarity index 100%
rename from docs/vue/guides/scroll-restoration.md
rename to docs/framework/vue/guides/scroll-restoration.md
diff --git a/docs/vue/guides/ssr.md b/docs/framework/vue/guides/ssr.md
similarity index 100%
rename from docs/vue/guides/ssr.md
rename to docs/framework/vue/guides/ssr.md
diff --git a/docs/vue/guides/suspense.md b/docs/framework/vue/guides/suspense.md
similarity index 100%
rename from docs/vue/guides/suspense.md
rename to docs/framework/vue/guides/suspense.md
diff --git a/docs/vue/guides/testing.md b/docs/framework/vue/guides/testing.md
similarity index 100%
rename from docs/vue/guides/testing.md
rename to docs/framework/vue/guides/testing.md
diff --git a/docs/vue/guides/updates-from-mutation-responses.md b/docs/framework/vue/guides/updates-from-mutation-responses.md
similarity index 100%
rename from docs/vue/guides/updates-from-mutation-responses.md
rename to docs/framework/vue/guides/updates-from-mutation-responses.md
diff --git a/docs/vue/guides/window-focus-refetching.md b/docs/framework/vue/guides/window-focus-refetching.md
similarity index 100%
rename from docs/vue/guides/window-focus-refetching.md
rename to docs/framework/vue/guides/window-focus-refetching.md
diff --git a/docs/vue/installation.md b/docs/framework/vue/installation.md
similarity index 100%
rename from docs/vue/installation.md
rename to docs/framework/vue/installation.md
diff --git a/docs/vue/overview.md b/docs/framework/vue/overview.md
similarity index 100%
rename from docs/vue/overview.md
rename to docs/framework/vue/overview.md
diff --git a/docs/vue/quick-start.md b/docs/framework/vue/quick-start.md
similarity index 100%
rename from docs/vue/quick-start.md
rename to docs/framework/vue/quick-start.md
diff --git a/docs/vue/reference/InfiniteQueryObserver.md b/docs/framework/vue/reference/InfiniteQueryObserver.md
similarity index 100%
rename from docs/vue/reference/InfiniteQueryObserver.md
rename to docs/framework/vue/reference/InfiniteQueryObserver.md
diff --git a/docs/vue/reference/MutationCache.md b/docs/framework/vue/reference/MutationCache.md
similarity index 100%
rename from docs/vue/reference/MutationCache.md
rename to docs/framework/vue/reference/MutationCache.md
diff --git a/docs/vue/reference/QueriesObserver.md b/docs/framework/vue/reference/QueriesObserver.md
similarity index 100%
rename from docs/vue/reference/QueriesObserver.md
rename to docs/framework/vue/reference/QueriesObserver.md
diff --git a/docs/vue/reference/QueryCache.md b/docs/framework/vue/reference/QueryCache.md
similarity index 100%
rename from docs/vue/reference/QueryCache.md
rename to docs/framework/vue/reference/QueryCache.md
diff --git a/docs/vue/reference/QueryClient.md b/docs/framework/vue/reference/QueryClient.md
similarity index 100%
rename from docs/vue/reference/QueryClient.md
rename to docs/framework/vue/reference/QueryClient.md
diff --git a/docs/vue/reference/QueryObserver.md b/docs/framework/vue/reference/QueryObserver.md
similarity index 100%
rename from docs/vue/reference/QueryObserver.md
rename to docs/framework/vue/reference/QueryObserver.md
diff --git a/docs/vue/reference/focusManager.md b/docs/framework/vue/reference/focusManager.md
similarity index 100%
rename from docs/vue/reference/focusManager.md
rename to docs/framework/vue/reference/focusManager.md
diff --git a/docs/vue/reference/hydration.md b/docs/framework/vue/reference/hydration.md
similarity index 100%
rename from docs/vue/reference/hydration.md
rename to docs/framework/vue/reference/hydration.md
diff --git a/docs/vue/reference/onlineManager.md b/docs/framework/vue/reference/onlineManager.md
similarity index 100%
rename from docs/vue/reference/onlineManager.md
rename to docs/framework/vue/reference/onlineManager.md
diff --git a/docs/vue/reference/useInfiniteQuery.md b/docs/framework/vue/reference/useInfiniteQuery.md
similarity index 100%
rename from docs/vue/reference/useInfiniteQuery.md
rename to docs/framework/vue/reference/useInfiniteQuery.md
diff --git a/docs/vue/reference/useIsFetching.md b/docs/framework/vue/reference/useIsFetching.md
similarity index 100%
rename from docs/vue/reference/useIsFetching.md
rename to docs/framework/vue/reference/useIsFetching.md
diff --git a/docs/vue/reference/useIsMutating.md b/docs/framework/vue/reference/useIsMutating.md
similarity index 100%
rename from docs/vue/reference/useIsMutating.md
rename to docs/framework/vue/reference/useIsMutating.md
diff --git a/docs/vue/reference/useMutation.md b/docs/framework/vue/reference/useMutation.md
similarity index 100%
rename from docs/vue/reference/useMutation.md
rename to docs/framework/vue/reference/useMutation.md
diff --git a/docs/vue/reference/useQueries.md b/docs/framework/vue/reference/useQueries.md
similarity index 100%
rename from docs/vue/reference/useQueries.md
rename to docs/framework/vue/reference/useQueries.md
diff --git a/docs/vue/reference/useQuery.md b/docs/framework/vue/reference/useQuery.md
similarity index 100%
rename from docs/vue/reference/useQuery.md
rename to docs/framework/vue/reference/useQuery.md
diff --git a/docs/vue/reference/useQueryClient.md b/docs/framework/vue/reference/useQueryClient.md
similarity index 100%
rename from docs/vue/reference/useQueryClient.md
rename to docs/framework/vue/reference/useQueryClient.md
diff --git a/docs/vue/typescript.md b/docs/framework/vue/typescript.md
similarity index 100%
rename from docs/vue/typescript.md
rename to docs/framework/vue/typescript.md

From bc67f244cd021b415ba4be4ead816f4b304f4836 Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Fri, 26 Jan 2024 19:37:30 +1100
Subject: [PATCH 18/45] docs: Implement broken link fixes from main

---
 docs/config.json                              | 104 ++++-----
 docs/framework/react/adapters/react-query.md  |  37 ----
 docs/framework/react/adapters/solid-query.md  | 205 ------------------
 docs/framework/react/adapters/svelte-query.md |   7 -
 docs/framework/react/adapters/vue-query.md    |  53 -----
 docs/framework/react/guides/mutations.md      |   6 +-
 docs/framework/react/guides/query-keys.md     |   2 +-
 docs/framework/react/quick-start.md           |   8 +-
 .../lukemorales-query-key-factory.md          |   2 +-
 docs/framework/vue/community/tkdodos-blog.md  |   2 +-
 docs/framework/vue/graphql.md                 |   2 +-
 .../guides/background-fetching-indicators.md  |   2 +-
 docs/framework/vue/guides/caching.md          |   2 +-
 docs/framework/vue/guides/custom-logger.md    |   2 +-
 .../vue/guides/default-query-function.md      |   2 +-
 .../framework/vue/guides/dependent-queries.md |   2 +-
 .../framework/vue/guides/disabling-queries.md |   2 +-
 .../guides/does-this-replace-client-state.md  |   5 +-
 docs/framework/vue/guides/filters.md          |   2 +-
 .../vue/guides/important-defaults.md          |   2 +-
 docs/framework/vue/guides/infinite-queries.md |   2 +-
 .../vue/guides/initial-query-data.md          |   2 +-
 .../guides/invalidations-from-mutations.md    |   2 +-
 docs/framework/vue/guides/mutations.md        |   2 +-
 docs/framework/vue/guides/network-mode.md     |   2 +-
 .../vue/guides/optimistic-updates.md          |   2 +-
 .../framework/vue/guides/paginated-queries.md |   2 +-
 docs/framework/vue/guides/parallel-queries.md |   2 +-
 .../vue/guides/placeholder-query-data.md      |   2 +-
 docs/framework/vue/guides/prefetching.md      |   2 +-
 docs/framework/vue/guides/queries.md          |   2 +-
 .../vue/guides/query-cancellation.md          |   2 +-
 docs/framework/vue/guides/query-functions.md  |   2 +-
 .../vue/guides/query-invalidation.md          |   2 +-
 docs/framework/vue/guides/query-keys.md       |   2 +-
 docs/framework/vue/guides/query-retries.md    |   2 +-
 .../vue/guides/scroll-restoration.md          |   2 +-
 .../guides/updates-from-mutation-responses.md |   2 +-
 .../vue/guides/window-focus-refetching.md     |   2 +-
 docs/framework/vue/overview.md                |   2 +-
 docs/framework/vue/quick-start.md             |   2 +-
 .../vue/reference/InfiniteQueryObserver.md    |   6 -
 docs/framework/vue/reference/MutationCache.md |   6 -
 .../vue/reference/QueriesObserver.md          |   6 -
 docs/framework/vue/reference/QueryCache.md    |   6 -
 docs/framework/vue/reference/QueryClient.md   |   6 -
 docs/framework/vue/reference/QueryObserver.md |   6 -
 docs/framework/vue/reference/focusManager.md  |   6 -
 docs/framework/vue/reference/hydration.md     |   4 +-
 docs/framework/vue/reference/onlineManager.md |   6 -
 .../vue/reference/useInfiniteQuery.md         |   2 +-
 docs/framework/vue/reference/useIsFetching.md |   2 +-
 docs/framework/vue/reference/useIsMutating.md |   2 +-
 docs/framework/vue/reference/useMutation.md   |   2 +-
 docs/framework/vue/reference/useQueries.md    |   2 +-
 docs/framework/vue/reference/useQuery.md      |   2 +-
 .../framework/vue/reference/useQueryClient.md |   2 +-
 docs/framework/vue/typescript.md              |  12 +-
 .../reference/InfiniteQueryObserver.md        |   0
 .../react => }/reference/MutationCache.md     |   0
 .../react => }/reference/QueriesObserver.md   |   0
 .../react => }/reference/QueryCache.md        |   0
 .../react => }/reference/QueryClient.md       |   0
 .../react => }/reference/QueryObserver.md     |   0
 .../react => }/reference/focusManager.md      |   0
 .../react => }/reference/onlineManager.md     |   0
 66 files changed, 94 insertions(+), 475 deletions(-)
 delete mode 100644 docs/framework/react/adapters/react-query.md
 delete mode 100644 docs/framework/react/adapters/solid-query.md
 delete mode 100644 docs/framework/react/adapters/svelte-query.md
 delete mode 100644 docs/framework/react/adapters/vue-query.md
 delete mode 100644 docs/framework/vue/reference/InfiniteQueryObserver.md
 delete mode 100644 docs/framework/vue/reference/MutationCache.md
 delete mode 100644 docs/framework/vue/reference/QueriesObserver.md
 delete mode 100644 docs/framework/vue/reference/QueryCache.md
 delete mode 100644 docs/framework/vue/reference/QueryClient.md
 delete mode 100644 docs/framework/vue/reference/QueryObserver.md
 delete mode 100644 docs/framework/vue/reference/focusManager.md
 delete mode 100644 docs/framework/vue/reference/onlineManager.md
 rename docs/{framework/react => }/reference/InfiniteQueryObserver.md (100%)
 rename docs/{framework/react => }/reference/MutationCache.md (100%)
 rename docs/{framework/react => }/reference/QueriesObserver.md (100%)
 rename docs/{framework/react => }/reference/QueryCache.md (100%)
 rename docs/{framework/react => }/reference/QueryClient.md (100%)
 rename docs/{framework/react => }/reference/QueryObserver.md (100%)
 rename docs/{framework/react => }/reference/focusManager.md (100%)
 rename docs/{framework/react => }/reference/onlineManager.md (100%)

diff --git a/docs/config.json b/docs/config.json
index 001be90c97..048e8b460d 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -5,7 +5,45 @@
     "apiKey": "93e0b83eb0b5af4549b6bf47f90af3f7",
     "indexName": "tanstack-query"
   },
-  "menu": [],
+  "menu": [
+    {
+      "label": "API Reference",
+      "children": [
+        {
+          "label": "QueryClient",
+          "to": "reference/QueryClient"
+        },
+        {
+          "label": "QueryCache",
+          "to": "reference/QueryCache"
+        },
+        {
+          "label": "MutationCache",
+          "to": "reference/MutationCache"
+        },
+        {
+          "label": "QueryObserver",
+          "to": "reference/QueryObserver"
+        },
+        {
+          "label": "InfiniteQueryObserver",
+          "to": "reference/InfiniteQueryObserver"
+        },
+        {
+          "label": "QueriesObserver",
+          "to": "reference/QueriesObserver"
+        },
+        {
+          "label": "focusManager",
+          "to": "reference/focusManager"
+        },
+        {
+          "label": "onlineManager",
+          "to": "reference/onlineManager"
+        }
+      ]
+    }
+  ],
   "frameworkMenus": [
     {
       "framework": "react",
@@ -367,10 +405,6 @@
               "label": "useIsMutating",
               "to": "framework/react/reference/useIsMutating"
             },
-            {
-              "label": "QueryClient",
-              "to": "framework/react/reference/QueryClient"
-            },
             {
               "label": "QueryClientProvider",
               "to": "framework/react/reference/QueryClientProvider"
@@ -379,26 +413,6 @@
               "label": "useQueryClient",
               "to": "framework/react/reference/useQueryClient"
             },
-            {
-              "label": "QueryCache",
-              "to": "framework/react/reference/QueryCache"
-            },
-            {
-              "label": "MutationCache",
-              "to": "framework/react/reference/MutationCache"
-            },
-            {
-              "label": "QueryObserver",
-              "to": "framework/react/reference/QueryObserver"
-            },
-            {
-              "label": "InfiniteQueryObserver",
-              "to": "framework/react/reference/InfiniteQueryObserver"
-            },
-            {
-              "label": "QueriesObserver",
-              "to": "framework/react/reference/QueriesObserver"
-            },
             {
               "label": "QueryErrorResetBoundary",
               "to": "framework/react/reference/QueryErrorResetBoundary"
@@ -407,14 +421,6 @@
               "label": "useQueryErrorResetBoundary",
               "to": "framework/react/reference/useQueryErrorResetBoundary"
             },
-            {
-              "label": "focusManager",
-              "to": "framework/react/reference/focusManager"
-            },
-            {
-              "label": "onlineManager",
-              "to": "framework/react/reference/onlineManager"
-            },
             {
               "label": "hydration",
               "to": "framework/react/reference/hydration"
@@ -663,38 +669,6 @@
               "label": "useQueryClient",
               "to": "framework/vue/reference/useQueryClient"
             },
-            {
-              "label": "QueryClient",
-              "to": "framework/vue/reference/QueryClient"
-            },
-            {
-              "label": "QueryCache",
-              "to": "framework/vue/reference/QueryCache"
-            },
-            {
-              "label": "MutationCache",
-              "to": "framework/vue/reference/MutationCache"
-            },
-            {
-              "label": "QueryObserver",
-              "to": "framework/vue/reference/QueryObserver"
-            },
-            {
-              "label": "InfiniteQueryObserver",
-              "to": "framework/vue/reference/InfiniteQueryObserver"
-            },
-            {
-              "label": "QueriesObserver",
-              "to": "framework/vue/reference/QueriesObserver"
-            },
-            {
-              "label": "focusManager",
-              "to": "framework/vue/reference/focusManager"
-            },
-            {
-              "label": "onlineManager",
-              "to": "framework/vue/reference/onlineManager"
-            },
             {
               "label": "hydration",
               "to": "framework/vue/reference/hydration"
diff --git a/docs/framework/react/adapters/react-query.md b/docs/framework/react/adapters/react-query.md
deleted file mode 100644
index 226effa957..0000000000
--- a/docs/framework/react/adapters/react-query.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: React Query
----
-
-The `react-query` package offers a 1st-class API for using TanStack Query via React. However, all of the primitives you receive from these hooks are core APIs that are shared across all of the TanStack Adapters including the Query Client, query results, query subscriptions, etc.
-
-## Example
-
-```tsx
-import { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query'
-
-const queryClient = new QueryClient()
-
-function Example() {
-  const query = useQuery({ queryKey: ['todos'], queryFn: fetchTodos })
-
-  return (
-    <div>
-      {query.isLoading
-        ? 'Loading...'
-        : query.isError
-        ? 'Error!'
-        : query.data
-        ? query.data.map((todo) => <div key={todo.id}>{todo.title}</div>)
-        : null}
-    </div>
-  )
-}
-
-function App () {
-  return (
-    <QueryClientProvider client={queryClient}>
-      <Example />
-    </QueryClientProvider>
-  )
-}
-```
diff --git a/docs/framework/react/adapters/solid-query.md b/docs/framework/react/adapters/solid-query.md
deleted file mode 100644
index bf49538831..0000000000
--- a/docs/framework/react/adapters/solid-query.md
+++ /dev/null
@@ -1,205 +0,0 @@
----
-title: Solid Query 
----
-
-The `@tanstack/solid-query` package provides a 1st-class API for using TanStack Query with SolidJS. 
-
-## Example
-
-```tsx
-import { QueryClient, QueryClientProvider, createQuery } from '@tanstack/solid-query'
-import { Switch, Match, For } from 'solid-js'
-
-const queryClient = new QueryClient()
-
-function Example() {
-  const query = createQuery(() => ['todos'], fetchTodos)
-
-  return (
-    <div>
-      <Switch>
-        <Match when={query.isLoading}>
-          <p>Loading...</p>
-        </Match>
-        <Match when={query.isError}>
-          <p>Error: {query.error.message}</p>
-        </Match>
-        <Match when={query.isSuccess}>
-          <For each={query.data}>
-            {(todo) => <p>{todo.title}</p>}
-          </For>
-        </Match>
-      </Switch>
-    </div>
-  )
-}
-
-function App() {
-  return (
-    <QueryClientProvider client={queryClient}>
-      <Example />
-    </QueryClientProvider>
-  )
-}
-
-```
-
-## Available Functions
-
-Solid Query offers useful primitives and functions that will make managing server state in SolidJS apps easier.
-
-- `createQuery`
-- `createQueries`
-- `createInfiniteQueries`
-- `createMutation`
-- `useIsFetching`
-- `useIsMutating`
-- `useQueryClient`
-- `QueryClient`
-- `QueryClientProvider`
-
-
-
-
-## Important Differences between Solid Query & React Query
-
-Solid Query offers an API similar to  React Query, but there are some key differences to be mindful of.
-
-- To maintain their reactivity, Query keys need to be wrapped inside a function while using `createQuery`, `createQueries`, `createInfiniteQuery` and `useIsFetching`.
-
-```tsx
-// ❌ react version
-useQuery(["todos", todo], fetchTodos)
-
-// ✅ solid version
-createQuery(() => ["todos", todo()], fetchTodos)
-```
-
-- Suspense works for queries out of the box if you access the query data inside a `<Suspense>` boundary.
-
-```tsx
-import { For, Suspense } from 'solid-js'
-
-function Example() {
-  const query = createQuery(() => ['todos'], fetchTodos)
-  return (
-    <div>
-      {/* ✅ Will trigger loading fallback, data accessed in a suspense context. */}
-      <Suspense fallback={"Loading..."}>
-        <For each={query.data}>{(todo) => <div>{todo.title}</div>}</For>
-      </Suspense>
-      {/* ❌ Will not trigger loading fallback, data not accessed in a suspense context. */}
-      <For each={query.data}>{(todo) => <div>{todo.title}</div>}</For>
-    </div>
-  )
-}
-```
-
-- Solid Query primitives (`createX`) do not support destructuring. The return value from these functions is a store, and their properties are only tracked in a reactive context.
-
-```tsx
-import { QueryClient, QueryClientProvider, createQuery } from '@tanstack/solid-query'
-import { Match, Switch } from 'solid-js'
-
-const queryClient = new QueryClient()
-
-export default function App() {
-  return (
-    <QueryClientProvider client={queryClient}>
-      <Example />
-    </QueryClientProvider>
-  )
-}
-
-function Example() {
-  // ❌ react version -- supports destructing outside reactive context
-  // const { isLoading, error, data } = useQuery(['repoData'], () =>
-  //   fetch('https://api.github.com/repos/tannerlinsley/react-query').then(res =>
-  //     res.json()
-  //   )
-  // )
-
-  // ✅ solid version -- does not support destructuring outside reactive context
-  const query = createQuery(
-    () => ['repoData'],
-    () =>
-      fetch('https://api.github.com/repos/tannerlinsley/react-query').then(
-        (res) => res.json(),
-      ),
-  )
-
-  // ✅ access query properties in JSX reactive context
-  return (
-    <Switch>
-      <Match when={query.isLoading}>Loading...</Match>
-      <Match when={query.isError}>Error: {query.error.message}</Match>
-      <Match when={query.isSuccess}>
-        <div>
-          <h1>{query.data.name}</h1>
-          <p>{query.data.description}</p>
-          <strong>👀 {query.data.subscribers_count}</strong>{' '}
-          <strong>✨ {query.data.stargazers_count}</strong>{' '}
-          <strong>🍴 {query.data.forks_count}</strong>
-        </div>
-      </Match>
-    </Switch>
-  )
-}
-```
-
-- If you want options to be reactive you need to pass them using object getter syntax. This may look strange at first but it leads to more idiomatic solid code.
-
-```tsx
-import {
-  QueryClient,
-  QueryClientProvider,
-  createQuery,
-} from '@tanstack/solid-query'
-import { createSignal, For } from 'solid-js'
-
-const queryClient = new QueryClient()
-
-function Example() {
-  const [enabled, setEnabled] = createSignal(false)
-  const query = createQuery(() => ['todos'], fetchTodos, {
-    // ❌ passing a signal directly is not reactive
-    // enabled: enabled(),
-
-    // ✅ passing a function that returns a signal is reactive
-    get enabled() {
-      return enabled()
-    },
-  })
-
-  return (
-    <div>
-      <Switch>
-        <Match when={query.isLoading}>
-          <p>Loading...</p>
-        </Match>
-        <Match when={query.isError}>
-          <p>Error: {query.error.message}</p>
-        </Match>
-        <Match when={query.isSuccess}>
-          <For each={query.data}>
-            {(todo) => <p>{todo.title}</p>}
-          </For>
-        </Match>
-      </Switch>
-      <button onClick={() => setEnabled(!enabled())}>Toggle enabled</button>
-    </div>
-  )
-}
-
-function App() {
-  return (
-    <QueryClientProvider client={queryClient}>
-      <Example />
-    </QueryClientProvider>
-  )
-}
-```
-
-- Errors can be caught and reset using SolidJS' native `ErrorBoundary` component. `QueryErrorResetBoundary` is not needed with Solid Query
-
-- Since Property tracking is handled through Solid's fine grained reactivity, options like `notifyOnChangeProps` are not needed
\ No newline at end of file
diff --git a/docs/framework/react/adapters/svelte-query.md b/docs/framework/react/adapters/svelte-query.md
deleted file mode 100644
index 0d576b3b69..0000000000
--- a/docs/framework/react/adapters/svelte-query.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Svelte Query (Coming Soon)
----
-
-> ⚠️ This module has not yet been developed. It requires an adapter similar to `react-query` to work. We estimate the amount of code to do this is low-to-moderate, but does require familiarity with the Svelte framework. If you would like to contribute this adapter, please open a PR!
-
-The `@tanstack/svelte-query` package offers a 1st-class API for using TanStack Query via Svelte. However, all of the primitives you receive from this API are core APIs that are shared across all of the TanStack Adapters including the Query Client, query results, query subscriptions, etc.
diff --git a/docs/framework/react/adapters/vue-query.md b/docs/framework/react/adapters/vue-query.md
deleted file mode 100644
index 09a822b48d..0000000000
--- a/docs/framework/react/adapters/vue-query.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Vue Query
----
-
-The `vue-query` package offers a 1st-class API for using TanStack Query via Vue. However, all of the primitives you receive from these hooks are core APIs that are shared across all of the TanStack Adapters including the Query Client, query results, query subscriptions, etc.
-
-## Example
-
-This example very briefly illustrates the 3 core concepts of Vue Query:
-
-- [Queries](guides/queries)
-- [Mutations](guides/mutations)
-- [Query Invalidation](guides/query-invalidation)
-
-```vue
-<script setup>
-import { useQueryClient, useQuery, useMutation } from "@tanstack/vue-query";
-
-// Access QueryClient instance
-const queryClient = useQueryClient();
-
-// Query
-const { isLoading, isError, data, error } = useQuery({ queryKey: ['todos'], queryFn: getTodos });
-
-// Mutation
-const mutation = useMutation({
-  mutationFn: postTodo,
-  onSuccess: () => {
-    // Invalidate and refetch
-    queryClient.invalidateQueries({ queryKey: ["todos"] });
-  },
-});
-
-function onButtonClick() {
-  mutation.mutate({
-    id: Date.now(),
-    title: "Do Laundry",
-  });
-}
-</script>
-
-<template>
-  <span v-if="isLoading">Loading...</span>
-  <span v-else-if="isError">Error: {{ error.message }}</span>
-  <!-- We can assume by this point that `isSuccess === true` -->
-  <ul v-else>
-    <li v-for="todo in data" :key="todo.id">{{ todo.title }}</li>
-  </ul>
-  <button @click="onButtonClick">Add Todo</button>
-</template>
-```
-
-These three concepts make up most of the core functionality of Vue Query. The next sections of the documentation will go over each of these core concepts in great detail.
diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md
index 478df96092..634d5fb90d 100644
--- a/docs/framework/react/guides/mutations.md
+++ b/docs/framework/react/guides/mutations.md
@@ -229,9 +229,7 @@ useMutation({
   onSuccess: (data, error, variables, context) => {
     // Will be called 3 times
   },
-})
-
-[('Todo 1', 'Todo 2', 'Todo 3')].forEach((todo) => {
+})[('Todo 1', 'Todo 2', 'Todo 3')].forEach((todo) => {
   mutate(todo, {
     onSuccess: (data, error, variables, context) => {
       // Will execute only once, for the last mutation (Todo 3),
@@ -385,7 +383,7 @@ export default function App() {
 
 [//]: # 'Example11'
 
-We also have an extensive [offline example](../examples/react/offline) that covers both queries and mutations.
+We also have an extensive [offline example](../examples/offline) that covers both queries and mutations.
 
 [//]: # 'Materials'
 
diff --git a/docs/framework/react/guides/query-keys.md b/docs/framework/react/guides/query-keys.md
index f22115cb4a..e98b9f6b63 100644
--- a/docs/framework/react/guides/query-keys.md
+++ b/docs/framework/react/guides/query-keys.md
@@ -91,7 +91,7 @@ function Todos({ todoId }) {
 
 [//]: # 'Example5'
 
-Note that query keys act as dependencies for your query functions. Adding dependent variables to your query key will ensure that queries are cached independently, and that any time a variable changes, *queries will be refetched automatically* (depending on your `staleTime` settings). See the [exhaustive-deps](../eslint/exhaustive-deps) section for more information and examples.
+Note that query keys act as dependencies for your query functions. Adding dependent variables to your query key will ensure that queries are cached independently, and that any time a variable changes, _queries will be refetched automatically_ (depending on your `staleTime` settings). See the [exhaustive-deps](../eslint/exhaustive-deps) section for more information and examples.
 
 [//]: # 'Materials'
 
diff --git a/docs/framework/react/quick-start.md b/docs/framework/react/quick-start.md
index 58eb15900c..16f430d51d 100644
--- a/docs/framework/react/quick-start.md
+++ b/docs/framework/react/quick-start.md
@@ -11,7 +11,7 @@ This code snippet very briefly illustrates the 3 core concepts of React Query:
 
 [//]: # 'Example'
 
-If you're looking for a fully functioning example, please have a look at our [simple codesandbox example](../examples/react/simple)
+If you're looking for a fully functioning example, please have a look at our [simple codesandbox example](./examples/simple)
 
 ```tsx
 import {
@@ -53,11 +53,7 @@ function Todos() {
 
   return (
     <div>
-      <ul>
-        {query.data?.map((todo) => (
-          <li key={todo.id}>{todo.title}</li>
-        ))}
-      </ul>
+      <ul>{query.data?.map((todo) => <li key={todo.id}>{todo.title}</li>)}</ul>
 
       <button
         onClick={() => {
diff --git a/docs/framework/vue/community/lukemorales-query-key-factory.md b/docs/framework/vue/community/lukemorales-query-key-factory.md
index 73f4b9ec8d..697d27173e 100644
--- a/docs/framework/vue/community/lukemorales-query-key-factory.md
+++ b/docs/framework/vue/community/lukemorales-query-key-factory.md
@@ -1,5 +1,5 @@
 ---
 id: lukemorales-query-key-factory
 title: Query Key Factory
-ref: docs/react/community/lukemorales-query-key-factory.md
+ref: docs/framework/react/community/lukemorales-query-key-factory.md
 ---
diff --git a/docs/framework/vue/community/tkdodos-blog.md b/docs/framework/vue/community/tkdodos-blog.md
index 4c316813dc..16c937b2ae 100644
--- a/docs/framework/vue/community/tkdodos-blog.md
+++ b/docs/framework/vue/community/tkdodos-blog.md
@@ -1,5 +1,5 @@
 ---
 id: tkdodos-blog
 title: TkDodo's Blog
-ref: docs/react/community/tkdodos-blog.md
+ref: docs/framework/react/community/tkdodos-blog.md
 ---
diff --git a/docs/framework/vue/graphql.md b/docs/framework/vue/graphql.md
index dfd2c02a42..3b4d5e6a59 100644
--- a/docs/framework/vue/graphql.md
+++ b/docs/framework/vue/graphql.md
@@ -1,7 +1,7 @@
 ---
 id: graphql
 title: GraphQL
-ref: docs/react/graphql.md
+ref: docs/framework/react/graphql.md
 replace: { 'React': 'Vue', 'react-query': 'vue-query' }
 ---
 
diff --git a/docs/framework/vue/guides/background-fetching-indicators.md b/docs/framework/vue/guides/background-fetching-indicators.md
index 125a176950..1bbfe14e24 100644
--- a/docs/framework/vue/guides/background-fetching-indicators.md
+++ b/docs/framework/vue/guides/background-fetching-indicators.md
@@ -1,7 +1,7 @@
 ---
 id: background-fetching-indicators
 title: Background Fetching Indicators
-ref: docs/react/guides/background-fetching-indicators.md
+ref: docs/framework/react/guides/background-fetching-indicators.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/caching.md b/docs/framework/vue/guides/caching.md
index 4783eddc0f..de22679eb7 100644
--- a/docs/framework/vue/guides/caching.md
+++ b/docs/framework/vue/guides/caching.md
@@ -1,5 +1,5 @@
 ---
 id: caching
 title: Caching Examples
-ref: docs/react/guides/caching.md
+ref: docs/framework/react/guides/caching.md
 ---
diff --git a/docs/framework/vue/guides/custom-logger.md b/docs/framework/vue/guides/custom-logger.md
index fe6d7ce393..4bdadd2631 100644
--- a/docs/framework/vue/guides/custom-logger.md
+++ b/docs/framework/vue/guides/custom-logger.md
@@ -1,5 +1,5 @@
 ---
 id: custom-logger
 title: Custom Logger
-ref: docs/react/guides/custom-logger.md
+ref: docs/framework/react/guides/custom-logger.md
 ---
diff --git a/docs/framework/vue/guides/default-query-function.md b/docs/framework/vue/guides/default-query-function.md
index 4b004497d4..c777569d1a 100644
--- a/docs/framework/vue/guides/default-query-function.md
+++ b/docs/framework/vue/guides/default-query-function.md
@@ -1,7 +1,7 @@
 ---
 id: default-query-function
 title: Default Query Function
-ref: docs/react/guides/default-query-function.md
+ref: docs/framework/react/guides/default-query-function.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/dependent-queries.md b/docs/framework/vue/guides/dependent-queries.md
index bfad03a546..c2c759ffd7 100644
--- a/docs/framework/vue/guides/dependent-queries.md
+++ b/docs/framework/vue/guides/dependent-queries.md
@@ -1,7 +1,7 @@
 ---
 id: dependent-queries
 title: Dependent Queries
-ref: docs/react/guides/dependent-queries.md
+ref: docs/framework/react/guides/dependent-queries.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/disabling-queries.md b/docs/framework/vue/guides/disabling-queries.md
index 6be1a715cd..46a17e72f5 100644
--- a/docs/framework/vue/guides/disabling-queries.md
+++ b/docs/framework/vue/guides/disabling-queries.md
@@ -1,7 +1,7 @@
 ---
 id: disabling-queries
 title: Disabling/Pausing Queries
-ref: docs/react/guides/disabling-queries.md
+ref: docs/framework/react/guides/disabling-queries.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/does-this-replace-client-state.md b/docs/framework/vue/guides/does-this-replace-client-state.md
index a62cecefef..7e790beead 100644
--- a/docs/framework/vue/guides/does-this-replace-client-state.md
+++ b/docs/framework/vue/guides/does-this-replace-client-state.md
@@ -1,7 +1,6 @@
 ---
 id: does-this-replace-client-state
 title: Does Vue Query replace Vuex, Pinia or other global state managers?
-ref: docs/react/guides/does-this-replace-client-state.md
-replace:
-  { 'Redux, MobX': 'Vuex, Pinia' }
+ref: docs/framework/react/guides/does-this-replace-client-state.md
+replace: { 'Redux, MobX': 'Vuex, Pinia' }
 ---
diff --git a/docs/framework/vue/guides/filters.md b/docs/framework/vue/guides/filters.md
index a92a902b48..870da98c28 100644
--- a/docs/framework/vue/guides/filters.md
+++ b/docs/framework/vue/guides/filters.md
@@ -1,5 +1,5 @@
 ---
 id: filters
 title: Filters
-ref: docs/react/guides/filters.md
+ref: docs/framework/react/guides/filters.md
 ---
diff --git a/docs/framework/vue/guides/important-defaults.md b/docs/framework/vue/guides/important-defaults.md
index 083145cfb5..21cd181428 100644
--- a/docs/framework/vue/guides/important-defaults.md
+++ b/docs/framework/vue/guides/important-defaults.md
@@ -1,7 +1,7 @@
 ---
 id: important-defaults
 title: Important Defaults
-ref: docs/react/guides/important-defaults.md
+ref: docs/framework/react/guides/important-defaults.md
 ---
 
 [//]: # 'Materials'
diff --git a/docs/framework/vue/guides/infinite-queries.md b/docs/framework/vue/guides/infinite-queries.md
index e84309d521..72b8ba20b4 100644
--- a/docs/framework/vue/guides/infinite-queries.md
+++ b/docs/framework/vue/guides/infinite-queries.md
@@ -1,7 +1,7 @@
 ---
 id: infinite-queries
 title: Infinite Queries
-ref: docs/react/guides/infinite-queries.md
+ref: docs/framework/react/guides/infinite-queries.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/initial-query-data.md b/docs/framework/vue/guides/initial-query-data.md
index de510634a7..e14c064ec8 100644
--- a/docs/framework/vue/guides/initial-query-data.md
+++ b/docs/framework/vue/guides/initial-query-data.md
@@ -1,7 +1,7 @@
 ---
 id: initial-query-data
 title: Initial Query Data
-ref: docs/react/guides/initial-query-data.md
+ref: docs/framework/react/guides/initial-query-data.md
 ---
 
 [//]: # 'Materials'
diff --git a/docs/framework/vue/guides/invalidations-from-mutations.md b/docs/framework/vue/guides/invalidations-from-mutations.md
index 5059d654ae..9632d17491 100644
--- a/docs/framework/vue/guides/invalidations-from-mutations.md
+++ b/docs/framework/vue/guides/invalidations-from-mutations.md
@@ -1,7 +1,7 @@
 ---
 id: invalidations-from-mutations
 title: Invalidations from Mutations
-ref: docs/react/guides/invalidations-from-mutations.md
+ref: docs/framework/react/guides/invalidations-from-mutations.md
 ---
 
 [//]: # 'Example2'
diff --git a/docs/framework/vue/guides/mutations.md b/docs/framework/vue/guides/mutations.md
index 7d0d5ebb34..7fba9bef9c 100644
--- a/docs/framework/vue/guides/mutations.md
+++ b/docs/framework/vue/guides/mutations.md
@@ -1,7 +1,7 @@
 ---
 id: mutations
 title: Mutations
-ref: docs/react/guides/mutations.md
+ref: docs/framework/react/guides/mutations.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/network-mode.md b/docs/framework/vue/guides/network-mode.md
index a8cd44e244..e773e73ff0 100644
--- a/docs/framework/vue/guides/network-mode.md
+++ b/docs/framework/vue/guides/network-mode.md
@@ -1,5 +1,5 @@
 ---
 id: network-mode
 title: Network Mode
-ref: docs/react/guides/network-mode.md
+ref: docs/framework/react/guides/network-mode.md
 ---
diff --git a/docs/framework/vue/guides/optimistic-updates.md b/docs/framework/vue/guides/optimistic-updates.md
index 0cb1926f0f..57a25aeba8 100644
--- a/docs/framework/vue/guides/optimistic-updates.md
+++ b/docs/framework/vue/guides/optimistic-updates.md
@@ -1,7 +1,7 @@
 ---
 id: optimistic-updates
 title: Optimistic Updates
-ref: docs/react/guides/optimistic-updates.md
+ref: docs/framework/react/guides/optimistic-updates.md
 ---
 
 When you optimistically update your state before performing a mutation, there is a chance that the mutation will fail. In most of these failure cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.
diff --git a/docs/framework/vue/guides/paginated-queries.md b/docs/framework/vue/guides/paginated-queries.md
index 31e3ec0431..96926ce25c 100644
--- a/docs/framework/vue/guides/paginated-queries.md
+++ b/docs/framework/vue/guides/paginated-queries.md
@@ -1,7 +1,7 @@
 ---
 id: paginated-queries
 title: Paginated / Lagged Queries
-ref: docs/react/guides/paginated-queries.md
+ref: docs/framework/react/guides/paginated-queries.md
 ---
 
 [//]: # 'Example2'
diff --git a/docs/framework/vue/guides/parallel-queries.md b/docs/framework/vue/guides/parallel-queries.md
index 98aad95152..4942c9d7d9 100644
--- a/docs/framework/vue/guides/parallel-queries.md
+++ b/docs/framework/vue/guides/parallel-queries.md
@@ -1,7 +1,7 @@
 ---
 id: parallel-queries
 title: Parallel Queries
-ref: docs/react/guides/parallel-queries.md
+ref: docs/framework/react/guides/parallel-queries.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/placeholder-query-data.md b/docs/framework/vue/guides/placeholder-query-data.md
index 6075f554c6..af94745656 100644
--- a/docs/framework/vue/guides/placeholder-query-data.md
+++ b/docs/framework/vue/guides/placeholder-query-data.md
@@ -1,7 +1,7 @@
 ---
 id: placeholder-query-data
 title: Placeholder Query Data
-ref: docs/react/guides/placeholder-query-data.md
+ref: docs/framework/react/guides/placeholder-query-data.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/prefetching.md b/docs/framework/vue/guides/prefetching.md
index b4e4f62020..28fa6c6441 100644
--- a/docs/framework/vue/guides/prefetching.md
+++ b/docs/framework/vue/guides/prefetching.md
@@ -1,5 +1,5 @@
 ---
 id: prefetching
 title: Prefetching
-ref: docs/react/guides/prefetching.md
+ref: docs/framework/react/guides/prefetching.md
 ---
diff --git a/docs/framework/vue/guides/queries.md b/docs/framework/vue/guides/queries.md
index 81cac5e0eb..813d10768e 100644
--- a/docs/framework/vue/guides/queries.md
+++ b/docs/framework/vue/guides/queries.md
@@ -1,7 +1,7 @@
 ---
 id: queries
 title: Queries
-ref: docs/react/guides/queries.md
+ref: docs/framework/react/guides/queries.md
 ---
 
 [//]: # 'Example'
diff --git a/docs/framework/vue/guides/query-cancellation.md b/docs/framework/vue/guides/query-cancellation.md
index 7b1ed7039f..48009932c5 100644
--- a/docs/framework/vue/guides/query-cancellation.md
+++ b/docs/framework/vue/guides/query-cancellation.md
@@ -1,7 +1,7 @@
 ---
 id: query-cancellation
 title: Query Cancellation
-ref: docs/react/guides/query-cancellation.md
+ref: docs/framework/react/guides/query-cancellation.md
 ---
 
 [//]: # 'Example7'
diff --git a/docs/framework/vue/guides/query-functions.md b/docs/framework/vue/guides/query-functions.md
index f13d03b090..c0a3d963ad 100644
--- a/docs/framework/vue/guides/query-functions.md
+++ b/docs/framework/vue/guides/query-functions.md
@@ -1,7 +1,7 @@
 ---
 id: query-functions
 title: Query Functions
-ref: docs/react/guides/query-functions.md
+ref: docs/framework/react/guides/query-functions.md
 ---
 
 [//]: # 'Example4'
diff --git a/docs/framework/vue/guides/query-invalidation.md b/docs/framework/vue/guides/query-invalidation.md
index cc0e6605a9..0228310d45 100644
--- a/docs/framework/vue/guides/query-invalidation.md
+++ b/docs/framework/vue/guides/query-invalidation.md
@@ -1,6 +1,6 @@
 ---
 id: query-invalidation
 title: Query Invalidation
-ref: docs/react/guides/query-invalidation.md
+ref: docs/framework/react/guides/query-invalidation.md
 replace: { 'react-query': 'vue-query' }
 ---
diff --git a/docs/framework/vue/guides/query-keys.md b/docs/framework/vue/guides/query-keys.md
index 7c328adbb2..a09aa36443 100644
--- a/docs/framework/vue/guides/query-keys.md
+++ b/docs/framework/vue/guides/query-keys.md
@@ -1,7 +1,7 @@
 ---
 id: query-keys
 title: Query Keys
-ref: docs/react/guides/query-keys.md
+ref: docs/framework/react/guides/query-keys.md
 ---
 
 [//]: # 'Example5'
diff --git a/docs/framework/vue/guides/query-retries.md b/docs/framework/vue/guides/query-retries.md
index e18c3f570d..33163b5e3a 100644
--- a/docs/framework/vue/guides/query-retries.md
+++ b/docs/framework/vue/guides/query-retries.md
@@ -1,7 +1,7 @@
 ---
 id: query-retries
 title: Query Retries
-ref: docs/react/guides/query-retries.md
+ref: docs/framework/react/guides/query-retries.md
 replace: { 'Provider': 'Plugin' }
 ---
 
diff --git a/docs/framework/vue/guides/scroll-restoration.md b/docs/framework/vue/guides/scroll-restoration.md
index 971ee8ff40..cb66c4b463 100644
--- a/docs/framework/vue/guides/scroll-restoration.md
+++ b/docs/framework/vue/guides/scroll-restoration.md
@@ -1,5 +1,5 @@
 ---
 id: scroll-restoration
 title: Scroll Restoration
-ref: docs/react/guides/scroll-restoration.md
+ref: docs/framework/react/guides/scroll-restoration.md
 ---
diff --git a/docs/framework/vue/guides/updates-from-mutation-responses.md b/docs/framework/vue/guides/updates-from-mutation-responses.md
index 5f0edb0cd5..c41819be99 100644
--- a/docs/framework/vue/guides/updates-from-mutation-responses.md
+++ b/docs/framework/vue/guides/updates-from-mutation-responses.md
@@ -1,5 +1,5 @@
 ---
 id: updates-from-mutation-responses
 title: Updates from Mutation Responses
-ref: docs/react/guides/updates-from-mutation-responses.md
+ref: docs/framework/react/guides/updates-from-mutation-responses.md
 ---
diff --git a/docs/framework/vue/guides/window-focus-refetching.md b/docs/framework/vue/guides/window-focus-refetching.md
index 84c2ea0b9f..3d275cfa07 100644
--- a/docs/framework/vue/guides/window-focus-refetching.md
+++ b/docs/framework/vue/guides/window-focus-refetching.md
@@ -1,7 +1,7 @@
 ---
 id: window-focus-refetching
 title: Window Focus Refetching
-ref: docs/react/guides/window-focus-refetching.md
+ref: docs/framework/react/guides/window-focus-refetching.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
 
diff --git a/docs/framework/vue/overview.md b/docs/framework/vue/overview.md
index 618369b3c7..31c8da66ff 100644
--- a/docs/framework/vue/overview.md
+++ b/docs/framework/vue/overview.md
@@ -1,7 +1,7 @@
 ---
 id: overview
 title: Overview
-ref: docs/react/overview.md
+ref: docs/framework/react/overview.md
 replace: { 'React': 'Vue', 'react-query': 'vue-query' }
 ---
 
diff --git a/docs/framework/vue/quick-start.md b/docs/framework/vue/quick-start.md
index 10b15d16b2..328ac82ba5 100644
--- a/docs/framework/vue/quick-start.md
+++ b/docs/framework/vue/quick-start.md
@@ -1,7 +1,7 @@
 ---
 id: quick-start
 title: Quick Start
-ref: docs/react/quick-start.md
+ref: docs/framework/react/quick-start.md
 replace: { 'React': 'Vue', 'react-query': 'vue-query' }
 ---
 
diff --git a/docs/framework/vue/reference/InfiniteQueryObserver.md b/docs/framework/vue/reference/InfiniteQueryObserver.md
deleted file mode 100644
index 0baafb52d6..0000000000
--- a/docs/framework/vue/reference/InfiniteQueryObserver.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: InfiniteQueryObserver
-title: InfiniteQueryObserver
-ref: docs/react/reference/InfiniteQueryObserver.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/MutationCache.md b/docs/framework/vue/reference/MutationCache.md
deleted file mode 100644
index 201c86a5c0..0000000000
--- a/docs/framework/vue/reference/MutationCache.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: MutationCache
-title: MutationCache
-ref: docs/react/reference/MutationCache.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/QueriesObserver.md b/docs/framework/vue/reference/QueriesObserver.md
deleted file mode 100644
index 3e77fe0f7f..0000000000
--- a/docs/framework/vue/reference/QueriesObserver.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: QueriesObserver
-title: QueriesObserver
-ref: docs/react/reference/QueriesObserver.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/QueryCache.md b/docs/framework/vue/reference/QueryCache.md
deleted file mode 100644
index 33cd93b6d9..0000000000
--- a/docs/framework/vue/reference/QueryCache.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: QueryCache
-title: QueryCache
-ref: docs/react/reference/QueryCache.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/QueryClient.md b/docs/framework/vue/reference/QueryClient.md
deleted file mode 100644
index c4692b5032..0000000000
--- a/docs/framework/vue/reference/QueryClient.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: QueryClient
-title: QueryClient
-ref: docs/react/reference/QueryClient.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/QueryObserver.md b/docs/framework/vue/reference/QueryObserver.md
deleted file mode 100644
index bd2af78dc1..0000000000
--- a/docs/framework/vue/reference/QueryObserver.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: QueryObserver
-title: QueryObserver
-ref: docs/react/reference/QueryObserver.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/focusManager.md b/docs/framework/vue/reference/focusManager.md
deleted file mode 100644
index a8b35653ad..0000000000
--- a/docs/framework/vue/reference/focusManager.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: FocusManager
-title: FocusManager
-ref: docs/react/reference/focusManager.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/hydration.md b/docs/framework/vue/reference/hydration.md
index 423b957b62..74e94770d6 100644
--- a/docs/framework/vue/reference/hydration.md
+++ b/docs/framework/vue/reference/hydration.md
@@ -1,11 +1,11 @@
 ---
 id: hydration
 title: hydration
-ref: docs/react/reference/hydration.md
+ref: docs/framework/react/reference/hydration.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
 
 [//]: # 'useHydrate'
 [//]: # 'useHydrate'
 [//]: # 'Hydrate'
-[//]: # 'Hydrate'
\ No newline at end of file
+[//]: # 'Hydrate'
diff --git a/docs/framework/vue/reference/onlineManager.md b/docs/framework/vue/reference/onlineManager.md
deleted file mode 100644
index a3876eca16..0000000000
--- a/docs/framework/vue/reference/onlineManager.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-id: OnlineManager
-title: OnlineManager
-ref: docs/react/reference/onlineManager.md
-replace: { '@tanstack/react-query': '@tanstack/vue-query' }
----
diff --git a/docs/framework/vue/reference/useInfiniteQuery.md b/docs/framework/vue/reference/useInfiniteQuery.md
index 49b3e2cb23..b0f2ab2fb5 100644
--- a/docs/framework/vue/reference/useInfiniteQuery.md
+++ b/docs/framework/vue/reference/useInfiniteQuery.md
@@ -1,6 +1,6 @@
 ---
 id: useInfiniteQuery
 title: useInfiniteQuery
-ref: docs/react/reference/useInfiniteQuery.md
+ref: docs/framework/react/reference/useInfiniteQuery.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
diff --git a/docs/framework/vue/reference/useIsFetching.md b/docs/framework/vue/reference/useIsFetching.md
index 9c03fd4bd6..aa1ecd221c 100644
--- a/docs/framework/vue/reference/useIsFetching.md
+++ b/docs/framework/vue/reference/useIsFetching.md
@@ -1,6 +1,6 @@
 ---
 id: useIsFetching
 title: useIsFetching
-ref: docs/react/reference/useIsFetching.md
+ref: docs/framework/react/reference/useIsFetching.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
diff --git a/docs/framework/vue/reference/useIsMutating.md b/docs/framework/vue/reference/useIsMutating.md
index 6b284fe9e9..d05d7ef67d 100644
--- a/docs/framework/vue/reference/useIsMutating.md
+++ b/docs/framework/vue/reference/useIsMutating.md
@@ -1,6 +1,6 @@
 ---
 id: useIsMutating
 title: useIsMutating
-ref: docs/react/reference/useIsMutating.md
+ref: docs/framework/react/reference/useIsMutating.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
diff --git a/docs/framework/vue/reference/useMutation.md b/docs/framework/vue/reference/useMutation.md
index a7adb3ca45..ee5b243c25 100644
--- a/docs/framework/vue/reference/useMutation.md
+++ b/docs/framework/vue/reference/useMutation.md
@@ -1,6 +1,6 @@
 ---
 id: useMutation
 title: useMutation
-ref: docs/react/reference/useMutation.md
+ref: docs/framework/react/reference/useMutation.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
diff --git a/docs/framework/vue/reference/useQueries.md b/docs/framework/vue/reference/useQueries.md
index f4d4e31ccc..a5cb5ad64c 100644
--- a/docs/framework/vue/reference/useQueries.md
+++ b/docs/framework/vue/reference/useQueries.md
@@ -1,6 +1,6 @@
 ---
 id: useQueries
 title: useQueries
-ref: docs/react/reference/useQueries.md
+ref: docs/framework/react/reference/useQueries.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
diff --git a/docs/framework/vue/reference/useQuery.md b/docs/framework/vue/reference/useQuery.md
index 5219178f9c..151370c653 100644
--- a/docs/framework/vue/reference/useQuery.md
+++ b/docs/framework/vue/reference/useQuery.md
@@ -1,6 +1,6 @@
 ---
 id: useQuery
 title: useQuery
-ref: docs/react/reference/useQuery.md
+ref: docs/framework/react/reference/useQuery.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
diff --git a/docs/framework/vue/reference/useQueryClient.md b/docs/framework/vue/reference/useQueryClient.md
index 21b25a9479..9ed6be043a 100644
--- a/docs/framework/vue/reference/useQueryClient.md
+++ b/docs/framework/vue/reference/useQueryClient.md
@@ -1,6 +1,6 @@
 ---
 id: useQueryClient
 title: useQueryClient
-ref: docs/react/reference/useQueryClient.md
+ref: docs/framework/react/reference/useQueryClient.md
 replace: { '@tanstack/react-query': '@tanstack/vue-query' }
 ---
diff --git a/docs/framework/vue/typescript.md b/docs/framework/vue/typescript.md
index e3a4f3e482..d5ec5ca858 100644
--- a/docs/framework/vue/typescript.md
+++ b/docs/framework/vue/typescript.md
@@ -1,7 +1,7 @@
 ---
 id: typescript
 title: TypeScript
-ref: docs/react/typescript.md
+ref: docs/framework/react/typescript.md
 replace:
   { 'React': 'Vue', 'react-query package version': 'vue-query package version' }
 ---
@@ -49,10 +49,12 @@ const { data } = useQuery({ queryKey: ['groups'], queryFn: fetchGroups })
 [//]: # 'TypeNarrowing'
 
 ```tsx
-const { data, isSuccess } = reactive(useQuery({
-  queryKey: ['test'],
-  queryFn: () => Promise.resolve(5),
-}))
+const { data, isSuccess } = reactive(
+  useQuery({
+    queryKey: ['test'],
+    queryFn: () => Promise.resolve(5),
+  }),
+)
 
 if (isSuccess) {
   data
diff --git a/docs/framework/react/reference/InfiniteQueryObserver.md b/docs/reference/InfiniteQueryObserver.md
similarity index 100%
rename from docs/framework/react/reference/InfiniteQueryObserver.md
rename to docs/reference/InfiniteQueryObserver.md
diff --git a/docs/framework/react/reference/MutationCache.md b/docs/reference/MutationCache.md
similarity index 100%
rename from docs/framework/react/reference/MutationCache.md
rename to docs/reference/MutationCache.md
diff --git a/docs/framework/react/reference/QueriesObserver.md b/docs/reference/QueriesObserver.md
similarity index 100%
rename from docs/framework/react/reference/QueriesObserver.md
rename to docs/reference/QueriesObserver.md
diff --git a/docs/framework/react/reference/QueryCache.md b/docs/reference/QueryCache.md
similarity index 100%
rename from docs/framework/react/reference/QueryCache.md
rename to docs/reference/QueryCache.md
diff --git a/docs/framework/react/reference/QueryClient.md b/docs/reference/QueryClient.md
similarity index 100%
rename from docs/framework/react/reference/QueryClient.md
rename to docs/reference/QueryClient.md
diff --git a/docs/framework/react/reference/QueryObserver.md b/docs/reference/QueryObserver.md
similarity index 100%
rename from docs/framework/react/reference/QueryObserver.md
rename to docs/reference/QueryObserver.md
diff --git a/docs/framework/react/reference/focusManager.md b/docs/reference/focusManager.md
similarity index 100%
rename from docs/framework/react/reference/focusManager.md
rename to docs/reference/focusManager.md
diff --git a/docs/framework/react/reference/onlineManager.md b/docs/reference/onlineManager.md
similarity index 100%
rename from docs/framework/react/reference/onlineManager.md
rename to docs/reference/onlineManager.md

From dd20738288cd23a529449ff7de278c2a6df1bfdd Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Fri, 26 Jan 2024 19:48:34 +1100
Subject: [PATCH 19/45] docs: Fix relative links

---
 docs/framework/react/guides/caching.md        |  4 +-
 .../react/guides/important-defaults.md        |  6 +-
 .../react/guides/infinite-queries.md          | 14 ++--
 .../react/guides/initial-query-data.md        |  6 +-
 .../guides/invalidations-from-mutations.md    |  2 +-
 .../guides/migrating-to-react-query-3.md      | 75 ++++++++---------
 .../guides/migrating-to-react-query-4.md      | 34 ++++----
 docs/framework/react/guides/mutations.md      | 10 +--
 docs/framework/react/guides/network-mode.md   |  8 +-
 .../react/guides/placeholder-query-data.md    |  4 +-
 docs/framework/react/guides/prefetching.md    |  5 +-
 docs/framework/react/guides/queries.md        |  6 +-
 .../framework/react/guides/query-functions.md |  6 +-
 .../react/guides/query-invalidation.md        |  2 +-
 docs/framework/react/guides/query-keys.md     |  4 +-
 docs/framework/react/guides/ssr.md            |  6 +-
 docs/framework/react/guides/suspense.md       |  4 +-
 docs/framework/react/guides/testing.md        | 81 +++++++++----------
 .../guides/updates-from-mutation-responses.md | 39 +++++----
 docs/framework/react/overview.md              |  6 +-
 .../plugins/createAsyncStoragePersister.md    | 21 +++--
 .../plugins/createSyncStoragePersister.md     | 28 ++++---
 .../react/plugins/persistQueryClient.md       | 50 +++++++-----
 .../react/reference/useInfiniteQuery.md       | 14 ++--
 .../react/reference/useIsFetching.md          |  2 +-
 .../react/reference/useIsMutating.md          |  2 +-
 docs/framework/react/reference/useMutation.md |  7 +-
 docs/framework/react/reference/useQueries.md  |  8 +-
 docs/framework/react/reference/useQuery.md    | 62 +++++++-------
 docs/framework/react/typescript.md            |  5 +-
 docs/framework/svelte/installation.md         |  2 +-
 docs/framework/svelte/ssr.md                  | 11 +--
 docs/framework/vue/guides/ssr.md              | 21 ++++-
 docs/framework/vue/guides/suspense.md         |  2 +-
 docs/framework/vue/installation.md            |  6 +-
 docs/framework/vue/overview.md                |  2 +-
 docs/framework/vue/quick-start.md             |  2 +-
 docs/reference/InfiniteQueryObserver.md       |  4 +-
 docs/reference/QueriesObserver.md             |  4 +-
 docs/reference/QueryCache.md                  | 10 +--
 docs/reference/QueryClient.md                 | 68 +++++++++-------
 docs/reference/QueryObserver.md               |  4 +-
 42 files changed, 347 insertions(+), 310 deletions(-)

diff --git a/docs/framework/react/guides/caching.md b/docs/framework/react/guides/caching.md
index 1307f1ee5d..1d6ac7d301 100644
--- a/docs/framework/react/guides/caching.md
+++ b/docs/framework/react/guides/caching.md
@@ -3,7 +3,7 @@ id: caching
 title: Caching Examples
 ---
 
-> Please thoroughly read the [Important Defaults](../guides/important-defaults) before reading this guide
+> Please thoroughly read the [Important Defaults](./guides/important-defaults) before reading this guide
 
 ## Basic Example
 
@@ -23,7 +23,7 @@ Let's assume we are using the default `cacheTime` of **5 minutes** and the defau
 - A second instance of `useQuery({ queryKey: ['todos'], queryFn: fetchTodos })` mounts elsewhere.
   - Since the cache already has data for the `['todos']` key from the first query, that data is immediately returned from the cache.
   - The new instance triggers a new network request using its query function.
-    - Note that regardless of whether both `fetchTodos` query functions are identical or not, both queries' [`status`](../reference/useQuery) are updated (including `isFetching`, `isLoading`, and other related values) because they have the same query key.
+    - Note that regardless of whether both `fetchTodos` query functions are identical or not, both queries' [`status`](./reference/useQuery) are updated (including `isFetching`, `isLoading`, and other related values) because they have the same query key.
   - When the request completes successfully, the cache's data under the `['todos']` key is updated with the new data, and both instances are updated with the new data.
 - Both instances of the `useQuery({ queryKey: ['todos'], queryFn: fetchTodos })` query are unmounted and no longer in use.
   - Since there are no more active instances of this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).
diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md
index 6d12ba6f5b..b871c29060 100644
--- a/docs/framework/react/guides/important-defaults.md
+++ b/docs/framework/react/guides/important-defaults.md
@@ -15,7 +15,7 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul
   - The network is reconnected
   - The query is optionally configured with a refetch interval
 
-If you see a refetch that you are not expecting, it is likely because you just focused the window and TanStack Query is doing a [`refetchOnWindowFocus`](../guides/window-focus-refetching). During development, this will probably be triggered more frequently, especially because focusing between the Browser DevTools and your app will also cause a fetch, so be aware of that.
+If you see a refetch that you are not expecting, it is likely because you just focused the window and TanStack Query is doing a [`refetchOnWindowFocus`](./guides/window-focus-refetching). During development, this will probably be triggered more frequently, especially because focusing between the Browser DevTools and your app will also cause a fetch, so be aware of that.
 
 > To change this functionality, you can use options like `refetchOnMount`, `refetchOnWindowFocus`, `refetchOnReconnect` and `refetchInterval`.
 
@@ -38,7 +38,7 @@ If you see a refetch that you are not expecting, it is likely because you just f
 
 Have a look at the following articles from our Community Resources for further explanations of the defaults:
 
-- [Practical React Query](../community/tkdodos-blog#1-practical-react-query)
-- [React Query as a State Manager](../community/tkdodos-blog#10-react-query-as-a-state-manager)
+- [Practical React Query](./community/tkdodos-blog#1-practical-react-query)
+- [React Query as a State Manager](./community/tkdodos-blog#10-react-query-as-a-state-manager)
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/infinite-queries.md b/docs/framework/react/guides/infinite-queries.md
index 592ef299dd..f129479c8f 100644
--- a/docs/framework/react/guides/infinite-queries.md
+++ b/docs/framework/react/guides/infinite-queries.md
@@ -87,8 +87,8 @@ function Projects() {
           {isFetchingNextPage
             ? 'Loading more...'
             : hasNextPage
-            ? 'Load More'
-            : 'Nothing more to load'}
+              ? 'Load More'
+              : 'Nothing more to load'}
         </button>
       </div>
       <div>{isFetching && !isFetchingNextPage ? 'Fetching...' : null}</div>
@@ -110,9 +110,7 @@ To ensure a seamless querying process without conflicts, it's highly recommended
 [//]: # 'Example1'
 
 ```jsx
-<List
-  onEndReached={() => !isFetching && fetchNextPage()}
-/>
+<List onEndReached={() => !isFetching && fetchNextPage()} />
 ```
 
 [//]: # 'Example1'
@@ -140,7 +138,7 @@ refetch({ refetchPage: (page, index) => index === 0 })
 
 [//]: # 'Example2'
 
-You can also pass this function as part of the 2nd argument (`queryFilters`) to [queryClient.refetchQueries](../reference/QueryClient#queryclientrefetchqueries), [queryClient.invalidateQueries](../reference/QueryClient#queryclientinvalidatequeries) or [queryClient.resetQueries](../reference/QueryClient#queryclientresetqueries).
+You can also pass this function as part of the 2nd argument (`queryFilters`) to [queryClient.refetchQueries](./reference/QueryClient#queryclientrefetchqueries), [queryClient.invalidateQueries](./reference/QueryClient#queryclientinvalidatequeries) or [queryClient.resetQueries](./reference/QueryClient#queryclientresetqueries).
 
 **Signature**
 
@@ -254,8 +252,8 @@ queryClient.setQueryData(['projects'], (data) => ({
 
 ```tsx
 queryClient.setQueryData(['projects'], (data) => ({
-  pages: data.pages.slice(0,1),
-  pageParams: data.pageParams.slice(0,1),
+  pages: data.pages.slice(0, 1),
+  pageParams: data.pageParams.slice(0, 1),
 }))
 ```
 
diff --git a/docs/framework/react/guides/initial-query-data.md b/docs/framework/react/guides/initial-query-data.md
index f231e0e8b9..f26687f9bf 100644
--- a/docs/framework/react/guides/initial-query-data.md
+++ b/docs/framework/react/guides/initial-query-data.md
@@ -8,8 +8,8 @@ There are many ways to supply initial data for a query to the cache before you n
 - Declaratively:
   - Provide `initialData` to a query to prepopulate its cache if empty
 - Imperatively:
-  - [Prefetch the data using `queryClient.prefetchQuery`](../guides/prefetching)
-  - [Manually place the data into the cache using `queryClient.setQueryData`](../guides/prefetching)
+  - [Prefetch the data using `queryClient.prefetchQuery`](./guides/prefetching)
+  - [Manually place the data into the cache using `queryClient.setQueryData`](./guides/prefetching)
 
 ## Using `initialData` to prepopulate a query
 
@@ -170,6 +170,6 @@ const result = useQuery({
 
 ## Further reading
 
-For a comparison between `Initial Data` and `Placeholder Data`, have a look at the [Community Resources](../community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
+For a comparison between `Initial Data` and `Placeholder Data`, have a look at the [Community Resources](./community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/invalidations-from-mutations.md b/docs/framework/react/guides/invalidations-from-mutations.md
index 2f3352e2d3..b7d155ea2c 100644
--- a/docs/framework/react/guides/invalidations-from-mutations.md
+++ b/docs/framework/react/guides/invalidations-from-mutations.md
@@ -36,4 +36,4 @@ const mutation = useMutation({
 
 [//]: # 'Example2'
 
-You can wire up your invalidations to happen using any of the callbacks available in the [`useMutation` hook](../guides/mutations)
+You can wire up your invalidations to happen using any of the callbacks available in the [`useMutation` hook](./guides/mutations)
diff --git a/docs/framework/react/guides/migrating-to-react-query-3.md b/docs/framework/react/guides/migrating-to-react-query-3.md
index e251f38c63..0fe7dded3d 100644
--- a/docs/framework/react/guides/migrating-to-react-query-3.md
+++ b/docs/framework/react/guides/migrating-to-react-query-3.md
@@ -103,8 +103,8 @@ try {
 
 Together, these provide the same experience as before, but with added control to choose which component trees you want to reset. For more information, see:
 
-- [QueryErrorResetBoundary](../reference/QueryErrorResetBoundary)
-- [useQueryErrorResetBoundary](../reference/useQueryErrorResetBoundary)
+- [QueryErrorResetBoundary](./reference/QueryErrorResetBoundary)
+- [useQueryErrorResetBoundary](./reference/useQueryErrorResetBoundary)
 
 ### `QueryCache.getQuery()` has been replaced by `QueryCache.find()`.
 
@@ -137,7 +137,7 @@ useQuery(['post', id], () => fetchPost(id))
 If you still insist on not using inline functions, you can use the newly passed `QueryFunctionContext`:
 
 ```tsx
-useQuery(['post', id], context => fetchPost(context.queryKey[1]))
+useQuery(['post', id], (context) => fetchPost(context.queryKey[1]))
 ```
 
 ### Infinite Query Page params are now passed via `QueryFunctionContext.pageParam`
@@ -183,18 +183,14 @@ The `useInfiniteQuery()` interface has changed to fully support bi-directional i
 One direction:
 
 ```tsx
-const {
-  data,
-  fetchNextPage,
-  hasNextPage,
-  isFetchingNextPage,
-} = useInfiniteQuery(
-  'projects',
-  ({ pageParam = 0 }) => fetchProjects(pageParam),
-  {
-    getNextPageParam: (lastPage, pages) => lastPage.nextCursor,
-  }
-)
+const { data, fetchNextPage, hasNextPage, isFetchingNextPage } =
+  useInfiniteQuery(
+    'projects',
+    ({ pageParam = 0 }) => fetchProjects(pageParam),
+    {
+      getNextPageParam: (lastPage, pages) => lastPage.nextCursor,
+    },
+  )
 ```
 
 Both directions:
@@ -214,29 +210,25 @@ const {
   {
     getNextPageParam: (lastPage, pages) => lastPage.nextCursor,
     getPreviousPageParam: (firstPage, pages) => firstPage.prevCursor,
-  }
+  },
 )
 ```
 
 One direction reversed:
 
 ```tsx
-const {
-  data,
-  fetchNextPage,
-  hasNextPage,
-  isFetchingNextPage,
-} = useInfiniteQuery(
-  'projects',
-  ({ pageParam = 0 }) => fetchProjects(pageParam),
-  {
-    select: data => ({
-      pages: [...data.pages].reverse(),
-      pageParams: [...data.pageParams].reverse(),
-    }),
-    getNextPageParam: (lastPage, pages) => lastPage.nextCursor,
-  }
-)
+const { data, fetchNextPage, hasNextPage, isFetchingNextPage } =
+  useInfiniteQuery(
+    'projects',
+    ({ pageParam = 0 }) => fetchProjects(pageParam),
+    {
+      select: (data) => ({
+        pages: [...data.pages].reverse(),
+        pageParams: [...data.pageParams].reverse(),
+      }),
+      getNextPageParam: (lastPage, pages) => lastPage.nextCursor,
+    },
+  )
 ```
 
 ### Infinite Query data now contains the array of pages and pageParams used to fetch those pages.
@@ -244,7 +236,7 @@ const {
 This allows for easier manipulation of the data and the page params, like, for example, removing the first page of data along with it's params:
 
 ```tsx
-queryClient.setQueryData(['projects'], data => ({
+queryClient.setQueryData(['projects'], (data) => ({
   pages: data.pages.slice(1),
   pageParams: data.pageParams.slice(1),
 }))
@@ -277,10 +269,10 @@ The `mutate` function can be used when using callbacks:
 const { mutate } = useMutation({ mutationFn: addTodo })
 
 mutate('todo', {
-  onSuccess: data => {
+  onSuccess: (data) => {
     console.log(data)
   },
-  onError: error => {
+  onError: (error) => {
     console.error(error)
   },
   onSettled: () => {
@@ -393,7 +385,7 @@ import { setLogger } from 'react-query'
 
 // Log with Sentry
 setLogger({
-  error: error => {
+  error: (error) => {
     Sentry.captureException(error)
   },
 })
@@ -418,13 +410,14 @@ setConsole({
 
 In version 3 **this is done automatically when React Query is used in React Native**.
 
-
 ### Typescript
+
 #### `QueryStatus` has been changed from an [enum](https://www.typescriptlang.org/docs/handbook/enums.html#string-enums) to a [union type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
 
 So, if you were checking the status property of a query or mutation against a QueryStatus enum property you will have to check it now against the string literal the enum previously held for each property.
 
 Therefore you have to change the enum properties to their equivalent string literal, like this:
+
 - `QueryStatus.Idle` -> `'idle'`
 - `QueryStatus.Loading` -> `'loading'`
 - `QueryStatus.Error` -> `'error'`
@@ -460,7 +453,7 @@ import { useQuery } from 'react-query'
 
 function User() {
   const { data } = useQuery(['user'], fetchUser, {
-    select: user => user.username,
+    select: (user) => user.username,
   })
   return <div>Username: {data}</div>
 }
@@ -512,7 +505,7 @@ A `QueryObserver` can be used to create and/or watch a query:
 ```tsx
 const observer = new QueryObserver(queryClient, { queryKey: 'posts' })
 
-const unsubscribe = observer.subscribe(result => {
+const unsubscribe = observer.subscribe((result) => {
   console.log(result)
   unsubscribe()
 })
@@ -530,7 +523,7 @@ const observer = new InfiniteQueryObserver(queryClient, {
   getPreviousPageParam: (firstPage, allPages) => firstPage.prevCursor,
 })
 
-const unsubscribe = observer.subscribe(result => {
+const unsubscribe = observer.subscribe((result) => {
   console.log(result)
   unsubscribe()
 })
@@ -546,7 +539,7 @@ const observer = new QueriesObserver(queryClient, [
   { queryKey: ['post', 2], queryFn: fetchPost },
 ])
 
-const unsubscribe = observer.subscribe(result => {
+const unsubscribe = observer.subscribe((result) => {
   console.log(result)
   unsubscribe()
 })
diff --git a/docs/framework/react/guides/migrating-to-react-query-4.md b/docs/framework/react/guides/migrating-to-react-query-4.md
index 467ebd4712..1a078e0a0b 100644
--- a/docs/framework/react/guides/migrating-to-react-query-4.md
+++ b/docs/framework/react/guides/migrating-to-react-query-4.md
@@ -58,9 +58,9 @@ Please note in the case of `TypeScript` you need to use `tsx` as the parser; oth
 
 ### Query Keys (and Mutation Keys) need to be an Array
 
-In v3, Query and Mutation Keys could be a String or an Array. Internally, React Query has always worked with Array Keys only, and we've sometimes exposed this to consumers. For example, in the `queryFn`, you would always get the key as an Array to make working with [Default Query Functions](../guides/default-query-function) easier.
+In v3, Query and Mutation Keys could be a String or an Array. Internally, React Query has always worked with Array Keys only, and we've sometimes exposed this to consumers. For example, in the `queryFn`, you would always get the key as an Array to make working with [Default Query Functions](./guides/default-query-function) easier.
 
-However, we have not followed this concept through to all apis. For example, when using the `predicate` function on [Query Filters](../guides/filters) you would get the raw Query Key. This makes it difficult to work with such functions if you use Query Keys that are mixed Arrays and Strings. The same was true when using global callbacks.
+However, we have not followed this concept through to all apis. For example, when using the `predicate` function on [Query Filters](./guides/filters) you would get the raw Query Key. This makes it difficult to work with such functions if you use Query Keys that are mixed Arrays and Strings. The same was true when using global callbacks.
 
 To streamline all apis, we've decided to make all keys Arrays only:
 
@@ -100,7 +100,7 @@ Please note in the case of `TypeScript` you need to use `tsx` as the parser; oth
 
 ### The idle state has been removed
 
-With the introduction of the new [fetchStatus](../guides/queries#fetchstatus) for better offline support, the `idle` state became irrelevant, because `fetchStatus: 'idle'` captures the same state better. For more information, please read [Why two different states](../guides/queries#why-two-different-states).
+With the introduction of the new [fetchStatus](./guides/queries#fetchstatus) for better offline support, the `idle` state became irrelevant, because `fetchStatus: 'idle'` captures the same state better. For more information, please read [Why two different states](./guides/queries#why-two-different-states).
 
 This will mostly affect `disabled` queries that don't have any `data` yet, as those were in `idle` state before:
 
@@ -110,7 +110,7 @@ This will mostly affect `disabled` queries that don't have any `data` yet, as th
 + fetchStatus: 'idle'
 ```
 
-Also, have a look at [the guide on dependent queries](../guides/dependent-queries)
+Also, have a look at [the guide on dependent queries](./guides/dependent-queries)
 
 #### disabled queries
 
@@ -121,7 +121,7 @@ Due to this change, disabled queries (even temporarily disabled ones) will start
 + isInitialLoading
 ```
 
-See also the guide on [disabling queries](../guides/disabling-queries#isInitialLoading)
+See also the guide on [disabling queries](./guides/disabling-queries#isInitialLoading)
 
 ### new API for `useQueries`
 
@@ -139,14 +139,16 @@ In order to make bailing out of updates possible by returning `undefined`, we ha
 Further, it is an easy bug to produce `Promise<void>` by adding logging in the queryFn:
 
 ```tsx
-useQuery(['key'], () => axios.get(url).then(result => console.log(result.data)))
+useQuery(['key'], () =>
+  axios.get(url).then((result) => console.log(result.data)),
+)
 ```
 
 This is now disallowed on type level; at runtime, `undefined` will be transformed to a _failed Promise_, which means you will get an `error`, which will also be logged to the console in development mode.
 
 ### Queries and mutations, per default, need network connection to run
 
-Please read the [New Features announcement](#proper-offline-support) about online / offline support, and also the dedicated page about [Network mode](../guides/network-mode)
+Please read the [New Features announcement](#proper-offline-support) about online / offline support, and also the dedicated page about [Network mode](./guides/network-mode)
 
 Even though React Query is an Async State Manager that can be used for anything that produces a Promise, it is most often used for data fetching in combination with data fetching libraries. That is why, per default, queries and mutations will be `paused` if there is no network connection. If you want to opt-in to the previous behavior, you can globally set `networkMode: offlineFirst` for both queries and mutations:
 
@@ -207,7 +209,7 @@ queryClient.refetchQueries({ queryKey: ['todos'] }, { cancelRefetch: false })
 
 ### Query Filters
 
-A [query filter](../guides/filters) is an object with certain conditions to match a query. Historically, the filter options have mostly been a combination of boolean flags. However, combining those flags can lead to impossible states. Specifically:
+A [query filter](./guides/filters) is an object with certain conditions to match a query. Historically, the filter options have mostly been a combination of boolean flags. However, combining those flags can lead to impossible states. Specifically:
 
 ```
 active?: boolean
@@ -232,7 +234,7 @@ The filter defaults to `all`, and you can choose to only match `active` or `inac
 
 #### refetchActive / refetchInactive
 
-[queryClient.invalidateQueries](../reference/QueryClient#queryclientinvalidatequeries) had two additional, similar flags:
+[queryClient.invalidateQueries](./reference/QueryClient#queryclientinvalidatequeries) had two additional, similar flags:
 
 ```
 refetchActive: Boolean
@@ -270,7 +272,7 @@ React.useEffect(() => mySideEffectHere(data), [data])
 
 ### `persistQueryClient` and the corresponding persister plugins are no longer experimental and have been renamed
 
-The plugins `createWebStoragePersistor` and `createAsyncStoragePersistor` have been renamed to [`createSyncStoragePersister`](../plugins/createSyncStoragePersister) and [`createAsyncStoragePersister`](../plugins/createAsyncStoragePersister) respectively. The interface `Persistor` in `persistQueryClient` has also been renamed to `Persister`. Checkout [this stackexchange](https://english.stackexchange.com/questions/206893/persister-or-persistor) for the motivation of this change.
+The plugins `createWebStoragePersistor` and `createAsyncStoragePersistor` have been renamed to [`createSyncStoragePersister`](./plugins/createSyncStoragePersister) and [`createAsyncStoragePersister`](./plugins/createAsyncStoragePersister) respectively. The interface `Persistor` in `persistQueryClient` has also been renamed to `Persister`. Checkout [this stackexchange](https://english.stackexchange.com/questions/206893/persister-or-persistor) for the motivation of this change.
 
 Since these plugins are no longer experimental, their import paths have also been updated:
 
@@ -286,7 +288,7 @@ Since these plugins are no longer experimental, their import paths have also bee
 
 ### The `cancel` method on promises is no longer supported
 
-The [old `cancel` method](../guides/query-cancellation#old-cancel-function) that allowed you to define a `cancel` function on promises, which was then used by the library to support query cancellation, has been removed. We recommend to use the [newer API](../guides/query-cancellation) (introduced with v3.30.0) for query cancellation that uses the [`AbortController` API](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) internally and provides you with an [`AbortSignal` instance](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) for your query function to support query cancellation.
+The [old `cancel` method](./guides/query-cancellation#old-cancel-function) that allowed you to define a `cancel` function on promises, which was then used by the library to support query cancellation, has been removed. We recommend to use the [newer API](./guides/query-cancellation) (introduced with v3.30.0) for query cancellation that uses the [`AbortController` API](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) internally and provides you with an [`AbortSignal` instance](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) for your query function to support query cancellation.
 
 ### TypeScript
 
@@ -294,7 +296,7 @@ Types now require using TypeScript v4.1 or greater
 
 ### Supported Browsers
 
-As of v4, React Query is optimized for modern browsers. We have updated our browserslist to produce a more modern, performant and smaller bundle. You can read about the requirements [here](../installation#requirements).
+As of v4, React Query is optimized for modern browsers. We have updated our browserslist to produce a more modern, performant and smaller bundle. You can read about the requirements [here](./installation#requirements).
 
 ### `setLogger` is removed
 
@@ -409,7 +411,7 @@ In v3, React Query has always fired off queries and mutations, but then taken th
 - You are offline and want to fire off a query that doesn't necessarily need network connection (because you _can_ use React Query for something other than data fetching), but it fails for some other reason. That query will now be paused until you go online again.
 - Window focus refetching didn't do anything at all if you were offline.
 
-With v4, React Query introduces a new `networkMode` to tackle all these issues. Please read the dedicated page about the new [Network mode](../guides/network-mode) for more information.
+With v4, React Query introduces a new `networkMode` to tackle all these issues. Please read the dedicated page about the new [Network mode](./guides/network-mode) for more information.
 
 ### Tracked Queries per default
 
@@ -417,11 +419,11 @@ React Query defaults to "tracking" query properties, which should give you a nic
 
 ### Bailing out of updates with setQueryData
 
-When using the [functional updater form of setQueryData](../reference/QueryClient#queryclientsetquerydata), you can now bail out of the update by returning `undefined`. This is helpful if `undefined` is given to you as `previousValue`, which means that currently, no cached entry exists and you don't want to / cannot create one, like in the example of toggling a todo:
+When using the [functional updater form of setQueryData](./reference/QueryClient#queryclientsetquerydata), you can now bail out of the update by returning `undefined`. This is helpful if `undefined` is given to you as `previousValue`, which means that currently, no cached entry exists and you don't want to / cannot create one, like in the example of toggling a todo:
 
 ```tsx
-queryClient.setQueryData(['todo', id], previousTodo =>
-  previousTodo ? { ...previousTodo, done: true } : undefined
+queryClient.setQueryData(['todo', id], (previousTodo) =>
+  previousTodo ? { ...previousTodo, done: true } : undefined,
 )
 ```
 
diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md
index 634d5fb90d..1385b9cfea 100644
--- a/docs/framework/react/guides/mutations.md
+++ b/docs/framework/react/guides/mutations.md
@@ -59,7 +59,7 @@ Beyond those primary states, more information is available depending on the stat
 
 In the example above, you also saw that you can pass variables to your mutations function by calling the `mutate` function with a **single variable or object**.
 
-Even with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Client's `invalidateQueries` method](../reference/QueryClient#queryclientinvalidatequeries) and the [Query Client's `setQueryData` method](../reference/QueryClient#queryclientsetquerydata), mutations become a very powerful tool.
+Even with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Client's `invalidateQueries` method](./reference/QueryClient#queryclientinvalidatequeries) and the [Query Client's `setQueryData` method](./reference/QueryClient#queryclientsetquerydata), mutations become a very powerful tool.
 
 [//]: # 'Info1'
 
@@ -136,7 +136,7 @@ const CreateTodo = () => {
 
 ## Mutation Side Effects
 
-`useMutation` comes with some helper options that allow quick and easy side-effects at any stage during the mutation lifecycle. These come in handy for both [invalidating and refetching queries after mutations](../guides/invalidations-from-mutations) and even [optimistic updates](../guides/optimistic-updates)
+`useMutation` comes with some helper options that allow quick and easy side-effects at any stage during the mutation lifecycle. These come in handy for both [invalidating and refetching queries after mutations](./guides/invalidations-from-mutations) and even [optimistic updates](./guides/optimistic-updates)
 
 [//]: # 'Example4'
 
@@ -340,7 +340,7 @@ queryClient.resumePausedMutations()
 
 ### Persisting Offline mutations
 
-If you persist offline mutations with the [persistQueryClient plugin](../plugins/persistQueryClient), mutations cannot be resumed when the page is reloaded unless you provide a default mutation function.
+If you persist offline mutations with the [persistQueryClient plugin](./plugins/persistQueryClient), mutations cannot be resumed when the page is reloaded unless you provide a default mutation function.
 
 This is a technical limitation. When persisting to an external storage, only the state of mutations is persisted, as functions cannot be serialized. After hydration, the component that triggers the mutation might not be mounted, so calling `resumePausedMutations` might yield an error: `No mutationFn found`.
 
@@ -383,13 +383,13 @@ export default function App() {
 
 [//]: # 'Example11'
 
-We also have an extensive [offline example](../examples/offline) that covers both queries and mutations.
+We also have an extensive [offline example](./examples/offline) that covers both queries and mutations.
 
 [//]: # 'Materials'
 
 ## Further reading
 
-For more information about mutations, have a look at [#12: Mastering Mutations in React Query](../community/tkdodos-blog#12-mastering-mutations-in-react-query) from
+For more information about mutations, have a look at [#12: Mastering Mutations in React Query](./community/tkdodos-blog#12-mastering-mutations-in-react-query) from
 the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/network-mode.md b/docs/framework/react/guides/network-mode.md
index 9180b5b6f0..33efe387b5 100644
--- a/docs/framework/react/guides/network-mode.md
+++ b/docs/framework/react/guides/network-mode.md
@@ -3,13 +3,13 @@ id: network-mode
 title: Network Mode
 ---
 
-TanStack Query provides three different network modes to distinguish how [Queries](../guides/queries) and [Mutations](../guides/mutations) should behave if you have no network connection. This mode can be set for each Query / Mutation individually, or globally via the query / mutation defaults.
+TanStack Query provides three different network modes to distinguish how [Queries](./guides/queries) and [Mutations](./guides/mutations) should behave if you have no network connection. This mode can be set for each Query / Mutation individually, or globally via the query / mutation defaults.
 
 Since TanStack Query is most often used for data fetching in combination with data fetching libraries, the default network mode is [online](#network-mode-online).
 
 ## Network Mode: online
 
-In this mode, Queries and Mutations will not fire unless you have network connection. This is the default mode. If a fetch is initiated for a query, it will always stay in the `state` (`loading`, `error`, `success`) it is in if the fetch cannot be made because there is no network connection. However, a [fetchStatus](../guides/queries#fetchstatus) is exposed additionally. This can be either:
+In this mode, Queries and Mutations will not fire unless you have network connection. This is the default mode. If a fetch is initiated for a query, it will always stay in the `state` (`loading`, `error`, `success`) it is in if the fetch cannot be made because there is no network connection. However, a [fetchStatus](./guides/queries#fetchstatus) is exposed additionally. This can be either:
 
 - `fetching`: The `queryFn` is really executing - a request is in-flight.
 - `paused`: The query is not executing - it is `paused` until you have connection again
@@ -19,7 +19,7 @@ The flags `isFetching` and `isPaused` are derived from this state and exposed fo
 
 > Keep in mind that it might not be enough to check for `loading` state to show a loading spinner. Queries can be in `state: 'loading'`, but `fetchStatus: 'paused'` if they are mounting for the first time, and you have no network connection.
 
-If a query runs because you are online, but you go offline while the fetch is still happening, TanStack Query will also pause the retry mechanism. Paused queries will then continue to run once you re-gain network connection. This is independent of `refetchOnReconnect` (which also defaults to `true` in this mode), because it is not a `refetch`, but rather a `continue`. If the query has been [cancelled](../guides/query-cancellation) in the meantime, it will not continue.
+If a query runs because you are online, but you go offline while the fetch is still happening, TanStack Query will also pause the retry mechanism. Paused queries will then continue to run once you re-gain network connection. This is independent of `refetchOnReconnect` (which also defaults to `true` in this mode), because it is not a `refetch`, but rather a `continue`. If the query has been [cancelled](./guides/query-cancellation) in the meantime, it will not continue.
 
 ## Network Mode: always
 
@@ -37,7 +37,7 @@ In those situations, the first fetch might succeed because it comes from an offl
 
 ## Devtools
 
-The [TanStack Query Devtools](../devtools) will show Queries in a `paused` state if they would be fetching, but there is no network connection. There is also a toggle button to _Mock offline behavior_. Please note that this button will _not_ actually mess with your network connection (you can do that in the browser devtools), but it will set the [OnlineManager](../reference/onlineManager) in an offline state.
+The [TanStack Query Devtools](./devtools) will show Queries in a `paused` state if they would be fetching, but there is no network connection. There is also a toggle button to _Mock offline behavior_. Please note that this button will _not_ actually mess with your network connection (you can do that in the browser devtools), but it will set the [OnlineManager](./reference/onlineManager) in an offline state.
 
 ## Signature
 
diff --git a/docs/framework/react/guides/placeholder-query-data.md b/docs/framework/react/guides/placeholder-query-data.md
index a1105677ef..3b35856bc7 100644
--- a/docs/framework/react/guides/placeholder-query-data.md
+++ b/docs/framework/react/guides/placeholder-query-data.md
@@ -14,7 +14,7 @@ There are a few ways to supply placeholder data for a query to the cache before
 - Declaratively:
   - Provide `placeholderData` to a query to prepopulate its cache if empty
 - Imperatively:
-  - [Prefetch or fetch the data using `queryClient` and the `placeholderData` option](../guides/prefetching)
+  - [Prefetch or fetch the data using `queryClient` and the `placeholderData` option](./guides/prefetching)
 
 ## Placeholder Data as a Value
 
@@ -80,6 +80,6 @@ function Todo({ blogPostId }) {
 
 ## Further reading
 
-For a comparison between `Placeholder Data` and `Initial Data`, have a look at the [Community Resources](../community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
+For a comparison between `Placeholder Data` and `Initial Data`, have a look at the [Community Resources](./community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/prefetching.md b/docs/framework/react/guides/prefetching.md
index 76a9f724c9..2e667b7f3f 100644
--- a/docs/framework/react/guides/prefetching.md
+++ b/docs/framework/react/guides/prefetching.md
@@ -25,7 +25,7 @@ const prefetchTodos = async () => {
 
 ## Manually Priming a Query
 
-Alternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Client's `setQueryData` method](../reference/QueryClient#queryclientsetquerydata) to directly add or update a query's cached result by key.
+Alternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Client's `setQueryData` method](./reference/QueryClient#queryclientsetquerydata) to directly add or update a query's cached result by key.
 
 [//]: # 'Example2'
 
@@ -34,11 +34,10 @@ queryClient.setQueryData(['todos'], todos)
 ```
 
 [//]: # 'Example2'
-
 [//]: # 'Materials'
 
 ## Further reading
 
-For a deep-dive on how to get data into your Query Cache before you fetch, have a look at [#17: Seeding the Query Cache](../community/tkdodos-blog#17-seeding-the-query-cache) from the Community Resources.
+For a deep-dive on how to get data into your Query Cache before you fetch, have a look at [#17: Seeding the Query Cache](./community/tkdodos-blog#17-seeding-the-query-cache) from the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/queries.md b/docs/framework/react/guides/queries.md
index 63510d10eb..7e2fb26064 100644
--- a/docs/framework/react/guides/queries.md
+++ b/docs/framework/react/guides/queries.md
@@ -5,7 +5,7 @@ title: Queries
 
 ## Query Basics
 
-A query is a declarative dependency on an asynchronous source of data that is tied to a **unique key**. A query can be used with any Promise based method (including GET and POST methods) to fetch data from a server. If your method modifies data on the server, we recommend using [Mutations](../guides/mutations) instead.
+A query is a declarative dependency on an asynchronous source of data that is tied to a **unique key**. A query can be used with any Promise based method (including GET and POST methods) to fetch data from a server. If your method modifies data on the server, we recommend using [Mutations](./guides/mutations) instead.
 
 To subscribe to a query in your components or custom hooks, call the `useQuery` hook with at least:
 
@@ -121,7 +121,7 @@ TypeScript will also narrow the type of `data` correctly if you've checked for `
 In addition to the `status` field and the `result` object, you will also get an additional `fetchStatus` property with the following options:
 
 - `fetchStatus === 'fetching'` - The query is currently fetching.
-- `fetchStatus === 'paused'` - The query wanted to fetch, but it is paused. Read more about this in the [Network Mode](../guides/network-mode) guide.
+- `fetchStatus === 'paused'` - The query wanted to fetch, but it is paused. Read more about this in the [Network Mode](./guides/network-mode) guide.
 - `fetchStatus === 'idle'` - The query is not doing anything at the moment.
 
 ### Why two different states?
@@ -140,6 +140,6 @@ So keep in mind that a query can be in `loading` state without actually fetching
 
 ## Further Reading
 
-For an alternative way of performing status checks, have a look at the [Community Resources](../community/tkdodos-blog#4-status-checks-in-react-query).
+For an alternative way of performing status checks, have a look at the [Community Resources](./community/tkdodos-blog#4-status-checks-in-react-query).
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/query-functions.md b/docs/framework/react/guides/query-functions.md
index 73d9862dfb..e36d30663e 100644
--- a/docs/framework/react/guides/query-functions.md
+++ b/docs/framework/react/guides/query-functions.md
@@ -99,12 +99,12 @@ function fetchTodoList({ queryKey }) {
 
 The `QueryFunctionContext` is the object passed to each query function. It consists of:
 
-- `queryKey: QueryKey`: [Query Keys](../guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](./guides/query-keys)
 - `pageParam?: unknown`
-  - only for [Infinite Queries](../guides/infinite-queries)
+  - only for [Infinite Queries](./guides/infinite-queries)
   - the page parameter used to fetch the current page
 - `signal?: AbortSignal`
   - [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) instance provided by TanStack Query
-  - Can be used for [Query Cancellation](../guides/query-cancellation)
+  - Can be used for [Query Cancellation](./guides/query-cancellation)
 - `meta: Record<string, unknown> | undefined`
   - an optional field you can fill with additional information about your query
diff --git a/docs/framework/react/guides/query-invalidation.md b/docs/framework/react/guides/query-invalidation.md
index 6fb7b79022..93e026181d 100644
--- a/docs/framework/react/guides/query-invalidation.md
+++ b/docs/framework/react/guides/query-invalidation.md
@@ -25,7 +25,7 @@ When a query is invalidated with `invalidateQueries`, two things happen:
 
 ## Query Matching with `invalidateQueries`
 
-When using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query. For information on the types of filters you can use, please see [Query Filters](../guides/filters#query-filters).
+When using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query. For information on the types of filters you can use, please see [Query Filters](./guides/filters#query-filters).
 
 In this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:
 
diff --git a/docs/framework/react/guides/query-keys.md b/docs/framework/react/guides/query-keys.md
index e98b9f6b63..14405da917 100644
--- a/docs/framework/react/guides/query-keys.md
+++ b/docs/framework/react/guides/query-keys.md
@@ -91,13 +91,13 @@ function Todos({ todoId }) {
 
 [//]: # 'Example5'
 
-Note that query keys act as dependencies for your query functions. Adding dependent variables to your query key will ensure that queries are cached independently, and that any time a variable changes, _queries will be refetched automatically_ (depending on your `staleTime` settings). See the [exhaustive-deps](../eslint/exhaustive-deps) section for more information and examples.
+Note that query keys act as dependencies for your query functions. Adding dependent variables to your query key will ensure that queries are cached independently, and that any time a variable changes, _queries will be refetched automatically_ (depending on your `staleTime` settings). See the [exhaustive-deps](./eslint/exhaustive-deps) section for more information and examples.
 
 [//]: # 'Materials'
 
 ## Further reading
 
-For tips on organizing Query Keys in larger applications, have a look at [Effective React Query Keys](../community/tkdodos-blog#8-effective-react-query-keys) and check the [Query Key Factory Package](../community/lukemorales-query-key-factory) from
+For tips on organizing Query Keys in larger applications, have a look at [Effective React Query Keys](./community/tkdodos-blog#8-effective-react-query-keys) and check the [Query Key Factory Package](./community/lukemorales-query-key-factory) from
 the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/ssr.md b/docs/framework/react/guides/ssr.md
index b9304a1d16..bd0f2cede0 100644
--- a/docs/framework/react/guides/ssr.md
+++ b/docs/framework/react/guides/ssr.md
@@ -250,7 +250,7 @@ This guide is at-best, a high level overview of how SSR with React Query should
 - Dehydrate the client
 - Render your app with the client provider and also **using the dehydrated state. This is extremely important! You must render both server and client using the same dehydrated state to ensure hydration on the client produces the exact same markup as the server.**
 - Serialize and embed the dehydrated cache to be sent to the client with the HTML
-- Clear the React Query caches after the dehydrated state has been sent by calling [`queryClient.clear()`](../reference/QueryClient#queryclientclear)
+- Clear the React Query caches after the dehydrated state has been sent by calling [`queryClient.clear()`](./reference/QueryClient#queryclientclear)
 
 > SECURITY NOTE: Serializing data with `JSON.stringify` can put you at risk for XSS-vulnerabilities, [this blog post explains why and how to solve it](https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0)
 
@@ -521,7 +521,7 @@ async function handleRequest(req, res) {
 
 ### Client
 
-Make sure to [use suspense in your queries](../guides/suspense).
+Make sure to [use suspense in your queries](./guides/suspense).
 
 ## Tips, Tricks and Caveats
 
@@ -545,6 +545,6 @@ In case you are creating the `QueryClient` for every request, React Query create
 
 On the server, `cacheTime` defaults to `Infinity` which disables manual garbage collection and will automatically clear memory once a request has finished. If you are explicitly setting a non-Infinity `cacheTime` then you will be responsible for clearing the cache early.
 
-To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](../reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
+To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](./reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
 
 Alternatively, you can set a smaller `cacheTime`.
diff --git a/docs/framework/react/guides/suspense.md b/docs/framework/react/guides/suspense.md
index 54c073b582..9931a422be 100644
--- a/docs/framework/react/guides/suspense.md
+++ b/docs/framework/react/guides/suspense.md
@@ -100,8 +100,8 @@ const App: React.FC = () => {
 
 ## Fetch-on-render vs Render-as-you-fetch
 
-Out of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](../guides/prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
+Out of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](./guides/prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
 
 ## Further reading
 
-For tips on using suspense option, check the [Suspensive React Query Package](../community/suspensive-react-query) from the Community Resources.
+For tips on using suspense option, check the [Suspensive React Query Package](./community/suspensive-react-query) from the Community Resources.
diff --git a/docs/framework/react/guides/testing.md b/docs/framework/react/guides/testing.md
index 350e526d7b..5498d1444e 100644
--- a/docs/framework/react/guides/testing.md
+++ b/docs/framework/react/guides/testing.md
@@ -15,7 +15,7 @@ npm install @testing-library/react-hooks react-test-renderer --save-dev
 
 (The `react-test-renderer` library is needed as a peer dependency of `@testing-library/react-hooks`, and needs to correspond to the version of React that you are using.)
 
-*Note*: when using React 18 or later, `renderHook` is available directly through the `@testing-library/react` package, and `@testing-library/react-hooks` is no longer required.
+_Note_: when using React 18 or later, `renderHook` is available directly through the `@testing-library/react` package, and `@testing-library/react-hooks` is no longer required.
 
 ## Our First Test
 
@@ -23,25 +23,23 @@ Once installed, a simple test can be written. Given the following custom hook:
 
 ```tsx
 export function useCustomHook() {
-  return useQuery({ queryKey: ['customHook'], queryFn: () => 'Hello' });
+  return useQuery({ queryKey: ['customHook'], queryFn: () => 'Hello' })
 }
 ```
 
 Using React 17 or earlier, we can write a test for this as follows:
 
 ```tsx
-const queryClient = new QueryClient();
+const queryClient = new QueryClient()
 const wrapper = ({ children }) => (
-  <QueryClientProvider client={queryClient}>
-    {children}
-  </QueryClientProvider>
-);
+  <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
+)
 
-const { result, waitFor } = renderHook(() => useCustomHook(), { wrapper });
+const { result, waitFor } = renderHook(() => useCustomHook(), { wrapper })
 
-await waitFor(() => result.current.isSuccess);
+await waitFor(() => result.current.isSuccess)
 
-expect(result.current.data).toEqual("Hello");
+expect(result.current.data).toEqual('Hello')
 ```
 
 Using React 18 or later, the semantics of `waitFor` have changed, and the above test needs to be modified as follows:
@@ -74,10 +72,8 @@ const queryClient = new QueryClient({
   },
 })
 const wrapper = ({ children }) => (
-  <QueryClientProvider client={queryClient}>
-    {children}
-  </QueryClientProvider>
-);
+  <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
+)
 ```
 
 This will set the defaults for all queries in the component tree to "no retries". It is important to know that this will only work if your actual useQuery has no explicit retries set. If you have a query that wants 5 retries, this will still take precedence, because defaults are only taken as a fallback.
@@ -117,36 +113,32 @@ function useFetchData() {
   return useQuery({
     queryKey: ['fetchData'],
     queryFn: () => request('/api/data'),
-  });
+  })
 }
 ```
 
 We can write a test for this as follows:
 
 ```tsx
-const queryClient = new QueryClient();
+const queryClient = new QueryClient()
 const wrapper = ({ children }) => (
-  <QueryClientProvider client={queryClient}>
-    {children}
-  </QueryClientProvider>
-);
+  <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
+)
 
-const expectation = nock('http://example.com')
-  .get('/api/data')
-  .reply(200, {
-    answer: 42
-  });
+const expectation = nock('http://example.com').get('/api/data').reply(200, {
+  answer: 42,
+})
 
-const { result, waitFor } = renderHook(() => useFetchData(), { wrapper });
+const { result, waitFor } = renderHook(() => useFetchData(), { wrapper })
 
 await waitFor(() => {
-  return result.current.isSuccess;
-});
+  return result.current.isSuccess
+})
 
-expect(result.current.data).toEqual({answer: 42});
+expect(result.current.data).toEqual({ answer: 42 })
 ```
 
-Here we are making use of `waitFor` and waiting until the query status indicates that the request has succeeded. This way we know that our hook has finished and should have the correct data. *Note*: when using React 18, the semantics of `waitFor` have changed as noted above.
+Here we are making use of `waitFor` and waiting until the query status indicates that the request has succeeded. This way we know that our hook has finished and should have the correct data. _Note_: when using React 18, the semantics of `waitFor` have changed as noted above.
 
 ## Testing Load More / Infinite Scroll
 
@@ -170,10 +162,10 @@ const expectation = nock('http://example.com')
   .query(true)
   .get('/api/data')
   .reply(200, (uri) => {
-    const url = new URL(`http://example.com${uri}`);
-    const { page } = Object.fromEntries(url.searchParams);
-    return generateMockedResponse(page);
-  });
+    const url = new URL(`http://example.com${uri}`)
+    const { page } = Object.fromEntries(url.searchParams)
+    return generateMockedResponse(page)
+  })
 ```
 
 (Notice the `.persist()`, because we'll be calling from this endpoint multiple times)
@@ -181,30 +173,29 @@ const expectation = nock('http://example.com')
 Now we can safely run our tests, the trick here is to await for the data assertion to pass:
 
 ```tsx
-const { result, waitFor } = renderHook(
-  () => useInfiniteQueryCustomHook(),
-  { wrapper },
-);
+const { result, waitFor } = renderHook(() => useInfiniteQueryCustomHook(), {
+  wrapper,
+})
 
-await waitFor(() => result.current.isSuccess);
+await waitFor(() => result.current.isSuccess)
 
-expect(result.current.data.pages).toStrictEqual(generateMockedResponse(1));
+expect(result.current.data.pages).toStrictEqual(generateMockedResponse(1))
 
-result.current.fetchNextPage();
+result.current.fetchNextPage()
 
 await waitFor(() =>
   expect(result.current.data.pages).toStrictEqual([
     ...generateMockedResponse(1),
     ...generateMockedResponse(2),
   ]),
-);
+)
 
-expectation.done();
+expectation.done()
 ```
 
-*Note*: when using React 18, the semantics of `waitFor` have changed as noted above.
+_Note_: when using React 18, the semantics of `waitFor` have changed as noted above.
 
 ## Further reading
 
-For additional tips and an alternative setup using `mock-service-worker`, have a look at [Testing React Query](../community/tkdodos-blog#5-testing-react-query) from
+For additional tips and an alternative setup using `mock-service-worker`, have a look at [Testing React Query](./community/tkdodos-blog#5-testing-react-query) from
 the Community Resources.
diff --git a/docs/framework/react/guides/updates-from-mutation-responses.md b/docs/framework/react/guides/updates-from-mutation-responses.md
index 901c5a38ff..592ab09201 100644
--- a/docs/framework/react/guides/updates-from-mutation-responses.md
+++ b/docs/framework/react/guides/updates-from-mutation-responses.md
@@ -3,17 +3,18 @@ id: updates-from-mutation-responses
 title: Updates from Mutation Responses
 ---
 
-When dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Client's `setQueryData`](../reference/QueryClient#queryclientsetquerydata) method:
+When dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Client's `setQueryData`](./reference/QueryClient#queryclientsetquerydata) method:
 
 [//]: # 'Example'
+
 ```tsx
 const queryClient = useQueryClient()
 
 const mutation = useMutation({
   mutationFn: editTodo,
-  onSuccess: data => {
+  onSuccess: (data) => {
     queryClient.setQueryData(['todo', { id: 5 }], data)
-  }
+  },
 })
 
 mutation.mutate({
@@ -28,12 +29,14 @@ const { status, data, error } = useQuery({
   queryFn: fetchTodoById,
 })
 ```
+
 [//]: # 'Example'
 
 You might want to tie the `onSuccess` logic into a reusable mutation, for that you can
 create a custom hook like this:
 
 [//]: # 'Example2'
+
 ```tsx
 const useMutateTodo = () => {
   const queryClient = useQueryClient()
@@ -47,6 +50,7 @@ const useMutateTodo = () => {
   })
 }
 ```
+
 [//]: # 'Example2'
 
 ## Immutability
@@ -54,24 +58,27 @@ const useMutateTodo = () => {
 Updates via `setQueryData` must be performed in an _immutable_ way. **DO NOT** attempt to write directly to the cache by mutating data (that you retrieved via from the cache) in place. It might work at first but can lead to subtle bugs along the way.
 
 [//]: # 'Example3'
+
 ```tsx
-queryClient.setQueryData(
-  ['posts', { id }],
-  (oldData) => {
-    if (oldData) {
-      // ❌ do not try this
-      oldData.title = 'my new post title'
-    }
-    return oldData
-  })
+queryClient.setQueryData(['posts', { id }], (oldData) => {
+  if (oldData) {
+    // ❌ do not try this
+    oldData.title = 'my new post title'
+  }
+  return oldData
+})
 
 queryClient.setQueryData(
   ['posts', { id }],
   // ✅ this is the way
-  (oldData) => oldData ? {
-    ...oldData,
-    title: 'my new post title'
-  } : oldData
+  (oldData) =>
+    oldData
+      ? {
+          ...oldData,
+          title: 'my new post title',
+        }
+      : oldData,
 )
 ```
+
 [//]: # 'Example3'
diff --git a/docs/framework/react/overview.md b/docs/framework/react/overview.md
index 9ae43cbb07..eb2a9dfb2e 100644
--- a/docs/framework/react/overview.md
+++ b/docs/framework/react/overview.md
@@ -69,8 +69,8 @@ function Example() {
   const { isLoading, error, data } = useQuery({
     queryKey: ['repoData'],
     queryFn: () =>
-      fetch('https://api.github.com/repos/TanStack/query').then(
-        (res) => res.json(),
+      fetch('https://api.github.com/repos/TanStack/query').then((res) =>
+        res.json(),
       ),
   })
 
@@ -96,6 +96,6 @@ function Example() {
 ## You talked me into it, so what now?
 
 - Consider taking the official [React Query Course](https://ui.dev/react-query?from=tanstack) (or buying it for your whole team!)
-- Learn React Query at your own pace with our amazingly thorough [Walkthrough Guide](../installation) and [API Reference](../reference/useQuery)
+- Learn React Query at your own pace with our amazingly thorough [Walkthrough Guide](./installation) and [API Reference](./reference/useQuery)
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/plugins/createAsyncStoragePersister.md b/docs/framework/react/plugins/createAsyncStoragePersister.md
index 48bcd9cf44..e37fed23d6 100644
--- a/docs/framework/react/plugins/createAsyncStoragePersister.md
+++ b/docs/framework/react/plugins/createAsyncStoragePersister.md
@@ -6,14 +6,19 @@ title: createAsyncStoragePersister
 ## Installation
 
 This utility comes as a separate package and is available under the `'@tanstack/query-async-storage-persister'` import.
+
 ```bash
 npm install @tanstack/query-async-storage-persister @tanstack/react-query-persist-client
 ```
+
 or
+
 ```bash
 pnpm add @tanstack/query-async-storage-persister @tanstack/react-query-persist-client
 ```
+
 or
+
 ```bash
 yarn add @tanstack/query-async-storage-persister @tanstack/react-query-persist-client
 ```
@@ -23,7 +28,7 @@ yarn add @tanstack/query-async-storage-persister @tanstack/react-query-persist-c
 - Import the `createAsyncStoragePersister` function
 - Create a new asyncStoragePersister
   - you can pass any `storage` to it that adheres to the `AsyncStorage` interface - the example below uses the async-storage from React Native
-- Wrap your app by using [`PersistQueryClientProvider`](../plugins/persistQueryClient.md#persistqueryclientprovider) component.
+- Wrap your app by using [`PersistQueryClientProvider`](./plugins/persistQueryClient.md#persistqueryclientprovider) component.
 
 ```tsx
 import AsyncStorage from '@react-native-async-storage/async-storage'
@@ -40,7 +45,7 @@ const queryClient = new QueryClient({
 })
 
 const asyncStoragePersister = createAsyncStoragePersister({
-  storage: AsyncStorage
+  storage: AsyncStorage,
 })
 
 const Root = () => (
@@ -50,14 +55,14 @@ const Root = () => (
   >
     <App />
   </PersistQueryClientProvider>
-);
+)
 
-export default Root;
+export default Root
 ```
 
 ## Retries
 
-Retries work the same as for a [SyncStoragePersister](../plugins/createSyncStoragePersister), except that they can also be asynchronous. You can also use all the predefined retry handlers.
+Retries work the same as for a [SyncStoragePersister](./plugins/createSyncStoragePersister), except that they can also be asynchronous. You can also use all the predefined retry handlers.
 
 ## API
 
@@ -89,9 +94,9 @@ interface CreateAsyncStoragePersisterOptions {
 }
 
 interface AsyncStorage {
-   getItem: (key: string) => Promise<string | null>
-   setItem: (key: string, value: string) => Promise<unknown>
-   removeItem: (key: string) => Promise<void>
+  getItem: (key: string) => Promise<string | null>
+  setItem: (key: string, value: string) => Promise<unknown>
+  removeItem: (key: string) => Promise<void>
 }
 ```
 
diff --git a/docs/framework/react/plugins/createSyncStoragePersister.md b/docs/framework/react/plugins/createSyncStoragePersister.md
index d30010ef40..e4f44b73db 100644
--- a/docs/framework/react/plugins/createSyncStoragePersister.md
+++ b/docs/framework/react/plugins/createSyncStoragePersister.md
@@ -6,14 +6,19 @@ title: createSyncStoragePersister
 ## Installation
 
 This utility comes as a separate package and is available under the `'@tanstack/query-sync-storage-persister'` import.
+
 ```bash
 npm install @tanstack/query-sync-storage-persister @tanstack/react-query-persist-client
 ```
+
 or
+
 ```bash
 pnpm add @tanstack/query-sync-storage-persister @tanstack/react-query-persist-client
 ```
+
 or
+
 ```bash
 yarn add @tanstack/query-sync-storage-persister @tanstack/react-query-persist-client
 ```
@@ -22,7 +27,7 @@ yarn add @tanstack/query-sync-storage-persister @tanstack/react-query-persist-cl
 
 - Import the `createSyncStoragePersister` function
 - Create a new syncStoragePersister
-- Pass it to the [`persistQueryClient`](../plugins/persistQueryClient) function
+- Pass it to the [`persistQueryClient`](./plugins/persistQueryClient) function
 
 ```tsx
 import { persistQueryClient } from '@tanstack/react-query-persist-client'
@@ -36,7 +41,9 @@ const queryClient = new QueryClient({
   },
 })
 
-const localStoragePersister = createSyncStoragePersister({ storage: window.localStorage })
+const localStoragePersister = createSyncStoragePersister({
+  storage: window.localStorage,
+})
 // const sessionStoragePersister = createSyncStoragePersister({ storage: window.sessionStorage })
 
 persistQueryClient({
@@ -69,7 +76,7 @@ Per default, no retry will occur. You can use one of the predefined strategies t
 ```tsx
 const localStoragePersister = createSyncStoragePersister({
   storage: window.localStorage,
-  retry: removeOldestQuery
+  retry: removeOldestQuery,
 })
 ```
 
@@ -115,25 +122,28 @@ The default options are:
 ```
 
 #### `serialize` and `deserialize` options
+
 There is a limit to the amount of data which can be stored in `localStorage`.
 If you need to store more data in `localStorage`, you can override the `serialize` and `deserialize` functions to compress and decrompress the data using a library like [lz-string](https://github.com/pieroxy/lz-string/).
 
 ```tsx
-import { QueryClient } from '@tanstack/react-query';
+import { QueryClient } from '@tanstack/react-query'
 import { persistQueryClient } from '@tanstack/react-query-persist-client'
 import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister'
 
-import { compress, decompress } from 'lz-string';
+import { compress, decompress } from 'lz-string'
 
-const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: Infinity } } });
+const queryClient = new QueryClient({
+  defaultOptions: { queries: { staleTime: Infinity } },
+})
 
 persistQueryClient({
   queryClient: queryClient,
   persister: createSyncStoragePersister({
     storage: window.localStorage,
-    serialize: data => compress(JSON.stringify(data)),
-    deserialize: data => JSON.parse(decompress(data)),
+    serialize: (data) => compress(JSON.stringify(data)),
+    deserialize: (data) => JSON.parse(decompress(data)),
   }),
   maxAge: Infinity,
-});
+})
 ```
diff --git a/docs/framework/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md
index 2801703a5b..ca252ca455 100644
--- a/docs/framework/react/plugins/persistQueryClient.md
+++ b/docs/framework/react/plugins/persistQueryClient.md
@@ -7,8 +7,8 @@ This is set of utilities for interacting with "persisters" which save your query
 
 ## Build Persisters
 
-- [createSyncStoragePersister](../plugins/createSyncStoragePersister)
-- [createAsyncStoragePersister](../plugins/createAsyncStoragePersister)
+- [createSyncStoragePersister](./plugins/createSyncStoragePersister)
+- [createAsyncStoragePersister](./plugins/createAsyncStoragePersister)
 - [create a custom persister](#persisters)
 
 ## How It Works
@@ -33,7 +33,7 @@ const queryClient = new QueryClient({
 
 ### Cache Busting
 
-Sometimes you may make changes to your application or data that immediately invalidate any and all cached data. If and when this happens, you can pass a `buster` string option. If the cache that is found does not also have that buster string, it will be discarded.  The following several functions accept this option:
+Sometimes you may make changes to your application or data that immediately invalidate any and all cached data. If and when this happens, you can pass a `buster` string option. If the cache that is found does not also have that buster string, it will be discarded. The following several functions accept this option:
 
 ```tsx
 persistQueryClient({ queryClient, persister, buster: buildHash })
@@ -56,8 +56,8 @@ the persister `removeClient()` is called and the cache is immediately discarded.
 
 ### `persistQueryClientSave`
 
-- Your query/mutation are [`dehydrated`](../reference/hydration#dehydrate) and stored by the persister you provided.
-- `createSyncStoragePersister` and `createAsyncStoragePersister` throttle this action to happen at most every 1 second to save on potentially expensive writes.  Review their documentation to see how to customize their throttle timing.
+- Your query/mutation are [`dehydrated`](./reference/hydration#dehydrate) and stored by the persister you provided.
+- `createSyncStoragePersister` and `createAsyncStoragePersister` throttle this action to happen at most every 1 second to save on potentially expensive writes. Review their documentation to see how to customize their throttle timing.
 
 You can use this to explicitly persist the cache at the moment(s) you choose.
 
@@ -88,7 +88,7 @@ persistQueryClientSubscribe({
 
 ### `persistQueryClientRestore`
 
-- Attempts to [`hydrate`](../reference/hydration#hydrate) a previously persisted dehydrated query/mutation cache from the persister back into the query cache of the passed query client.
+- Attempts to [`hydrate`](./reference/hydration#hydrate) a previously persisted dehydrated query/mutation cache from the persister back into the query cache of the passed query client.
 - If a cache is found that is older than the `maxAge` (which by default is 24 hours), it will be discarded. This timing can be customized as you see fit.
 
 You can use this to restore the cache at moment(s) you choose.
@@ -146,12 +146,13 @@ interface PersistQueryClientOptions {
    * Not used on `persistQueryClientSave` or `persistQueryClientSubscribe` */
   hydrateOptions?: HydrateOptions
   /** The options passed to the dehydrate function
-  * Not used on `persistQueryClientRestore` */
+   * Not used on `persistQueryClientRestore` */
   dehydrateOptions?: DehydrateOptions
 }
 ```
 
 There are actually three interfaces available:
+
 - `PersistedQueryClientSaveOptions` is used for `persistQueryClientSave` and `persistQueryClientSubscribe` (doesn't use `hydrateOptions`).
 - `PersistedQueryClientRestoreOptions` is used for `persistQueryClientRestore` (doesn't use `dehydrateOptions`).
 - `PersistQueryClientOptions` is used for `persistQueryClient`
@@ -177,10 +178,9 @@ ReactDOM.createRoot(rootElement).render(<App />)
 
 ### PersistQueryClientProvider
 
-For this use-case, you can use the `PersistQueryClientProvider`. It will make sure to subscribe / unsubscribe correctly according to the React component lifecycle, and it will also make sure that queries will not start fetching while we are still restoring. Queries will still render though, they will just be put into `fetchingState: 'idle'` until data has been restored. Then, they will refetch unless the restored data is _fresh_ enough, and _initialData_ will also be respected. It can be used _instead of_ the normal [QueryClientProvider](../reference/QueryClientProvider):
+For this use-case, you can use the `PersistQueryClientProvider`. It will make sure to subscribe / unsubscribe correctly according to the React component lifecycle, and it will also make sure that queries will not start fetching while we are still restoring. Queries will still render though, they will just be put into `fetchingState: 'idle'` until data has been restored. Then, they will refetch unless the restored data is _fresh_ enough, and _initialData_ will also be respected. It can be used _instead of_ the normal [QueryClientProvider](./reference/QueryClientProvider):
 
 ```tsx
-
 import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client'
 import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister'
 
@@ -202,20 +202,20 @@ ReactDOM.createRoot(rootElement).render(
     persistOptions={{ persister }}
   >
     <App />
-  </PersistQueryClientProvider>
+  </PersistQueryClientProvider>,
 )
 ```
 
 #### Props
 
-`PersistQueryClientProvider` takes the same props as [QueryClientProvider](../reference/QueryClientProvider), and additionally:
+`PersistQueryClientProvider` takes the same props as [QueryClientProvider](./reference/QueryClientProvider), and additionally:
 
 - `persistOptions: PersistQueryClientOptions`
   - all [options](#options) you can pass to [persistQueryClient](#persistqueryclient) minus the QueryClient itself
 - `onSuccess?: () => void`
   - optional
   - will be called when the initial restore is finished
-  - can be used to [resumePausedMutations](../reference/QueryClient#queryclientresumepausedmutations)
+  - can be used to [resumePausedMutations](./reference/QueryClient#queryclientresumepausedmutations)
 
 ### useIsRestoring
 
@@ -246,32 +246,40 @@ export interface PersistedClient {
 ```
 
 You can import these (to build a persister):
+
 ```tsx
-import { PersistedClient, Persister } from "@tanstack/react-query-persist-client";
+import {
+  PersistedClient,
+  Persister,
+} from '@tanstack/react-query-persist-client'
 ```
 
 ### Building A Persister
-You can persist however you like.  Here is an example of how to build an [Indexed DB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) persister. Compared to `Web Storage API`, Indexed DB is faster, stores more than 5MB, and doesn't require serialization.  That means it can readily store Javascript native types, such as `Date` and `File`.
+
+You can persist however you like. Here is an example of how to build an [Indexed DB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) persister. Compared to `Web Storage API`, Indexed DB is faster, stores more than 5MB, and doesn't require serialization. That means it can readily store Javascript native types, such as `Date` and `File`.
 
 ```tsx
-import { get, set, del } from "idb-keyval";
-import { PersistedClient, Persister } from "@tanstack/react-query-persist-client";
+import { get, set, del } from 'idb-keyval'
+import {
+  PersistedClient,
+  Persister,
+} from '@tanstack/react-query-persist-client'
 
 /**
  * Creates an Indexed DB persister
  * @see https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
  */
-export function createIDBPersister(idbValidKey: IDBValidKey = "reactQuery") {
+export function createIDBPersister(idbValidKey: IDBValidKey = 'reactQuery') {
   return {
     persistClient: async (client: PersistedClient) => {
-      await set(idbValidKey, client);
+      await set(idbValidKey, client)
     },
     restoreClient: async () => {
-      return await get<PersistedClient>(idbValidKey);
+      return await get<PersistedClient>(idbValidKey)
     },
     removeClient: async () => {
-      await del(idbValidKey);
+      await del(idbValidKey)
     },
-  } as Persister;
+  } as Persister
 }
 ```
diff --git a/docs/framework/react/reference/useInfiniteQuery.md b/docs/framework/react/reference/useInfiniteQuery.md
index 06aa4ebe82..5ca118fdce 100644
--- a/docs/framework/react/reference/useInfiniteQuery.md
+++ b/docs/framework/react/reference/useInfiniteQuery.md
@@ -23,14 +23,14 @@ const {
 
 **Options**
 
-The options for `useInfiniteQuery` are identical to the [`useQuery` hook](../reference/useQuery) with the addition of the following:
+The options for `useInfiniteQuery` are identical to the [`useQuery` hook](./reference/useQuery) with the addition of the following:
 
 - `queryFn: (context: QueryFunctionContext) => Promise<TData>`
-  - **Required, but only if no default query function has been defined** [`defaultQueryFn`](../guides/default-query-function)
+  - **Required, but only if no default query function has been defined** [`defaultQueryFn`](./guides/default-query-function)
   - The function that the query will use to request data.
-  - Receives a [QueryFunctionContext](../guides/query-functions#queryfunctioncontext)
+  - Receives a [QueryFunctionContext](./guides/query-functions#queryfunctioncontext)
   - Must return a promise that will either resolve data or throw an error.
-  - Make sure you return the data *and* the `pageParam` if needed for use in the props below.
+  - Make sure you return the data _and_ the `pageParam` if needed for use in the props below.
 - `getNextPageParam: (lastPage, allPages) => unknown | undefined`
   - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.
   - It should return a **single variable** that will be passed as the last optional parameter to your query function.
@@ -42,7 +42,7 @@ The options for `useInfiniteQuery` are identical to the [`useQuery` hook](../ref
 
 **Returns**
 
-The returned properties for `useInfiniteQuery` are identical to the [`useQuery` hook](../reference/useQuery), with the addition of the following and a small difference in `isRefetching`:
+The returned properties for `useInfiniteQuery` are identical to the [`useQuery` hook](./reference/useQuery), with the addition of the following and a small difference in `isRefetching`:
 
 - `data.pages: TData[]`
   - Array containing all pages.
@@ -56,8 +56,8 @@ The returned properties for `useInfiniteQuery` are identical to the [`useQuery`
   - This function allows you to fetch the next "page" of results.
   - `options.pageParam: unknown` allows you to manually specify a page param instead of using `getNextPageParam`.
   - `options.cancelRefetch: boolean` if set to `true`, calling `fetchNextPage` repeatedly will invoke `fetchPage` every time, whether the previous
-  invocation has resolved or not. Also, the result from previous invocations will be ignored. If set to `false`, calling `fetchNextPage`
-  repeatedly won't have any effect until the first invocation has resolved. Default is `true`.
+    invocation has resolved or not. Also, the result from previous invocations will be ignored. If set to `false`, calling `fetchNextPage`
+    repeatedly won't have any effect until the first invocation has resolved. Default is `true`.
 - `fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<UseInfiniteQueryResult>`
   - This function allows you to fetch the previous "page" of results.
   - `options.pageParam: unknown` allows you to manually specify a page param instead of using `getPreviousPageParam`.
diff --git a/docs/framework/react/reference/useIsFetching.md b/docs/framework/react/reference/useIsFetching.md
index 19b3fe0116..57e2976964 100644
--- a/docs/framework/react/reference/useIsFetching.md
+++ b/docs/framework/react/reference/useIsFetching.md
@@ -15,7 +15,7 @@ const isFetchingPosts = useIsFetching({ queryKey: ['posts'] })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./guides/filters#query-filters)
 - `context?: React.Context<QueryClient | undefined>`
   - Use this to use a custom React Query context. Otherwise, `defaultContext` will be used.
 
diff --git a/docs/framework/react/reference/useIsMutating.md b/docs/framework/react/reference/useIsMutating.md
index 0897fb3438..1faab064c4 100644
--- a/docs/framework/react/reference/useIsMutating.md
+++ b/docs/framework/react/reference/useIsMutating.md
@@ -15,7 +15,7 @@ const isMutatingPosts = useIsMutating({ mutationKey: ['posts'] })
 
 **Options**
 
-- `filters?: MutationFilters`: [Mutation Filters](../guides/filters#mutation-filters)
+- `filters?: MutationFilters`: [Mutation Filters](./guides/filters#mutation-filters)
 - `context?: React.Context<QueryClient | undefined>`
   - Use this to use a custom React Query context. Otherwise, `defaultContext` will be used.
 
diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md
index 50233b23cb..4a6963517f 100644
--- a/docs/framework/react/reference/useMutation.md
+++ b/docs/framework/react/reference/useMutation.md
@@ -30,7 +30,7 @@ const {
   retry,
   retryDelay,
   useErrorBoundary,
-  meta
+  meta,
 })
 
 mutate(variables, {
@@ -55,7 +55,7 @@ mutate(variables, {
 - `networkMode: 'online' | 'always' | 'offlineFirst`
   - optional
   - defaults to `'online'`
-  - see [Network Mode](../guides/network-mode) for more information.
+  - see [Network Mode](./guides/network-mode) for more information.
 - `onMutate: (variables: TVariables) => Promise<TContext | void> | TContext | void`
   - Optional
   - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive
@@ -124,7 +124,7 @@ mutate(variables, {
 - `isIdle`, `isLoading`, `isSuccess`, `isError`: boolean variables derived from `status`
 - `isPaused: boolean`
   - will be `true` if the mutation has been `paused`
-  - see [Network Mode](../guides/network-mode) for more information.
+  - see [Network Mode](./guides/network-mode) for more information.
 - `data: undefined | unknown`
   - Defaults to `undefined`
   - The last successfully resolved data for the query.
@@ -139,4 +139,3 @@ mutate(variables, {
 - `failureReason: null | TError`
   - The failure reason for the mutation retry.
   - Reset to `null` when the mutation succeeds.
-
diff --git a/docs/framework/react/reference/useQueries.md b/docs/framework/react/reference/useQueries.md
index 3e1f1b764b..fa489d9d76 100644
--- a/docs/framework/react/reference/useQueries.md
+++ b/docs/framework/react/reference/useQueries.md
@@ -8,15 +8,15 @@ The `useQueries` hook can be used to fetch a variable number of queries:
 ```tsx
 const results = useQueries({
   queries: [
-    { queryKey: ['post', 1], queryFn: fetchPost, staleTime: Infinity},
-    { queryKey: ['post', 2], queryFn: fetchPost, staleTime: Infinity}
-  ]
+    { queryKey: ['post', 1], queryFn: fetchPost, staleTime: Infinity },
+    { queryKey: ['post', 2], queryFn: fetchPost, staleTime: Infinity },
+  ],
 })
 ```
 
 **Options**
 
-The `useQueries` hook accepts an options object with a **queries** key whose value is an array with query option objects identical to the [`useQuery` hook](../reference/useQuery) (excluding the `context` option).
+The `useQueries` hook accepts an options object with a **queries** key whose value is an array with query option objects identical to the [`useQuery` hook](./reference/useQuery) (excluding the `context` option).
 
 - `context?: React.Context<QueryClient | undefined>`
   - Use this to use a custom React Query context. Otherwise, `defaultContext` will be used.
diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md
index 3f366b7e41..aef546b74d 100644
--- a/docs/framework/react/reference/useQuery.md
+++ b/docs/framework/react/reference/useQuery.md
@@ -5,31 +5,31 @@ title: useQuery
 
 ```tsx
 const {
-	data,
-	dataUpdatedAt,
-	error,
-	errorUpdateCount,
-	errorUpdatedAt,
-	failureCount,
-	failureReason,
-	fetchStatus,
-	isError,
-	isFetched,
-	isFetchedAfterMount,
-	isFetching,
-	isInitialLoading,
-	isLoading,
-	isLoadingError,
-	isPaused,
-	isPlaceholderData,
-	isPreviousData,
-	isRefetchError,
-	isRefetching,
-	isStale,
-	isSuccess,
-	refetch,
-	remove,
-	status
+  data,
+  dataUpdatedAt,
+  error,
+  errorUpdateCount,
+  errorUpdatedAt,
+  failureCount,
+  failureReason,
+  fetchStatus,
+  isError,
+  isFetched,
+  isFetchedAfterMount,
+  isFetching,
+  isInitialLoading,
+  isLoading,
+  isLoadingError,
+  isPaused,
+  isPlaceholderData,
+  isPreviousData,
+  isRefetchError,
+  isRefetching,
+  isStale,
+  isSuccess,
+  refetch,
+  remove,
+  status,
 } = useQuery({
   queryKey,
   queryFn,
@@ -67,20 +67,20 @@ const {
 - `queryKey: unknown[]`
   - **Required**
   - The query key to use for this query.
-  - The query key will be hashed into a stable hash. See [Query Keys](../guides/query-keys) for more information.
+  - The query key will be hashed into a stable hash. See [Query Keys](./guides/query-keys) for more information.
   - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
 - `queryFn: (context: QueryFunctionContext) => Promise<TData>`
-  - **Required, but only if no default query function has been defined** See [Default Query Function](../guides/default-query-function) for more information.
+  - **Required, but only if no default query function has been defined** See [Default Query Function](./guides/default-query-function) for more information.
   - The function that the query will use to request data.
-  - Receives a [QueryFunctionContext](../guides/query-functions#queryfunctioncontext)
+  - Receives a [QueryFunctionContext](./guides/query-functions#queryfunctioncontext)
   - Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
 - `enabled: boolean`
   - Set this to `false` to disable this query from automatically running.
-  - Can be used for [Dependent Queries](../guides/dependent-queries).
+  - Can be used for [Dependent Queries](./guides/dependent-queries).
 - `networkMode: 'online' | 'always' | 'offlineFirst`
   - optional
   - defaults to `'online'`
-  - see [Network Mode](../guides/network-mode) for more information.
+  - see [Network Mode](./guides/network-mode) for more information.
 - `retry: boolean | number | (failureCount: number, error: TError) => boolean`
   - If `false`, failed queries will not retry by default.
   - If `true`, failed queries will retry infinitely.
@@ -238,7 +238,7 @@ const {
   - `fetching`: Is `true` whenever the queryFn is executing, which includes initial `loading` as well as background refetches.
   - `paused`: The query wanted to fetch, but has been `paused`.
   - `idle`: The query is not fetching.
-  - see [Network Mode](../guides/network-mode) for more information.
+  - see [Network Mode](./guides/network-mode) for more information.
 - `isFetching: boolean`
   - A derived boolean from the `fetchStatus` variable above, provided for convenience.
 - `isPaused: boolean`
diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md
index 552fa38f9a..f91f1017d8 100644
--- a/docs/framework/react/typescript.md
+++ b/docs/framework/react/typescript.md
@@ -115,9 +115,8 @@ const { error } = useQuery<Group[], Error>(['groups'], fetchGroups)
 
 ## Further Reading
 
-For tips and tricks around type inference, have a look at [React Query and TypeScript](../community/tkdodos-blog#6-react-query-and-typescript) from
-the Community Resources. To find out how to get the best possible type-safety, you can read [Type-safe React Query](../community/tkdodos-blog#19-type-safe-react-query).
+For tips and tricks around type inference, have a look at [React Query and TypeScript](./community/tkdodos-blog#6-react-query-and-typescript) from
+the Community Resources. To find out how to get the best possible type-safety, you can read [Type-safe React Query](./community/tkdodos-blog#19-type-safe-react-query).
 
 [//]: # 'Materials'
-
 [//]: # 'Materials'
diff --git a/docs/framework/svelte/installation.md b/docs/framework/svelte/installation.md
index 10e6da1630..c034730bbb 100644
--- a/docs/framework/svelte/installation.md
+++ b/docs/framework/svelte/installation.md
@@ -15,4 +15,4 @@ $ pnpm add @tanstack/svelte-query
 $ yarn add @tanstack/svelte-query
 ```
 
-> Wanna give it a spin before you download? Try out the [basic](/query/v4/docs/svelte/examples/svelte/basic) example!
+> Wanna give it a spin before you download? Try out the [basic](./examples/basic) example!
diff --git a/docs/framework/svelte/ssr.md b/docs/framework/svelte/ssr.md
index b989cef652..b74e12e1ed 100644
--- a/docs/framework/svelte/ssr.md
+++ b/docs/framework/svelte/ssr.md
@@ -34,14 +34,14 @@ The recommended way to achieve this is to use the `browser` module from SvelteKi
 
 Svelte Query supports two ways of prefetching data on the server and passing that to the client with SvelteKit.
 
-If you wish to view the ideal SSR setup, please have a look at the [SSR example](../examples/svelte/ssr).
-
+If you wish to view the ideal SSR setup, please have a look at the [SSR example](./examples/ssr).
 
 ### Using `initialData`
 
 Together with SvelteKit's [`load`](https://kit.svelte.dev/docs/load), you can pass the data loaded server-side into `createQuery`'s' `initialData` option:
 
 **src/routes/+page.ts**
+
 ```ts
 import type { PageLoad } from './$types'
 
@@ -52,6 +52,7 @@ export const load: PageLoad = async () => {
 ```
 
 **src/routes/+page.svelte**
+
 ```svelte
 <script>
   import { createQuery } from '@tanstack/svelte-query'
@@ -62,7 +63,7 @@ export const load: PageLoad = async () => {
   const query = createQuery({
     queryKey: ['posts'],
     queryFn: getPosts,
-    initialData: data.posts
+    initialData: data.posts,
   })
 </script>
 ```
@@ -127,7 +128,7 @@ export const load: PageLoad = async ({ parent, fetch }) => {
   // You need to use the SvelteKit fetch function here
   await queryClient.prefetchQuery({
     queryKey: ['posts'],
-    queryFn: async () => (await fetch('/api/posts')).json()
+    queryFn: async () => (await fetch('/api/posts')).json(),
   })
 }
 ```
@@ -141,7 +142,7 @@ export const load: PageLoad = async ({ parent, fetch }) => {
   // This data is cached by prefetchQuery in +page.ts so no fetch actually happens here
   const query = createQuery({
     queryKey: ['posts'],
-    queryFn: async () => (await fetch('/api/posts')).json()
+    queryFn: async () => (await fetch('/api/posts')).json(),
   })
 </script>
 ```
diff --git a/docs/framework/vue/guides/ssr.md b/docs/framework/vue/guides/ssr.md
index d0995a5b07..97896c676a 100644
--- a/docs/framework/vue/guides/ssr.md
+++ b/docs/framework/vue/guides/ssr.md
@@ -12,8 +12,16 @@ Vue Query supports prefetching multiple queries on the server and then _dehydrat
 First create `vue-query.ts` file in your `plugins` directory with the following content:
 
 ```ts
-import type { DehydratedState, VueQueryPluginOptions } from '@tanstack/vue-query'
-import { VueQueryPlugin, QueryClient, hydrate, dehydrate } from '@tanstack/vue-query'
+import type {
+  DehydratedState,
+  VueQueryPluginOptions,
+} from '@tanstack/vue-query'
+import {
+  VueQueryPlugin,
+  QueryClient,
+  hydrate,
+  dehydrate,
+} from '@tanstack/vue-query'
 // Nuxt 3 app aliases
 import { useState } from '#app'
 
@@ -152,7 +160,12 @@ Sync VueQuery client state with [vite-ssr](https://github.com/frandiox/vite-ssr)
 // main.js (entry point)
 import App from './App.vue'
 import viteSSR from 'vite-ssr/vue'
-import { QueryClient, VueQueryPlugin, hydrate, dehydrate } from '@tanstack/vue-query'
+import {
+  QueryClient,
+  VueQueryPlugin,
+  hydrate,
+  dehydrate,
+} from '@tanstack/vue-query'
 
 export default viteSSR(App, { routes: [] }, ({ app, initialState }) => {
   // -- This is Vite SSR main hook, which is called once per request
@@ -217,6 +230,6 @@ In case you are creating the `QueryClient` for every request, Vue Query creates
 
 On the server, `cacheTime` defaults to `Infinity` which disables manual garbage collection and will automatically clear memory once a request has finished. If you are explicitly setting a non-Infinity `cacheTime` then you will be responsible for clearing the cache early.
 
-To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](../reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
+To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](./reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
 
 Alternatively, you can set a smaller `cacheTime`.
diff --git a/docs/framework/vue/guides/suspense.md b/docs/framework/vue/guides/suspense.md
index e83ad15e88..e6251545ef 100644
--- a/docs/framework/vue/guides/suspense.md
+++ b/docs/framework/vue/guides/suspense.md
@@ -51,4 +51,4 @@ export default defineComponent({
 
 ## Fetch-on-render vs Render-as-you-fetch
 
-Out of the box, Vue Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](../guides/prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
+Out of the box, Vue Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](./guides/prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
diff --git a/docs/framework/vue/installation.md b/docs/framework/vue/installation.md
index 70ec75d080..6a33b7a99e 100644
--- a/docs/framework/vue/installation.md
+++ b/docs/framework/vue/installation.md
@@ -15,7 +15,7 @@ $ pnpm add @tanstack/vue-query
 $ yarn add @tanstack/vue-query
 ```
 
-> Wanna give it a spin before you download? Try out the [basic](/query/v4/docs/vue/examples/vue/basic) example!
+> Wanna give it a spin before you download? Try out the [basic](./examples/basic) example!
 
 Vue Query is compatible with Vue 2.x and 3.x
 
@@ -26,7 +26,7 @@ Vue Query is compatible with Vue 2.x and 3.x
 Before using Vue Query, you need to initialize it using `VueQueryPlugin`
 
 ```tsx
-import { VueQueryPlugin } from "@tanstack/vue-query";
+import { VueQueryPlugin } from '@tanstack/vue-query'
 
 app.use(VueQueryPlugin)
 ```
@@ -41,7 +41,7 @@ If you are not a fan of `<script setup>` syntax, you can easily translate all th
 
 ```vue
 <script setup>
-import { useQuery } from "@tanstack/vue-query";
+import { useQuery } from '@tanstack/vue-query'
 
 const { isLoading, isFetching, isError, data, error } = useQuery({
   queryKey: ['todos'],
diff --git a/docs/framework/vue/overview.md b/docs/framework/vue/overview.md
index 31c8da66ff..91e3ed902c 100644
--- a/docs/framework/vue/overview.md
+++ b/docs/framework/vue/overview.md
@@ -11,6 +11,6 @@ replace: { 'React': 'Vue', 'react-query': 'vue-query' }
 
 ## You talked me into it, so what now?
 
-- Learn Vue Query at your own pace with our amazingly thorough [Walkthrough Guide](../installation) and [API Reference](../reference/useQuery)
+- Learn Vue Query at your own pace with our amazingly thorough [Walkthrough Guide](./installation) and [API Reference](./reference/useQuery)
 
 [//]: # 'Materials'
diff --git a/docs/framework/vue/quick-start.md b/docs/framework/vue/quick-start.md
index 328ac82ba5..c9d8afac81 100644
--- a/docs/framework/vue/quick-start.md
+++ b/docs/framework/vue/quick-start.md
@@ -7,7 +7,7 @@ replace: { 'React': 'Vue', 'react-query': 'vue-query' }
 
 [//]: # 'Example'
 
-If you're looking for a fully functioning example, please have a look at our [basic codesandbox example](../examples/vue/basic)
+If you're looking for a fully functioning example, please have a look at our [basic codesandbox example](./examples/basic)
 
 ```vue
 <script setup>
diff --git a/docs/reference/InfiniteQueryObserver.md b/docs/reference/InfiniteQueryObserver.md
index 3bb95f2c12..7872393c3d 100644
--- a/docs/reference/InfiniteQueryObserver.md
+++ b/docs/reference/InfiniteQueryObserver.md
@@ -15,7 +15,7 @@ const observer = new InfiniteQueryObserver(queryClient, {
   getPreviousPageParam: (firstPage, allPages) => firstPage.prevCursor,
 })
 
-const unsubscribe = observer.subscribe(result => {
+const unsubscribe = observer.subscribe((result) => {
   console.log(result)
   unsubscribe()
 })
@@ -23,4 +23,4 @@ const unsubscribe = observer.subscribe(result => {
 
 **Options**
 
-The options for the `InfiniteQueryObserver` are exactly the same as those of [`useInfiniteQuery`](../reference/useInfiniteQuery).
+The options for the `InfiniteQueryObserver` are exactly the same as those of [`useInfiniteQuery`](./framework/react/reference/useInfiniteQuery).
diff --git a/docs/reference/QueriesObserver.md b/docs/reference/QueriesObserver.md
index 93015df009..6d8b16a2b4 100644
--- a/docs/reference/QueriesObserver.md
+++ b/docs/reference/QueriesObserver.md
@@ -13,7 +13,7 @@ const observer = new QueriesObserver(queryClient, [
   { queryKey: ['post', 2], queryFn: fetchPost },
 ])
 
-const unsubscribe = observer.subscribe(result => {
+const unsubscribe = observer.subscribe((result) => {
   console.log(result)
   unsubscribe()
 })
@@ -21,4 +21,4 @@ const unsubscribe = observer.subscribe(result => {
 
 **Options**
 
-The options for the `QueriesObserver` are exactly the same as those of [`useQueries`](../reference/useQueries).
+The options for the `QueriesObserver` are exactly the same as those of [`useQueries`](./framework/react/reference/useQueries).
diff --git a/docs/reference/QueryCache.md b/docs/reference/QueryCache.md
index 16a0434345..6799bf8461 100644
--- a/docs/reference/QueryCache.md
+++ b/docs/reference/QueryCache.md
@@ -63,8 +63,8 @@ const query = queryCache.find(queryKey)
 
 **Options**
 
-- `queryKey?: QueryKey`: [Query Keys](../guides/query-keys)
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `queryKey?: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -83,8 +83,8 @@ const queries = queryCache.findAll(queryKey)
 
 **Options**
 
-- `queryKey?: QueryKey`: [Query Keys](../guides/query-keys)
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `queryKey?: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -126,6 +126,6 @@ queryCache.clear()
 ## Further reading
 
 To get a better understanding how the QueryCache works internally, have a look at [#18: Inside React Query
-](../community/tkdodos-blog#18-inside-react-query) from the Community Resources.
+](./framework/react/community/tkdodos-blog#18-inside-react-query) from the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md
index 14d501437b..10e20245e3 100644
--- a/docs/reference/QueryClient.md
+++ b/docs/reference/QueryClient.md
@@ -87,7 +87,11 @@ Specify a `staleTime` to only fetch when the data is older than a certain amount
 
 ```tsx
 try {
-  const data = await queryClient.fetchQuery({ queryKey, queryFn, staleTime: 10000 })
+  const data = await queryClient.fetchQuery({
+    queryKey,
+    queryFn,
+    staleTime: 10000,
+  })
 } catch (error) {
   console.log(error)
 }
@@ -95,7 +99,7 @@ try {
 
 **Options**
 
-The options for `fetchQuery` are exactly the same as those of [`useQuery`](../reference/useQuery), except the following: `enabled, refetchInterval, refetchIntervalInBackground, refetchOnWindowFocus, refetchOnReconnect, notifyOnChangeProps, onSuccess, onError, onSettled, useErrorBoundary, select, suspense, keepPreviousData, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/tannerlinsley/react-query/blob/361935a12cec6f36d0bd6ba12e84136c405047c5/src/core/types.ts#L83) for more clarity.
+The options for `fetchQuery` are exactly the same as those of [`useQuery`](./framework/react/reference/useQuery), except the following: `enabled, refetchInterval, refetchIntervalInBackground, refetchOnWindowFocus, refetchOnReconnect, notifyOnChangeProps, onSuccess, onError, onSettled, useErrorBoundary, select, suspense, keepPreviousData, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/tannerlinsley/react-query/blob/361935a12cec6f36d0bd6ba12e84136c405047c5/src/core/types.ts#L83) for more clarity.
 
 **Returns**
 
@@ -172,7 +176,7 @@ const data = queryClient.getQueryData(queryKey)
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -205,7 +209,7 @@ const data = queryClient.getQueriesData(filters)
 
 **Options**
 
-- `filters: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
   - if a filter is passed, the data with queryKeys matching the filter will be returned
 
 **Returns**
@@ -231,7 +235,7 @@ queryClient.setQueryData(queryKey, updater)
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](../guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
 - `updater: TQueryFnData | undefined | ((oldData: TQueryFnData | undefined) => TQueryFnData | undefined)`
   - If non-function is passed, the data will be updated to this value
   - If a function is passed, it will receive the old data value and be expected to return a new one.
@@ -249,7 +253,7 @@ If the value is `undefined`, the query data is not updated.
 For convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:
 
 ```tsx
-setQueryData(queryKey, oldData => newData)
+setQueryData(queryKey, (oldData) => newData)
 ```
 
 If the updater function returns `undefined`, the query data will not be updated. If the updater function receives `undefined` as input, you can return `undefined` to bail out of the update and thus _not_ create a new cache entry.
@@ -269,7 +273,7 @@ console.log(state.dataUpdatedAt)
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
 
 ## `queryClient.setQueriesData`
 
@@ -281,7 +285,7 @@ queryClient.setQueriesData(filters, updater)
 
 **Options**
 
-- `filters: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
   - if a filter is passed, queryKeys matching the filter will be updated
 - `updater: TQueryFnData | (oldData: TQueryFnData | undefined) => TQueryFnData`
   - the [setQueryData](#queryclientsetquerydata) updater function or new data, will be called for each matching queryKey
@@ -294,17 +298,20 @@ The `invalidateQueries` method can be used to invalidate and refetch single or m
 - If you **want inactive queries to refetch** as well, use the `refetchType: 'all'` option
 
 ```tsx
-await queryClient.invalidateQueries({
-  queryKey: ['posts'],
-  exact,
-  refetchType: 'active',
-}, { throwOnError, cancelRefetch })
+await queryClient.invalidateQueries(
+  {
+    queryKey: ['posts'],
+    exact,
+    refetchType: 'active',
+  },
+  { throwOnError, cancelRefetch },
+)
 ```
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
-  - `queryKey?: QueryKey`: [Query Keys](../guides/query-keys)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+  - `queryKey?: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
   - `refetchType?: 'active' | 'inactive' | 'all' | 'none'`
     - Defaults to `'active'`
     - When set to `active`, only queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will be refetched in the background.
@@ -312,7 +319,7 @@ await queryClient.invalidateQueries({
     - When set to `all`, all queries that match the refetch predicate will be refetched in the background.
     - When set to `none`, no queries will be refetched, and those that match the refetch predicate will be marked as invalid only.
   - `refetchPage: (page: TData, index: number, allPages: TData[]) => boolean`
-    - Only for [Infinite Queries](../guides/infinite-queries#refetchpage)
+    - Only for [Infinite Queries](./framework/react/guides/infinite-queries#refetchpage)
     - Use this function to specify which pages should be refetched
 - `options?: InvalidateOptions`:
   - `throwOnError?: boolean`
@@ -339,14 +346,18 @@ await queryClient.refetchQueries({ stale: true })
 await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })
 
 // refetch all active queries exactly matching a query key:
-await queryClient.refetchQueries({ queryKey: ['posts', 1], type: 'active', exact: true })
+await queryClient.refetchQueries({
+  queryKey: ['posts', 1],
+  type: 'active',
+  exact: true,
+})
 ```
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
   - `refetchPage: (page: TData, index: number, allPages: TData[]) => boolean`
-    - Only for [Infinite Queries](../guides/infinite-queries#refetchpage)
+    - Only for [Infinite Queries](./framework/react/guides/infinite-queries#refetchpage)
     - Use this function to specify which pages should be refetched
 - `options?: RefetchOptions`:
   - `throwOnError?: boolean`
@@ -372,7 +383,7 @@ await queryClient.cancelQueries({ queryKey: ['posts'], exact: true })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -388,7 +399,7 @@ queryClient.removeQueries({ queryKey, exact: true })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -411,9 +422,9 @@ queryClient.resetQueries({ queryKey, exact: true })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
   - `refetchPage: (page: TData, index: number, allPages: TData[]) => boolean`
-    - Only for [Infinite Queries](../guides/infinite-queries#refetchpage)
+    - Only for [Infinite Queries](./framework/react/guides/infinite-queries#refetchpage)
     - Use this function to specify which pages should be refetched
 - `options?: ResetOptions`:
   - `throwOnError?: boolean`
@@ -437,11 +448,11 @@ if (queryClient.isFetching()) {
 }
 ```
 
-TanStack Query also exports a handy [`useIsFetching`](../reference/useIsFetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.
+TanStack Query also exports a handy [`useIsFetching`](./framework/react/reference/useIsFetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -457,15 +468,16 @@ if (queryClient.isMutating()) {
 }
 ```
 
-TanStack Query also exports a handy [`useIsMutating`](../reference/useIsMutating) hook that will let you subscribe to this state in your components without creating a manual subscription to the mutation cache.
+TanStack Query also exports a handy [`useIsMutating`](./framework/react/reference/useIsMutating) hook that will let you subscribe to this state in your components without creating a manual subscription to the mutation cache.
 
 **Options**
 
-- `filters: MutationFilters`: [Mutation Filters](../guides/filters#mutation-filters)
+- `filters: MutationFilters`: [Mutation Filters](./framework/react/guides/filters#mutation-filters)
 
 **Returns**
 
 This method returns the number of fetching mutations.
+
 ## `queryClient.getLogger`
 
 The `getLogger` method returns the logger which have been set when creating the client.
@@ -519,7 +531,7 @@ function Component() {
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](../guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
 - `options: QueryOptions`
 
 > As stated in [`getQueryDefaults`](#queryclientgetquerydefaults), the order of registration of query defaults does matter.
diff --git a/docs/reference/QueryObserver.md b/docs/reference/QueryObserver.md
index 9eb96bab13..2173ccc6d7 100644
--- a/docs/reference/QueryObserver.md
+++ b/docs/reference/QueryObserver.md
@@ -10,7 +10,7 @@ The `QueryObserver` can be used to observe and switch between queries.
 ```tsx
 const observer = new QueryObserver(queryClient, { queryKey: ['posts'] })
 
-const unsubscribe = observer.subscribe(result => {
+const unsubscribe = observer.subscribe((result) => {
   console.log(result)
   unsubscribe()
 })
@@ -18,4 +18,4 @@ const unsubscribe = observer.subscribe(result => {
 
 **Options**
 
-The options for the `QueryObserver` are exactly the same as those of [`useQuery`](../reference/useQuery).
+The options for the `QueryObserver` are exactly the same as those of [`useQuery`](./framework/react/reference/useQuery).

From 81ef31f4df8737a71cdd267bde1d580beaf0e521 Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Sat, 27 Jan 2024 07:56:04 +1100
Subject: [PATCH 20/45] docs: Move eslint docs to core (v4)

---
 docs/config.json                              | 50 +++++++++----------
 .../react => }/eslint/eslint-plugin-query.md  |  0
 .../react => }/eslint/exhaustive-deps.md      |  0
 .../eslint/no-deprecated-options.md           |  0
 .../eslint/prefer-query-object-syntax.md      |  0
 .../react => }/eslint/stable-query-client.md  |  0
 6 files changed, 25 insertions(+), 25 deletions(-)
 rename docs/{framework/react => }/eslint/eslint-plugin-query.md (100%)
 rename docs/{framework/react => }/eslint/exhaustive-deps.md (100%)
 rename docs/{framework/react => }/eslint/no-deprecated-options.md (100%)
 rename docs/{framework/react => }/eslint/prefer-query-object-syntax.md (100%)
 rename docs/{framework/react => }/eslint/stable-query-client.md (100%)

diff --git a/docs/config.json b/docs/config.json
index 048e8b460d..29b232273f 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -42,6 +42,31 @@
           "to": "reference/onlineManager"
         }
       ]
+    },
+    {
+      "label": "ESLint",
+      "children": [
+        {
+          "label": "ESLint Plugin Query",
+          "to": "eslint/eslint-plugin-query"
+        },
+        {
+          "label": "Exhaustive Deps",
+          "to": "eslint/exhaustive-deps"
+        },
+        {
+          "label": "No deprecated options",
+          "to": "eslint/no-deprecated-options"
+        },
+        {
+          "label": "Prefer object syntax",
+          "to": "eslint/prefer-query-object-syntax"
+        },
+        {
+          "label": "Stable Query Client",
+          "to": "eslint/stable-query-client"
+        }
+      ]
     }
   ],
   "frameworkMenus": [
@@ -332,31 +357,6 @@
             }
           ]
         },
-        {
-          "label": "ESLint",
-          "children": [
-            {
-              "label": "ESLint Plugin Query",
-              "to": "framework/react/eslint/eslint-plugin-query"
-            },
-            {
-              "label": "Exhaustive Deps",
-              "to": "framework/react/eslint/exhaustive-deps"
-            },
-            {
-              "label": "No deprecated options",
-              "to": "framework/react/eslint/no-deprecated-options"
-            },
-            {
-              "label": "Prefer object syntax",
-              "to": "framework/react/eslint/prefer-query-object-syntax"
-            },
-            {
-              "label": "Stable Query Client",
-              "to": "framework/react/eslint/stable-query-client"
-            }
-          ]
-        },
         {
           "label": "Plugins",
           "children": [
diff --git a/docs/framework/react/eslint/eslint-plugin-query.md b/docs/eslint/eslint-plugin-query.md
similarity index 100%
rename from docs/framework/react/eslint/eslint-plugin-query.md
rename to docs/eslint/eslint-plugin-query.md
diff --git a/docs/framework/react/eslint/exhaustive-deps.md b/docs/eslint/exhaustive-deps.md
similarity index 100%
rename from docs/framework/react/eslint/exhaustive-deps.md
rename to docs/eslint/exhaustive-deps.md
diff --git a/docs/framework/react/eslint/no-deprecated-options.md b/docs/eslint/no-deprecated-options.md
similarity index 100%
rename from docs/framework/react/eslint/no-deprecated-options.md
rename to docs/eslint/no-deprecated-options.md
diff --git a/docs/framework/react/eslint/prefer-query-object-syntax.md b/docs/eslint/prefer-query-object-syntax.md
similarity index 100%
rename from docs/framework/react/eslint/prefer-query-object-syntax.md
rename to docs/eslint/prefer-query-object-syntax.md
diff --git a/docs/framework/react/eslint/stable-query-client.md b/docs/eslint/stable-query-client.md
similarity index 100%
rename from docs/framework/react/eslint/stable-query-client.md
rename to docs/eslint/stable-query-client.md

From 11b336e75529d3a1931eced5c1a05e7b31de3771 Mon Sep 17 00:00:00 2001
From: Arnoud <6420061+arnoud-dv@users.noreply.github.com>
Date: Mon, 12 Feb 2024 21:36:09 +0100
Subject: [PATCH 21/45] docs: link angular adapter (#6796)

---
 .../react/community/angular-query.md          | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/docs/framework/react/community/angular-query.md b/docs/framework/react/community/angular-query.md
index 0cb6edfb94..e5ff2bde8f 100644
--- a/docs/framework/react/community/angular-query.md
+++ b/docs/framework/react/community/angular-query.md
@@ -3,16 +3,16 @@ id: angular-query
 title: Angular Query
 ---
 
-The Angular adapter is available as a community library: [ngneat/query](https://ngneat.github.io/query/). It is based on the TanStack/query-core.
+The Angular adapter is now available for TanStack Query v5.
 
-## Installation
-
-```bash
-$ npm i @ngneat/query
-# or
-$ pnpm add @ngneat/query
-# or
-$ yarn add @ngneat/query
+```ts
+  postQuery = injectQuery(() => ({
+    enabled: this.postId() > 0,
+    queryKey: ['post', this.postId()],
+    queryFn: () => lastValueFrom(this.getPost$(this.postId()))
+  }))
 ```
 
-Check the complete documentation on [GitHub](https://github.com/ngneat/query).
+It's based on Angular signals and compatible with Angular v17+.
+
+Check the complete documentation: [Angular Query overview](https://tanstack.com/query/latest/docs/framework/angular/overview).

From 4f8221bde78b6f7357df6bf98e69317ca091a107 Mon Sep 17 00:00:00 2001
From: Fullchee Zhang <Fullchee@users.noreply.github.com>
Date: Tue, 20 Feb 2024 06:04:33 -0500
Subject: [PATCH 22/45] docs: Install the right version of the react devtools
 (#6941)

---
 docs/framework/react/devtools.md | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md
index 481be4c14f..8d3b85360c 100644
--- a/docs/framework/react/devtools.md
+++ b/docs/framework/react/devtools.md
@@ -13,14 +13,16 @@ When you begin your React Query journey, you'll want these devtools by your side
 
 ## Install and Import the Devtools
 
-The devtools are a separate package that you need to install:
+The devtools are a separate package that you need to install.
+
+The major version of all the packages must be in sync.
 
 ```bash
-$ npm i @tanstack/react-query-devtools
+$ npm i @tanstack/react-query-devtools@4
 # or
-$ pnpm add @tanstack/react-query-devtools
+$ pnpm add @tanstack/react-query-devtools@4
 # or
-$ yarn add @tanstack/react-query-devtools
+$ yarn add @tanstack/react-query-devtools@4
 ```
 
 You can import the devtools like this:

From 1e2ee37a40558c9dfbcf4ca4682bda4d4a337fcb Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Wed, 13 Mar 2024 18:57:51 +1100
Subject: [PATCH 23/45] docs: Update docs/config.json (v4) (#7102)

---
 docs/config.json | 682 ++++++++++++++++++++++++-----------------------
 1 file changed, 346 insertions(+), 336 deletions(-)

diff --git a/docs/config.json b/docs/config.json
index 29b232273f..9d248574ff 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -5,76 +5,13 @@
     "apiKey": "93e0b83eb0b5af4549b6bf47f90af3f7",
     "indexName": "tanstack-query"
   },
-  "menu": [
+  "sections": [
     {
-      "label": "API Reference",
-      "children": [
-        {
-          "label": "QueryClient",
-          "to": "reference/QueryClient"
-        },
-        {
-          "label": "QueryCache",
-          "to": "reference/QueryCache"
-        },
-        {
-          "label": "MutationCache",
-          "to": "reference/MutationCache"
-        },
-        {
-          "label": "QueryObserver",
-          "to": "reference/QueryObserver"
-        },
-        {
-          "label": "InfiniteQueryObserver",
-          "to": "reference/InfiniteQueryObserver"
-        },
-        {
-          "label": "QueriesObserver",
-          "to": "reference/QueriesObserver"
-        },
-        {
-          "label": "focusManager",
-          "to": "reference/focusManager"
-        },
-        {
-          "label": "onlineManager",
-          "to": "reference/onlineManager"
-        }
-      ]
-    },
-    {
-      "label": "ESLint",
-      "children": [
-        {
-          "label": "ESLint Plugin Query",
-          "to": "eslint/eslint-plugin-query"
-        },
-        {
-          "label": "Exhaustive Deps",
-          "to": "eslint/exhaustive-deps"
-        },
-        {
-          "label": "No deprecated options",
-          "to": "eslint/no-deprecated-options"
-        },
-        {
-          "label": "Prefer object syntax",
-          "to": "eslint/prefer-query-object-syntax"
-        },
-        {
-          "label": "Stable Query Client",
-          "to": "eslint/stable-query-client"
-        }
-      ]
-    }
-  ],
-  "frameworkMenus": [
-    {
-      "framework": "react",
-      "menuItems": [
+      "label": "Getting Started",
+      "children": [],
+      "frameworks": [
         {
-          "label": "Getting Started",
+          "label": "react",
           "children": [
             {
               "label": "Overview",
@@ -115,7 +52,72 @@
           ]
         },
         {
-          "label": "Guides & Concepts",
+          "label": "solid",
+          "children": [
+            {
+              "label": "Overview",
+              "to": "framework/solid/overview"
+            }
+          ]
+        },
+        {
+          "label": "vue",
+          "children": [
+            {
+              "label": "Overview",
+              "to": "framework/vue/overview"
+            },
+            {
+              "label": "Installation",
+              "to": "framework/vue/installation"
+            },
+            {
+              "label": "Quick Start",
+              "to": "framework/vue/quick-start"
+            },
+            {
+              "label": "Devtools",
+              "to": "framework/vue/devtools"
+            },
+            {
+              "label": "TypeScript",
+              "to": "framework/vue/typescript"
+            },
+            {
+              "label": "GraphQL",
+              "to": "framework/vue/graphql"
+            }
+          ]
+        },
+        {
+          "label": "svelte",
+          "children": [
+            {
+              "label": "Overview",
+              "to": "framework/svelte/overview"
+            },
+            {
+              "label": "Installation",
+              "to": "framework/svelte/installation"
+            },
+            {
+              "label": "SSR & SvelteKit",
+              "to": "framework/svelte/ssr"
+            },
+            {
+              "label": "Reactivity",
+              "to": "framework/svelte/reactivity"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "label": "Guides & Concepts",
+      "children": [],
+      "frameworks": [
+        {
+          "label": "react",
           "children": [
             {
               "label": "Important Defaults",
@@ -252,373 +254,444 @@
           ]
         },
         {
-          "label": "Community Resources",
+          "label": "vue",
           "children": [
             {
-              "label": "TkDodo's Blog",
-              "to": "framework/react/community/tkdodos-blog"
+              "label": "Important Defaults",
+              "to": "framework/vue/guides/important-defaults"
             },
             {
-              "label": "Batching Requests",
-              "to": "framework/react/community/batching-requests-using-bathshit"
+              "label": "Queries",
+              "to": "framework/vue/guides/queries"
             },
             {
-              "label": "Query Key Factory",
-              "to": "framework/react/community/lukemorales-query-key-factory"
+              "label": "Query Keys",
+              "to": "framework/vue/guides/query-keys"
             },
             {
-              "label": "React Query Kit",
-              "to": "framework/react/community/liaoliao666-react-query-kit"
+              "label": "Query Functions",
+              "to": "framework/vue/guides/query-functions"
             },
             {
-              "label": "Angular Query",
-              "to": "framework/react/community/angular-query"
+              "label": "Network Mode",
+              "to": "framework/vue/guides/network-mode"
             },
             {
-              "label": "Suspensive React Query",
-              "to": "framework/react/community/suspensive-react-query"
-            }
-          ]
-        },
-        {
-          "label": "Examples",
-          "children": [
-            {
-              "label": "Simple",
-              "to": "framework/react/examples/simple"
+              "label": "Parallel Queries",
+              "to": "framework/vue/guides/parallel-queries"
             },
             {
-              "label": "Basic",
-              "to": "framework/react/examples/basic"
+              "label": "Dependent Queries",
+              "to": "framework/vue/guides/dependent-queries"
             },
             {
-              "label": "Basic w/ GraphQL-Request",
-              "to": "framework/react/examples/basic-graphql-request"
+              "label": "Background Fetching Indicators",
+              "to": "framework/vue/guides/background-fetching-indicators"
             },
             {
-              "label": "Auto Refetching / Polling / Realtime",
-              "to": "framework/react/examples/auto-refetching"
+              "label": "Window Focus Refetching",
+              "to": "framework/vue/guides/window-focus-refetching"
             },
             {
-              "label": "Optimistic Updates in TypeScript",
-              "to": "framework/react/examples/optimistic-updates-typescript"
+              "label": "Disabling/Pausing Queries",
+              "to": "framework/vue/guides/disabling-queries"
             },
             {
-              "label": "Pagination",
-              "to": "framework/react/examples/pagination"
+              "label": "Query Retries",
+              "to": "framework/vue/guides/query-retries"
             },
             {
-              "label": "Load-More & Infinite Scroll",
-              "to": "framework/react/examples/load-more-infinite-scroll"
+              "label": "Paginated Queries",
+              "to": "framework/vue/guides/paginated-queries"
             },
             {
-              "label": "Suspense",
-              "to": "framework/react/examples/suspense"
+              "label": "Infinite Queries",
+              "to": "framework/vue/guides/infinite-queries"
             },
             {
-              "label": "Default Query Function",
-              "to": "framework/react/examples/default-query-function"
+              "label": "Initial Query Data",
+              "to": "framework/vue/guides/initial-query-data"
             },
             {
-              "label": "Playground",
-              "to": "framework/react/examples/playground"
+              "label": "Placeholder Query Data",
+              "to": "framework/vue/guides/placeholder-query-data"
             },
             {
               "label": "Prefetching",
-              "to": "framework/react/examples/prefetching"
+              "to": "framework/vue/guides/prefetching"
             },
             {
-              "label": "Star Wars",
-              "to": "framework/react/examples/star-wars"
+              "label": "Mutations",
+              "to": "framework/vue/guides/mutations"
             },
             {
-              "label": "Rick And Morty",
-              "to": "framework/react/examples/rick-morty"
+              "label": "Query Invalidation",
+              "to": "framework/vue/guides/query-invalidation"
             },
             {
-              "label": "Next.js",
-              "to": "framework/react/examples/nextjs"
+              "label": "Invalidation from Mutations",
+              "to": "framework/vue/guides/invalidations-from-mutations"
             },
             {
-              "label": "React Native",
-              "to": "framework/react/examples/react-native"
+              "label": "Updates from Mutation",
+              "to": "framework/vue/guides/updates-from-mutation-responses"
             },
             {
-              "label": "React Router",
-              "to": "framework/react/examples/react-router"
+              "label": "Optimistic Updates",
+              "to": "framework/vue/guides/optimistic-updates"
             },
             {
-              "label": "Offline Queries and Mutations",
-              "to": "framework/react/examples/offline"
+              "label": "Query Cancellation",
+              "to": "framework/vue/guides/query-cancellation"
             },
             {
-              "label": "Algolia",
-              "to": "framework/react/examples/algolia"
-            }
-          ]
-        },
-        {
-          "label": "Plugins",
-          "children": [
-            {
-              "label": "persistQueryClient",
-              "to": "framework/react/plugins/persistQueryClient"
+              "label": "Scroll Restoration",
+              "to": "framework/vue/guides/scroll-restoration"
             },
             {
-              "label": "createSyncStoragePersister",
-              "to": "framework/react/plugins/createSyncStoragePersister"
+              "label": "Filters",
+              "to": "framework/vue/guides/filters"
             },
             {
-              "label": "createAsyncStoragePersister",
-              "to": "framework/react/plugins/createAsyncStoragePersister"
+              "label": "SSR & Nuxt",
+              "to": "framework/vue/guides/ssr"
             },
             {
-              "label": "broadcastQueryClient (Experimental)",
-              "to": "framework/react/plugins/broadcastQueryClient"
-            }
-          ]
-        },
-        {
-          "label": "API Reference",
-          "children": [
-            {
-              "label": "useQuery",
-              "to": "framework/react/reference/useQuery"
+              "label": "Caching",
+              "to": "framework/vue/guides/caching"
             },
             {
-              "label": "useQueries",
-              "to": "framework/react/reference/useQueries"
+              "label": "Default Query Fn",
+              "to": "framework/vue/guides/default-query-function"
             },
             {
-              "label": "useInfiniteQuery",
-              "to": "framework/react/reference/useInfiniteQuery"
+              "label": "Suspense",
+              "to": "framework/vue/guides/suspense"
             },
             {
-              "label": "useMutation",
-              "to": "framework/react/reference/useMutation"
+              "label": "Custom Logger",
+              "to": "framework/vue/guides/custom-logger"
             },
             {
-              "label": "useIsFetching",
-              "to": "framework/react/reference/useIsFetching"
+              "label": "Custom Client",
+              "to": "framework/vue/guides/custom-client"
             },
             {
-              "label": "useIsMutating",
-              "to": "framework/react/reference/useIsMutating"
+              "label": "Does this replace [Vuex, Pinia]?",
+              "to": "framework/vue/guides/does-this-replace-client-state"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "label": "Community Resources",
+      "children": [],
+      "frameworks": [
+        {
+          "label": "react",
+          "children": [
+            {
+              "label": "TkDodo's Blog",
+              "to": "framework/react/community/tkdodos-blog"
             },
             {
-              "label": "QueryClientProvider",
-              "to": "framework/react/reference/QueryClientProvider"
+              "label": "Batching Requests",
+              "to": "framework/react/community/batching-requests-using-bathshit"
             },
             {
-              "label": "useQueryClient",
-              "to": "framework/react/reference/useQueryClient"
+              "label": "Query Key Factory",
+              "to": "framework/react/community/lukemorales-query-key-factory"
             },
             {
-              "label": "QueryErrorResetBoundary",
-              "to": "framework/react/reference/QueryErrorResetBoundary"
+              "label": "React Query Kit",
+              "to": "framework/react/community/liaoliao666-react-query-kit"
             },
             {
-              "label": "useQueryErrorResetBoundary",
-              "to": "framework/react/reference/useQueryErrorResetBoundary"
+              "label": "Angular Query",
+              "to": "framework/react/community/angular-query"
             },
             {
-              "label": "hydration",
-              "to": "framework/react/reference/hydration"
+              "label": "Suspensive React Query",
+              "to": "framework/react/community/suspensive-react-query"
             }
           ]
-        }
-      ]
-    },
-    {
-      "framework": "solid",
-      "menuItems": [
+        },
         {
-          "label": "Getting Started",
+          "label": "vue",
           "children": [
             {
-              "label": "Overview",
-              "to": "framework/solid/overview"
+              "label": "TkDodo's Blog",
+              "to": "framework/vue/community/tkdodos-blog"
+            },
+            {
+              "label": "Query Key Factory",
+              "to": "framework/vue/community/lukemorales-query-key-factory"
             }
           ]
         }
       ]
     },
     {
-      "framework": "vue",
-      "menuItems": [
+      "label": "API Reference",
+      "children": [
+        {
+          "label": "QueryClient",
+          "to": "reference/QueryClient"
+        },
+        {
+          "label": "QueryCache",
+          "to": "reference/QueryCache"
+        },
+        {
+          "label": "MutationCache",
+          "to": "reference/MutationCache"
+        },
         {
-          "label": "Getting Started",
+          "label": "QueryObserver",
+          "to": "reference/QueryObserver"
+        },
+        {
+          "label": "InfiniteQueryObserver",
+          "to": "reference/InfiniteQueryObserver"
+        },
+        {
+          "label": "QueriesObserver",
+          "to": "reference/QueriesObserver"
+        },
+        {
+          "label": "focusManager",
+          "to": "reference/focusManager"
+        },
+        {
+          "label": "onlineManager",
+          "to": "reference/onlineManager"
+        }
+      ],
+      "frameworks": [
+        {
+          "label": "react",
           "children": [
             {
-              "label": "Overview",
-              "to": "framework/vue/overview"
+              "label": "useQuery",
+              "to": "framework/react/reference/useQuery"
             },
             {
-              "label": "Installation",
-              "to": "framework/vue/installation"
+              "label": "useQueries",
+              "to": "framework/react/reference/useQueries"
             },
             {
-              "label": "Quick Start",
-              "to": "framework/vue/quick-start"
+              "label": "useInfiniteQuery",
+              "to": "framework/react/reference/useInfiniteQuery"
             },
             {
-              "label": "Devtools",
-              "to": "framework/vue/devtools"
+              "label": "useMutation",
+              "to": "framework/react/reference/useMutation"
             },
             {
-              "label": "TypeScript",
-              "to": "framework/vue/typescript"
+              "label": "useIsFetching",
+              "to": "framework/react/reference/useIsFetching"
             },
             {
-              "label": "GraphQL",
-              "to": "framework/vue/graphql"
-            }
-          ]
-        },
-        {
-          "label": "Guides & Concepts",
-          "children": [
-            {
-              "label": "Important Defaults",
-              "to": "framework/vue/guides/important-defaults"
+              "label": "useIsMutating",
+              "to": "framework/react/reference/useIsMutating"
             },
             {
-              "label": "Queries",
-              "to": "framework/vue/guides/queries"
+              "label": "QueryClientProvider",
+              "to": "framework/react/reference/QueryClientProvider"
             },
             {
-              "label": "Query Keys",
-              "to": "framework/vue/guides/query-keys"
+              "label": "useQueryClient",
+              "to": "framework/react/reference/useQueryClient"
             },
             {
-              "label": "Query Functions",
-              "to": "framework/vue/guides/query-functions"
+              "label": "QueryErrorResetBoundary",
+              "to": "framework/react/reference/QueryErrorResetBoundary"
             },
             {
-              "label": "Network Mode",
-              "to": "framework/vue/guides/network-mode"
+              "label": "useQueryErrorResetBoundary",
+              "to": "framework/react/reference/useQueryErrorResetBoundary"
             },
             {
-              "label": "Parallel Queries",
-              "to": "framework/vue/guides/parallel-queries"
+              "label": "hydration",
+              "to": "framework/react/reference/hydration"
+            }
+          ]
+        },
+        {
+          "label": "vue",
+          "children": [
+            {
+              "label": "useQuery",
+              "to": "framework/vue/reference/useQuery"
             },
             {
-              "label": "Dependent Queries",
-              "to": "framework/vue/guides/dependent-queries"
+              "label": "useQueries",
+              "to": "framework/vue/reference/useQueries"
             },
             {
-              "label": "Background Fetching Indicators",
-              "to": "framework/vue/guides/background-fetching-indicators"
+              "label": "useInfiniteQuery",
+              "to": "framework/vue/reference/useInfiniteQuery"
             },
             {
-              "label": "Window Focus Refetching",
-              "to": "framework/vue/guides/window-focus-refetching"
+              "label": "useMutation",
+              "to": "framework/vue/reference/useMutation"
             },
             {
-              "label": "Disabling/Pausing Queries",
-              "to": "framework/vue/guides/disabling-queries"
+              "label": "useIsFetching",
+              "to": "framework/vue/reference/useIsFetching"
             },
             {
-              "label": "Query Retries",
-              "to": "framework/vue/guides/query-retries"
+              "label": "useIsMutating",
+              "to": "framework/vue/reference/useIsMutating"
             },
             {
-              "label": "Paginated Queries",
-              "to": "framework/vue/guides/paginated-queries"
+              "label": "useQueryClient",
+              "to": "framework/vue/reference/useQueryClient"
             },
             {
-              "label": "Infinite Queries",
-              "to": "framework/vue/guides/infinite-queries"
+              "label": "hydration",
+              "to": "framework/vue/reference/hydration"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "label": "ESLint",
+      "children": [
+        {
+          "label": "ESLint Plugin Query",
+          "to": "eslint/eslint-plugin-query"
+        },
+        {
+          "label": "Exhaustive Deps",
+          "to": "eslint/exhaustive-deps"
+        },
+        {
+          "label": "No deprecated options",
+          "to": "eslint/no-deprecated-options"
+        },
+        {
+          "label": "Prefer object syntax",
+          "to": "eslint/prefer-query-object-syntax"
+        },
+        {
+          "label": "Stable Query Client",
+          "to": "eslint/stable-query-client"
+        }
+      ]
+    },
+    {
+      "label": "Plugins",
+      "children": [],
+      "frameworks": [
+        {
+          "label": "react",
+          "children": [
+            {
+              "label": "persistQueryClient",
+              "to": "framework/react/plugins/persistQueryClient"
             },
             {
-              "label": "Initial Query Data",
-              "to": "framework/vue/guides/initial-query-data"
+              "label": "createSyncStoragePersister",
+              "to": "framework/react/plugins/createSyncStoragePersister"
             },
             {
-              "label": "Placeholder Query Data",
-              "to": "framework/vue/guides/placeholder-query-data"
+              "label": "createAsyncStoragePersister",
+              "to": "framework/react/plugins/createAsyncStoragePersister"
             },
             {
-              "label": "Prefetching",
-              "to": "framework/vue/guides/prefetching"
+              "label": "broadcastQueryClient (Experimental)",
+              "to": "framework/react/plugins/broadcastQueryClient"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "label": "Examples",
+      "children": [],
+      "frameworks": [
+        {
+          "label": "react",
+          "children": [
+            {
+              "label": "Simple",
+              "to": "framework/react/examples/simple"
             },
             {
-              "label": "Mutations",
-              "to": "framework/vue/guides/mutations"
+              "label": "Basic",
+              "to": "framework/react/examples/basic"
             },
             {
-              "label": "Query Invalidation",
-              "to": "framework/vue/guides/query-invalidation"
+              "label": "Basic w/ GraphQL-Request",
+              "to": "framework/react/examples/basic-graphql-request"
             },
             {
-              "label": "Invalidation from Mutations",
-              "to": "framework/vue/guides/invalidations-from-mutations"
+              "label": "Auto Refetching / Polling / Realtime",
+              "to": "framework/react/examples/auto-refetching"
             },
             {
-              "label": "Updates from Mutation",
-              "to": "framework/vue/guides/updates-from-mutation-responses"
+              "label": "Optimistic Updates in TypeScript",
+              "to": "framework/react/examples/optimistic-updates-typescript"
             },
             {
-              "label": "Optimistic Updates",
-              "to": "framework/vue/guides/optimistic-updates"
+              "label": "Pagination",
+              "to": "framework/react/examples/pagination"
             },
             {
-              "label": "Query Cancellation",
-              "to": "framework/vue/guides/query-cancellation"
+              "label": "Load-More & Infinite Scroll",
+              "to": "framework/react/examples/load-more-infinite-scroll"
             },
             {
-              "label": "Scroll Restoration",
-              "to": "framework/vue/guides/scroll-restoration"
+              "label": "Suspense",
+              "to": "framework/react/examples/suspense"
             },
             {
-              "label": "Filters",
-              "to": "framework/vue/guides/filters"
+              "label": "Default Query Function",
+              "to": "framework/react/examples/default-query-function"
             },
             {
-              "label": "SSR & Nuxt",
-              "to": "framework/vue/guides/ssr"
+              "label": "Playground",
+              "to": "framework/react/examples/playground"
             },
             {
-              "label": "Caching",
-              "to": "framework/vue/guides/caching"
+              "label": "Prefetching",
+              "to": "framework/react/examples/prefetching"
             },
             {
-              "label": "Default Query Fn",
-              "to": "framework/vue/guides/default-query-function"
+              "label": "Star Wars",
+              "to": "framework/react/examples/star-wars"
             },
             {
-              "label": "Suspense",
-              "to": "framework/vue/guides/suspense"
+              "label": "Rick And Morty",
+              "to": "framework/react/examples/rick-morty"
             },
             {
-              "label": "Custom Logger",
-              "to": "framework/vue/guides/custom-logger"
+              "label": "Next.js",
+              "to": "framework/react/examples/nextjs"
             },
             {
-              "label": "Custom Client",
-              "to": "framework/vue/guides/custom-client"
+              "label": "React Native",
+              "to": "framework/react/examples/react-native"
             },
             {
-              "label": "Does this replace [Vuex, Pinia]?",
-              "to": "framework/vue/guides/does-this-replace-client-state"
-            }
-          ]
-        },
-        {
-          "label": "Community Resources",
-          "children": [
+              "label": "React Router",
+              "to": "framework/react/examples/react-router"
+            },
             {
-              "label": "TkDodo's Blog",
-              "to": "framework/vue/community/tkdodos-blog"
+              "label": "Offline Queries and Mutations",
+              "to": "framework/react/examples/offline"
             },
             {
-              "label": "Query Key Factory",
-              "to": "framework/vue/community/lukemorales-query-key-factory"
+              "label": "Algolia",
+              "to": "framework/react/examples/algolia"
             }
           ]
         },
         {
-          "label": "Examples",
+          "label": "vue",
           "children": [
             {
               "label": "Basic",
@@ -639,70 +712,7 @@
           ]
         },
         {
-          "label": "API Reference",
-          "children": [
-            {
-              "label": "useQuery",
-              "to": "framework/vue/reference/useQuery"
-            },
-            {
-              "label": "useQueries",
-              "to": "framework/vue/reference/useQueries"
-            },
-            {
-              "label": "useInfiniteQuery",
-              "to": "framework/vue/reference/useInfiniteQuery"
-            },
-            {
-              "label": "useMutation",
-              "to": "framework/vue/reference/useMutation"
-            },
-            {
-              "label": "useIsFetching",
-              "to": "framework/vue/reference/useIsFetching"
-            },
-            {
-              "label": "useIsMutating",
-              "to": "framework/vue/reference/useIsMutating"
-            },
-            {
-              "label": "useQueryClient",
-              "to": "framework/vue/reference/useQueryClient"
-            },
-            {
-              "label": "hydration",
-              "to": "framework/vue/reference/hydration"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "framework": "svelte",
-      "menuItems": [
-        {
-          "label": "Getting Started",
-          "children": [
-            {
-              "label": "Overview",
-              "to": "framework/svelte/overview"
-            },
-            {
-              "label": "Installation",
-              "to": "framework/svelte/installation"
-            },
-            {
-              "label": "SSR & SvelteKit",
-              "to": "framework/svelte/ssr"
-            },
-            {
-              "label": "Reactivity",
-              "to": "framework/svelte/reactivity"
-            }
-          ]
-        },
-        {
-          "label": "Examples",
+          "label": "svelte",
           "children": [
             {
               "label": "Simple",

From 7c0187e8ec869f03d45279bf11b29c1a043ba43e Mon Sep 17 00:00:00 2001
From: Dominik Dorfmeister <office@dorfmeister.cc>
Date: Tue, 23 Apr 2024 09:11:13 +0200
Subject: [PATCH 24/45] docs: fix syntax highlighting

---
 .../guides/migrating-to-react-query-4.md      | 162 +++++++++---------
 1 file changed, 85 insertions(+), 77 deletions(-)

diff --git a/docs/framework/react/guides/migrating-to-react-query-4.md b/docs/framework/react/guides/migrating-to-react-query-4.md
index 1a078e0a0b..7ba6fa7d43 100644
--- a/docs/framework/react/guides/migrating-to-react-query-4.md
+++ b/docs/framework/react/guides/migrating-to-react-query-4.md
@@ -17,12 +17,12 @@ npm install @tanstack/react-query
 npm install @tanstack/react-query-devtools
 ```
 
-```diff
-- import { useQuery } from 'react-query'
-- import { ReactQueryDevtools } from 'react-query/devtools'
+```tsx
+- import { useQuery } from 'react-query' // [!code --]
+- import { ReactQueryDevtools } from 'react-query/devtools' // [!code --]
 
-+ import { useQuery } from '@tanstack/react-query'
-+ import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
++ import { useQuery } from '@tanstack/react-query' // [!code ++]
++ import { ReactQueryDevtools } from '@tanstack/react-query-devtools' // [!code ++]
 ```
 
 #### Codemod
@@ -58,15 +58,15 @@ Please note in the case of `TypeScript` you need to use `tsx` as the parser; oth
 
 ### Query Keys (and Mutation Keys) need to be an Array
 
-In v3, Query and Mutation Keys could be a String or an Array. Internally, React Query has always worked with Array Keys only, and we've sometimes exposed this to consumers. For example, in the `queryFn`, you would always get the key as an Array to make working with [Default Query Functions](./guides/default-query-function) easier.
+In v3, Query and Mutation Keys could be a String or an Array. Internally, React Query has always worked with Array Keys only, and we've sometimes exposed this to consumers. For example, in the `queryFn`, you would always get the key as an Array to make working with [Default Query Functions](../default-query-function) easier.
 
-However, we have not followed this concept through to all apis. For example, when using the `predicate` function on [Query Filters](./guides/filters) you would get the raw Query Key. This makes it difficult to work with such functions if you use Query Keys that are mixed Arrays and Strings. The same was true when using global callbacks.
+However, we have not followed this concept through to all apis. For example, when using the `predicate` function on [Query Filters](../filters) you would get the raw Query Key. This makes it difficult to work with such functions if you use Query Keys that are mixed Arrays and Strings. The same was true when using global callbacks.
 
 To streamline all apis, we've decided to make all keys Arrays only:
 
-```diff
-- useQuery('todos', fetchTodos)
-+ useQuery(['todos'], fetchTodos)
+```tsx
+;-useQuery('todos', fetchTodos) + // [!code --]
+  useQuery(['todos'], fetchTodos) // [!code ++]
 ```
 
 #### Codemod
@@ -100,41 +100,49 @@ Please note in the case of `TypeScript` you need to use `tsx` as the parser; oth
 
 ### The idle state has been removed
 
-With the introduction of the new [fetchStatus](./guides/queries#fetchstatus) for better offline support, the `idle` state became irrelevant, because `fetchStatus: 'idle'` captures the same state better. For more information, please read [Why two different states](./guides/queries#why-two-different-states).
+With the introduction of the new [fetchStatus](../queries#fetchstatus) for better offline support, the `idle` state became irrelevant, because `fetchStatus: 'idle'` captures the same state better. For more information, please read [Why two different states](../queries#why-two-different-states).
 
 This will mostly affect `disabled` queries that don't have any `data` yet, as those were in `idle` state before:
 
-```diff
-- status: 'idle'
-+ status: 'loading'
-+ fetchStatus: 'idle'
+```tsx
+- status: 'idle' // [!code --]
++ status: 'loading'  // [!code ++]
++ fetchStatus: 'idle' // [!code ++]
 ```
 
-Also, have a look at [the guide on dependent queries](./guides/dependent-queries)
+Also, have a look at [the guide on dependent queries](../dependent-queries)
 
 #### disabled queries
 
 Due to this change, disabled queries (even temporarily disabled ones) will start in `loading` state. To make migration easier, especially for having a good flag to know when to display a loading spinner, you can check for `isInitialLoading` instead of `isLoading`:
 
-```diff
-- isLoading
-+ isInitialLoading
+```tsx
+;-isLoading + // [!code --]
+  isInitialLoading // [!code ++]
 ```
 
-See also the guide on [disabling queries](./guides/disabling-queries#isInitialLoading)
+See also the guide on [disabling queries](../disabling-queries#isInitialLoading)
 
 ### new API for `useQueries`
 
 The `useQueries` hook now accepts an object with a `queries` prop as its input. The value of the `queries` prop is an array of queries (this array is identical to what was passed into `useQueries` in v3).
 
-```diff
-- useQueries([{ queryKey1, queryFn1, options1 }, { queryKey2, queryFn2, options2 }])
-+ useQueries({ queries: [{ queryKey1, queryFn1, options1 }, { queryKey2, queryFn2, options2 }] })
+```tsx
+;-useQueries([
+  { queryKey1, queryFn1, options1 },
+  { queryKey2, queryFn2, options2 },
+]) + // [!code --]
+  useQueries({
+    queries: [
+      { queryKey1, queryFn1, options1 },
+      { queryKey2, queryFn2, options2 },
+    ],
+  }) // [!code ++]
 ```
 
 ### Undefined is an illegal cache value for successful queries
 
-In order to make bailing out of updates possible by returning `undefined`, we had to make `undefined` an illegal cache value. This is in-line with other concepts of react-query, for example, returning `undefined` from the [initialData function](guides/initial-query-data#initial-data-function) will also _not_ set data.
+In order to make bailing out of updates possible by returning `undefined`, we had to make `undefined` an illegal cache value. This is in-line with other concepts of react-query, for example, returning `undefined` from the [initialData function](../initial-query-data#initial-data-function) will also _not_ set data.
 
 Further, it is an easy bug to produce `Promise<void>` by adding logging in the queryFn:
 
@@ -148,7 +156,7 @@ This is now disallowed on type level; at runtime, `undefined` will be transforme
 
 ### Queries and mutations, per default, need network connection to run
 
-Please read the [New Features announcement](#proper-offline-support) about online / offline support, and also the dedicated page about [Network mode](./guides/network-mode)
+Please read the [New Features announcement](#proper-offline-support) about online / offline support, and also the dedicated page about [Network mode](../network-mode)
 
 Even though React Query is an Async State Manager that can be used for anything that produces a Promise, it is most often used for data fetching in combination with data fetching libraries. That is why, per default, queries and mutations will be `paused` if there is no network connection. If you want to opt-in to the previous behavior, you can globally set `networkMode: offlineFirst` for both queries and mutations:
 
@@ -209,7 +217,7 @@ queryClient.refetchQueries({ queryKey: ['todos'] }, { cancelRefetch: false })
 
 ### Query Filters
 
-A [query filter](./guides/filters) is an object with certain conditions to match a query. Historically, the filter options have mostly been a combination of boolean flags. However, combining those flags can lead to impossible states. Specifically:
+A [query filter](../filters) is an object with certain conditions to match a query. Historically, the filter options have mostly been a combination of boolean flags. However, combining those flags can lead to impossible states. Specifically:
 
 ```
 active?: boolean
@@ -224,17 +232,17 @@ Those flags don't work well when used together, because they are mutually exclus
 
 With v4, those filters have been combined into a single filter to better show the intent:
 
-```diff
-- active?: boolean
-- inactive?: boolean
-+ type?: 'active' | 'inactive' | 'all'
+```tsx
+- active?: boolean // [!code --]
+- inactive?: boolean // [!code --]
++ type?: 'active' | 'inactive' | 'all' // [!code ++]
 ```
 
 The filter defaults to `all`, and you can choose to only match `active` or `inactive` queries.
 
 #### refetchActive / refetchInactive
 
-[queryClient.invalidateQueries](./reference/QueryClient#queryclientinvalidatequeries) had two additional, similar flags:
+[queryClient.invalidateQueries](../../../../reference/QueryClient/#queryclientinvalidatequeries) had two additional, similar flags:
 
 ```
 refetchActive: Boolean
@@ -249,10 +257,10 @@ refetchInactive: Boolean
 
 For the same reason, those have also been combined:
 
-```diff
-- refetchActive?: boolean
-- refetchInactive?: boolean
-+ refetchType?: 'active' | 'inactive' | 'all' | 'none'
+```tsx
+- refetchActive?: boolean // [!code --]
+- refetchInactive?: boolean // [!code --]
++ refetchType?: 'active' | 'inactive' | 'all' | 'none' // [!code ++]
 ```
 
 This flag defaults to `active` because `refetchActive` defaulted to `true`. This means we also need a way to tell `invalidateQueries` to not refetch at all, which is why a fourth option (`none`) is also allowed here.
@@ -272,23 +280,23 @@ React.useEffect(() => mySideEffectHere(data), [data])
 
 ### `persistQueryClient` and the corresponding persister plugins are no longer experimental and have been renamed
 
-The plugins `createWebStoragePersistor` and `createAsyncStoragePersistor` have been renamed to [`createSyncStoragePersister`](./plugins/createSyncStoragePersister) and [`createAsyncStoragePersister`](./plugins/createAsyncStoragePersister) respectively. The interface `Persistor` in `persistQueryClient` has also been renamed to `Persister`. Checkout [this stackexchange](https://english.stackexchange.com/questions/206893/persister-or-persistor) for the motivation of this change.
+The plugins `createWebStoragePersistor` and `createAsyncStoragePersistor` have been renamed to [`createSyncStoragePersister`](../../plugins/createSyncStoragePersister) and [`createAsyncStoragePersister`](../../plugins/createAsyncStoragePersister) respectively. The interface `Persistor` in `persistQueryClient` has also been renamed to `Persister`. Checkout [this stackexchange](https://english.stackexchange.com/questions/206893/persister-or-persistor) for the motivation of this change.
 
 Since these plugins are no longer experimental, their import paths have also been updated:
 
-```diff
-- import { persistQueryClient } from 'react-query/persistQueryClient-experimental'
-- import { createWebStoragePersistor } from 'react-query/createWebStoragePersistor-experimental'
-- import { createAsyncStoragePersistor } from 'react-query/createAsyncStoragePersistor-experimental'
+```tsx
+- import { persistQueryClient } from 'react-query/persistQueryClient-experimental' // [!code --]
+- import { createWebStoragePersistor } from 'react-query/createWebStoragePersistor-experimental' // [!code --]
+- import { createAsyncStoragePersistor } from 'react-query/createAsyncStoragePersistor-experimental' // [!code --]
 
-+ import { persistQueryClient } from '@tanstack/react-query-persist-client'
-+ import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister'
-+ import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister'
++ import { persistQueryClient } from '@tanstack/react-query-persist-client' // [!code ++]
++ import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' // [!code ++]
++ import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister'  // [!code ++]
 ```
 
 ### The `cancel` method on promises is no longer supported
 
-The [old `cancel` method](./guides/query-cancellation#old-cancel-function) that allowed you to define a `cancel` function on promises, which was then used by the library to support query cancellation, has been removed. We recommend to use the [newer API](./guides/query-cancellation) (introduced with v3.30.0) for query cancellation that uses the [`AbortController` API](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) internally and provides you with an [`AbortSignal` instance](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) for your query function to support query cancellation.
+The [old `cancel` method](../query-cancellation#old-cancel-function) that allowed you to define a `cancel` function on promises, which was then used by the library to support query cancellation, has been removed. We recommend to use the [newer API](../query-cancellation) (introduced with v3.30.0) for query cancellation that uses the [`AbortController` API](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) internally and provides you with an [`AbortSignal` instance](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) for your query function to support query cancellation.
 
 ### TypeScript
 
@@ -296,19 +304,19 @@ Types now require using TypeScript v4.1 or greater
 
 ### Supported Browsers
 
-As of v4, React Query is optimized for modern browsers. We have updated our browserslist to produce a more modern, performant and smaller bundle. You can read about the requirements [here](./installation#requirements).
+As of v4, React Query is optimized for modern browsers. We have updated our browserslist to produce a more modern, performant and smaller bundle. You can read about the requirements [here](../../installation#requirements).
 
 ### `setLogger` is removed
 
 It was possible to change the logger globally by calling `setLogger`. In v4, that function is replaced with an optional field when creating a `QueryClient`.
 
-```diff
-- import { QueryClient, setLogger } from 'react-query';
-+ import { QueryClient } from '@tanstack/react-query';
+```tsx
+- import { QueryClient, setLogger } from 'react-query'; // [!code --]
++ import { QueryClient } from '@tanstack/react-query'; // [!code ++]
 
-- setLogger(customLogger)
-- const queryClient = new QueryClient();
-+ const queryClient = new QueryClient({ logger: customLogger })
+- setLogger(customLogger) // [!code --]
+- const queryClient = new QueryClient(); // [!code --]
++ const queryClient = new QueryClient({ logger: customLogger }) // [!code ++]
 ```
 
 ### No _default_ manual Garbage Collection server-side
@@ -334,13 +342,13 @@ Subscribing manually to the `QueryCache` has always given you a `QueryCacheNotif
 
 #### QueryCacheNotifyEvent
 
-```diff
-- type: 'queryAdded'
-+ type: 'added'
-- type: 'queryRemoved'
-+ type: 'removed'
-- type: 'queryUpdated'
-+ type: 'updated'
+```tsx
+- type: 'queryAdded' // [!code --]
++ type: 'added' // [!code ++]
+- type: 'queryRemoved' // [!code --]
++ type: 'removed' // [!code ++]
+- type: 'queryUpdated' // [!code --]
++ type: 'updated' // [!code ++]
 ```
 
 #### MutationCacheNotifyEvent
@@ -353,26 +361,26 @@ The `MutationCacheNotifyEvent` uses the same types as the `QueryCacheNotifyEvent
 
 With version [3.22.0](https://github.com/tannerlinsley/react-query/releases/tag/v3.22.0), hydration utilities moved into the React Query core. With v3, you could still use the old exports from `react-query/hydration`, but these exports have been removed with v4.
 
-```diff
-- import { dehydrate, hydrate, useHydrate, Hydrate } from 'react-query/hydration'
-+ import { dehydrate, hydrate, useHydrate, Hydrate } from '@tanstack/react-query'
+```tsx
+- import { dehydrate, hydrate, useHydrate, Hydrate } from 'react-query/hydration' // [!code --]
++ import { dehydrate, hydrate, useHydrate, Hydrate } from '@tanstack/react-query' // [!code ++]
 ```
 
 ### Removed undocumented methods from the `queryClient`, `query` and `mutation`
 
 The methods `cancelMutatations` and `executeMutation` on the `QueryClient` were undocumented and unused internally, so we removed them. Since it was just a wrapper around a method available on the `mutationCache`, you can still use the functionality of `executeMutation`
 
-```diff
-- executeMutation<
--   TData = unknown,
--   TError = unknown,
--   TVariables = void,
--   TContext = unknown
-- >(
--   options: MutationOptions<TData, TError, TVariables, TContext>
-- ): Promise<TData> {
--   return this.mutationCache.build(this, options).execute()
-- }
+```tsx
+- executeMutation< // [!code --]
+-   TData = unknown, // [!code --]
+-   TError = unknown, // [!code --]
+-   TVariables = void, // [!code --]
+-   TContext = unknown // [!code --]
+- >( // [!code --]
+-   options: MutationOptions<TData, TError, TVariables, TContext> // [!code --]
+- ): Promise<TData> { // [!code --]
+-   return this.mutationCache.build(this, options).execute() // [!code --]
+- } // [!code --]
 ```
 
 Additionally, `query.setDefaultOptions` was removed because it was also unused. `mutation.cancel` was removed because it didn't actually cancel the outgoing request.
@@ -389,9 +397,9 @@ With the renamed directory this no longer is an issue.
 
 If you were importing anything from `'react-query/react'` directly in your project (as opposed to just `'react-query'`), then you need to update your imports:
 
-```diff
-- import { QueryClientProvider } from 'react-query/react';
-+ import { QueryClientProvider } from '@tanstack/react-query/reactjs';
+```tsx
+- import { QueryClientProvider } from 'react-query/react'; // [!code --]
++ import { QueryClientProvider } from '@tanstack/react-query/reactjs'; // [!code ++]
 ```
 
 ## New Features 🚀
@@ -411,7 +419,7 @@ In v3, React Query has always fired off queries and mutations, but then taken th
 - You are offline and want to fire off a query that doesn't necessarily need network connection (because you _can_ use React Query for something other than data fetching), but it fails for some other reason. That query will now be paused until you go online again.
 - Window focus refetching didn't do anything at all if you were offline.
 
-With v4, React Query introduces a new `networkMode` to tackle all these issues. Please read the dedicated page about the new [Network mode](./guides/network-mode) for more information.
+With v4, React Query introduces a new `networkMode` to tackle all these issues. Please read the dedicated page about the new [Network mode](../network-mode) for more information.
 
 ### Tracked Queries per default
 
@@ -419,7 +427,7 @@ React Query defaults to "tracking" query properties, which should give you a nic
 
 ### Bailing out of updates with setQueryData
 
-When using the [functional updater form of setQueryData](./reference/QueryClient#queryclientsetquerydata), you can now bail out of the update by returning `undefined`. This is helpful if `undefined` is given to you as `previousValue`, which means that currently, no cached entry exists and you don't want to / cannot create one, like in the example of toggling a todo:
+When using the [functional updater form of setQueryData](../../../../reference/QueryClient/#queryclientsetquerydata), you can now bail out of the update by returning `undefined`. This is helpful if `undefined` is given to you as `previousValue`, which means that currently, no cached entry exists and you don't want to / cannot create one, like in the example of toggling a todo:
 
 ```tsx
 queryClient.setQueryData(['todo', id], (previousTodo) =>

From b757ea482df0263ec66af9a20b5bf23a520991fa Mon Sep 17 00:00:00 2001
From: Surya Ashish <ashishsurya126@gmail.com>
Date: Mon, 29 Apr 2024 20:47:10 +0530
Subject: [PATCH 25/45] docs: Update useMutation.md (#7349)

---
 docs/framework/react/reference/useMutation.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md
index 4a6963517f..0aad101d40 100644
--- a/docs/framework/react/reference/useMutation.md
+++ b/docs/framework/react/reference/useMutation.md
@@ -52,7 +52,7 @@ mutate(variables, {
 - `mutationKey: unknown[]`
   - Optional
   - A mutation key can be set to inherit defaults set with `queryClient.setMutationDefaults`.
-- `networkMode: 'online' | 'always' | 'offlineFirst`
+- `networkMode: 'online' | 'always' | 'offlineFirst'`
   - optional
   - defaults to `'online'`
   - see [Network Mode](./guides/network-mode) for more information.

From 84f3ef1686b81302b4e8126f4d4539096fd21d4e Mon Sep 17 00:00:00 2001
From: Arnoud <6420061+arnoud-dv@users.noreply.github.com>
Date: Sun, 5 May 2024 17:34:05 +0200
Subject: [PATCH 26/45] docs: angular adapter is compatible with angular v16
 (#7381)

---
 docs/framework/react/community/angular-query.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/framework/react/community/angular-query.md b/docs/framework/react/community/angular-query.md
index e5ff2bde8f..115a8d74a5 100644
--- a/docs/framework/react/community/angular-query.md
+++ b/docs/framework/react/community/angular-query.md
@@ -13,6 +13,6 @@ The Angular adapter is now available for TanStack Query v5.
   }))
 ```
 
-It's based on Angular signals and compatible with Angular v17+.
+It's based on Angular signals and compatible with Angular v16+.
 
 Check the complete documentation: [Angular Query overview](https://tanstack.com/query/latest/docs/framework/angular/overview).

From 3f22c3d249000d56efe30ffa4fe14101b57bdd69 Mon Sep 17 00:00:00 2001
From: fuko <43729152+fulopkovacs@users.noreply.github.com>
Date: Sun, 12 May 2024 11:33:28 +0200
Subject: [PATCH 27/45] docs: fix broken internal links in the query docs (v4)
 (#7398)

* Fixing links: round 1

* Fix more links

* Fix the rest of the links in the React docs

* Fix some broken links for the vue docs

* Fix the broken links in the svelte docs
---
 docs/framework/react/guides/caching.md        |  4 +-
 .../react/guides/important-defaults.md        |  6 +--
 .../react/guides/infinite-queries.md          |  2 +-
 .../react/guides/initial-query-data.md        |  6 +--
 .../guides/invalidations-from-mutations.md    |  2 +-
 .../guides/migrating-to-react-query-3.md      |  4 +-
 docs/framework/react/guides/mutations.md      | 10 ++---
 docs/framework/react/guides/network-mode.md   |  8 ++--
 .../react/guides/placeholder-query-data.md    |  4 +-
 docs/framework/react/guides/prefetching.md    |  4 +-
 docs/framework/react/guides/queries.md        |  6 +--
 .../framework/react/guides/query-functions.md |  6 +--
 .../react/guides/query-invalidation.md        |  2 +-
 docs/framework/react/guides/query-keys.md     |  4 +-
 docs/framework/react/guides/ssr.md            |  6 +--
 docs/framework/react/guides/suspense.md       |  4 +-
 docs/framework/react/guides/testing.md        |  2 +-
 .../guides/updates-from-mutation-responses.md |  2 +-
 docs/framework/react/installation.md          |  4 +-
 docs/framework/react/overview.md              |  2 +-
 .../plugins/createAsyncStoragePersister.md    |  4 +-
 .../plugins/createSyncStoragePersister.md     |  2 +-
 .../react/plugins/persistQueryClient.md       | 14 +++----
 docs/framework/react/quick-start.md           |  8 ++--
 .../react/reference/useInfiniteQuery.md       |  8 ++--
 .../react/reference/useIsFetching.md          |  2 +-
 .../react/reference/useIsMutating.md          |  2 +-
 docs/framework/react/reference/useMutation.md |  4 +-
 docs/framework/react/reference/useQueries.md  |  2 +-
 docs/framework/react/reference/useQuery.md    | 12 +++---
 docs/framework/react/typescript.md            |  4 +-
 docs/framework/svelte/installation.md         |  2 +-
 docs/framework/svelte/overview.md             |  4 +-
 docs/framework/svelte/ssr.md                  |  2 +-
 docs/framework/vue/guides/ssr.md              |  2 +-
 docs/framework/vue/guides/suspense.md         |  2 +-
 docs/framework/vue/installation.md            |  2 +-
 docs/framework/vue/overview.md                |  2 +-
 docs/framework/vue/quick-start.md             |  2 +-
 docs/reference/InfiniteQueryObserver.md       |  2 +-
 docs/reference/QueriesObserver.md             |  2 +-
 docs/reference/QueryCache.md                  | 10 ++---
 docs/reference/QueryClient.md                 | 40 +++++++++----------
 docs/reference/QueryObserver.md               |  2 +-
 44 files changed, 112 insertions(+), 112 deletions(-)

diff --git a/docs/framework/react/guides/caching.md b/docs/framework/react/guides/caching.md
index 1d6ac7d301..2c8220fe43 100644
--- a/docs/framework/react/guides/caching.md
+++ b/docs/framework/react/guides/caching.md
@@ -3,7 +3,7 @@ id: caching
 title: Caching Examples
 ---
 
-> Please thoroughly read the [Important Defaults](./guides/important-defaults) before reading this guide
+> Please thoroughly read the [Important Defaults](../../../../framework/react/guides/important-defaults) before reading this guide
 
 ## Basic Example
 
@@ -23,7 +23,7 @@ Let's assume we are using the default `cacheTime` of **5 minutes** and the defau
 - A second instance of `useQuery({ queryKey: ['todos'], queryFn: fetchTodos })` mounts elsewhere.
   - Since the cache already has data for the `['todos']` key from the first query, that data is immediately returned from the cache.
   - The new instance triggers a new network request using its query function.
-    - Note that regardless of whether both `fetchTodos` query functions are identical or not, both queries' [`status`](./reference/useQuery) are updated (including `isFetching`, `isLoading`, and other related values) because they have the same query key.
+    - Note that regardless of whether both `fetchTodos` query functions are identical or not, both queries' [`status`](../../../../framework/react/reference/useQuery) are updated (including `isFetching`, `isLoading`, and other related values) because they have the same query key.
   - When the request completes successfully, the cache's data under the `['todos']` key is updated with the new data, and both instances are updated with the new data.
 - Both instances of the `useQuery({ queryKey: ['todos'], queryFn: fetchTodos })` query are unmounted and no longer in use.
   - Since there are no more active instances of this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).
diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md
index b871c29060..66c2b73941 100644
--- a/docs/framework/react/guides/important-defaults.md
+++ b/docs/framework/react/guides/important-defaults.md
@@ -15,7 +15,7 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul
   - The network is reconnected
   - The query is optionally configured with a refetch interval
 
-If you see a refetch that you are not expecting, it is likely because you just focused the window and TanStack Query is doing a [`refetchOnWindowFocus`](./guides/window-focus-refetching). During development, this will probably be triggered more frequently, especially because focusing between the Browser DevTools and your app will also cause a fetch, so be aware of that.
+If you see a refetch that you are not expecting, it is likely because you just focused the window and TanStack Query is doing a [`refetchOnWindowFocus`](../window-focus-refetching). During development, this will probably be triggered more frequently, especially because focusing between the Browser DevTools and your app will also cause a fetch, so be aware of that.
 
 > To change this functionality, you can use options like `refetchOnMount`, `refetchOnWindowFocus`, `refetchOnReconnect` and `refetchInterval`.
 
@@ -38,7 +38,7 @@ If you see a refetch that you are not expecting, it is likely because you just f
 
 Have a look at the following articles from our Community Resources for further explanations of the defaults:
 
-- [Practical React Query](./community/tkdodos-blog#1-practical-react-query)
-- [React Query as a State Manager](./community/tkdodos-blog#10-react-query-as-a-state-manager)
+- [Practical React Query](../../../../framework/react/community/tkdodos-blog#1-practical-react-query)
+- [React Query as a State Manager](../../../../framework/react/community/tkdodos-blog#10-react-query-as-a-state-manager)
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/infinite-queries.md b/docs/framework/react/guides/infinite-queries.md
index f129479c8f..8c443c67f1 100644
--- a/docs/framework/react/guides/infinite-queries.md
+++ b/docs/framework/react/guides/infinite-queries.md
@@ -138,7 +138,7 @@ refetch({ refetchPage: (page, index) => index === 0 })
 
 [//]: # 'Example2'
 
-You can also pass this function as part of the 2nd argument (`queryFilters`) to [queryClient.refetchQueries](./reference/QueryClient#queryclientrefetchqueries), [queryClient.invalidateQueries](./reference/QueryClient#queryclientinvalidatequeries) or [queryClient.resetQueries](./reference/QueryClient#queryclientresetqueries).
+You can also pass this function as part of the 2nd argument (`queryFilters`) to [queryClient.refetchQueries](../../../../reference/QueryClient#queryclientrefetchqueries), [queryClient.invalidateQueries](../../../../reference/QueryClient#queryclientinvalidatequeries) or [queryClient.resetQueries](../../../../reference/QueryClient#queryclientresetqueries).
 
 **Signature**
 
diff --git a/docs/framework/react/guides/initial-query-data.md b/docs/framework/react/guides/initial-query-data.md
index f26687f9bf..583b8a0bba 100644
--- a/docs/framework/react/guides/initial-query-data.md
+++ b/docs/framework/react/guides/initial-query-data.md
@@ -8,8 +8,8 @@ There are many ways to supply initial data for a query to the cache before you n
 - Declaratively:
   - Provide `initialData` to a query to prepopulate its cache if empty
 - Imperatively:
-  - [Prefetch the data using `queryClient.prefetchQuery`](./guides/prefetching)
-  - [Manually place the data into the cache using `queryClient.setQueryData`](./guides/prefetching)
+  - [Prefetch the data using `queryClient.prefetchQuery`](../prefetching)
+  - [Manually place the data into the cache using `queryClient.setQueryData`](../prefetching)
 
 ## Using `initialData` to prepopulate a query
 
@@ -170,6 +170,6 @@ const result = useQuery({
 
 ## Further reading
 
-For a comparison between `Initial Data` and `Placeholder Data`, have a look at the [Community Resources](./community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
+For a comparison between `Initial Data` and `Placeholder Data`, have a look at the [Community Resources](../../community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/invalidations-from-mutations.md b/docs/framework/react/guides/invalidations-from-mutations.md
index b7d155ea2c..89063da806 100644
--- a/docs/framework/react/guides/invalidations-from-mutations.md
+++ b/docs/framework/react/guides/invalidations-from-mutations.md
@@ -36,4 +36,4 @@ const mutation = useMutation({
 
 [//]: # 'Example2'
 
-You can wire up your invalidations to happen using any of the callbacks available in the [`useMutation` hook](./guides/mutations)
+You can wire up your invalidations to happen using any of the callbacks available in the [`useMutation` hook](../../../../framework/react/guides/mutations)
diff --git a/docs/framework/react/guides/migrating-to-react-query-3.md b/docs/framework/react/guides/migrating-to-react-query-3.md
index 0fe7dded3d..d1d9ce48c1 100644
--- a/docs/framework/react/guides/migrating-to-react-query-3.md
+++ b/docs/framework/react/guides/migrating-to-react-query-3.md
@@ -103,8 +103,8 @@ try {
 
 Together, these provide the same experience as before, but with added control to choose which component trees you want to reset. For more information, see:
 
-- [QueryErrorResetBoundary](./reference/QueryErrorResetBoundary)
-- [useQueryErrorResetBoundary](./reference/useQueryErrorResetBoundary)
+- [QueryErrorResetBoundary](../../reference/QueryErrorResetBoundary)
+- [useQueryErrorResetBoundary](../../reference/useQueryErrorResetBoundary)
 
 ### `QueryCache.getQuery()` has been replaced by `QueryCache.find()`.
 
diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md
index 1385b9cfea..87bc4c8a00 100644
--- a/docs/framework/react/guides/mutations.md
+++ b/docs/framework/react/guides/mutations.md
@@ -59,7 +59,7 @@ Beyond those primary states, more information is available depending on the stat
 
 In the example above, you also saw that you can pass variables to your mutations function by calling the `mutate` function with a **single variable or object**.
 
-Even with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Client's `invalidateQueries` method](./reference/QueryClient#queryclientinvalidatequeries) and the [Query Client's `setQueryData` method](./reference/QueryClient#queryclientsetquerydata), mutations become a very powerful tool.
+Even with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Client's `invalidateQueries` method](../../../../reference/QueryClient#queryclientinvalidatequeries) and the [Query Client's `setQueryData` method](../../../../reference/QueryClient#queryclientsetquerydata), mutations become a very powerful tool.
 
 [//]: # 'Info1'
 
@@ -136,7 +136,7 @@ const CreateTodo = () => {
 
 ## Mutation Side Effects
 
-`useMutation` comes with some helper options that allow quick and easy side-effects at any stage during the mutation lifecycle. These come in handy for both [invalidating and refetching queries after mutations](./guides/invalidations-from-mutations) and even [optimistic updates](./guides/optimistic-updates)
+`useMutation` comes with some helper options that allow quick and easy side-effects at any stage during the mutation lifecycle. These come in handy for both [invalidating and refetching queries after mutations](../invalidations-from-mutations) and even [optimistic updates](../optimistic-updates)
 
 [//]: # 'Example4'
 
@@ -340,7 +340,7 @@ queryClient.resumePausedMutations()
 
 ### Persisting Offline mutations
 
-If you persist offline mutations with the [persistQueryClient plugin](./plugins/persistQueryClient), mutations cannot be resumed when the page is reloaded unless you provide a default mutation function.
+If you persist offline mutations with the [persistQueryClient plugin](../../../../framework/react/plugins/persistQueryClient), mutations cannot be resumed when the page is reloaded unless you provide a default mutation function.
 
 This is a technical limitation. When persisting to an external storage, only the state of mutations is persisted, as functions cannot be serialized. After hydration, the component that triggers the mutation might not be mounted, so calling `resumePausedMutations` might yield an error: `No mutationFn found`.
 
@@ -383,13 +383,13 @@ export default function App() {
 
 [//]: # 'Example11'
 
-We also have an extensive [offline example](./examples/offline) that covers both queries and mutations.
+We also have an extensive [offline example](../../examples/offline) that covers both queries and mutations.
 
 [//]: # 'Materials'
 
 ## Further reading
 
-For more information about mutations, have a look at [#12: Mastering Mutations in React Query](./community/tkdodos-blog#12-mastering-mutations-in-react-query) from
+For more information about mutations, have a look at [#12: Mastering Mutations in React Query](../../community/tkdodos-blog#12-mastering-mutations-in-react-query) from
 the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/network-mode.md b/docs/framework/react/guides/network-mode.md
index 33efe387b5..d0a6a74bcb 100644
--- a/docs/framework/react/guides/network-mode.md
+++ b/docs/framework/react/guides/network-mode.md
@@ -3,13 +3,13 @@ id: network-mode
 title: Network Mode
 ---
 
-TanStack Query provides three different network modes to distinguish how [Queries](./guides/queries) and [Mutations](./guides/mutations) should behave if you have no network connection. This mode can be set for each Query / Mutation individually, or globally via the query / mutation defaults.
+TanStack Query provides three different network modes to distinguish how [Queries](../../../../framework/react/guides/queries) and [Mutations](../../../../framework/react/guides/mutations) should behave if you have no network connection. This mode can be set for each Query / Mutation individually, or globally via the query / mutation defaults.
 
 Since TanStack Query is most often used for data fetching in combination with data fetching libraries, the default network mode is [online](#network-mode-online).
 
 ## Network Mode: online
 
-In this mode, Queries and Mutations will not fire unless you have network connection. This is the default mode. If a fetch is initiated for a query, it will always stay in the `state` (`loading`, `error`, `success`) it is in if the fetch cannot be made because there is no network connection. However, a [fetchStatus](./guides/queries#fetchstatus) is exposed additionally. This can be either:
+In this mode, Queries and Mutations will not fire unless you have network connection. This is the default mode. If a fetch is initiated for a query, it will always stay in the `state` (`loading`, `error`, `success`) it is in if the fetch cannot be made because there is no network connection. However, a [fetchStatus](../../../../framework/react/guides/queries#fetchstatus) is exposed additionally. This can be either:
 
 - `fetching`: The `queryFn` is really executing - a request is in-flight.
 - `paused`: The query is not executing - it is `paused` until you have connection again
@@ -19,7 +19,7 @@ The flags `isFetching` and `isPaused` are derived from this state and exposed fo
 
 > Keep in mind that it might not be enough to check for `loading` state to show a loading spinner. Queries can be in `state: 'loading'`, but `fetchStatus: 'paused'` if they are mounting for the first time, and you have no network connection.
 
-If a query runs because you are online, but you go offline while the fetch is still happening, TanStack Query will also pause the retry mechanism. Paused queries will then continue to run once you re-gain network connection. This is independent of `refetchOnReconnect` (which also defaults to `true` in this mode), because it is not a `refetch`, but rather a `continue`. If the query has been [cancelled](./guides/query-cancellation) in the meantime, it will not continue.
+If a query runs because you are online, but you go offline while the fetch is still happening, TanStack Query will also pause the retry mechanism. Paused queries will then continue to run once you re-gain network connection. This is independent of `refetchOnReconnect` (which also defaults to `true` in this mode), because it is not a `refetch`, but rather a `continue`. If the query has been [cancelled](../../../../framework/react/guides/query-cancellation) in the meantime, it will not continue.
 
 ## Network Mode: always
 
@@ -37,7 +37,7 @@ In those situations, the first fetch might succeed because it comes from an offl
 
 ## Devtools
 
-The [TanStack Query Devtools](./devtools) will show Queries in a `paused` state if they would be fetching, but there is no network connection. There is also a toggle button to _Mock offline behavior_. Please note that this button will _not_ actually mess with your network connection (you can do that in the browser devtools), but it will set the [OnlineManager](./reference/onlineManager) in an offline state.
+The [TanStack Query Devtools](../../../../framework/react/devtools) will show Queries in a `paused` state if they would be fetching, but there is no network connection. There is also a toggle button to _Mock offline behavior_. Please note that this button will _not_ actually mess with your network connection (you can do that in the browser devtools), but it will set the [OnlineManager](../../../../reference/onlineManager) in an offline state.
 
 ## Signature
 
diff --git a/docs/framework/react/guides/placeholder-query-data.md b/docs/framework/react/guides/placeholder-query-data.md
index 3b35856bc7..9ee54d17b1 100644
--- a/docs/framework/react/guides/placeholder-query-data.md
+++ b/docs/framework/react/guides/placeholder-query-data.md
@@ -14,7 +14,7 @@ There are a few ways to supply placeholder data for a query to the cache before
 - Declaratively:
   - Provide `placeholderData` to a query to prepopulate its cache if empty
 - Imperatively:
-  - [Prefetch or fetch the data using `queryClient` and the `placeholderData` option](./guides/prefetching)
+  - [Prefetch or fetch the data using `queryClient` and the `placeholderData` option](../prefetching)
 
 ## Placeholder Data as a Value
 
@@ -80,6 +80,6 @@ function Todo({ blogPostId }) {
 
 ## Further reading
 
-For a comparison between `Placeholder Data` and `Initial Data`, have a look at the [Community Resources](./community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
+For a comparison between `Placeholder Data` and `Initial Data`, have a look at the [Community Resources](../..//community/tkdodos-blog#9-placeholder-and-initial-data-in-react-query).
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/prefetching.md b/docs/framework/react/guides/prefetching.md
index 2e667b7f3f..caa53981db 100644
--- a/docs/framework/react/guides/prefetching.md
+++ b/docs/framework/react/guides/prefetching.md
@@ -25,7 +25,7 @@ const prefetchTodos = async () => {
 
 ## Manually Priming a Query
 
-Alternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Client's `setQueryData` method](./reference/QueryClient#queryclientsetquerydata) to directly add or update a query's cached result by key.
+Alternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Client's `setQueryData` method](../../../..//reference/QueryClient#queryclientsetquerydata) to directly add or update a query's cached result by key.
 
 [//]: # 'Example2'
 
@@ -38,6 +38,6 @@ queryClient.setQueryData(['todos'], todos)
 
 ## Further reading
 
-For a deep-dive on how to get data into your Query Cache before you fetch, have a look at [#17: Seeding the Query Cache](./community/tkdodos-blog#17-seeding-the-query-cache) from the Community Resources.
+For a deep-dive on how to get data into your Query Cache before you fetch, have a look at [#17: Seeding the Query Cache](../..//community/tkdodos-blog#17-seeding-the-query-cache) from the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/queries.md b/docs/framework/react/guides/queries.md
index 7e2fb26064..b30b14f3c8 100644
--- a/docs/framework/react/guides/queries.md
+++ b/docs/framework/react/guides/queries.md
@@ -5,7 +5,7 @@ title: Queries
 
 ## Query Basics
 
-A query is a declarative dependency on an asynchronous source of data that is tied to a **unique key**. A query can be used with any Promise based method (including GET and POST methods) to fetch data from a server. If your method modifies data on the server, we recommend using [Mutations](./guides/mutations) instead.
+A query is a declarative dependency on an asynchronous source of data that is tied to a **unique key**. A query can be used with any Promise based method (including GET and POST methods) to fetch data from a server. If your method modifies data on the server, we recommend using [Mutations](../mutations) instead.
 
 To subscribe to a query in your components or custom hooks, call the `useQuery` hook with at least:
 
@@ -121,7 +121,7 @@ TypeScript will also narrow the type of `data` correctly if you've checked for `
 In addition to the `status` field and the `result` object, you will also get an additional `fetchStatus` property with the following options:
 
 - `fetchStatus === 'fetching'` - The query is currently fetching.
-- `fetchStatus === 'paused'` - The query wanted to fetch, but it is paused. Read more about this in the [Network Mode](./guides/network-mode) guide.
+- `fetchStatus === 'paused'` - The query wanted to fetch, but it is paused. Read more about this in the [Network Mode](../network-mode) guide.
 - `fetchStatus === 'idle'` - The query is not doing anything at the moment.
 
 ### Why two different states?
@@ -140,6 +140,6 @@ So keep in mind that a query can be in `loading` state without actually fetching
 
 ## Further Reading
 
-For an alternative way of performing status checks, have a look at the [Community Resources](./community/tkdodos-blog#4-status-checks-in-react-query).
+For an alternative way of performing status checks, have a look at the [Community Resources](../../../../framework/react/community/tkdodos-blog#4-status-checks-in-react-query).
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/query-functions.md b/docs/framework/react/guides/query-functions.md
index e36d30663e..ad2f722a57 100644
--- a/docs/framework/react/guides/query-functions.md
+++ b/docs/framework/react/guides/query-functions.md
@@ -99,12 +99,12 @@ function fetchTodoList({ queryKey }) {
 
 The `QueryFunctionContext` is the object passed to each query function. It consists of:
 
-- `queryKey: QueryKey`: [Query Keys](./guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](../query-keys)
 - `pageParam?: unknown`
-  - only for [Infinite Queries](./guides/infinite-queries)
+  - only for [Infinite Queries](../infinite-queries)
   - the page parameter used to fetch the current page
 - `signal?: AbortSignal`
   - [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) instance provided by TanStack Query
-  - Can be used for [Query Cancellation](./guides/query-cancellation)
+  - Can be used for [Query Cancellation](../query-cancellation)
 - `meta: Record<string, unknown> | undefined`
   - an optional field you can fill with additional information about your query
diff --git a/docs/framework/react/guides/query-invalidation.md b/docs/framework/react/guides/query-invalidation.md
index 93e026181d..7ec2fca22c 100644
--- a/docs/framework/react/guides/query-invalidation.md
+++ b/docs/framework/react/guides/query-invalidation.md
@@ -25,7 +25,7 @@ When a query is invalidated with `invalidateQueries`, two things happen:
 
 ## Query Matching with `invalidateQueries`
 
-When using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query. For information on the types of filters you can use, please see [Query Filters](./guides/filters#query-filters).
+When using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query. For information on the types of filters you can use, please see [Query Filters](../../../../framework/react/guides/filters#query-filters).
 
 In this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:
 
diff --git a/docs/framework/react/guides/query-keys.md b/docs/framework/react/guides/query-keys.md
index 14405da917..1841a72bf6 100644
--- a/docs/framework/react/guides/query-keys.md
+++ b/docs/framework/react/guides/query-keys.md
@@ -91,13 +91,13 @@ function Todos({ todoId }) {
 
 [//]: # 'Example5'
 
-Note that query keys act as dependencies for your query functions. Adding dependent variables to your query key will ensure that queries are cached independently, and that any time a variable changes, _queries will be refetched automatically_ (depending on your `staleTime` settings). See the [exhaustive-deps](./eslint/exhaustive-deps) section for more information and examples.
+Note that query keys act as dependencies for your query functions. Adding dependent variables to your query key will ensure that queries are cached independently, and that any time a variable changes, _queries will be refetched automatically_ (depending on your `staleTime` settings). See the [exhaustive-deps](../../../../eslint/exhaustive-deps) section for more information and examples.
 
 [//]: # 'Materials'
 
 ## Further reading
 
-For tips on organizing Query Keys in larger applications, have a look at [Effective React Query Keys](./community/tkdodos-blog#8-effective-react-query-keys) and check the [Query Key Factory Package](./community/lukemorales-query-key-factory) from
+For tips on organizing Query Keys in larger applications, have a look at [Effective React Query Keys](../../community/tkdodos-blog#8-effective-react-query-keys) and check the [Query Key Factory Package](../../community/lukemorales-query-key-factory) from
 the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/ssr.md b/docs/framework/react/guides/ssr.md
index bd0f2cede0..f8daebb95d 100644
--- a/docs/framework/react/guides/ssr.md
+++ b/docs/framework/react/guides/ssr.md
@@ -250,7 +250,7 @@ This guide is at-best, a high level overview of how SSR with React Query should
 - Dehydrate the client
 - Render your app with the client provider and also **using the dehydrated state. This is extremely important! You must render both server and client using the same dehydrated state to ensure hydration on the client produces the exact same markup as the server.**
 - Serialize and embed the dehydrated cache to be sent to the client with the HTML
-- Clear the React Query caches after the dehydrated state has been sent by calling [`queryClient.clear()`](./reference/QueryClient#queryclientclear)
+- Clear the React Query caches after the dehydrated state has been sent by calling [`queryClient.clear()`](../../../../reference/QueryClient#queryclientclear)
 
 > SECURITY NOTE: Serializing data with `JSON.stringify` can put you at risk for XSS-vulnerabilities, [this blog post explains why and how to solve it](https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0)
 
@@ -521,7 +521,7 @@ async function handleRequest(req, res) {
 
 ### Client
 
-Make sure to [use suspense in your queries](./guides/suspense).
+Make sure to [use suspense in your queries](../../../../framework/react/guides/suspense).
 
 ## Tips, Tricks and Caveats
 
@@ -545,6 +545,6 @@ In case you are creating the `QueryClient` for every request, React Query create
 
 On the server, `cacheTime` defaults to `Infinity` which disables manual garbage collection and will automatically clear memory once a request has finished. If you are explicitly setting a non-Infinity `cacheTime` then you will be responsible for clearing the cache early.
 
-To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](./reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
+To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](../../../../reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
 
 Alternatively, you can set a smaller `cacheTime`.
diff --git a/docs/framework/react/guides/suspense.md b/docs/framework/react/guides/suspense.md
index 9931a422be..a6b92a2217 100644
--- a/docs/framework/react/guides/suspense.md
+++ b/docs/framework/react/guides/suspense.md
@@ -100,8 +100,8 @@ const App: React.FC = () => {
 
 ## Fetch-on-render vs Render-as-you-fetch
 
-Out of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](./guides/prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
+Out of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](../prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
 
 ## Further reading
 
-For tips on using suspense option, check the [Suspensive React Query Package](./community/suspensive-react-query) from the Community Resources.
+For tips on using suspense option, check the [Suspensive React Query Package](../../community/suspensive-react-query) from the Community Resources.
diff --git a/docs/framework/react/guides/testing.md b/docs/framework/react/guides/testing.md
index 5498d1444e..193b0fa69c 100644
--- a/docs/framework/react/guides/testing.md
+++ b/docs/framework/react/guides/testing.md
@@ -197,5 +197,5 @@ _Note_: when using React 18, the semantics of `waitFor` have changed as noted ab
 
 ## Further reading
 
-For additional tips and an alternative setup using `mock-service-worker`, have a look at [Testing React Query](./community/tkdodos-blog#5-testing-react-query) from
+For additional tips and an alternative setup using `mock-service-worker`, have a look at [Testing React Query](../../community/tkdodos-blog#5-testing-react-query) from
 the Community Resources.
diff --git a/docs/framework/react/guides/updates-from-mutation-responses.md b/docs/framework/react/guides/updates-from-mutation-responses.md
index 592ab09201..9b062408b8 100644
--- a/docs/framework/react/guides/updates-from-mutation-responses.md
+++ b/docs/framework/react/guides/updates-from-mutation-responses.md
@@ -3,7 +3,7 @@ id: updates-from-mutation-responses
 title: Updates from Mutation Responses
 ---
 
-When dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Client's `setQueryData`](./reference/QueryClient#queryclientsetquerydata) method:
+When dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Client's `setQueryData`](../../../../reference/QueryClient#queryclientsetquerydata) method:
 
 [//]: # 'Example'
 
diff --git a/docs/framework/react/installation.md b/docs/framework/react/installation.md
index f25f1a9bda..9c8145bb08 100644
--- a/docs/framework/react/installation.md
+++ b/docs/framework/react/installation.md
@@ -19,7 +19,7 @@ $ yarn add @tanstack/react-query
 
 React Query is compatible with React v16.8+ and works with ReactDOM and React Native.
 
-> Wanna give it a spin before you download? Try out the [simple](/query/v4/docs/examples/react/simple) or [basic](/query/v4/docs/examples/react/basic) examples!
+> Wanna give it a spin before you download? Try out the [simple](/query/v4/docs/framework/react/examples/simple) or [basic](/query/v4/docs/framework/react/examples/basic) examples!
 
 ### CDN
 
@@ -50,7 +50,7 @@ Opera >= 53
 
 ### Recommendations
 
-It is recommended to also use our [ESLint Plugin Query](./eslint/eslint-plugin-query) to help you catch bugs and inconsistencies while you code. You can install it via:
+It is recommended to also use our [ESLint Plugin Query](../../../eslint/eslint-plugin-query) to help you catch bugs and inconsistencies while you code. You can install it via:
 
 ```bash
 $ npm i -D @tanstack/eslint-plugin-query
diff --git a/docs/framework/react/overview.md b/docs/framework/react/overview.md
index eb2a9dfb2e..2feb19fd84 100644
--- a/docs/framework/react/overview.md
+++ b/docs/framework/react/overview.md
@@ -96,6 +96,6 @@ function Example() {
 ## You talked me into it, so what now?
 
 - Consider taking the official [React Query Course](https://ui.dev/react-query?from=tanstack) (or buying it for your whole team!)
-- Learn React Query at your own pace with our amazingly thorough [Walkthrough Guide](./installation) and [API Reference](./reference/useQuery)
+- Learn React Query at your own pace with our amazingly thorough [Walkthrough Guide](../installation) and [API Reference](../reference/useQuery)
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/plugins/createAsyncStoragePersister.md b/docs/framework/react/plugins/createAsyncStoragePersister.md
index e37fed23d6..16b43610b5 100644
--- a/docs/framework/react/plugins/createAsyncStoragePersister.md
+++ b/docs/framework/react/plugins/createAsyncStoragePersister.md
@@ -28,7 +28,7 @@ yarn add @tanstack/query-async-storage-persister @tanstack/react-query-persist-c
 - Import the `createAsyncStoragePersister` function
 - Create a new asyncStoragePersister
   - you can pass any `storage` to it that adheres to the `AsyncStorage` interface - the example below uses the async-storage from React Native
-- Wrap your app by using [`PersistQueryClientProvider`](./plugins/persistQueryClient.md#persistqueryclientprovider) component.
+- Wrap your app by using [`PersistQueryClientProvider`](../persistQueryClient#persistqueryclientprovider) component.
 
 ```tsx
 import AsyncStorage from '@react-native-async-storage/async-storage'
@@ -62,7 +62,7 @@ export default Root
 
 ## Retries
 
-Retries work the same as for a [SyncStoragePersister](./plugins/createSyncStoragePersister), except that they can also be asynchronous. You can also use all the predefined retry handlers.
+Retries work the same as for a [SyncStoragePersister](../createSyncStoragePersister), except that they can also be asynchronous. You can also use all the predefined retry handlers.
 
 ## API
 
diff --git a/docs/framework/react/plugins/createSyncStoragePersister.md b/docs/framework/react/plugins/createSyncStoragePersister.md
index e4f44b73db..2e58b2aa05 100644
--- a/docs/framework/react/plugins/createSyncStoragePersister.md
+++ b/docs/framework/react/plugins/createSyncStoragePersister.md
@@ -27,7 +27,7 @@ yarn add @tanstack/query-sync-storage-persister @tanstack/react-query-persist-cl
 
 - Import the `createSyncStoragePersister` function
 - Create a new syncStoragePersister
-- Pass it to the [`persistQueryClient`](./plugins/persistQueryClient) function
+- Pass it to the [`persistQueryClient`](../../plugins/persistQueryClient) function
 
 ```tsx
 import { persistQueryClient } from '@tanstack/react-query-persist-client'
diff --git a/docs/framework/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md
index ca252ca455..abebe33d78 100644
--- a/docs/framework/react/plugins/persistQueryClient.md
+++ b/docs/framework/react/plugins/persistQueryClient.md
@@ -7,8 +7,8 @@ This is set of utilities for interacting with "persisters" which save your query
 
 ## Build Persisters
 
-- [createSyncStoragePersister](./plugins/createSyncStoragePersister)
-- [createAsyncStoragePersister](./plugins/createAsyncStoragePersister)
+- [createSyncStoragePersister](../createSyncStoragePersister)
+- [createAsyncStoragePersister](../createAsyncStoragePersister)
 - [create a custom persister](#persisters)
 
 ## How It Works
@@ -56,7 +56,7 @@ the persister `removeClient()` is called and the cache is immediately discarded.
 
 ### `persistQueryClientSave`
 
-- Your query/mutation are [`dehydrated`](./reference/hydration#dehydrate) and stored by the persister you provided.
+- Your query/mutation are [`dehydrated`](../../reference/hydration#dehydrate) and stored by the persister you provided.
 - `createSyncStoragePersister` and `createAsyncStoragePersister` throttle this action to happen at most every 1 second to save on potentially expensive writes. Review their documentation to see how to customize their throttle timing.
 
 You can use this to explicitly persist the cache at the moment(s) you choose.
@@ -88,7 +88,7 @@ persistQueryClientSubscribe({
 
 ### `persistQueryClientRestore`
 
-- Attempts to [`hydrate`](./reference/hydration#hydrate) a previously persisted dehydrated query/mutation cache from the persister back into the query cache of the passed query client.
+- Attempts to [`hydrate`](../../reference/hydration#hydrate) a previously persisted dehydrated query/mutation cache from the persister back into the query cache of the passed query client.
 - If a cache is found that is older than the `maxAge` (which by default is 24 hours), it will be discarded. This timing can be customized as you see fit.
 
 You can use this to restore the cache at moment(s) you choose.
@@ -178,7 +178,7 @@ ReactDOM.createRoot(rootElement).render(<App />)
 
 ### PersistQueryClientProvider
 
-For this use-case, you can use the `PersistQueryClientProvider`. It will make sure to subscribe / unsubscribe correctly according to the React component lifecycle, and it will also make sure that queries will not start fetching while we are still restoring. Queries will still render though, they will just be put into `fetchingState: 'idle'` until data has been restored. Then, they will refetch unless the restored data is _fresh_ enough, and _initialData_ will also be respected. It can be used _instead of_ the normal [QueryClientProvider](./reference/QueryClientProvider):
+For this use-case, you can use the `PersistQueryClientProvider`. It will make sure to subscribe / unsubscribe correctly according to the React component lifecycle, and it will also make sure that queries will not start fetching while we are still restoring. Queries will still render though, they will just be put into `fetchingState: 'idle'` until data has been restored. Then, they will refetch unless the restored data is _fresh_ enough, and _initialData_ will also be respected. It can be used _instead of_ the normal [QueryClientProvider](../../reference/QueryClientProvider):
 
 ```tsx
 import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client'
@@ -208,14 +208,14 @@ ReactDOM.createRoot(rootElement).render(
 
 #### Props
 
-`PersistQueryClientProvider` takes the same props as [QueryClientProvider](./reference/QueryClientProvider), and additionally:
+`PersistQueryClientProvider` takes the same props as [QueryClientProvider](../../reference/QueryClientProvider), and additionally:
 
 - `persistOptions: PersistQueryClientOptions`
   - all [options](#options) you can pass to [persistQueryClient](#persistqueryclient) minus the QueryClient itself
 - `onSuccess?: () => void`
   - optional
   - will be called when the initial restore is finished
-  - can be used to [resumePausedMutations](./reference/QueryClient#queryclientresumepausedmutations)
+  - can be used to [resumePausedMutations](../../../../reference/QueryClient#queryclientresumepausedmutations)
 
 ### useIsRestoring
 
diff --git a/docs/framework/react/quick-start.md b/docs/framework/react/quick-start.md
index 16f430d51d..8c56214612 100644
--- a/docs/framework/react/quick-start.md
+++ b/docs/framework/react/quick-start.md
@@ -5,13 +5,13 @@ title: Quick Start
 
 This code snippet very briefly illustrates the 3 core concepts of React Query:
 
-- [Queries](./guides/queries)
-- [Mutations](./guides/mutations)
-- [Query Invalidation](./guides/query-invalidation)
+- [Queries](../guides/queries)
+- [Mutations](../guides/mutations)
+- [Query Invalidation](../guides/query-invalidation)
 
 [//]: # 'Example'
 
-If you're looking for a fully functioning example, please have a look at our [simple codesandbox example](./examples/simple)
+If you're looking for a fully functioning example, please have a look at our [simple codesandbox example](../examples/simple)
 
 ```tsx
 import {
diff --git a/docs/framework/react/reference/useInfiniteQuery.md b/docs/framework/react/reference/useInfiniteQuery.md
index 5ca118fdce..ee323f3a51 100644
--- a/docs/framework/react/reference/useInfiniteQuery.md
+++ b/docs/framework/react/reference/useInfiniteQuery.md
@@ -23,12 +23,12 @@ const {
 
 **Options**
 
-The options for `useInfiniteQuery` are identical to the [`useQuery` hook](./reference/useQuery) with the addition of the following:
+The options for `useInfiniteQuery` are identical to the [`useQuery` hook](../../../../framework/react/reference/useQuery) with the addition of the following:
 
 - `queryFn: (context: QueryFunctionContext) => Promise<TData>`
-  - **Required, but only if no default query function has been defined** [`defaultQueryFn`](./guides/default-query-function)
+  - **Required, but only if no default query function has been defined** [`defaultQueryFn`](../../../../framework/react/guides/default-query-function)
   - The function that the query will use to request data.
-  - Receives a [QueryFunctionContext](./guides/query-functions#queryfunctioncontext)
+  - Receives a [QueryFunctionContext](../../../../framework/react/guides/query-functions#queryfunctioncontext)
   - Must return a promise that will either resolve data or throw an error.
   - Make sure you return the data _and_ the `pageParam` if needed for use in the props below.
 - `getNextPageParam: (lastPage, allPages) => unknown | undefined`
@@ -42,7 +42,7 @@ The options for `useInfiniteQuery` are identical to the [`useQuery` hook](./refe
 
 **Returns**
 
-The returned properties for `useInfiniteQuery` are identical to the [`useQuery` hook](./reference/useQuery), with the addition of the following and a small difference in `isRefetching`:
+The returned properties for `useInfiniteQuery` are identical to the [`useQuery` hook](../../../../framework/react/reference/useQuery), with the addition of the following and a small difference in `isRefetching`:
 
 - `data.pages: TData[]`
   - Array containing all pages.
diff --git a/docs/framework/react/reference/useIsFetching.md b/docs/framework/react/reference/useIsFetching.md
index 57e2976964..5e06edc436 100644
--- a/docs/framework/react/reference/useIsFetching.md
+++ b/docs/framework/react/reference/useIsFetching.md
@@ -15,7 +15,7 @@ const isFetchingPosts = useIsFetching({ queryKey: ['posts'] })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../../../framework/react/guides/filters#query-filters)
 - `context?: React.Context<QueryClient | undefined>`
   - Use this to use a custom React Query context. Otherwise, `defaultContext` will be used.
 
diff --git a/docs/framework/react/reference/useIsMutating.md b/docs/framework/react/reference/useIsMutating.md
index 1faab064c4..fab1fcbcb3 100644
--- a/docs/framework/react/reference/useIsMutating.md
+++ b/docs/framework/react/reference/useIsMutating.md
@@ -15,7 +15,7 @@ const isMutatingPosts = useIsMutating({ mutationKey: ['posts'] })
 
 **Options**
 
-- `filters?: MutationFilters`: [Mutation Filters](./guides/filters#mutation-filters)
+- `filters?: MutationFilters`: [Mutation Filters](../../../../framework/react/guides/filters#mutation-filters)
 - `context?: React.Context<QueryClient | undefined>`
   - Use this to use a custom React Query context. Otherwise, `defaultContext` will be used.
 
diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md
index 0aad101d40..80585a3ede 100644
--- a/docs/framework/react/reference/useMutation.md
+++ b/docs/framework/react/reference/useMutation.md
@@ -55,7 +55,7 @@ mutate(variables, {
 - `networkMode: 'online' | 'always' | 'offlineFirst'`
   - optional
   - defaults to `'online'`
-  - see [Network Mode](./guides/network-mode) for more information.
+  - see [Network Mode](../../../../framework/react/guides/network-mode) for more information.
 - `onMutate: (variables: TVariables) => Promise<TContext | void> | TContext | void`
   - Optional
   - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive
@@ -124,7 +124,7 @@ mutate(variables, {
 - `isIdle`, `isLoading`, `isSuccess`, `isError`: boolean variables derived from `status`
 - `isPaused: boolean`
   - will be `true` if the mutation has been `paused`
-  - see [Network Mode](./guides/network-mode) for more information.
+  - see [Network Mode](../../../../framework/react/guides/network-mode) for more information.
 - `data: undefined | unknown`
   - Defaults to `undefined`
   - The last successfully resolved data for the query.
diff --git a/docs/framework/react/reference/useQueries.md b/docs/framework/react/reference/useQueries.md
index fa489d9d76..8ad8db65fd 100644
--- a/docs/framework/react/reference/useQueries.md
+++ b/docs/framework/react/reference/useQueries.md
@@ -16,7 +16,7 @@ const results = useQueries({
 
 **Options**
 
-The `useQueries` hook accepts an options object with a **queries** key whose value is an array with query option objects identical to the [`useQuery` hook](./reference/useQuery) (excluding the `context` option).
+The `useQueries` hook accepts an options object with a **queries** key whose value is an array with query option objects identical to the [`useQuery` hook](../../../../framework/react/reference/useQuery) (excluding the `context` option).
 
 - `context?: React.Context<QueryClient | undefined>`
   - Use this to use a custom React Query context. Otherwise, `defaultContext` will be used.
diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md
index aef546b74d..1da89daffd 100644
--- a/docs/framework/react/reference/useQuery.md
+++ b/docs/framework/react/reference/useQuery.md
@@ -67,20 +67,20 @@ const {
 - `queryKey: unknown[]`
   - **Required**
   - The query key to use for this query.
-  - The query key will be hashed into a stable hash. See [Query Keys](./guides/query-keys) for more information.
+  - The query key will be hashed into a stable hash. See [Query Keys](../../../../framework/react/guides/query-keys) for more information.
   - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
 - `queryFn: (context: QueryFunctionContext) => Promise<TData>`
-  - **Required, but only if no default query function has been defined** See [Default Query Function](./guides/default-query-function) for more information.
+  - **Required, but only if no default query function has been defined** See [Default Query Function](../../../../framework/react/guides/default-query-function) for more information.
   - The function that the query will use to request data.
-  - Receives a [QueryFunctionContext](./guides/query-functions#queryfunctioncontext)
+  - Receives a [QueryFunctionContext](../../../../framework/react/guides/query-functions#queryfunctioncontext)
   - Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
 - `enabled: boolean`
   - Set this to `false` to disable this query from automatically running.
-  - Can be used for [Dependent Queries](./guides/dependent-queries).
+  - Can be used for [Dependent Queries](../../../../framework/react/guides/dependent-queries).
 - `networkMode: 'online' | 'always' | 'offlineFirst`
   - optional
   - defaults to `'online'`
-  - see [Network Mode](./guides/network-mode) for more information.
+  - see [Network Mode](../../../../framework/react/guides/network-mode) for more information.
 - `retry: boolean | number | (failureCount: number, error: TError) => boolean`
   - If `false`, failed queries will not retry by default.
   - If `true`, failed queries will retry infinitely.
@@ -238,7 +238,7 @@ const {
   - `fetching`: Is `true` whenever the queryFn is executing, which includes initial `loading` as well as background refetches.
   - `paused`: The query wanted to fetch, but has been `paused`.
   - `idle`: The query is not fetching.
-  - see [Network Mode](./guides/network-mode) for more information.
+  - see [Network Mode](../../../../framework/react/guides/network-mode) for more information.
 - `isFetching: boolean`
   - A derived boolean from the `fetchStatus` variable above, provided for convenience.
 - `isPaused: boolean`
diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md
index f91f1017d8..ada51a6154 100644
--- a/docs/framework/react/typescript.md
+++ b/docs/framework/react/typescript.md
@@ -115,8 +115,8 @@ const { error } = useQuery<Group[], Error>(['groups'], fetchGroups)
 
 ## Further Reading
 
-For tips and tricks around type inference, have a look at [React Query and TypeScript](./community/tkdodos-blog#6-react-query-and-typescript) from
-the Community Resources. To find out how to get the best possible type-safety, you can read [Type-safe React Query](./community/tkdodos-blog#19-type-safe-react-query).
+For tips and tricks around type inference, have a look at [React Query and TypeScript](../community/tkdodos-blog#6-react-query-and-typescript) from
+the Community Resources. To find out how to get the best possible type-safety, you can read [Type-safe React Query](../community/tkdodos-blog#19-type-safe-react-query).
 
 [//]: # 'Materials'
 [//]: # 'Materials'
diff --git a/docs/framework/svelte/installation.md b/docs/framework/svelte/installation.md
index c034730bbb..63848d0a8a 100644
--- a/docs/framework/svelte/installation.md
+++ b/docs/framework/svelte/installation.md
@@ -15,4 +15,4 @@ $ pnpm add @tanstack/svelte-query
 $ yarn add @tanstack/svelte-query
 ```
 
-> Wanna give it a spin before you download? Try out the [basic](./examples/basic) example!
+> Wanna give it a spin before you download? Try out the [basic](../examples/basic) example!
diff --git a/docs/framework/svelte/overview.md b/docs/framework/svelte/overview.md
index e9c130ed7c..e7bd49eb9b 100644
--- a/docs/framework/svelte/overview.md
+++ b/docs/framework/svelte/overview.md
@@ -49,7 +49,7 @@ Then call any function (e.g. createQuery) from any component:
 
 ## SvelteKit
 
-If you are using SvelteKit, please have a look at [SSR & SvelteKit](./ssr).
+If you are using SvelteKit, please have a look at [SSR & SvelteKit](../ssr).
 
 ## Available Functions
 
@@ -71,4 +71,4 @@ Svelte Query offers useful functions and components that will make managing serv
 Svelte Query offers an API similar to React Query, but there are some key differences to be mindful of.
 
 - Many of the functions in Svelte Query return a Svelte store. To access values on these stores reactively, you need to prefix the store with a `$`. You can learn more about Svelte stores [here](https://svelte.dev/tutorial/writable-stores).
-- If your query or mutation depends on variables, you must assign it reactively. You can read more about this [here](./reactivity).
+- If your query or mutation depends on variables, you must assign it reactively. You can read more about this [here](../reactivity).
diff --git a/docs/framework/svelte/ssr.md b/docs/framework/svelte/ssr.md
index b74e12e1ed..10816049f6 100644
--- a/docs/framework/svelte/ssr.md
+++ b/docs/framework/svelte/ssr.md
@@ -34,7 +34,7 @@ The recommended way to achieve this is to use the `browser` module from SvelteKi
 
 Svelte Query supports two ways of prefetching data on the server and passing that to the client with SvelteKit.
 
-If you wish to view the ideal SSR setup, please have a look at the [SSR example](./examples/ssr).
+If you wish to view the ideal SSR setup, please have a look at the [SSR example](../examples/ssr).
 
 ### Using `initialData`
 
diff --git a/docs/framework/vue/guides/ssr.md b/docs/framework/vue/guides/ssr.md
index 97896c676a..e826b295e6 100644
--- a/docs/framework/vue/guides/ssr.md
+++ b/docs/framework/vue/guides/ssr.md
@@ -230,6 +230,6 @@ In case you are creating the `QueryClient` for every request, Vue Query creates
 
 On the server, `cacheTime` defaults to `Infinity` which disables manual garbage collection and will automatically clear memory once a request has finished. If you are explicitly setting a non-Infinity `cacheTime` then you will be responsible for clearing the cache early.
 
-To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](./reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
+To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](../../../../reference/QueryClient#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
 
 Alternatively, you can set a smaller `cacheTime`.
diff --git a/docs/framework/vue/guides/suspense.md b/docs/framework/vue/guides/suspense.md
index e6251545ef..5c06d2deb5 100644
--- a/docs/framework/vue/guides/suspense.md
+++ b/docs/framework/vue/guides/suspense.md
@@ -51,4 +51,4 @@ export default defineComponent({
 
 ## Fetch-on-render vs Render-as-you-fetch
 
-Out of the box, Vue Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](./guides/prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
+Out of the box, Vue Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. This means that when your components attempt to mount, they will trigger query fetching and suspend, but only once you have imported them and mounted them. If you want to take it to the next level and implement a **Render-as-you-fetch** model, we recommend implementing [Prefetching](../prefetching) on routing callbacks and/or user interactions events to start loading queries before they are mounted and hopefully even before you start importing or mounting their parent components.
diff --git a/docs/framework/vue/installation.md b/docs/framework/vue/installation.md
index 6a33b7a99e..e78708b4cd 100644
--- a/docs/framework/vue/installation.md
+++ b/docs/framework/vue/installation.md
@@ -15,7 +15,7 @@ $ pnpm add @tanstack/vue-query
 $ yarn add @tanstack/vue-query
 ```
 
-> Wanna give it a spin before you download? Try out the [basic](./examples/basic) example!
+> Wanna give it a spin before you download? Try out the [basic](../examples/basic) example!
 
 Vue Query is compatible with Vue 2.x and 3.x
 
diff --git a/docs/framework/vue/overview.md b/docs/framework/vue/overview.md
index 91e3ed902c..31c8da66ff 100644
--- a/docs/framework/vue/overview.md
+++ b/docs/framework/vue/overview.md
@@ -11,6 +11,6 @@ replace: { 'React': 'Vue', 'react-query': 'vue-query' }
 
 ## You talked me into it, so what now?
 
-- Learn Vue Query at your own pace with our amazingly thorough [Walkthrough Guide](./installation) and [API Reference](./reference/useQuery)
+- Learn Vue Query at your own pace with our amazingly thorough [Walkthrough Guide](../installation) and [API Reference](../reference/useQuery)
 
 [//]: # 'Materials'
diff --git a/docs/framework/vue/quick-start.md b/docs/framework/vue/quick-start.md
index c9d8afac81..c10605fe16 100644
--- a/docs/framework/vue/quick-start.md
+++ b/docs/framework/vue/quick-start.md
@@ -7,7 +7,7 @@ replace: { 'React': 'Vue', 'react-query': 'vue-query' }
 
 [//]: # 'Example'
 
-If you're looking for a fully functioning example, please have a look at our [basic codesandbox example](./examples/basic)
+If you're looking for a fully functioning example, please have a look at our [basic codesandbox example](../examples/basic)
 
 ```vue
 <script setup>
diff --git a/docs/reference/InfiniteQueryObserver.md b/docs/reference/InfiniteQueryObserver.md
index 7872393c3d..4d5c252072 100644
--- a/docs/reference/InfiniteQueryObserver.md
+++ b/docs/reference/InfiniteQueryObserver.md
@@ -23,4 +23,4 @@ const unsubscribe = observer.subscribe((result) => {
 
 **Options**
 
-The options for the `InfiniteQueryObserver` are exactly the same as those of [`useInfiniteQuery`](./framework/react/reference/useInfiniteQuery).
+The options for the `InfiniteQueryObserver` are exactly the same as those of [`useInfiniteQuery`](../../framework/react/reference/useInfiniteQuery).
diff --git a/docs/reference/QueriesObserver.md b/docs/reference/QueriesObserver.md
index 6d8b16a2b4..05bfd4b3e7 100644
--- a/docs/reference/QueriesObserver.md
+++ b/docs/reference/QueriesObserver.md
@@ -21,4 +21,4 @@ const unsubscribe = observer.subscribe((result) => {
 
 **Options**
 
-The options for the `QueriesObserver` are exactly the same as those of [`useQueries`](./framework/react/reference/useQueries).
+The options for the `QueriesObserver` are exactly the same as those of [`useQueries`](../../framework/react/reference/useQueries).
diff --git a/docs/reference/QueryCache.md b/docs/reference/QueryCache.md
index 6799bf8461..d4a8e3c025 100644
--- a/docs/reference/QueryCache.md
+++ b/docs/reference/QueryCache.md
@@ -63,8 +63,8 @@ const query = queryCache.find(queryKey)
 
 **Options**
 
-- `queryKey?: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -83,8 +83,8 @@ const queries = queryCache.findAll(queryKey)
 
 **Options**
 
-- `queryKey?: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -126,6 +126,6 @@ queryCache.clear()
 ## Further reading
 
 To get a better understanding how the QueryCache works internally, have a look at [#18: Inside React Query
-](./framework/react/community/tkdodos-blog#18-inside-react-query) from the Community Resources.
+](../../framework/react/community/tkdodos-blog#18-inside-react-query) from the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md
index 10e20245e3..e28e39b8ac 100644
--- a/docs/reference/QueryClient.md
+++ b/docs/reference/QueryClient.md
@@ -99,7 +99,7 @@ try {
 
 **Options**
 
-The options for `fetchQuery` are exactly the same as those of [`useQuery`](./framework/react/reference/useQuery), except the following: `enabled, refetchInterval, refetchIntervalInBackground, refetchOnWindowFocus, refetchOnReconnect, notifyOnChangeProps, onSuccess, onError, onSettled, useErrorBoundary, select, suspense, keepPreviousData, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/tannerlinsley/react-query/blob/361935a12cec6f36d0bd6ba12e84136c405047c5/src/core/types.ts#L83) for more clarity.
+The options for `fetchQuery` are exactly the same as those of [`useQuery`](../../framework/react/reference/useQuery), except the following: `enabled, refetchInterval, refetchIntervalInBackground, refetchOnWindowFocus, refetchOnReconnect, notifyOnChangeProps, onSuccess, onError, onSettled, useErrorBoundary, select, suspense, keepPreviousData, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/tannerlinsley/react-query/blob/361935a12cec6f36d0bd6ba12e84136c405047c5/src/core/types.ts#L83) for more clarity.
 
 **Returns**
 
@@ -176,7 +176,7 @@ const data = queryClient.getQueryData(queryKey)
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -209,7 +209,7 @@ const data = queryClient.getQueriesData(filters)
 
 **Options**
 
-- `filters: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
   - if a filter is passed, the data with queryKeys matching the filter will be returned
 
 **Returns**
@@ -235,7 +235,7 @@ queryClient.setQueryData(queryKey, updater)
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys)
 - `updater: TQueryFnData | undefined | ((oldData: TQueryFnData | undefined) => TQueryFnData | undefined)`
   - If non-function is passed, the data will be updated to this value
   - If a function is passed, it will receive the old data value and be expected to return a new one.
@@ -273,7 +273,7 @@ console.log(state.dataUpdatedAt)
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
 
 ## `queryClient.setQueriesData`
 
@@ -285,7 +285,7 @@ queryClient.setQueriesData(filters, updater)
 
 **Options**
 
-- `filters: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
   - if a filter is passed, queryKeys matching the filter will be updated
 - `updater: TQueryFnData | (oldData: TQueryFnData | undefined) => TQueryFnData`
   - the [setQueryData](#queryclientsetquerydata) updater function or new data, will be called for each matching queryKey
@@ -310,8 +310,8 @@ await queryClient.invalidateQueries(
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
-  - `queryKey?: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
+  - `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys)
   - `refetchType?: 'active' | 'inactive' | 'all' | 'none'`
     - Defaults to `'active'`
     - When set to `active`, only queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will be refetched in the background.
@@ -319,7 +319,7 @@ await queryClient.invalidateQueries(
     - When set to `all`, all queries that match the refetch predicate will be refetched in the background.
     - When set to `none`, no queries will be refetched, and those that match the refetch predicate will be marked as invalid only.
   - `refetchPage: (page: TData, index: number, allPages: TData[]) => boolean`
-    - Only for [Infinite Queries](./framework/react/guides/infinite-queries#refetchpage)
+    - Only for [Infinite Queries](../../framework/react/guides/infinite-queries#refetchpage)
     - Use this function to specify which pages should be refetched
 - `options?: InvalidateOptions`:
   - `throwOnError?: boolean`
@@ -355,9 +355,9 @@ await queryClient.refetchQueries({
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
   - `refetchPage: (page: TData, index: number, allPages: TData[]) => boolean`
-    - Only for [Infinite Queries](./framework/react/guides/infinite-queries#refetchpage)
+    - Only for [Infinite Queries](../../framework/react/guides/infinite-queries#refetchpage)
     - Use this function to specify which pages should be refetched
 - `options?: RefetchOptions`:
   - `throwOnError?: boolean`
@@ -383,7 +383,7 @@ await queryClient.cancelQueries({ queryKey: ['posts'], exact: true })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -399,7 +399,7 @@ queryClient.removeQueries({ queryKey, exact: true })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -422,9 +422,9 @@ queryClient.resetQueries({ queryKey, exact: true })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
   - `refetchPage: (page: TData, index: number, allPages: TData[]) => boolean`
-    - Only for [Infinite Queries](./framework/react/guides/infinite-queries#refetchpage)
+    - Only for [Infinite Queries](../../framework/react/guides/infinite-queries#refetchpage)
     - Use this function to specify which pages should be refetched
 - `options?: ResetOptions`:
   - `throwOnError?: boolean`
@@ -448,11 +448,11 @@ if (queryClient.isFetching()) {
 }
 ```
 
-TanStack Query also exports a handy [`useIsFetching`](./framework/react/reference/useIsFetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.
+TanStack Query also exports a handy [`useIsFetching`](../../framework/react/reference/useIsFetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](./framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters)
 
 **Returns**
 
@@ -468,11 +468,11 @@ if (queryClient.isMutating()) {
 }
 ```
 
-TanStack Query also exports a handy [`useIsMutating`](./framework/react/reference/useIsMutating) hook that will let you subscribe to this state in your components without creating a manual subscription to the mutation cache.
+TanStack Query also exports a handy [`useIsMutating`](../../framework/react/reference/useIsMutating) hook that will let you subscribe to this state in your components without creating a manual subscription to the mutation cache.
 
 **Options**
 
-- `filters: MutationFilters`: [Mutation Filters](./framework/react/guides/filters#mutation-filters)
+- `filters: MutationFilters`: [Mutation Filters](../../framework/react/guides/filters#mutation-filters)
 
 **Returns**
 
@@ -531,7 +531,7 @@ function Component() {
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](./framework/react/guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys)
 - `options: QueryOptions`
 
 > As stated in [`getQueryDefaults`](#queryclientgetquerydefaults), the order of registration of query defaults does matter.
diff --git a/docs/reference/QueryObserver.md b/docs/reference/QueryObserver.md
index 2173ccc6d7..adffa0b730 100644
--- a/docs/reference/QueryObserver.md
+++ b/docs/reference/QueryObserver.md
@@ -18,4 +18,4 @@ const unsubscribe = observer.subscribe((result) => {
 
 **Options**
 
-The options for the `QueryObserver` are exactly the same as those of [`useQuery`](./framework/react/reference/useQuery).
+The options for the `QueryObserver` are exactly the same as those of [`useQuery`](../../framework/react/reference/useQuery).

From f1ec2ca81660ce6f1996e653476952ee3598a7cd Mon Sep 17 00:00:00 2001
From: coderhyy <1014873097@qq.com>
Date: Wed, 3 Jul 2024 19:27:27 +0800
Subject: [PATCH 28/45] Update dependent-queries.md (#7561)

---
 docs/framework/react/guides/dependent-queries.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/framework/react/guides/dependent-queries.md b/docs/framework/react/guides/dependent-queries.md
index 21f5d3a3e0..67977bdd81 100644
--- a/docs/framework/react/guides/dependent-queries.md
+++ b/docs/framework/react/guides/dependent-queries.md
@@ -71,7 +71,7 @@ const { data: userIds } = useQuery({
 // Then get the users messages
 const usersMessages = useQueries({
   queries: userIds
-    ? usersId.map(id => {
+    ? userIds.map(id => {
         return {
           queryKey: ['messages', id],
           queryFn: () => getMessagesByUsers(id),

From b7e50ad55d79fb8c3c427c1bcd4eb78e2b2c6f46 Mon Sep 17 00:00:00 2001
From: GwanSik Kim <Seorit98@gmail.com>
Date: Mon, 8 Jul 2024 11:13:05 +0900
Subject: [PATCH 29/45] docs(suspensive-react-query): add content about
 queryOptions (#7678)

* docs(suspensive-react-query): add content about queryOptions

Co-authored-by: Jonghyeon Ko <61593290+manudeli@users.noreply.github.com>

* fix(ci): pnpm/action-setup@v4.0.0

Co-authored-by: Jonghyeon Ko <61593290+manudeli@users.noreply.github.com>

* fix(ci): update pnpm/action-setup version

Co-authored-by: Jonghyeon Ko <61593290+manudeli@users.noreply.github.com>

* fix(ci): update pnpm/action-setup version

Co-authored-by: Jonghyeon Ko <61593290+manudeli@users.noreply.github.com>

* docs(suspensive-react-query): update content about queryOptions

* docs(suspensive-react-query): update content about queryOptions

Co-authored-by: Jonghyeon Ko <61593290+manudeli@users.noreply.github.com>

---------

Co-authored-by: Jonghyeon Ko <61593290+manudeli@users.noreply.github.com>
---
 .github/workflows/ci.yml                      |  2 +-
 .github/workflows/pr.yml                      |  8 +--
 .../react/community/suspensive-react-query.md | 50 +++++++++++++++++--
 3 files changed, 52 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a0b22e8ddd..807bae908d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -31,7 +31,7 @@ jobs:
       - uses: actions/checkout@v3
         with:
           fetch-depth: '0'
-      - uses: pnpm/action-setup@v2.2.4
+      - uses: pnpm/action-setup@v2.4.1
         with:
           version: 8
       - uses: actions/setup-node@v3
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index aeffca5ec3..ae4710c754 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -21,7 +21,7 @@ jobs:
         with:
           fetch-depth: 0
       - name: Setup pnpm
-        uses: pnpm/action-setup@v2.2.4
+        uses: pnpm/action-setup@v2.4.1
         with:
           version: 8
       - name: Setup Node
@@ -63,7 +63,7 @@ jobs:
         with:
           fetch-depth: 0
       - name: Setup pnpm
-        uses: pnpm/action-setup@v2.2.4
+        uses: pnpm/action-setup@v2.4.1
         with:
           version: 8
       - name: Setup Node
@@ -84,7 +84,7 @@ jobs:
         with:
           fetch-depth: 0
       - name: Setup pnpm
-        uses: pnpm/action-setup@v2.2.4
+        uses: pnpm/action-setup@v2.4.1
         with:
           version: 8
       - name: Setup Node
@@ -106,7 +106,7 @@ jobs:
           fetch-depth: 0
           ref: ${{ github.head_ref }}
           repository: ${{github.event.pull_request.head.repo.full_name}}
-      - uses: pnpm/action-setup@v2.2.4
+      - uses: pnpm/action-setup@v2.4.1
         with:
           version: 8
       - uses: actions/setup-node@v3
diff --git a/docs/framework/react/community/suspensive-react-query.md b/docs/framework/react/community/suspensive-react-query.md
index 3c20ee8b48..4a55269102 100644
--- a/docs/framework/react/community/suspensive-react-query.md
+++ b/docs/framework/react/community/suspensive-react-query.md
@@ -72,12 +72,56 @@ const Example = () => {
 
 Now, we can concentrate component as any fetching will be always success in component.
 
-### useSuspenseQuery is Official API now! (from v5)
+## queryOptions
 
-@suspensive/react-query provides not only [useSuspenseQuery](https://suspensive.org/docs/react-query/useSuspenseQuery), also [useSuspenseQueries](https://suspensive.org/docs/react-query/useSuspenseQueries), [useSuspenseInfiniteQuery](https://suspensive.org/docs/react-query/useSuspenseInfiniteQuery). From @tanstack/react-query v5 provides [official public hook apis for suspense](https://tanstack.com/query/v5/docs/react/guides/suspense) like @suspensive/react-query's hooks. If want to use them early in v4, use this @suspensive/react-query first.
+Tkdodo, The maintainer of TanStack Query explains well why this interface is needed in [video explaining queryOptions in TanStack Query v5](https://youtu.be/bhE3wuB_TuA?feature=shared&t=1697).
+You can also use queryOptions in TanStack Query v4.
 
-Check the complete documentation on [Suspensive Official Docs Site](https://suspensive.org/) and also welcome Pull Request on [Suspensive GitHub](https://github.com/suspensive/react)
+1. QueryKey management becomes easier by processing queryKey and queryFn together.
+2. You can remove unnecessary custom query hooks. This is because they can all be used directly in `useQuery`, `useQueries` of TanStack Query v4.
+3. TanStack Query v5 already supports queryOptions. This Suspensive React Query's `queryOptions` will make migration from TanStack Query v4 to TanStack Query v5 easier.
 
+```tsx
+import { queryOptions } from '@suspensive/react-query'
+import { useQuery, useQueries, useQueryClient } from '@tanstack/react-query'
+
+const postQueryOptions = (postId) =>
+  queryOptions({
+    queryKey: ['posts', postId] as const,
+    queryFn: ({
+      queryKey: [, postId], // You can use queryKey.
+    }) => fetch(`https://example.com/posts/${postId}`),
+  })
+
+// No need to create custom query hooks.
+// You can use queryOptions directly in useQuery, useQueries.
+const post1Query = useQuery(postQueryOptions(1))
+
+const [post1Query, post2Query] = useQueries({
+  queries: [
+    postQueryOptions(1),
+    { ...postQueryOptions(2), refetchInterval: 2000 },
+  ],
+})
+
+// You can easily use queryKey and queryFn in queryClient's methods.
+const queryClient = useQueryClient()
+queryClient.refetchQueries(postQueryOptions(1))
+queryClient.prefetchQuery(postQueryOptions(1))
+queryClient.invalidateQueries(postQueryOptions(1))
+queryClient.fetchQuery(postQueryOptions(1))
+queryClient.resetQueries(postQueryOptions(1))
+queryClient.cancelQueries(postQueryOptions(1))
+```
 
+### Using queryOptions in TanStack Query v4
 
+> "One of the best ways to share queryKey and queryFn between multiple places, yet keep them co-located to one another, is to use the queryOptions helper." For more details, you can refer to the [TanStack Query v5 Official Docs - Query Options](https://tanstack.com/query/v5/docs/framework/react/guides/query-options).
 
+You can use queryOptions in TanStack Query v4 just like in TanStack Query v5, and it is fully compatible with the TanStack Query v4 API.
+
+### useSuspenseQuery is Official API now! (from v5)
+
+@suspensive/react-query provides not only [useSuspenseQuery](https://suspensive.org/docs/react-query/useSuspenseQuery), also [useSuspenseQueries](https://suspensive.org/docs/react-query/useSuspenseQueries), [useSuspenseInfiniteQuery](https://suspensive.org/docs/react-query/useSuspenseInfiniteQuery). From @tanstack/react-query v5 provides [official public hook apis for suspense](https://tanstack.com/query/v5/docs/react/guides/suspense) like @suspensive/react-query's hooks. If want to use them early in v4, use this @suspensive/react-query first.
+
+Check the complete documentation on [Suspensive Official Docs Site](https://suspensive.org/) and also welcome Pull Request on [Suspensive GitHub](https://github.com/suspensive/react)

From 542528aecc7516e6032930420e118b17d8344a6b Mon Sep 17 00:00:00 2001
From: Sernin van de Krol <serninpc@paneidos.net>
Date: Wed, 21 Aug 2024 13:19:09 +0200
Subject: [PATCH 30/45] docs: Add version to v4 eslint docs (#7926)

---
 docs/eslint/eslint-plugin-query.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/eslint/eslint-plugin-query.md b/docs/eslint/eslint-plugin-query.md
index e7132497b1..e228ed91e4 100644
--- a/docs/eslint/eslint-plugin-query.md
+++ b/docs/eslint/eslint-plugin-query.md
@@ -10,11 +10,11 @@ TanStack Query comes with its own ESLint plugin. This plugin is used to enforce
 The plugin is a separate package that you need to install:
 
 ```bash
-$ npm i -D @tanstack/eslint-plugin-query
+$ npm i -D @tanstack/eslint-plugin-query@4
 # or
-$ pnpm add -D @tanstack/eslint-plugin-query
+$ pnpm add -D @tanstack/eslint-plugin-query@4
 # or
-$ yarn add -D @tanstack/eslint-plugin-query
+$ yarn add -D @tanstack/eslint-plugin-query@4
 ```
 
 ## Usage

From 92e5672f58dec44d87f899e41d78d3582866d3f8 Mon Sep 17 00:00:00 2001
From: Pranay Bajracharya <law.pran99@gmail.com>
Date: Thu, 26 Sep 2024 18:35:34 +0545
Subject: [PATCH 31/45] docs: copying installation commands made easy (#8101)

---
 docs/eslint/eslint-plugin-query.md            | 18 +++++++---
 .../community/liaoliao666-react-query-kit.md  | 18 +++++++---
 .../lukemorales-query-key-factory.md          | 18 +++++++---
 .../react/community/suspensive-react-query.md | 18 +++++++---
 docs/framework/react/devtools.md              | 18 +++++++---
 docs/framework/react/installation.md          | 36 +++++++++++++------
 docs/framework/svelte/installation.md         | 18 +++++++---
 docs/framework/vue/installation.md            | 18 +++++++---
 packages/vue-query/README.md                  | 18 +++++++---
 9 files changed, 130 insertions(+), 50 deletions(-)

diff --git a/docs/eslint/eslint-plugin-query.md b/docs/eslint/eslint-plugin-query.md
index e228ed91e4..8174ece1df 100644
--- a/docs/eslint/eslint-plugin-query.md
+++ b/docs/eslint/eslint-plugin-query.md
@@ -10,11 +10,19 @@ TanStack Query comes with its own ESLint plugin. This plugin is used to enforce
 The plugin is a separate package that you need to install:
 
 ```bash
-$ npm i -D @tanstack/eslint-plugin-query@4
-# or
-$ pnpm add -D @tanstack/eslint-plugin-query@4
-# or
-$ yarn add -D @tanstack/eslint-plugin-query@4
+npm i -D @tanstack/eslint-plugin-query@4
+```
+
+or
+
+```bash
+pnpm add -D @tanstack/eslint-plugin-query@4
+```
+
+or
+
+```bash
+yarn add -D @tanstack/eslint-plugin-query@4
 ```
 
 ## Usage
diff --git a/docs/framework/react/community/liaoliao666-react-query-kit.md b/docs/framework/react/community/liaoliao666-react-query-kit.md
index 3e5ee6ab3e..8ecd81ec53 100644
--- a/docs/framework/react/community/liaoliao666-react-query-kit.md
+++ b/docs/framework/react/community/liaoliao666-react-query-kit.md
@@ -19,11 +19,19 @@ This module is distributed via [NPM](https://www.npmjs.com/package/react-query-k
 should be installed as one of your project's `dependencies`:
 
 ```bash
-$ npm i react-query-kit
-# or
-$ pnpm add react-query-kit
-# or
-$ yarn add react-query-kit
+npm i react-query-kit
+```
+
+or
+
+```bash
+pnpm add react-query-kit
+```
+
+or
+
+```bash
+yarn add react-query-kit
 ```
 
 ## Quick start with nextjs
diff --git a/docs/framework/react/community/lukemorales-query-key-factory.md b/docs/framework/react/community/lukemorales-query-key-factory.md
index 5342ca4ffe..b4ae9b6eb9 100644
--- a/docs/framework/react/community/lukemorales-query-key-factory.md
+++ b/docs/framework/react/community/lukemorales-query-key-factory.md
@@ -10,11 +10,19 @@ Typesafe query key management with auto-completion features. Focus on writing an
 You can install Query Key Factory via [NPM](https://www.npmjs.com/package/@lukemorales/query-key-factory).
 
 ```bash
-$ npm i @lukemorales/query-key-factory
-# or
-$ pnpm add @lukemorales/query-key-factory
-# or
-$ yarn add @lukemorales/query-key-factory
+npm i @lukemorales/query-key-factory
+```
+
+or
+
+```bash
+pnpm add @lukemorales/query-key-factory
+```
+
+or
+
+```bash
+yarn add @lukemorales/query-key-factory
 ```
 
 
diff --git a/docs/framework/react/community/suspensive-react-query.md b/docs/framework/react/community/suspensive-react-query.md
index 4a55269102..243e879e32 100644
--- a/docs/framework/react/community/suspensive-react-query.md
+++ b/docs/framework/react/community/suspensive-react-query.md
@@ -14,11 +14,19 @@ You don't even need to use the isSuccess flag.
 You can install @suspensive/react-query via [NPM](https://www.npmjs.com/package/@suspensive/react-query).
 
 ```bash
-$ npm i @suspensive/react-query
-# or
-$ pnpm add @suspensive/react-query
-# or
-$ yarn add @suspensive/react-query
+npm i @suspensive/react-query
+```
+
+or
+
+```bash
+pnpm add @suspensive/react-query
+```
+
+or
+
+```bash
+yarn add @suspensive/react-query
 ```
 
 ### Motivation
diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md
index 8d3b85360c..79a34c6ddd 100644
--- a/docs/framework/react/devtools.md
+++ b/docs/framework/react/devtools.md
@@ -18,11 +18,19 @@ The devtools are a separate package that you need to install.
 The major version of all the packages must be in sync.
 
 ```bash
-$ npm i @tanstack/react-query-devtools@4
-# or
-$ pnpm add @tanstack/react-query-devtools@4
-# or
-$ yarn add @tanstack/react-query-devtools@4
+npm i @tanstack/react-query-devtools@4
+```
+
+or
+
+```bash
+pnpm add @tanstack/react-query-devtools@4
+```
+
+or
+
+```bash
+yarn add @tanstack/react-query-devtools@4
 ```
 
 You can import the devtools like this:
diff --git a/docs/framework/react/installation.md b/docs/framework/react/installation.md
index 9c8145bb08..a3c37109f5 100644
--- a/docs/framework/react/installation.md
+++ b/docs/framework/react/installation.md
@@ -10,11 +10,19 @@ or a good ol' `<script>` via
 ### NPM
 
 ```bash
-$ npm i @tanstack/react-query
-# or
-$ pnpm add @tanstack/react-query
-# or
-$ yarn add @tanstack/react-query
+npm i @tanstack/react-query@4
+```
+
+or
+
+```bash
+pnpm add @tanstack/react-query@4
+```
+
+or
+
+```bash
+yarn add @tanstack/react-query@4
 ```
 
 React Query is compatible with React v16.8+ and works with ReactDOM and React Native.
@@ -53,9 +61,17 @@ Opera >= 53
 It is recommended to also use our [ESLint Plugin Query](../../../eslint/eslint-plugin-query) to help you catch bugs and inconsistencies while you code. You can install it via:
 
 ```bash
-$ npm i -D @tanstack/eslint-plugin-query
-# or
-$ pnpm add -D @tanstack/eslint-plugin-query
-# or
-$ yarn add -D @tanstack/eslint-plugin-query
+npm i -D @tanstack/eslint-plugin-query@4
+```
+
+or
+
+```bash
+pnpm add -D @tanstack/eslint-plugin-query@4
+```
+
+or
+
+```bash
+yarn add -D @tanstack/eslint-plugin-query@4
 ```
diff --git a/docs/framework/svelte/installation.md b/docs/framework/svelte/installation.md
index 63848d0a8a..e2f0ab12b3 100644
--- a/docs/framework/svelte/installation.md
+++ b/docs/framework/svelte/installation.md
@@ -8,11 +8,19 @@ You can install Svelte Query via [NPM](https://npmjs.com).
 ### NPM
 
 ```bash
-$ npm i @tanstack/svelte-query
-# or
-$ pnpm add @tanstack/svelte-query
-# or
-$ yarn add @tanstack/svelte-query
+npm i @tanstack/svelte-query
+```
+
+or
+
+```bash
+pnpm add @tanstack/svelte-query
+```
+
+or
+
+```bash
+yarn add @tanstack/svelte-query
 ```
 
 > Wanna give it a spin before you download? Try out the [basic](../examples/basic) example!
diff --git a/docs/framework/vue/installation.md b/docs/framework/vue/installation.md
index e78708b4cd..f36af5a527 100644
--- a/docs/framework/vue/installation.md
+++ b/docs/framework/vue/installation.md
@@ -8,11 +8,19 @@ You can install Vue Query via [NPM](https://npmjs.com).
 ### NPM
 
 ```bash
-$ npm i @tanstack/vue-query
-# or
-$ pnpm add @tanstack/vue-query
-# or
-$ yarn add @tanstack/vue-query
+npm i @tanstack/vue-query
+```
+
+or
+
+```bash
+pnpm add @tanstack/vue-query
+```
+
+or
+
+```bash
+yarn add @tanstack/vue-query
 ```
 
 > Wanna give it a spin before you download? Try out the [basic](../examples/basic) example!
diff --git a/packages/vue-query/README.md b/packages/vue-query/README.md
index 4d24a42a5c..efa35e9c9b 100644
--- a/packages/vue-query/README.md
+++ b/packages/vue-query/README.md
@@ -35,11 +35,19 @@ Visit https://tanstack.com/query/v4/docs/adapters/vue-query
 1. Install `vue-query`
 
    ```bash
-   $ npm i @tanstack/vue-query
-   # or
-   $ pnpm add @tanstack/vue-query
-   # or
-   $ yarn add @tanstack/vue-query
+   npm i @tanstack/vue-query
+   ```
+
+   or
+
+   ```bash
+     pnpm add @tanstack/vue-query
+   ```
+
+   or
+
+   ```bash
+     yarn add @tanstack/vue-query
    ```
 
    > If you are using Vue 2.6, make sure to also setup [@vue/composition-api](https://github.com/vuejs/composition-api)

From 4e6432aed5d5d2b04eee5528d914818bb590aec4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcos=20Garc=C3=ADa?= <thiamath@gmail.com>
Date: Tue, 29 Apr 2025 11:19:27 +0200
Subject: [PATCH 32/45] docs: Enrich the onMutate description for context
 (#8710)

---
 docs/framework/react/reference/useMutation.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md
index 80585a3ede..62f052321a 100644
--- a/docs/framework/react/reference/useMutation.md
+++ b/docs/framework/react/reference/useMutation.md
@@ -60,7 +60,7 @@ mutate(variables, {
   - Optional
   - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive
   - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds
-  - The value returned from this function will be passed to both the `onError` and `onSettled` functions in the event of a mutation failure and can be useful for rolling back optimistic updates.
+  - The value returned from this function will be passed to the `onSuccess`, `onError`, and `onSettled` functions and can be useful for rolling back optimistic updates.
 - `onSuccess: (data: TData, variables: TVariables, context?: TContext) => Promise<unknown> | unknown`
   - Optional
   - This function will fire when the mutation is successful and will be passed the mutation's result.

From 9af0b7546dbba1955474d93815867b0d6a38c18e Mon Sep 17 00:00:00 2001
From: Jonghyeon Ko <manudeli.ko@gmail.com>
Date: Mon, 26 May 2025 21:08:38 +0900
Subject: [PATCH 33/45] feat: backport v5 apis to v4 (#9140)

Co-authored-by: Daniel Perez <17787042+danielpza@users.noreply.github.com>
---
 .nvmrc                                        |    2 +-
 package.json                                  |    1 +
 packages/query-core/src/mutationObserver.ts   |    4 +-
 packages/query-core/src/queryCache.ts         |   43 +-
 packages/query-core/src/queryClient.ts        |  239 +-
 .../query-core/src/tests/mutations.test.tsx   |    8 +
 .../src/tests/queryClient.types.test.tsx      |   13 +
 packages/query-core/src/tests/utils.ts        |    2 +
 packages/query-core/src/types.ts              |   20 +
 .../src/__tests__/queryOptions.types.test.tsx |  270 +++
 .../src/__tests__/useQuery.types.test.tsx     |    3 +-
 .../useSuspenseQueries.types.test.tsx         |  102 +
 .../__tests__/useSuspenseQuery.types.test.tsx |   81 +
 packages/react-query/src/__tests__/utils.tsx  |    2 +
 packages/react-query/src/index.ts             |    3 +
 packages/react-query/src/queryOptions.ts      |   86 +
 packages/react-query/src/useQueries.ts        |   72 +-
 packages/react-query/src/useQuery.ts          |   77 +-
 .../react-query/src/useSuspenseQueries.ts     |  162 ++
 packages/react-query/src/useSuspenseQuery.ts  |   58 +
 packages/vue-query/src/queryCache.ts          |   16 +-
 pnpm-lock.yaml                                | 2037 +++++++++++++++--
 22 files changed, 3076 insertions(+), 225 deletions(-)
 create mode 100644 packages/query-core/src/tests/queryClient.types.test.tsx
 create mode 100644 packages/react-query/src/__tests__/queryOptions.types.test.tsx
 create mode 100644 packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
 create mode 100644 packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
 create mode 100644 packages/react-query/src/queryOptions.ts
 create mode 100644 packages/react-query/src/useSuspenseQueries.ts
 create mode 100644 packages/react-query/src/useSuspenseQuery.ts

diff --git a/.nvmrc b/.nvmrc
index fb457f39d5..1d9b7831ba 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-v16.19.0
+22.12.0
diff --git a/package.json b/package.json
index d9294934c9..e2922a45f2 100644
--- a/package.json
+++ b/package.json
@@ -75,6 +75,7 @@
     "eslint-plugin-import": "^2.27.5",
     "eslint-plugin-react": "^7.32.2",
     "eslint-plugin-react-hooks": "^4.6.0",
+    "expect-type": "^1.2.1",
     "git-log-parser": "^1.2.0",
     "jest": "^27.5.1",
     "jsonfile": "^6.1.0",
diff --git a/packages/query-core/src/mutationObserver.ts b/packages/query-core/src/mutationObserver.ts
index 5b0c0eba4e..93b814d7e0 100644
--- a/packages/query-core/src/mutationObserver.ts
+++ b/packages/query-core/src/mutationObserver.ts
@@ -141,6 +141,7 @@ export class MutationObserver<
       ? this.currentMutation.state
       : getDefaultState<TData, TError, TVariables, TContext>()
 
+    const isLoading = state.status === 'loading'
     const result: MutationObserverBaseResult<
       TData,
       TError,
@@ -148,7 +149,8 @@ export class MutationObserver<
       TContext
     > = {
       ...state,
-      isLoading: state.status === 'loading',
+      isLoading,
+      isPending: isLoading,
       isSuccess: state.status === 'success',
       isError: state.status === 'error',
       isIdle: state.status === 'idle',
diff --git a/packages/query-core/src/queryCache.ts b/packages/query-core/src/queryCache.ts
index 91e66e2787..47f5159d00 100644
--- a/packages/query-core/src/queryCache.ts
+++ b/packages/query-core/src/queryCache.ts
@@ -4,7 +4,7 @@ import { notifyManager } from './notifyManager'
 import { Subscribable } from './subscribable'
 import type { QueryFilters } from './utils'
 import type { Action, QueryState } from './query'
-import type { NotifyEvent, QueryKey, QueryOptions } from './types'
+import type { NotifyEvent, OmitKeyof, QueryKey, QueryOptions } from './types'
 import type { QueryClient } from './queryClient'
 import type { QueryObserver } from './queryObserver'
 
@@ -166,8 +166,21 @@ export class QueryCache extends Subscribable<QueryCacheListener> {
   }
 
   find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
-    arg1: QueryKey,
-    arg2?: QueryFilters,
+    filters: QueryFilters,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    queryKey: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    arg1: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
   ): Query<TQueryFnData, TError, TData> | undefined {
     const [filters] = parseFilterArgs(arg1, arg2)
 
@@ -178,10 +191,28 @@ export class QueryCache extends Subscribable<QueryCacheListener> {
     return this.queries.find((query) => matchQuery(filters, query))
   }
 
-  findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]
   findAll(filters?: QueryFilters): Query[]
-  findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]
-  findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  findAll(
+    queryKey?: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query[]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  findAll(
+    arg1?: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query[]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  findAll(
+    arg1?: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query[] {
     const [filters] = parseFilterArgs(arg1, arg2)
     return Object.keys(filters).length > 0
       ? this.queries.filter((query) => matchQuery(filters, query))
diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts
index cadc1fd0e6..81c4002892 100644
--- a/packages/query-core/src/queryClient.ts
+++ b/packages/query-core/src/queryClient.ts
@@ -14,6 +14,7 @@ import { onlineManager } from './onlineManager'
 import { notifyManager } from './notifyManager'
 import { infiniteQueryBehavior } from './infiniteQueryBehavior'
 import { defaultLogger } from './logger'
+import type { OmitKeyof } from '@tanstack/query-core'
 import type { CancelOptions, DefaultedQueryObserverOptions } from './types'
 import type { Logger } from './logger'
 import type { QueryState } from './query'
@@ -112,7 +113,16 @@ export class QueryClient {
   }
 
   isFetching(filters?: QueryFilters): number
-  isFetching(queryKey?: QueryKey, filters?: QueryFilters): number
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  isFetching(
+    queryKey?: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): number
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   isFetching(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): number {
     const [filters] = parseFilterArgs(arg1, arg2)
     filters.fetchStatus = 'fetching'
@@ -125,7 +135,20 @@ export class QueryClient {
 
   getQueryData<TQueryFnData = unknown>(
     queryKey: QueryKey,
-    filters?: QueryFilters,
+  ): TQueryFnData | undefined
+  /**
+   * @deprecated This method will accept only queryKey in the next major version.
+   */
+  getQueryData<TQueryFnData = unknown>(
+    queryKey: QueryKey,
+    filters: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): TQueryFnData | undefined
+  /**
+   * @deprecated This method will accept only queryKey in the next major version.
+   */
+  getQueryData<TQueryFnData = unknown>(
+    queryKey: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
   ): TQueryFnData | undefined {
     return this.queryCache.find<TQueryFnData>(queryKey, filters)?.state.data
   }
@@ -141,6 +164,9 @@ export class QueryClient {
       'queryKey'
     >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   ensureQueryData<
     TQueryFnData = unknown,
     TError = unknown,
@@ -148,11 +174,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: Omit<
+    options?: OmitKeyof<
       FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
       'queryKey'
     >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   ensureQueryData<
     TQueryFnData = unknown,
     TError = unknown,
@@ -161,11 +190,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: Omit<
+    options?: OmitKeyof<
       FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
       'queryKey' | 'queryFn'
     >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   ensureQueryData<
     TQueryFnData,
     TError,
@@ -192,11 +224,17 @@ export class QueryClient {
   }
 
   getQueriesData<TQueryFnData = unknown>(
-    queryKey: QueryKey,
+    filters: QueryFilters,
   ): [QueryKey, TQueryFnData | undefined][]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   getQueriesData<TQueryFnData = unknown>(
-    filters: QueryFilters,
+    queryKey: QueryKey,
   ): [QueryKey, TQueryFnData | undefined][]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   getQueriesData<TQueryFnData = unknown>(
     queryKeyOrFilters: QueryKey | QueryFilters,
   ): [QueryKey, TQueryFnData | undefined][] {
@@ -229,17 +267,21 @@ export class QueryClient {
   }
 
   setQueriesData<TQueryFnData>(
-    queryKey: QueryKey,
+    filters: QueryFilters,
     updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
     options?: SetDataOptions,
   ): [QueryKey, TQueryFnData | undefined][]
-
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   setQueriesData<TQueryFnData>(
-    filters: QueryFilters,
+    queryKey: QueryKey,
     updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
     options?: SetDataOptions,
   ): [QueryKey, TQueryFnData | undefined][]
-
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   setQueriesData<TQueryFnData>(
     queryKeyOrFilters: QueryKey | QueryFilters,
     updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
@@ -257,14 +299,29 @@ export class QueryClient {
 
   getQueryState<TQueryFnData = unknown, TError = undefined>(
     queryKey: QueryKey,
-    filters?: QueryFilters,
+    /**
+     * @deprecated This filters will be removed in the next major version.
+     */
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
   ): QueryState<TQueryFnData, TError> | undefined {
     return this.queryCache.find<TQueryFnData, TError>(queryKey, filters)?.state
   }
 
   removeQueries(filters?: QueryFilters): void
-  removeQueries(queryKey?: QueryKey, filters?: QueryFilters): void
-  removeQueries(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): void {
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  removeQueries(
+    queryKey?: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): void
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  removeQueries(
+    arg1?: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): void {
     const [filters] = parseFilterArgs(arg1, arg2)
     const queryCache = this.queryCache
     notifyManager.batch(() => {
@@ -278,14 +335,20 @@ export class QueryClient {
     filters?: ResetQueryFilters<TPageData>,
     options?: ResetOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   resetQueries<TPageData = unknown>(
     queryKey?: QueryKey,
-    filters?: ResetQueryFilters<TPageData>,
+    filters?: OmitKeyof<ResetQueryFilters<TPageData>, 'queryKey'>,
     options?: ResetOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   resetQueries(
     arg1?: QueryKey | ResetQueryFilters,
-    arg2?: ResetQueryFilters | ResetOptions,
+    arg2?: OmitKeyof<ResetQueryFilters, 'queryKey'> | ResetOptions,
     arg3?: ResetOptions,
   ): Promise<void> {
     const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -305,14 +368,20 @@ export class QueryClient {
   }
 
   cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   cancelQueries(
     queryKey?: QueryKey,
-    filters?: QueryFilters,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
     options?: CancelOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   cancelQueries(
     arg1?: QueryKey | QueryFilters,
-    arg2?: QueryFilters | CancelOptions,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'> | CancelOptions,
     arg3?: CancelOptions,
   ): Promise<void> {
     const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3)
@@ -334,14 +403,20 @@ export class QueryClient {
     filters?: InvalidateQueryFilters<TPageData>,
     options?: InvalidateOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   invalidateQueries<TPageData = unknown>(
     queryKey?: QueryKey,
-    filters?: InvalidateQueryFilters<TPageData>,
+    filters?: OmitKeyof<InvalidateQueryFilters<TPageData>, 'queryKey'>,
     options?: InvalidateOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   invalidateQueries(
     arg1?: QueryKey | InvalidateQueryFilters,
-    arg2?: InvalidateQueryFilters | InvalidateOptions,
+    arg2?: OmitKeyof<InvalidateQueryFilters, 'queryKey'> | InvalidateOptions,
     arg3?: InvalidateOptions,
   ): Promise<void> {
     const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -366,14 +441,20 @@ export class QueryClient {
     filters?: RefetchQueryFilters<TPageData>,
     options?: RefetchOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   refetchQueries<TPageData = unknown>(
     queryKey?: QueryKey,
-    filters?: RefetchQueryFilters<TPageData>,
+    filters?: OmitKeyof<RefetchQueryFilters<TPageData>, 'queryKey'>,
     options?: RefetchOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   refetchQueries(
     arg1?: QueryKey | RefetchQueryFilters,
-    arg2?: RefetchQueryFilters | RefetchOptions,
+    arg2?: OmitKeyof<RefetchQueryFilters, 'queryKey'> | RefetchOptions,
     arg3?: RefetchOptions,
   ): Promise<void> {
     const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -408,6 +489,9 @@ export class QueryClient {
   >(
     options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -415,8 +499,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -425,8 +515,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchQuery<
     TQueryFnData,
     TError,
@@ -436,8 +532,14 @@ export class QueryClient {
     arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<TData> {
     const parsedOptions = parseQueryArgs(arg1, arg2, arg3)
     const defaultedOptions = this.defaultQueryOptions(parsedOptions)
@@ -462,6 +564,9 @@ export class QueryClient {
   >(
     options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -469,8 +574,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -479,8 +590,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -490,8 +607,14 @@ export class QueryClient {
     arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void> {
     return this.fetchQuery(arg1 as any, arg2 as any, arg3)
       .then(noop)
@@ -506,6 +629,9 @@ export class QueryClient {
   >(
     options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<InfiniteData<TData>>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -513,8 +639,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<InfiniteData<TData>>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -523,8 +655,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<InfiniteData<TData>>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchInfiniteQuery<
     TQueryFnData,
     TError,
@@ -536,8 +674,14 @@ export class QueryClient {
       | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<InfiniteData<TData>> {
     const parsedOptions = parseQueryArgs(arg1, arg2, arg3)
     parsedOptions.behavior = infiniteQueryBehavior<
@@ -556,6 +700,9 @@ export class QueryClient {
   >(
     options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -563,8 +710,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -573,8 +726,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchInfiniteQuery<
     TQueryFnData,
     TError,
@@ -586,8 +745,14 @@ export class QueryClient {
       | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void> {
     return this.fetchInfiniteQuery(arg1 as any, arg2 as any, arg3)
       .then(noop)
diff --git a/packages/query-core/src/tests/mutations.test.tsx b/packages/query-core/src/tests/mutations.test.tsx
index 651f9e33a3..92dd8d6822 100644
--- a/packages/query-core/src/tests/mutations.test.tsx
+++ b/packages/query-core/src/tests/mutations.test.tsx
@@ -76,6 +76,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: true,
       isLoading: false,
+      isPending: false,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -103,6 +104,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -122,6 +124,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -141,6 +144,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: false,
+      isPending: false,
       isPaused: false,
       isSuccess: true,
       mutate: expect.any(Function),
@@ -181,6 +185,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -200,6 +205,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -219,6 +225,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -238,6 +245,7 @@ describe('mutations', () => {
       isError: true,
       isIdle: false,
       isLoading: false,
+      isPending: false,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
diff --git a/packages/query-core/src/tests/queryClient.types.test.tsx b/packages/query-core/src/tests/queryClient.types.test.tsx
new file mode 100644
index 0000000000..686300fd13
--- /dev/null
+++ b/packages/query-core/src/tests/queryClient.types.test.tsx
@@ -0,0 +1,13 @@
+import { doNotExecute, queryKey } from './utils'
+import type { QueryClient } from '..'
+
+describe('queryClient', () => {
+  let queryClient: QueryClient
+
+  it('should be used with queryCache', () => {
+    doNotExecute(() => {
+      queryClient.getQueryData(queryKey())
+      queryClient.getQueryData(queryKey(), {})
+    })
+  })
+})
diff --git a/packages/query-core/src/tests/utils.ts b/packages/query-core/src/tests/utils.ts
index a6b20b5117..9c07ff8f9a 100644
--- a/packages/query-core/src/tests/utils.ts
+++ b/packages/query-core/src/tests/utils.ts
@@ -4,6 +4,8 @@ import { QueryClient } from '@tanstack/query-core'
 import * as utils from '../utils'
 import type { MutationOptions, QueryClientConfig } from '@tanstack/query-core'
 
+export const doNotExecute = (_func: () => void) => true
+
 export function createQueryClient(config?: QueryClientConfig): QueryClient {
   jest.spyOn(console, 'error').mockImplementation(() => undefined)
   return new QueryClient({ logger: mockLogger, ...config })
diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts
index cfeae31fb9..8af46426bf 100644
--- a/packages/query-core/src/types.ts
+++ b/packages/query-core/src/types.ts
@@ -8,6 +8,20 @@ import type { QueryCache } from './queryCache'
 import type { MutationCache } from './mutationCache'
 import type { Logger } from './logger'
 
+export type NonUndefinedGuard<T> = T extends undefined ? never : T
+
+export type OmitKeyof<
+  TObject,
+  TKey extends TStrictly extends 'safely'
+    ?
+        | keyof TObject
+        | (string & Record<never, never>)
+        | (number & Record<never, never>)
+        | (symbol & Record<never, never>)
+    : keyof TObject,
+  TStrictly extends 'strictly' | 'safely' = 'strictly',
+> = Omit<TObject, TKey>
+
 export type QueryKey = readonly unknown[]
 
 export type QueryFunction<
@@ -256,6 +270,8 @@ export interface QueryObserverOptions<
   /**
    * Set this to `true` to keep the previous `data` when fetching based on a new query key.
    * Defaults to `false`.
+   *
+   * @deprecated keepPreviousData will be removed in the next major version.
    */
   keepPreviousData?: boolean
   /**
@@ -406,6 +422,9 @@ export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
   refetch: <TPageData>(
     options?: RefetchOptions & RefetchQueryFilters<TPageData>,
   ) => Promise<QueryObserverResult<TData, TError>>
+  /**
+   * @deprecated This method will be removed in the next major version. Use `QueryClient.removeQueries` instead.
+   */
   remove: () => void
   status: QueryStatus
   fetchStatus: FetchStatus
@@ -646,6 +665,7 @@ export interface MutationObserverBaseResult<
   isError: boolean
   isIdle: boolean
   isLoading: boolean
+  isPending: boolean
   isSuccess: boolean
   mutate: MutateFunction<TData, TError, TVariables, TContext>
   reset: () => void
diff --git a/packages/react-query/src/__tests__/queryOptions.types.test.tsx b/packages/react-query/src/__tests__/queryOptions.types.test.tsx
new file mode 100644
index 0000000000..9a9f485e1d
--- /dev/null
+++ b/packages/react-query/src/__tests__/queryOptions.types.test.tsx
@@ -0,0 +1,270 @@
+import { expectTypeOf } from 'expect-type'
+import {
+  QueryCache,
+  type UseQueryResult,
+  useQueries,
+  useQuery,
+  useQueryClient,
+} from '@tanstack/react-query'
+import { queryOptions } from '..'
+import { useSuspenseQueries, useSuspenseQuery } from '..'
+import { type UseSuspenseQueryResult } from '../useSuspenseQuery'
+import { doNotExecute } from './utils'
+import type { DefinedUseQueryResult } from '@tanstack/react-query'
+
+const queryKey = ['key'] as const
+const queryFn = () => Promise.resolve({ field: 'success' })
+
+describe('queryOptions', () => {
+  it('should be used with useQuery', () => {
+    doNotExecute(() => {
+      const dd = useQuery(
+        queryOptions({
+          queryKey,
+          queryFn,
+        }),
+      )
+      expectTypeOf(dd).toEqualTypeOf<UseQueryResult<{ field: string }>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+            select: (data) => data.field,
+          }),
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+        }),
+      ).toEqualTypeOf<DefinedUseQueryResult<{ field: string }>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<DefinedUseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: undefined,
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: () => undefined,
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+            select: (data) => data.field,
+          }),
+          refetchInterval: 1000,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+    })
+  })
+  it('should be used with useSuspenseQuery', () => {
+    doNotExecute(() => {
+      expectTypeOf(
+        useSuspenseQuery(
+          queryOptions({
+            queryKey,
+            queryFn,
+          }),
+        ),
+      ).toEqualTypeOf<UseSuspenseQueryResult<{ field: string }>>()
+
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<{ field: string }>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: undefined,
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+            select: (data) => data.field,
+          }),
+          refetchInterval: 1000,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+  it('should be used with useQueries', () => {
+    doNotExecute(() => {
+      const [query1, query2, query3, query4] = useQueries({
+        queries: [
+          queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          queryOptions({
+            queryKey,
+            queryFn,
+            initialData: { field: 'success' },
+          }),
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: { field: 'success' },
+          },
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: undefined,
+          },
+        ],
+      })
+      expectTypeOf(query1).toEqualTypeOf<UseQueryResult<{ field: string }>>()
+      expectTypeOf(query2).toEqualTypeOf<
+        DefinedUseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query3).toEqualTypeOf<
+        DefinedUseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query4).toEqualTypeOf<UseQueryResult<{ field: string }>>()
+    })
+  })
+  it('should be used with useSuspenseQueries', () => {
+    doNotExecute(() => {
+      const [query1, query2, query3, query4, query5] = useSuspenseQueries({
+        queries: [
+          queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          queryOptions({
+            queryKey,
+            queryFn,
+            initialData: { field: 'success' },
+          }),
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: { field: 'success' },
+          },
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: undefined,
+          },
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+              select: (data) => data.field,
+            }),
+          },
+        ],
+      })
+      expectTypeOf(query1).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query2).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query3).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query4).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query5).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+  it('should be used with useQueryClient', () => {
+    doNotExecute(async () => {
+      const queryClient = useQueryClient()
+      queryClient.invalidateQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.resetQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.removeQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.cancelQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.prefetchQuery(queryOptions({ queryKey, queryFn }))
+      queryClient.refetchQueries(queryOptions({ queryKey, queryFn }))
+      expectTypeOf(
+        await queryClient.fetchQuery(queryOptions({ queryKey, queryFn })),
+      ).toEqualTypeOf<{ field: string }>()
+    })
+  })
+  it('should be used with queryCache', () => {
+    doNotExecute(() => {
+      const queryCache = new QueryCache()
+      queryCache.find({ queryKey: [] })
+      queryCache.find(queryOptions({ queryKey, queryFn }))
+      queryCache.find(queryKey)
+    })
+  })
+})
diff --git a/packages/react-query/src/__tests__/useQuery.types.test.tsx b/packages/react-query/src/__tests__/useQuery.types.test.tsx
index d049b53e00..5e471f8751 100644
--- a/packages/react-query/src/__tests__/useQuery.types.test.tsx
+++ b/packages/react-query/src/__tests__/useQuery.types.test.tsx
@@ -1,4 +1,5 @@
 import { useQuery } from '../useQuery'
+import { doNotExecute } from './utils'
 
 export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
   T,
@@ -8,8 +9,6 @@ export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
 
 export type Expect<T extends true> = T
 
-const doNotExecute = (_func: () => void) => true
-
 describe('initialData', () => {
   describe('Config object overload', () => {
     it('TData should always be defined when initialData is provided as an object', () => {
diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
new file mode 100644
index 0000000000..741927ca9c
--- /dev/null
+++ b/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
@@ -0,0 +1,102 @@
+import { expectTypeOf } from 'expect-type'
+import { queryOptions } from '..'
+import { useSuspenseQueries } from '..'
+import { doNotExecute } from './utils'
+import type { UseSuspenseQueryResult } from '../useSuspenseQuery'
+
+export const queryKey = ['key'] as const
+const sleep = (ms: number) =>
+  new Promise<undefined>((resolve) => setTimeout(() => resolve(undefined), ms))
+export const queryFn = () => sleep(10).then(() => ({ text: 'response' }))
+export const select = (data: Awaited<ReturnType<typeof queryFn>>) => data.text
+
+describe('useSuspenseQueries', () => {
+  it('type check', () => {
+    doNotExecute(() => {
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 1] as const,
+            queryFn,
+            // @ts-expect-error no suspense
+            suspense: false,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 2] as const,
+            queryFn,
+            select,
+            // @ts-expect-error no suspense
+            suspense: true,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 3] as const,
+            queryFn,
+            // @ts-expect-error no enabled
+            enabled: true,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 4] as const,
+            queryFn,
+            // @ts-expect-error no enabled
+            enabled: true,
+            select,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 4] as const,
+            queryFn,
+            // @ts-expect-error no networkMode
+            networkMode: 'always',
+            select,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          queryOptions({
+            queryKey: [...queryKey, 4] as const,
+            queryFn: () => Promise.resolve({ field: 'success' }),
+            select: (data) => data.field,
+          }),
+        ] as const,
+      })
+      // @ts-expect-error if no items
+      useSuspenseQueries({})
+      // @ts-expect-error if no items
+      useSuspenseQueries()
+
+      const [query1, query2, query3] = useSuspenseQueries({
+        queries: [
+          { queryKey: [...queryKey, 5] as const, queryFn },
+          { queryKey: [...queryKey, 6] as const, queryFn, select },
+          queryOptions({
+            queryKey: [...queryKey, 4] as const,
+            queryFn: () => Promise.resolve({ field: 'success' }),
+            select: (data) => data.field,
+          }),
+        ] as const,
+      })
+
+      expectTypeOf(query1).toEqualTypeOf<
+        UseSuspenseQueryResult<{ text: string }>
+      >()
+      expectTypeOf(query2).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(query3).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+})
diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
new file mode 100644
index 0000000000..59889d27d2
--- /dev/null
+++ b/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
@@ -0,0 +1,81 @@
+import { expectTypeOf } from 'expect-type'
+import {
+  type UseSuspenseQueryResult,
+  useSuspenseQuery,
+} from '../useSuspenseQuery'
+import { queryOptions } from '..'
+import { doNotExecute } from './utils'
+
+const queryKey = ['key'] as const
+const sleep = (ms: number) =>
+  new Promise<undefined>((resolve) => setTimeout(() => resolve(undefined), ms))
+const queryFn = () => sleep(10).then(() => ({ text: 'response' }))
+
+describe('useSuspenseQuery', () => {
+  it('type check', () => {
+    doNotExecute(() => {
+      //@ts-expect-error no arg
+      useSuspenseQuery()
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no suspense
+        suspense: boolean,
+      })
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no useErrorBoundary
+        useErrorBoundary: boolean,
+      })
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no enabled
+        enabled: boolean,
+      })
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no placeholderData
+        placeholderData: 'placeholder',
+      })
+      // eslint-disable-next-line @typescript-eslint/no-unused-expressions
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no isPlaceholderData
+      }).isPlaceholderData
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no networkMode
+        networkMode: 'always',
+      })
+
+      expectTypeOf(useSuspenseQuery({ queryKey, queryFn })).toEqualTypeOf<
+        UseSuspenseQueryResult<{ text: string }>
+      >()
+      expectTypeOf(
+        useSuspenseQuery({
+          queryKey,
+          queryFn,
+          select: (data) => data.text,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      const options = queryOptions({
+        queryKey,
+        queryFn,
+      })
+      expectTypeOf(useSuspenseQuery(options)).toEqualTypeOf<
+        UseSuspenseQueryResult<{ text: string }>
+      >()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...options,
+          select: (data) => data.text,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+})
diff --git a/packages/react-query/src/__tests__/utils.tsx b/packages/react-query/src/__tests__/utils.tsx
index 264c21269c..06d6608db1 100644
--- a/packages/react-query/src/__tests__/utils.tsx
+++ b/packages/react-query/src/__tests__/utils.tsx
@@ -4,6 +4,8 @@ import * as utils from '@tanstack/query-core'
 import { QueryClient, QueryClientProvider } from '..'
 import type { ContextOptions, MutationOptions, QueryClientConfig } from '..'
 
+export const doNotExecute = (_func: () => void) => true
+
 export function renderWithClient(
   client: QueryClient,
   ui: React.ReactElement,
diff --git a/packages/react-query/src/index.ts b/packages/react-query/src/index.ts
index b13a86a661..f906c1402a 100644
--- a/packages/react-query/src/index.ts
+++ b/packages/react-query/src/index.ts
@@ -11,6 +11,8 @@ export * from './types'
 export { useQueries } from './useQueries'
 export type { QueriesResults, QueriesOptions } from './useQueries'
 export { useQuery } from './useQuery'
+export { useSuspenseQuery } from './useSuspenseQuery'
+export { useSuspenseQueries } from './useSuspenseQueries'
 export {
   defaultContext,
   QueryClientProvider,
@@ -29,3 +31,4 @@ export { useIsMutating } from './useIsMutating'
 export { useMutation } from './useMutation'
 export { useInfiniteQuery } from './useInfiniteQuery'
 export { useIsRestoring, IsRestoringProvider } from './isRestoring'
+export { queryOptions } from './queryOptions'
diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts
new file mode 100644
index 0000000000..730eafb2a7
--- /dev/null
+++ b/packages/react-query/src/queryOptions.ts
@@ -0,0 +1,86 @@
+import type {
+  InitialDataFunction,
+  NonUndefinedGuard,
+  OmitKeyof,
+  QueryKey,
+  WithRequired,
+} from '@tanstack/query-core'
+import type { UseQueryOptions } from './types'
+
+type UseQueryOptionsOmitted<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = OmitKeyof<
+  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'onSuccess' | 'onError' | 'onSettled' | 'refetchInterval'
+>
+
+type ProhibitedQueryOptionsKeyInV5 = keyof Pick<
+  UseQueryOptionsOmitted,
+  'useErrorBoundary' | 'suspense' | 'getNextPageParam' | 'getPreviousPageParam'
+>
+
+export type UndefinedInitialDataOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = UseQueryOptionsOmitted<TQueryFnData, TError, TData, TQueryKey> & {
+  initialData?:
+    | undefined
+    | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
+    | NonUndefinedGuard<TQueryFnData>
+}
+
+export type DefinedInitialDataOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = UseQueryOptionsOmitted<TQueryFnData, TError, TData, TQueryKey> & {
+  initialData:
+    | NonUndefinedGuard<TQueryFnData>
+    | (() => NonUndefinedGuard<TQueryFnData>)
+}
+
+export function queryOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: WithRequired<
+    OmitKeyof<
+      DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+      ProhibitedQueryOptionsKeyInV5
+    >,
+    'queryKey'
+  >,
+): WithRequired<
+  DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'queryKey'
+>
+
+export function queryOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: WithRequired<
+    OmitKeyof<
+      UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+      ProhibitedQueryOptionsKeyInV5
+    >,
+    'queryKey'
+  >,
+): WithRequired<
+  UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'queryKey'
+>
+
+export function queryOptions(options: unknown) {
+  return options
+}
diff --git a/packages/react-query/src/useQueries.ts b/packages/react-query/src/useQueries.ts
index f867627c85..0b35d3ba76 100644
--- a/packages/react-query/src/useQueries.ts
+++ b/packages/react-query/src/useQueries.ts
@@ -17,8 +17,12 @@ import {
   shouldSuspend,
   willFetch,
 } from './suspense'
-import type { QueryFunction, QueryKey } from '@tanstack/query-core'
-import type { UseQueryOptions, UseQueryResult } from './types'
+import type { OmitKeyof, QueryFunction, QueryKey } from '@tanstack/query-core'
+import type {
+  DefinedUseQueryResult,
+  UseQueryOptions,
+  UseQueryResult,
+} from './types'
 
 // This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.
 // - `context` is omitted as it is passed as a root-level option to `useQueries` instead.
@@ -27,7 +31,10 @@ type UseQueryOptionsForUseQueries<
   TError = unknown,
   TData = TQueryFnData,
   TQueryKey extends QueryKey = QueryKey,
-> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'context'>
+> = OmitKeyof<
+  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'context'
+>
 
 // Avoid TS depth-limit error in case of large array literal
 type MAXIMUM_DEPTH = 20
@@ -67,29 +74,46 @@ type GetOptions<T> =
     : // Fallback
       UseQueryOptionsForUseQueries
 
-type GetResults<T> =
+// A defined initialData setting should return a DefinedUseQueryResult rather than UseQueryResult
+type GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {
+  initialData?: infer TInitialData
+}
+  ? unknown extends TInitialData
+    ? UseQueryResult<TData, TError>
+    : TInitialData extends TData
+    ? DefinedUseQueryResult<TData, TError>
+    : TInitialData extends () => infer TInitialDataResult
+    ? unknown extends TInitialDataResult
+      ? UseQueryResult<TData, TError>
+      : TInitialDataResult extends TData
+      ? DefinedUseQueryResult<TData, TError>
+      : UseQueryResult<TData, TError>
+    : UseQueryResult<TData, TError>
+  : UseQueryResult<TData, TError>
+
+type GetUseQueryResult<T> =
   // Part 1: responsible for mapping explicit type parameter to function result, if object
   T extends { queryFnData: any; error?: infer TError; data: infer TData }
-    ? UseQueryResult<TData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
     : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
-    ? UseQueryResult<TQueryFnData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>
     : T extends { data: infer TData; error?: infer TError }
-    ? UseQueryResult<TData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
     : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
     T extends [any, infer TError, infer TData]
-    ? UseQueryResult<TData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
     : T extends [infer TQueryFnData, infer TError]
-    ? UseQueryResult<TQueryFnData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>
     : T extends [infer TQueryFnData]
-    ? UseQueryResult<TQueryFnData>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>
     : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
     T extends {
         queryFn?: QueryFunction<unknown, any>
         select: (data: any) => infer TData
       }
-    ? UseQueryResult<TData>
+    ? GetDefinedOrUndefinedQueryResult<T, TData>
     : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }
-    ? UseQueryResult<TQueryFnData>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>
     : // Fallback
       UseQueryResult
 
@@ -98,16 +122,16 @@ type GetResults<T> =
  */
 export type QueriesOptions<
   T extends any[],
-  Result extends any[] = [],
-  Depth extends ReadonlyArray<number> = [],
-> = Depth['length'] extends MAXIMUM_DEPTH
+  TResult extends any[] = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
   ? UseQueryOptionsForUseQueries[]
   : T extends []
   ? []
   : T extends [infer Head]
-  ? [...Result, GetOptions<Head>]
+  ? [...TResult, GetOptions<Head>]
   : T extends [infer Head, ...infer Tail]
-  ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>
+  ? QueriesOptions<[...Tail], [...TResult, GetOptions<Head>], [...TDepth, 1]>
   : unknown[] extends T
   ? T
   : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
@@ -127,16 +151,20 @@ export type QueriesOptions<
  */
 export type QueriesResults<
   T extends any[],
-  Result extends any[] = [],
-  Depth extends ReadonlyArray<number> = [],
-> = Depth['length'] extends MAXIMUM_DEPTH
+  TResults extends any[] = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
   ? UseQueryResult[]
   : T extends []
   ? []
   : T extends [infer Head]
-  ? [...Result, GetResults<Head>]
+  ? [...TResults, GetUseQueryResult<Head>]
   : T extends [infer Head, ...infer Tail]
-  ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>
+  ? QueriesResults<
+      [...Tail],
+      [...TResults, GetUseQueryResult<Head>],
+      [...TDepth, 1]
+    >
   : T extends UseQueryOptionsForUseQueries<
       infer TQueryFnData,
       infer TError,
diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts
index c6ec05abca..c9426dd8dc 100644
--- a/packages/react-query/src/useQuery.ts
+++ b/packages/react-query/src/useQuery.ts
@@ -1,7 +1,17 @@
 'use client'
 import { QueryObserver, parseQueryArgs } from '@tanstack/query-core'
 import { useBaseQuery } from './useBaseQuery'
-import type { QueryFunction, QueryKey } from '@tanstack/query-core'
+import type {
+  DefinedInitialDataOptions,
+  UndefinedInitialDataOptions,
+} from './queryOptions'
+import type {
+  InitialDataFunction,
+  NonUndefinedGuard,
+  OmitKeyof,
+  QueryFunction,
+  QueryKey,
+} from '@tanstack/query-core'
 import type {
   DefinedUseQueryResult,
   UseQueryOptions,
@@ -9,31 +19,53 @@ import type {
 } from './types'
 
 // HOOK
-
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
   TQueryKey extends QueryKey = QueryKey,
 >(
-  options: Omit<
+  options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+): DefinedUseQueryResult<TData, TError>
+export function useQuery<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'initialData'
-  > & { initialData?: () => undefined },
+  > & {
+    initialData:
+      | NonUndefinedGuard<TQueryFnData>
+      | (() => NonUndefinedGuard<TQueryFnData>)
+  },
+): DefinedUseQueryResult<TData, TError>
+export function useQuery<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
 ): UseQueryResult<TData, TError>
-
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
   TQueryKey extends QueryKey = QueryKey,
 >(
-  options: Omit<
+  options: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'initialData'
-  > & { initialData: TQueryFnData | (() => TQueryFnData) },
-): DefinedUseQueryResult<TData, TError>
-
+  > & {
+    initialData?:
+      | undefined
+      | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
+      | NonUndefinedGuard<TQueryFnData>
+  },
+): UseQueryResult<TData, TError>
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -43,6 +75,7 @@ export function useQuery<
   options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
 ): UseQueryResult<TData, TError>
 
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -50,12 +83,12 @@ export function useQuery<
   TQueryKey extends QueryKey = QueryKey,
 >(
   queryKey: TQueryKey,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'initialData'
-  > & { initialData?: () => undefined },
+  >,
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -63,12 +96,12 @@ export function useQuery<
   TQueryKey extends QueryKey = QueryKey,
 >(
   queryKey: TQueryKey,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'initialData'
   > & { initialData: TQueryFnData | (() => TQueryFnData) },
 ): DefinedUseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -76,12 +109,12 @@ export function useQuery<
   TQueryKey extends QueryKey = QueryKey,
 >(
   queryKey: TQueryKey,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey'
   >,
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -90,12 +123,12 @@ export function useQuery<
 >(
   queryKey: TQueryKey,
   queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'queryFn' | 'initialData'
   > & { initialData?: () => undefined },
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -104,12 +137,12 @@ export function useQuery<
 >(
   queryKey: TQueryKey,
   queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'queryFn' | 'initialData'
   > & { initialData: TQueryFnData | (() => TQueryFnData) },
 ): DefinedUseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -118,12 +151,12 @@ export function useQuery<
 >(
   queryKey: TQueryKey,
   queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'queryFn'
   >,
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData,
   TError,
diff --git a/packages/react-query/src/useSuspenseQueries.ts b/packages/react-query/src/useSuspenseQueries.ts
new file mode 100644
index 0000000000..7b70ea848d
--- /dev/null
+++ b/packages/react-query/src/useSuspenseQueries.ts
@@ -0,0 +1,162 @@
+import { useQueries } from './useQueries'
+import type { UseQueryOptions } from './types'
+import type { NetworkMode, QueryFunction } from '@tanstack/query-core'
+import type {
+  UseSuspenseQueryOptions,
+  UseSuspenseQueryResult,
+} from './useSuspenseQuery'
+
+// Avoid TS depth-limit error in case of large array literal
+type MAXIMUM_DEPTH = 20
+
+type GetSuspenseOptions<T> =
+  // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
+  T extends {
+    queryFnData: infer TQueryFnData
+    error?: infer TError
+    data: infer TData
+  }
+    ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
+    : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
+    ? UseSuspenseQueryOptions<TQueryFnData, TError>
+    : T extends { data: infer TData; error?: infer TError }
+    ? UseSuspenseQueryOptions<unknown, TError, TData>
+    : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
+    T extends [infer TQueryFnData, infer TError, infer TData]
+    ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
+    : T extends [infer TQueryFnData, infer TError]
+    ? UseSuspenseQueryOptions<TQueryFnData, TError>
+    : T extends [infer TQueryFnData]
+    ? UseSuspenseQueryOptions<TQueryFnData>
+    : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
+    T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
+        select?: (data: any) => infer TData
+      }
+    ? UseSuspenseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>
+    : T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
+      }
+    ? UseSuspenseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>
+    : // Fallback
+      UseSuspenseQueryOptions
+
+type GetSuspenseResults<T> =
+  // Part 1: responsible for mapping explicit type parameter to function result, if object
+  T extends { queryFnData: any; error?: infer TError; data: infer TData }
+    ? UseSuspenseQueryResult<TData, TError>
+    : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
+    ? UseSuspenseQueryResult<TQueryFnData, TError>
+    : T extends { data: infer TData; error?: infer TError }
+    ? UseSuspenseQueryResult<TData, TError>
+    : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
+    T extends [any, infer TError, infer TData]
+    ? UseSuspenseQueryResult<TData, TError>
+    : T extends [infer TQueryFnData, infer TError]
+    ? UseSuspenseQueryResult<TQueryFnData, TError>
+    : T extends [infer TQueryFnData]
+    ? UseSuspenseQueryResult<TQueryFnData>
+    : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
+    T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, any>
+        select?: (data: any) => infer TData
+      }
+    ? UseSuspenseQueryResult<unknown extends TData ? TQueryFnData : TData>
+    : T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, any>
+      }
+    ? UseSuspenseQueryResult<TQueryFnData>
+    : // Fallback
+      UseSuspenseQueryResult
+
+/**
+ * SuspenseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
+ */
+export type SuspenseQueriesOptions<
+  T extends Array<any>,
+  TResult extends Array<any> = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
+  ? Array<UseSuspenseQueryOptions>
+  : T extends []
+  ? []
+  : T extends [infer Head]
+  ? [...TResult, GetSuspenseOptions<Head>]
+  : T extends [infer Head, ...infer Tail]
+  ? SuspenseQueriesOptions<
+      [...Tail],
+      [...TResult, GetSuspenseOptions<Head>],
+      [...TDepth, 1]
+    >
+  : Array<unknown> extends T
+  ? T
+  : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
+  // use this to infer the param types in the case of Array.map() argument
+  T extends Array<
+      UseSuspenseQueryOptions<
+        infer TQueryFnData,
+        infer TError,
+        infer TData,
+        infer TQueryKey
+      >
+    >
+  ? Array<UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>>
+  : // Fallback
+    Array<UseSuspenseQueryOptions>
+
+/**
+ * SuspenseQueriesResults reducer recursively maps type param to results
+ */
+export type SuspenseQueriesResults<
+  T extends Array<any>,
+  TResult extends Array<any> = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
+  ? Array<UseSuspenseQueryResult>
+  : T extends []
+  ? []
+  : T extends [infer Head]
+  ? [...TResult, GetSuspenseResults<Head>]
+  : T extends [infer Head, ...infer Tail]
+  ? SuspenseQueriesResults<
+      [...Tail],
+      [...TResult, GetSuspenseResults<Head>],
+      [...TDepth, 1]
+    >
+  : T extends Array<
+      UseSuspenseQueryOptions<
+        infer TQueryFnData,
+        infer TError,
+        infer TData,
+        any
+      >
+    >
+  ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
+    Array<
+      UseSuspenseQueryResult<
+        unknown extends TData ? TQueryFnData : TData,
+        TError
+      >
+    >
+  : // Fallback
+    Array<UseSuspenseQueryResult>
+
+export function useSuspenseQueries<T extends any[]>({
+  queries,
+  context,
+}: {
+  queries: readonly [...SuspenseQueriesOptions<T>]
+  context?: UseQueryOptions['context']
+}): SuspenseQueriesResults<T> {
+  return useQueries({
+    queries: queries.map((query) => ({
+      ...query,
+      enabled: true,
+      useErrorBoundary: true,
+      suspense: true,
+      placeholderData: undefined,
+      networkMode: 'always' as NetworkMode,
+    })),
+    context,
+  }) as SuspenseQueriesResults<T>
+}
diff --git a/packages/react-query/src/useSuspenseQuery.ts b/packages/react-query/src/useSuspenseQuery.ts
new file mode 100644
index 0000000000..51ef5fe0e5
--- /dev/null
+++ b/packages/react-query/src/useSuspenseQuery.ts
@@ -0,0 +1,58 @@
+import { QueryObserver } from '@tanstack/query-core'
+import { useBaseQuery } from './useBaseQuery'
+import type {
+  DefinedQueryObserverResult,
+  OmitKeyof,
+  QueryKey,
+} from '@tanstack/query-core'
+import type { UseQueryOptions } from './types'
+
+type DistributiveOmit<TObject, TKey extends keyof TObject> = TObject extends any
+  ? Omit<TObject, TKey>
+  : never
+
+export type UseSuspenseQueryResult<
+  TData = unknown,
+  TError = unknown,
+> = DistributiveOmit<
+  DefinedQueryObserverResult<TData, TError>,
+  'isPlaceholderData'
+>
+
+export type UseSuspenseQueryOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = OmitKeyof<
+  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+  | 'enabled'
+  | 'useErrorBoundary'
+  | 'suspense'
+  | 'placeholderData'
+  | 'networkMode'
+  | 'onSuccess'
+  | 'onError'
+  | 'onSettled'
+  | 'getPreviousPageParam'
+  | 'getNextPageParam'
+>
+
+export function useSuspenseQuery<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(options: UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>) {
+  return useBaseQuery(
+    {
+      ...options,
+      enabled: true,
+      useErrorBoundary: true,
+      suspense: true,
+      placeholderData: undefined,
+      networkMode: 'always',
+    },
+    QueryObserver,
+  ) as UseSuspenseQueryResult<TData, TError>
+}
diff --git a/packages/vue-query/src/queryCache.ts b/packages/vue-query/src/queryCache.ts
index 1ecfa5190f..87fc76eb04 100644
--- a/packages/vue-query/src/queryCache.ts
+++ b/packages/vue-query/src/queryCache.ts
@@ -5,12 +5,22 @@ import type { MaybeRefDeep } from './types'
 
 export class QueryCache extends QC {
   find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
-    arg1: MaybeRefDeep<QueryKey>,
+    filters: MaybeRefDeep<QueryFilters>,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    queryKey: MaybeRefDeep<QueryKey>,
+    filters?: MaybeRefDeep<QueryFilters>,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    arg1: MaybeRefDeep<QueryKey> | MaybeRefDeep<QueryFilters>,
     arg2?: MaybeRefDeep<QueryFilters>,
   ): Query<TQueryFnData, TError, TData> | undefined {
-    const arg1Unreffed = cloneDeepUnref(arg1)
+    const arg1Unreffed = cloneDeepUnref(arg1) as QueryKey | QueryFilters
     const arg2Unreffed = cloneDeepUnref(arg2) as QueryFilters
-    return super.find(arg1Unreffed, arg2Unreffed)
+    if (isQueryKey(arg1Unreffed)) {
+      return super.find(arg1Unreffed, arg2Unreffed)
+    }
+    return super.find(arg1Unreffed)
   }
 
   findAll(
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 712274c4a8..0c02d0789e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -124,6 +124,9 @@ importers:
       eslint-plugin-react-hooks:
         specifier: ^4.6.0
         version: 4.6.0(eslint@8.34.0)
+      expect-type:
+        specifier: ^1.2.1
+        version: 1.2.1
       git-log-parser:
         specifier: ^1.2.0
         version: 1.2.0
@@ -678,7 +681,7 @@ importers:
         version: 1.1.2(eslint-plugin-import@2.27.5)
       eslint-plugin-flowtype:
         specifier: ^8.0.3
-        version: 8.0.3(@babel/plugin-syntax-flow@7.18.6)(@babel/plugin-transform-react-jsx@7.19.0)(eslint@8.34.0)
+        version: 8.0.3(@babel/plugin-syntax-flow@7.27.1)(@babel/plugin-transform-react-jsx@7.19.0)(eslint@8.34.0)
       eslint-plugin-prettier:
         specifier: ^4.0.0
         version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.34.0)(prettier@2.7.1)
@@ -1276,7 +1279,7 @@ importers:
         version: link:../query-core
       react-native:
         specifier: '*'
-        version: 0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@18.2.0)
+        version: 0.64.3(@babel/core@7.27.1)(@babel/preset-env@7.18.6)(react@18.2.0)
       use-sync-external-store:
         specifier: ^1.2.0
         version: 1.2.0(react@18.2.0)
@@ -1380,14 +1383,14 @@ importers:
         specifier: npm:react-dom@^17.0.2
         version: /react-dom@17.0.2(react@18.2.0)
 
-  packages/react-query/build/codemods:
+  packages/react-query/build/query-codemods:
     devDependencies:
       '@types/jscodeshift':
-        specifier: 0.11.6
-        version: 0.11.6
+        specifier: 17.3.0
+        version: 17.3.0
       jscodeshift:
-        specifier: 0.15.0
-        version: 0.15.0(@babel/preset-env@7.18.6)
+        specifier: 17.3.0
+        version: 17.3.0(@babel/preset-env@7.18.6)
 
   packages/solid-query:
     dependencies:
@@ -1400,7 +1403,7 @@ importers:
     devDependencies:
       solid-jest:
         specifier: ^0.2.0
-        version: 0.2.0(@babel/core@7.19.1)(babel-preset-solid@1.5.4)
+        version: 0.2.0(@babel/core@7.27.1)(babel-preset-solid@1.5.4)
 
   packages/svelte-query:
     dependencies:
@@ -1615,10 +1618,22 @@ packages:
     dependencies:
       '@babel/highlight': 7.18.6
 
+  /@babel/code-frame@7.27.1:
+    resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/helper-validator-identifier': 7.27.1
+      js-tokens: 4.0.0
+      picocolors: 1.1.1
+
   /@babel/compat-data@7.19.1:
     resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/compat-data@7.27.2:
+    resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/core@7.19.1:
     resolution: {integrity: sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==}
     engines: {node: '>=6.9.0'}
@@ -1641,6 +1656,28 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/core@7.27.1:
+    resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@ampproject/remapping': 2.2.0
+      '@babel/code-frame': 7.27.1
+      '@babel/generator': 7.27.1
+      '@babel/helper-compilation-targets': 7.27.2
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
+      '@babel/helpers': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/template': 7.27.2
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+      convert-source-map: 2.0.0
+      debug: 4.3.4
+      gensync: 1.0.0-beta.2
+      json5: 2.2.3
+      semver: 6.3.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/core@7.9.0:
     resolution: {integrity: sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==}
     engines: {node: '>=6.9.0'}
@@ -1687,12 +1724,28 @@ packages:
       '@jridgewell/gen-mapping': 0.3.2
       jsesc: 2.5.2
 
+  /@babel/generator@7.27.1:
+    resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/parser': 7.27.2
+      '@babel/types': 7.27.1
+      '@jridgewell/gen-mapping': 0.3.8
+      '@jridgewell/trace-mapping': 0.3.25
+      jsesc: 3.1.0
+
   /@babel/helper-annotate-as-pure@7.18.6:
     resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-annotate-as-pure@7.27.1:
+    resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/types': 7.27.1
+
   /@babel/helper-builder-binary-assignment-operator-visitor@7.18.6:
     resolution: {integrity: sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==}
     engines: {node: '>=6.9.0'}
@@ -1712,6 +1765,18 @@ packages:
       browserslist: 4.21.4
       semver: 6.3.0
 
+  /@babel/helper-compilation-targets@7.19.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-validator-option': 7.18.6
+      browserslist: 4.21.4
+      semver: 6.3.0
+
   /@babel/helper-compilation-targets@7.19.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==}
     engines: {node: '>=6.9.0'}
@@ -1725,6 +1790,16 @@ packages:
       semver: 6.3.0
     dev: true
 
+  /@babel/helper-compilation-targets@7.27.2:
+    resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/compat-data': 7.27.2
+      '@babel/helper-validator-option': 7.27.1
+      browserslist: 4.24.5
+      lru-cache: 5.1.1
+      semver: 6.3.1
+
   /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
     engines: {node: '>=6.9.0'}
@@ -1742,6 +1817,24 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-member-expression-to-functions': 7.18.6
+      '@babel/helper-optimise-call-expression': 7.18.6
+      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-split-export-declaration': 7.18.6
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
     engines: {node: '>=6.9.0'}
@@ -1778,6 +1871,23 @@ packages:
       - supports-color
     dev: false
 
+  /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-member-expression-to-functions': 7.18.9
+      '@babel/helper-optimise-call-expression': 7.18.6
+      '@babel/helper-replace-supers': 7.19.1
+      '@babel/helper-split-export-declaration': 7.18.6
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.9.0):
     resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==}
     engines: {node: '>=6.9.0'}
@@ -1796,6 +1906,23 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.27.1
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+      '@babel/traverse': 7.27.1
+      semver: 6.3.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
     engines: {node: '>=6.9.0'}
@@ -1806,6 +1933,16 @@ packages:
       '@babel/helper-annotate-as-pure': 7.18.6
       regexpu-core: 5.1.0
 
+  /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      regexpu-core: 5.1.0
+
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
     engines: {node: '>=6.9.0'}
@@ -1834,6 +1971,24 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-define-polyfill-provider@0.3.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==}
+    peerDependencies:
+      '@babel/core': ^7.4.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/traverse': 7.19.1
+      debug: 4.3.4
+      lodash.debounce: 4.0.8
+      resolve: 1.22.1
+      semver: 6.3.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/helper-environment-visitor@7.18.9:
     resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
     engines: {node: '>=6.9.0'}
@@ -1869,6 +2024,15 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-member-expression-to-functions@7.27.1:
+    resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-module-imports@7.16.0:
     resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
     engines: {node: '>=6.9.0'}
@@ -1882,6 +2046,15 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-module-imports@7.27.1:
+    resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-module-transforms@7.19.0:
     resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==}
     engines: {node: '>=6.9.0'}
@@ -1897,12 +2070,45 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-module-transforms@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-validator-identifier': 7.27.1
+      '@babel/traverse': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
+  /@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-validator-identifier': 7.27.1
+      '@babel/traverse': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-optimise-call-expression@7.18.6:
     resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-optimise-call-expression@7.27.1:
+    resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/types': 7.27.1
+
   /@babel/helper-plugin-utils@7.19.0:
     resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==}
     engines: {node: '>=6.9.0'}
@@ -1911,6 +2117,10 @@ packages:
     resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/helper-plugin-utils@7.27.1:
+    resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/helper-remap-async-to-generator@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==}
     engines: {node: '>=6.9.0'}
@@ -1925,6 +2135,21 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-remap-async-to-generator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-wrap-function': 7.18.6
+      '@babel/types': 7.19.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/helper-remap-async-to-generator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==}
     engines: {node: '>=6.9.0'}
@@ -1964,6 +2189,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/traverse': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-simple-access@7.18.6:
     resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
     engines: {node: '>=6.9.0'}
@@ -1976,6 +2214,15 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-skip-transparent-expression-wrappers@7.27.1:
+    resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-split-export-declaration@7.18.6:
     resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
     engines: {node: '>=6.9.0'}
@@ -1986,14 +2233,26 @@ packages:
     resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/helper-string-parser@7.27.1:
+    resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/helper-validator-identifier@7.18.6:
     resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/helper-validator-identifier@7.27.1:
+    resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/helper-validator-option@7.18.6:
     resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/helper-validator-option@7.27.1:
+    resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/helper-wrap-function@7.18.6:
     resolution: {integrity: sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==}
     engines: {node: '>=6.9.0'}
@@ -2015,6 +2274,13 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helpers@7.27.1:
+    resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/template': 7.27.2
+      '@babel/types': 7.27.1
+
   /@babel/highlight@7.18.6:
     resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
     engines: {node: '>=6.9.0'}
@@ -2030,6 +2296,13 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/parser@7.27.2:
+    resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==}
+    engines: {node: '>=6.0.0'}
+    hasBin: true
+    dependencies:
+      '@babel/types': 7.27.1
+
   /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
     engines: {node: '>=6.9.0'}
@@ -2039,6 +2312,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==}
     engines: {node: '>=6.9.0'}
@@ -2050,6 +2333,18 @@ packages:
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
 
+  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.13.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==}
     engines: {node: '>=6.9.0'}
@@ -2064,6 +2359,21 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==}
     engines: {node: '>=6.9.0'}
@@ -2103,6 +2413,18 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.20.2
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
     engines: {node: '>=6.9.0'}
@@ -2129,6 +2451,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.12.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-decorators@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-gAdhsjaYmiZVxx5vTMiRfj31nB7LhwBJFMSLzeDxc7X4tKLixup0+k9ughn0RcpBrv9E3PBaXJW7jF5TCihAOg==}
     engines: {node: '>=6.9.0'}
@@ -2155,6 +2491,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
     engines: {node: '>=6.9.0'}
@@ -2177,6 +2524,17 @@ packages:
       '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.19.1)
     dev: false
 
+  /@babel/plugin-proposal-export-default-from@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-oTvzWB16T9cB4j5kX8c8DuUHo/4QtR2P9vnUNKed9xqFP8Jos/IRniz1FiIryn6luDYoltDJSYF7RCpbm2doMg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.27.1)
+    dev: false
+
   /@babel/plugin-proposal-export-namespace-from@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==}
     engines: {node: '>=6.9.0'}
@@ -2187,6 +2545,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-export-namespace-from@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-export-namespace-from@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==}
     engines: {node: '>=6.9.0'}
@@ -2208,6 +2577,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
     engines: {node: '>=6.9.0'}
@@ -2229,6 +2609,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-logical-assignment-operators@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-logical-assignment-operators@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==}
     engines: {node: '>=6.9.0'}
@@ -2250,18 +2641,28 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.19.1)
 
-  /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.9.0):
+  /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.9.0
+      '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.19.0
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.9.0)
-    dev: true
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
 
-  /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.19.1):
+  /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.9.0):
+    resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.9.0
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.9.0)
+    dev: true
+
+  /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
@@ -2271,6 +2672,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
     engines: {node: '>=6.9.0'}
@@ -2295,6 +2707,19 @@ packages:
       '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-object-rest-spread@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+
   /@babel/plugin-proposal-object-rest-spread@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==}
     engines: {node: '>=6.9.0'}
@@ -2319,6 +2744,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1)
+
   /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
     engines: {node: '>=6.9.0'}
@@ -2341,6 +2776,17 @@ packages:
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+
   /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==}
     engines: {node: '>=6.9.0'}
@@ -2365,6 +2811,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.20.2
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
     engines: {node: '>=6.9.0'}
@@ -2392,6 +2851,21 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-private-property-in-object@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
     engines: {node: '>=4'}
@@ -2402,6 +2876,17 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
+    engines: {node: '>=4'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
     engines: {node: '>=4'}
@@ -2421,6 +2906,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.9.0):
     resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
     peerDependencies:
@@ -2439,6 +2933,15 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: true
 
+  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: true
+
   /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.19.1):
     resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
     peerDependencies:
@@ -2447,6 +2950,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.1):
+    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.9.0):
     resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
     peerDependencies:
@@ -2465,6 +2976,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-decorators@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-fqyLgjcxf/1yhyZ6A+yo1u9gJ7eleFQod2lkaUsF9DQ7sbbY3Ligym3L0+I2c0WmqNKDpoD9UTb1AKP3qRMOAQ==}
     engines: {node: '>=6.9.0'}
@@ -2483,6 +3004,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
     peerDependencies:
@@ -2502,6 +3031,16 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: false
 
+  /@babel/plugin-syntax-export-default-from@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: false
+
   /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.19.1):
     resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
     peerDependencies:
@@ -2510,6 +3049,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
     peerDependencies:
@@ -2528,6 +3076,35 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.20.2
 
+  /@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: false
+
+  /@babel/plugin-syntax-flow@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
+
+  /@babel/plugin-syntax-flow@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+
   /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
     engines: {node: '>=6.9.0'}
@@ -2537,6 +3114,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
     peerDependencies:
@@ -2546,6 +3133,15 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: true
 
+  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: true
+
   /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.19.1):
     resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
     peerDependencies:
@@ -2554,6 +3150,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
     peerDependencies:
@@ -2572,6 +3177,24 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.20.2
 
+  /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+
+  /@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
     peerDependencies:
@@ -2580,6 +3203,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.9.0):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
     peerDependencies:
@@ -2597,6 +3229,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
     peerDependencies:
@@ -2614,6 +3254,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.9.0):
     resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
     peerDependencies:
@@ -2631,6 +3280,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
     peerDependencies:
@@ -2648,6 +3305,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
     peerDependencies:
@@ -2665,6 +3330,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
     peerDependencies:
@@ -2683,6 +3356,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
     engines: {node: '>=6.9.0'}
@@ -2692,6 +3375,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.9.0):
     resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
     engines: {node: '>=6.9.0'}
@@ -2711,6 +3404,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.20.2
 
+  /@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: false
+
   /@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
     engines: {node: '>=6.9.0'}
@@ -2721,6 +3424,15 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: true
 
+  /@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+
   /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
     engines: {node: '>=6.9.0'}
@@ -2730,6 +3442,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
     engines: {node: '>=6.9.0'}
@@ -2753,22 +3474,36 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.9.0):
+  /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.9.0
+      '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.20.2
-      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.9.0)
+      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.19.1):
-    resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
+  /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.9.0):
+    resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.9.0
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.9.0)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
+  /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.19.1):
+    resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
@@ -2776,6 +3511,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
     engines: {node: '>=6.9.0'}
@@ -2795,6 +3539,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-block-scoping@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-block-scoping@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==}
     engines: {node: '>=6.9.0'}
@@ -2805,6 +3558,19 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -2823,6 +3589,24 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-classes@7.18.8(@babel/core@7.27.1):
+    resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-optimise-call-expression': 7.18.6
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-split-export-declaration': 7.18.6
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -2851,6 +3635,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-computed-properties@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-computed-properties@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==}
     engines: {node: '>=6.9.0'}
@@ -2870,6 +3663,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-destructuring@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-destructuring@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==}
     engines: {node: '>=6.9.0'}
@@ -2890,6 +3692,17 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
     engines: {node: '>=6.9.0'}
@@ -2910,6 +3723,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-duplicate-keys@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-duplicate-keys@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==}
     engines: {node: '>=6.9.0'}
@@ -2930,6 +3753,16 @@ packages:
       '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.6
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
     engines: {node: '>=6.9.0'}
@@ -2951,6 +3784,27 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
       '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.19.1)
 
+  /@babel/plugin-transform-flow-strip-types@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-wE0xtA7csz+hw4fKPwxmu5jnzAsXPIO57XnRwzXP3T19jWh1BODnPGoG9xKYwvAwusP7iUktHayRFbMPGtODaQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
+    dev: false
+
+  /@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
+
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
     engines: {node: '>=6.9.0'}
@@ -2960,6 +3814,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.27.1):
+    resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
     engines: {node: '>=6.9.0'}
@@ -2981,6 +3844,17 @@ packages:
       '@babel/helper-function-name': 7.19.0
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-function-name@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-plugin-utils': 7.20.2
+
   /@babel/plugin-transform-function-name@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==}
     engines: {node: '>=6.9.0'}
@@ -3002,6 +3876,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-literals@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-literals@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==}
     engines: {node: '>=6.9.0'}
@@ -3021,6 +3904,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
     engines: {node: '>=6.9.0'}
@@ -3044,6 +3936,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-amd@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+      babel-plugin-dynamic-import-node: 2.3.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-modules-amd@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==}
     engines: {node: '>=6.9.0'}
@@ -3072,6 +3978,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-simple-access': 7.18.6
+      babel-plugin-dynamic-import-node: 2.3.3
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==}
     engines: {node: '>=6.9.0'}
@@ -3087,6 +4007,31 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.19.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
+  /@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
     engines: {node: '>=6.9.0'}
@@ -3102,6 +4047,22 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-hoist-variables': 7.18.6
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-validator-identifier': 7.18.6
+      babel-plugin-dynamic-import-node: 2.3.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
     engines: {node: '>=6.9.0'}
@@ -3130,6 +4091,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
     engines: {node: '>=6.9.0'}
@@ -3153,6 +4127,17 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-named-capturing-groups-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-named-capturing-groups-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==}
     engines: {node: '>=6.9.0'}
@@ -3173,6 +4158,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
     engines: {node: '>=6.9.0'}
@@ -3183,6 +4178,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
+
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
     engines: {node: '>=6.9.0'}
@@ -3193,6 +4198,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: false
 
+  /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
     engines: {node: '>=6.9.0'}
@@ -3205,6 +4220,18 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-replace-supers': 7.18.6
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
     engines: {node: '>=6.9.0'}
@@ -3218,6 +4245,19 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -3227,6 +4267,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -3237,13 +4286,35 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
+  /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
+  /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
+    resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-plugin-utils': 7.19.0
+
+  /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.19.0
 
   /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.9.0):
@@ -3265,6 +4336,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==}
     engines: {node: '>=6.9.0'}
@@ -3284,6 +4365,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==}
     engines: {node: '>=6.9.0'}
@@ -3293,6 +4384,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.19.1):
     resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==}
     engines: {node: '>=6.9.0'}
@@ -3306,6 +4407,20 @@ packages:
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.1)
       '@babel/types': 7.19.0
 
+  /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==}
     engines: {node: '>=6.9.0'}
@@ -3327,6 +4442,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       regenerator-transform: 0.15.0
 
+  /@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      regenerator-transform: 0.15.0
+
   /@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==}
     engines: {node: '>=6.9.0'}
@@ -3347,6 +4472,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
     engines: {node: '>=6.9.0'}
@@ -3369,6 +4504,18 @@ packages:
       semver: 5.7.1
     dev: false
 
+  /@babel/plugin-transform-runtime@7.9.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.20.2
+      resolve: 1.22.1
+      semver: 5.7.1
+    dev: false
+
   /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
     engines: {node: '>=6.9.0'}
@@ -3378,6 +4525,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
     engines: {node: '>=6.9.0'}
@@ -3398,6 +4554,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
 
+  /@babel/plugin-transform-spread@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+
   /@babel/plugin-transform-spread@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==}
     engines: {node: '>=6.9.0'}
@@ -3418,6 +4584,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
     engines: {node: '>=6.9.0'}
@@ -3437,6 +4612,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-template-literals@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-template-literals@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==}
     engines: {node: '>=6.9.0'}
@@ -3456,6 +4640,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-typeof-symbol@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-typeof-symbol@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==}
     engines: {node: '>=6.9.0'}
@@ -3478,6 +4672,7 @@ packages:
       '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-typescript@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==}
@@ -3507,6 +4702,35 @@ packages:
       - supports-color
     dev: false
 
+  /@babel/plugin-transform-typescript@7.19.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
+  /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+      '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
     engines: {node: '>=6.9.0'}
@@ -3516,6 +4740,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
     engines: {node: '>=6.9.0'}
@@ -3536,6 +4770,16 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
     engines: {node: '>=6.9.0'}
@@ -3708,6 +4952,92 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/preset-env@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-validator-option': 7.18.6
+      '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-async-generator-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-class-static-block': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-export-namespace-from': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-logical-assignment-operators': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-object-rest-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-private-property-in-object': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1)
+      '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-import-assertions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1)
+      '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.1)
+      '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-async-to-generator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoping': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-duplicate-keys': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-amd': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-systemjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-named-capturing-groups-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-regenerator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-typeof-symbol': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-unicode-escapes': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/preset-modules': 0.1.5(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+      babel-plugin-polyfill-corejs2: 0.3.1(@babel/core@7.27.1)
+      babel-plugin-polyfill-corejs3: 0.5.2(@babel/core@7.27.1)
+      babel-plugin-polyfill-regenerator: 0.3.1(@babel/core@7.27.1)
+      core-js-compat: 3.23.3
+      semver: 6.3.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/preset-flow@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==}
     engines: {node: '>=6.9.0'}
@@ -3718,6 +5048,18 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
       '@babel/helper-validator-option': 7.18.6
       '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.19.1)
+    dev: true
+
+  /@babel/preset-flow@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ez3a2it5Fn6P54W8QkbfIyyIbxlXvcxyWHHvno1Wg0Ej5eiJY5hBb8ExttoIOJJk7V2dZE6prP7iby5q2aQ0Lg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
 
   /@babel/preset-modules@0.1.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
@@ -3731,6 +5073,19 @@ packages:
       '@babel/types': 7.19.0
       esutils: 2.0.3
 
+  /@babel/preset-modules@0.1.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+      esutils: 2.0.3
+    dev: true
+
   /@babel/preset-modules@0.1.5(@babel/core@7.9.0):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
     peerDependencies:
@@ -3784,6 +5139,22 @@ packages:
       '@babel/plugin-transform-typescript': 7.18.8(@babel/core@7.19.1)
     transitivePeerDependencies:
       - supports-color
+    dev: true
+
+  /@babel/preset-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
+      '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
 
   /@babel/register@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==}
@@ -3798,6 +5169,19 @@ packages:
       pirates: 4.0.5
       source-map-support: 0.5.21
 
+  /@babel/register@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-K13lQpoV54LATKkzBpBAEu1GGSIRzxR9f4IN4V8DCDgiUMo2UDGagEZr3lPeVNJPLkWUi5JE4hCHKneVTwQlYQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      clone-deep: 4.0.1
+      find-cache-dir: 2.1.0
+      make-dir: 2.1.0
+      pirates: 4.0.7
+      source-map-support: 0.5.21
+
   /@babel/runtime-corejs3@7.18.6:
     resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
     engines: {node: '>=6.9.0'}
@@ -3826,6 +5210,14 @@ packages:
       '@babel/parser': 7.19.1
       '@babel/types': 7.19.0
 
+  /@babel/template@7.27.2:
+    resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/code-frame': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/types': 7.27.1
+
   /@babel/traverse@7.19.1:
     resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==}
     engines: {node: '>=6.9.0'}
@@ -3843,6 +5235,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/traverse@7.27.1:
+    resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/code-frame': 7.27.1
+      '@babel/generator': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/template': 7.27.2
+      '@babel/types': 7.27.1
+      debug: 4.3.4
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/types@7.19.0:
     resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==}
     engines: {node: '>=6.9.0'}
@@ -3851,6 +5257,13 @@ packages:
       '@babel/helper-validator-identifier': 7.18.6
       to-fast-properties: 2.0.0
 
+  /@babel/types@7.27.1:
+    resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/helper-string-parser': 7.27.1
+      '@babel/helper-validator-identifier': 7.27.1
+
   /@bcoe/v8-coverage@0.2.3:
     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
     dev: true
@@ -5089,6 +6502,14 @@ packages:
       '@jridgewell/sourcemap-codec': 1.4.14
       '@jridgewell/trace-mapping': 0.3.14
 
+  /@jridgewell/gen-mapping@0.3.8:
+    resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+    engines: {node: '>=6.0.0'}
+    dependencies:
+      '@jridgewell/set-array': 1.2.1
+      '@jridgewell/sourcemap-codec': 1.4.14
+      '@jridgewell/trace-mapping': 0.3.25
+
   /@jridgewell/resolve-uri@3.1.0:
     resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
     engines: {node: '>=6.0.0'}
@@ -5097,6 +6518,10 @@ packages:
     resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
     engines: {node: '>=6.0.0'}
 
+  /@jridgewell/set-array@1.2.1:
+    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+    engines: {node: '>=6.0.0'}
+
   /@jridgewell/source-map@0.3.2:
     resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
     dependencies:
@@ -5113,6 +6538,12 @@ packages:
       '@jridgewell/resolve-uri': 3.1.0
       '@jridgewell/sourcemap-codec': 1.4.14
 
+  /@jridgewell/trace-mapping@0.3.25:
+    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.0
+      '@jridgewell/sourcemap-codec': 1.4.14
+
   /@jridgewell/trace-mapping@0.3.9:
     resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
     dependencies:
@@ -5314,6 +6745,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: false
     optional: true
@@ -5323,6 +6755,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: false
     optional: true
@@ -5332,6 +6765,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: false
     optional: true
@@ -5341,6 +6775,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: false
     optional: true
@@ -5457,6 +6892,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: true
     optional: true
@@ -5466,6 +6902,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: true
     optional: true
@@ -5475,6 +6912,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: true
     optional: true
@@ -5484,6 +6922,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: true
     optional: true
@@ -5624,7 +7063,60 @@ packages:
       ora: 3.4.0
     dev: false
 
-  /@react-native-community/cli@5.0.1(@babel/core@7.19.1)(react-native@0.64.3):
+  /@react-native-community/cli@5.0.1(@babel/core@7.19.1)(react-native@0.64.3):
+    resolution: {integrity: sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==}
+    engines: {node: '>=12'}
+    hasBin: true
+    peerDependencies:
+      react-native: '>=0.64.0-rc.0 || 0.0.0-*'
+    dependencies:
+      '@react-native-community/cli-debugger-ui': 5.0.1
+      '@react-native-community/cli-hermes': 5.0.1
+      '@react-native-community/cli-server-api': 5.0.1
+      '@react-native-community/cli-tools': 5.0.1
+      '@react-native-community/cli-types': 5.0.1
+      appdirsjs: 1.2.7
+      chalk: 3.0.0
+      command-exists: 1.2.9
+      commander: 2.20.3
+      cosmiconfig: 5.2.1
+      deepmerge: 3.3.0
+      envinfo: 7.8.1
+      execa: 1.0.0
+      find-up: 4.1.0
+      fs-extra: 8.1.0
+      glob: 7.2.3
+      graceful-fs: 4.2.10
+      joi: 17.6.0
+      leven: 3.1.0
+      lodash: 4.17.21
+      metro: 0.64.0
+      metro-config: 0.64.0
+      metro-core: 0.64.0
+      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.19.1)
+      metro-resolver: 0.64.0
+      metro-runtime: 0.64.0
+      minimist: 1.2.6
+      mkdirp: 0.5.6
+      node-stream-zip: 1.15.0
+      ora: 3.4.0
+      pretty-format: 26.6.2
+      prompts: 2.4.2
+      react-native: 0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@17.0.1)
+      semver: 6.3.0
+      serve-static: 1.15.0
+      strip-ansi: 5.2.0
+      sudo-prompt: 9.2.1
+      wcwidth: 1.0.1
+    transitivePeerDependencies:
+      - '@babel/core'
+      - bufferutil
+      - encoding
+      - supports-color
+      - utf-8-validate
+    dev: false
+
+  /@react-native-community/cli@5.0.1(@babel/core@7.27.1)(react-native@0.64.3):
     resolution: {integrity: sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==}
     engines: {node: '>=12'}
     hasBin: true
@@ -5654,7 +7146,7 @@ packages:
       metro: 0.64.0
       metro-config: 0.64.0
       metro-core: 0.64.0
-      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.19.1)
+      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.27.1)
       metro-resolver: 0.64.0
       metro-runtime: 0.64.0
       minimist: 1.2.6
@@ -5663,7 +7155,7 @@ packages:
       ora: 3.4.0
       pretty-format: 26.6.2
       prompts: 2.4.2
-      react-native: 0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@17.0.1)
+      react-native: 0.64.3(@babel/core@7.27.1)(@babel/preset-env@7.18.6)(react@18.2.0)
       semver: 6.3.0
       serve-static: 1.15.0
       strip-ansi: 5.2.0
@@ -6007,7 +7499,7 @@ packages:
     resolution: {integrity: sha512-oEvsm2B/WtcHKE+IcEeeCqNU/ltFGaVyGbpcm4g/2ytuT49jrlH9x5qRKL/H3A6yfM4YAbSbC0ceT5+9CEXnLg==}
     engines: {node: '>=12'}
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       '@babel/runtime': 7.19.0
       '@types/aria-query': 4.2.2
       aria-query: 5.0.2
@@ -6226,11 +7718,11 @@ packages:
       recast: 0.20.5
     dev: true
 
-  /@types/jscodeshift@0.11.6:
-    resolution: {integrity: sha512-3lJ4DajWkk4MZ1F7q+1C7jE0z0xOtbu0VU/Kg3wdPq2DUvJjySSlu3B5Q/bICrTxugLhONBO7inRUWsymOID/A==}
+  /@types/jscodeshift@17.3.0:
+    resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==}
     dependencies:
-      ast-types: 0.14.2
-      recast: 0.20.5
+      ast-types: 0.16.1
+      recast: 0.23.11
     dev: true
 
   /@types/json-schema@7.0.11:
@@ -6883,7 +8375,7 @@ packages:
   /@vue/compiler-sfc@2.7.10:
     resolution: {integrity: sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       postcss: 8.4.21
       source-map: 0.6.1
     dev: true
@@ -7524,15 +9016,6 @@ packages:
     resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
     dev: false
 
-  /assert@2.0.0:
-    resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==}
-    dependencies:
-      es6-object-assign: 1.1.0
-      is-nan: 1.3.2
-      object-is: 1.1.5
-      util: 0.12.5
-    dev: true
-
   /assertion-error@1.1.0:
     resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
     dev: true
@@ -7670,6 +9153,15 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
+    dev: true
+
+  /babel-core@7.0.0-bridge.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+    dev: false
 
   /babel-eslint@10.1.0(eslint@8.34.0):
     resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==}
@@ -7708,6 +9200,25 @@ packages:
       - supports-color
     dev: true
 
+  /babel-jest@27.5.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==}
+    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+    peerDependencies:
+      '@babel/core': ^7.8.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@jest/transform': 27.5.1
+      '@jest/types': 27.5.1
+      '@types/babel__core': 7.1.19
+      babel-plugin-istanbul: 6.1.1
+      babel-preset-jest: 27.5.1(@babel/core@7.27.1)
+      chalk: 4.1.2
+      graceful-fs: 4.2.10
+      slash: 3.0.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-add-module-exports@0.2.1:
     resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==}
     dev: true
@@ -7752,6 +9263,18 @@ packages:
       html-entities: 2.3.2
     dev: true
 
+  /babel-plugin-jsx-dom-expressions@0.34.7(@babel/core@7.27.1):
+    resolution: {integrity: sha512-jTxBhu/MQscWdOcLfqKAY8lIiRsv1ivrMQShlePoa4G8S2cFNb93HTWN4FFdp3SpILaibygFXWU3H+aHpoGH/w==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-imports': 7.16.0
+      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+      html-entities: 2.3.2
+    dev: true
+
   /babel-plugin-module-resolver@4.1.0:
     resolution: {integrity: sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==}
     engines: {node: '>= 8.0.0'}
@@ -7774,6 +9297,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /babel-plugin-polyfill-corejs2@0.3.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
+      semver: 6.3.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-polyfill-corejs3@0.5.2(@babel/core@7.19.1):
     resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
     peerDependencies:
@@ -7785,6 +9321,18 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /babel-plugin-polyfill-corejs3@0.5.2(@babel/core@7.27.1):
+    resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
+      core-js-compat: 3.23.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-polyfill-regenerator@0.3.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
     peerDependencies:
@@ -7795,6 +9343,17 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /babel-plugin-polyfill-regenerator@0.3.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-react-native-web@0.17.7:
     resolution: {integrity: sha512-UBLfIsfU3vi//Ab4i0WSWAfm1whLTK9uJoH0RPZ6a67eS/h9JGYjKy7+1RpHxSBviHi9NIMiYfWseTLjyIsE1g==}
     dev: false
@@ -7827,6 +9386,26 @@ packages:
       '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.19.1)
     dev: true
 
+  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1)
+      '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.1)
+    dev: true
+
   /babel-preset-expo@8.5.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-qQVG6Twn7tymODw8cH+85QtzFqcD0ckLWgVLC8pzRkwLKP5lIs5gtiYdoUsvhvyWWesSFR9VlhN0HE2Nu7WCWQ==}
     dependencies:
@@ -7878,6 +9457,43 @@ packages:
       - supports-color
     dev: false
 
+  /babel-preset-fbjs@3.4.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-object-rest-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1)
+      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoping': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.27.1)
+      '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.27.1)
+      babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
   /babel-preset-jest@27.5.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -7889,6 +9505,17 @@ packages:
       babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1)
     dev: true
 
+  /babel-preset-jest@27.5.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==}
+    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      babel-plugin-jest-hoist: 27.5.1
+      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.27.1)
+    dev: true
+
   /babel-preset-solid@1.5.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-pangM+KhBx8J6gRHiaRO4yD/J5gK3sydX+TIoC1TaYjxtVV78GIHRtg/HHtCAfg/iRQCJyiGR9TrN0brG8eDZA==}
     peerDependencies:
@@ -7898,6 +9525,15 @@ packages:
       babel-plugin-jsx-dom-expressions: 0.34.7(@babel/core@7.19.1)
     dev: true
 
+  /babel-preset-solid@1.5.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-pangM+KhBx8J6gRHiaRO4yD/J5gK3sydX+TIoC1TaYjxtVV78GIHRtg/HHtCAfg/iRQCJyiGR9TrN0brG8eDZA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      babel-plugin-jsx-dom-expressions: 0.34.7(@babel/core@7.27.1)
+    dev: true
+
   /balanced-match@1.0.2:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
 
@@ -7986,6 +9622,12 @@ packages:
     dependencies:
       fill-range: 7.0.1
 
+  /braces@3.0.3:
+    resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+    engines: {node: '>=8'}
+    dependencies:
+      fill-range: 7.1.1
+
   /broadcast-channel@4.14.0:
     resolution: {integrity: sha512-uNzxOgBQ+boWCRDESLNg3zZWQ3iz/X7j/uD8pAfr4/S7wQerXVvJI/SBKd9J6ckaPt2jil0gq+7l+3b+kuxJYw==}
     dependencies:
@@ -8030,6 +9672,16 @@ packages:
       update-browserslist-db: 1.0.11(browserslist@4.21.9)
     dev: true
 
+  /browserslist@4.24.5:
+    resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==}
+    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+    hasBin: true
+    dependencies:
+      caniuse-lite: 1.0.30001717
+      electron-to-chromium: 1.5.151
+      node-releases: 2.0.19
+      update-browserslist-db: 1.1.3(browserslist@4.24.5)
+
   /bs-logger@0.2.6:
     resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
     engines: {node: '>= 6'}
@@ -8215,6 +9867,9 @@ packages:
   /caniuse-lite@1.0.30001508:
     resolution: {integrity: sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==}
 
+  /caniuse-lite@1.0.30001717:
+    resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==}
+
   /capture-exit@2.0.0:
     resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==}
     engines: {node: 6.* || 8.* || >= 10.*}
@@ -8576,6 +10231,9 @@ packages:
     dependencies:
       safe-buffer: 5.1.2
 
+  /convert-source-map@2.0.0:
+    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
   /cookie@0.4.2:
     resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
     engines: {node: '>= 0.6'}
@@ -9091,6 +10749,9 @@ packages:
     resolution: {integrity: sha512-LlCgQ8zgYZPymf5H4aE9itwiIWH4YlCiv1HFLmmcBeFYi5E+3eaIFnjHzYtcFQbaKfAW+CqZ9pgxo33DZuoqPg==}
     dev: true
 
+  /electron-to-chromium@1.5.151:
+    resolution: {integrity: sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==}
+
   /emittery@0.8.1:
     resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==}
     engines: {node: '>=10'}
@@ -9251,10 +10912,6 @@ packages:
       is-symbol: 1.0.4
     dev: true
 
-  /es6-object-assign@1.1.0:
-    resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==}
-    dev: true
-
   /es6-promise@3.3.1:
     resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
     dev: true
@@ -9503,6 +11160,10 @@ packages:
     resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
     engines: {node: '>=6'}
 
+  /escalade@3.2.0:
+    resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+    engines: {node: '>=6'}
+
   /escape-html@1.0.3:
     resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
     dev: false
@@ -9647,6 +11308,21 @@ packages:
       string-natural-compare: 3.0.1
     dev: true
 
+  /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.27.1)(@babel/plugin-transform-react-jsx@7.19.0)(eslint@8.34.0):
+    resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==}
+    engines: {node: '>=12.0.0'}
+    peerDependencies:
+      '@babel/plugin-syntax-flow': ^7.14.5
+      '@babel/plugin-transform-react-jsx': ^7.14.9
+      eslint: ^8.1.0
+    dependencies:
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.19.1)
+      '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.19.1)
+      eslint: 8.34.0
+      lodash: 4.17.21
+      string-natural-compare: 3.0.1
+    dev: true
+
   /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.41.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.34.0):
     resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
     engines: {node: '>=4'}
@@ -10121,6 +11797,11 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /expect-type@1.2.1:
+    resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==}
+    engines: {node: '>=12.0.0'}
+    dev: true
+
   /expect@27.5.1:
     resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -10425,6 +12106,12 @@ packages:
     dependencies:
       to-regex-range: 5.0.1
 
+  /fill-range@7.1.1:
+    resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+    engines: {node: '>=8'}
+    dependencies:
+      to-regex-range: 5.0.1
+
   /filter-obj@1.1.0:
     resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
     engines: {node: '>=0.10.0'}
@@ -11248,14 +12935,6 @@ packages:
     dependencies:
       kind-of: 6.0.3
 
-  /is-arguments@1.1.1:
-    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      call-bind: 1.0.2
-      has-tostringtag: 1.0.0
-    dev: true
-
   /is-array-buffer@3.0.2:
     resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
     dependencies:
@@ -11407,13 +13086,6 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
-  /is-generator-function@1.0.10:
-    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      has-tostringtag: 1.0.0
-    dev: true
-
   /is-git-repository@1.1.1:
     resolution: {integrity: sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==}
     dependencies:
@@ -11448,14 +13120,6 @@ packages:
     resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
     dev: true
 
-  /is-nan@1.3.2:
-    resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      call-bind: 1.0.2
-      define-properties: 1.1.4
-    dev: true
-
   /is-negative-zero@2.0.2:
     resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
     engines: {node: '>= 0.4'}
@@ -11888,7 +13552,7 @@ packages:
       jest-serializer: 26.6.2
       jest-util: 26.6.2
       jest-worker: 26.6.2
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       sane: 4.1.0
       walker: 1.0.8
     optionalDependencies:
@@ -12149,7 +13813,7 @@ packages:
       chalk: 4.1.2
       graceful-fs: 4.2.10
       is-ci: 2.0.0
-      micromatch: 4.0.5
+      micromatch: 4.0.8
     dev: false
 
   /jest-util@27.5.1:
@@ -12309,17 +13973,17 @@ packages:
     peerDependencies:
       '@babel/preset-env': ^7.1.6
     dependencies:
-      '@babel/core': 7.19.1
-      '@babel/parser': 7.19.1
-      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/core': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
       '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-flow': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-typescript': 7.18.6(@babel/core@7.19.1)
-      '@babel/register': 7.18.6(@babel/core@7.19.1)
-      babel-core: 7.0.0-bridge.0(@babel/core@7.19.1)
+      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/register': 7.27.1(@babel/core@7.27.1)
+      babel-core: 7.0.0-bridge.0(@babel/core@7.27.1)
       colors: 1.1.2
       flow-parser: 0.121.0
       graceful-fs: 4.2.10
@@ -12345,7 +14009,7 @@ packages:
       '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
+      '@babel/preset-env': 7.18.6(@babel/core@7.27.1)
       '@babel/preset-flow': 7.18.6(@babel/core@7.19.1)
       '@babel/preset-typescript': 7.18.6(@babel/core@7.19.1)
       '@babel/register': 7.18.6(@babel/core@7.19.1)
@@ -12363,8 +14027,9 @@ packages:
       - supports-color
     dev: true
 
-  /jscodeshift@0.15.0(@babel/preset-env@7.18.6):
-    resolution: {integrity: sha512-t337Wx7Vy1ffhas7E1KZUHaR9YPdeCfxPvxz9k6DKwYW88pcs1piR1eR9d+7GQZGSQIZd6a+cfIM3XpMe9rFKQ==}
+  /jscodeshift@17.3.0(@babel/preset-env@7.18.6):
+    resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==}
+    engines: {node: '>=16'}
     hasBin: true
     peerDependencies:
       '@babel/preset-env': ^7.1.6
@@ -12372,26 +14037,25 @@ packages:
       '@babel/preset-env':
         optional: true
     dependencies:
-      '@babel/core': 7.19.1
-      '@babel/parser': 7.19.1
-      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/core': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
       '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-flow': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-typescript': 7.18.6(@babel/core@7.19.1)
-      '@babel/register': 7.18.6(@babel/core@7.19.1)
-      babel-core: 7.0.0-bridge.0(@babel/core@7.19.1)
-      chalk: 4.1.2
+      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/register': 7.27.1(@babel/core@7.27.1)
       flow-parser: 0.121.0
       graceful-fs: 4.2.10
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       neo-async: 2.6.2
-      node-dir: 0.1.17
-      recast: 0.23.3
-      temp: 0.8.4
-      write-file-atomic: 2.4.3
+      picocolors: 1.1.1
+      recast: 0.23.11
+      tmp: 0.2.3
+      write-file-atomic: 5.0.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -12488,6 +14152,11 @@ packages:
     engines: {node: '>=4'}
     hasBin: true
 
+  /jsesc@3.1.0:
+    resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+    engines: {node: '>=6'}
+    hasBin: true
+
   /json-parse-better-errors@1.0.2:
     resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
     dev: false
@@ -12523,7 +14192,6 @@ packages:
     resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
     engines: {node: '>=6'}
     hasBin: true
-    dev: true
 
   /jsonc-parser@3.2.0:
     resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
@@ -12892,6 +14560,11 @@ packages:
       yallist: 2.1.2
     dev: true
 
+  /lru-cache@5.1.1:
+    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+    dependencies:
+      yallist: 3.1.1
+
   /lru-cache@6.0.0:
     resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
     engines: {node: '>=10'}
@@ -13050,7 +14723,7 @@ packages:
   /metro-babel-transformer@0.59.0:
     resolution: {integrity: sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       metro-source-map: 0.59.0
     transitivePeerDependencies:
       - supports-color
@@ -13157,7 +14830,7 @@ packages:
       '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.19.1)
@@ -13226,6 +14899,54 @@ packages:
       - supports-color
     dev: false
 
+  /metro-react-native-babel-preset@0.64.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==}
+    peerDependencies:
+      '@babel/core': '*'
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-export-default-from': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-object-rest-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoping': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx-self': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx-source': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-regenerator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-runtime': 7.9.0(@babel/core@7.27.1)
+      '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/template': 7.18.10
+      react-refresh: 0.4.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
   /metro-react-native-babel-transformer@0.59.0(@babel/core@7.19.1):
     resolution: {integrity: sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ==}
     peerDependencies:
@@ -13255,6 +14976,21 @@ packages:
       - supports-color
     dev: false
 
+  /metro-react-native-babel-transformer@0.64.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w==}
+    peerDependencies:
+      '@babel/core': '*'
+    dependencies:
+      '@babel/core': 7.27.1
+      babel-preset-fbjs: 3.4.0(@babel/core@7.27.1)
+      metro-babel-transformer: 0.64.0
+      metro-react-native-babel-preset: 0.64.0(@babel/core@7.27.1)
+      metro-source-map: 0.64.0
+      nullthrows: 1.1.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
   /metro-resolver@0.64.0:
     resolution: {integrity: sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA==}
     dependencies:
@@ -13326,7 +15062,7 @@ packages:
   /metro-transform-plugins@0.64.0:
     resolution: {integrity: sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@babel/generator': 7.19.0
       '@babel/template': 7.18.10
       '@babel/traverse': 7.19.1
@@ -13338,11 +15074,11 @@ packages:
   /metro-transform-worker@0.64.0:
     resolution: {integrity: sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@babel/generator': 7.19.0
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@babel/types': 7.19.0
-      babel-preset-fbjs: 3.4.0(@babel/core@7.19.1)
+      babel-preset-fbjs: 3.4.0(@babel/core@7.27.1)
       metro: 0.64.0
       metro-babel-transformer: 0.64.0
       metro-cache: 0.64.0
@@ -13447,6 +15183,13 @@ packages:
       braces: 3.0.2
       picomatch: 2.3.1
 
+  /micromatch@4.0.8:
+    resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+    engines: {node: '>=8.6'}
+    dependencies:
+      braces: 3.0.3
+      picomatch: 2.3.1
+
   /microtime@3.1.0:
     resolution: {integrity: sha512-GcjhfC2y/DF2znac8IRwri7+YUIy34QRHz/iZK3bHrh74qrNNOpAJQwiOMnIG+v1J0K4eiqd+RiGzN3F1eofTQ==}
     engines: {node: '>= 14.13.0'}
@@ -13801,6 +15544,9 @@ packages:
     resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
     dev: true
 
+  /node-releases@2.0.19:
+    resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
   /node-releases@2.0.6:
     resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
 
@@ -13990,14 +15736,6 @@ packages:
     resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
     dev: true
 
-  /object-is@1.1.5:
-    resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      call-bind: 1.0.2
-      define-properties: 1.1.4
-    dev: true
-
   /object-keys@1.1.1:
     resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
     engines: {node: '>= 0.4'}
@@ -14430,6 +16168,9 @@ packages:
   /picocolors@1.0.0:
     resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
 
+  /picocolors@1.1.1:
+    resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
   /picomatch@2.3.1:
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
     engines: {node: '>=8.6'}
@@ -14447,6 +16188,10 @@ packages:
     resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
     engines: {node: '>= 6'}
 
+  /pirates@4.0.7:
+    resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+    engines: {node: '>= 6'}
+
   /pixelmatch@4.0.2:
     resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==}
     hasBin: true
@@ -15020,7 +16765,7 @@ packages:
       - utf-8-validate
     dev: false
 
-  /react-native@0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@18.2.0):
+  /react-native@0.64.3(@babel/core@7.27.1)(@babel/preset-env@7.18.6)(react@18.2.0):
     resolution: {integrity: sha512-2OEU74U0Ek1/WeBzPbg6XDsCfjF/9fhrNX/5TFgEiBKd5mNc9LOZ/OlMmkb7iues/ZZ/oc51SbEfLRQdcW0fVw==}
     engines: {node: '>=12'}
     hasBin: true
@@ -15028,7 +16773,7 @@ packages:
       react: 17.0.1
     dependencies:
       '@jest/create-cache-key-function': 26.6.2
-      '@react-native-community/cli': 5.0.1(@babel/core@7.19.1)(react-native@0.64.3)
+      '@react-native-community/cli': 5.0.1(@babel/core@7.27.1)(react-native@0.64.3)
       '@react-native-community/cli-platform-android': 5.0.1
       '@react-native-community/cli-platform-ios': 5.0.2
       '@react-native/assets': 1.0.0
@@ -15042,7 +16787,7 @@ packages:
       invariant: 2.2.4
       jsc-android: 245459.0.0
       metro-babel-register: 0.64.0
-      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.19.1)
+      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.27.1)
       metro-runtime: 0.64.0
       metro-source-map: 0.64.0
       nullthrows: 1.1.1
@@ -15230,14 +16975,14 @@ packages:
       source-map: 0.6.1
       tslib: 2.6.0
 
-  /recast@0.23.3:
-    resolution: {integrity: sha512-HbCVFh2ANP6a09nzD4lx7XthsxMOJWKX5pIcUwtLrmeEIl3I0DwjCoVXDE0Aobk+7k/mS3H50FK4iuYArpcT6Q==}
+  /recast@0.23.11:
+    resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
     engines: {node: '>= 4'}
     dependencies:
-      assert: 2.0.0
       ast-types: 0.16.1
       esprima: 4.0.1
       source-map: 0.6.1
+      tiny-invariant: 1.3.3
       tslib: 2.6.0
     dev: true
 
@@ -15649,6 +17394,10 @@ packages:
     resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
     hasBin: true
 
+  /semver@6.3.1:
+    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+    hasBin: true
+
   /semver@7.0.0:
     resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
     hasBin: true
@@ -15811,6 +17560,11 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
+  /signal-exit@4.1.0:
+    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+    dev: true
+
   /simple-plist@1.3.1:
     resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==}
     dependencies:
@@ -15911,14 +17665,14 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /solid-jest@0.2.0(@babel/core@7.19.1)(babel-preset-solid@1.5.4):
+  /solid-jest@0.2.0(@babel/core@7.27.1)(babel-preset-solid@1.5.4):
     resolution: {integrity: sha512-1ILtAj+z6bh1vTvaDlcT8501vmkzkVZMk2aiexJy+XWTZ+sb9B7IWedvWadIhOwwL97fiW4eMmN6SrbaHjn12A==}
     peerDependencies:
       babel-preset-solid: ^1.0.0
     dependencies:
-      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      babel-jest: 27.5.1(@babel/core@7.19.1)
-      babel-preset-solid: 1.5.4(@babel/core@7.19.1)
+      '@babel/preset-env': 7.18.6(@babel/core@7.27.1)
+      babel-jest: 27.5.1(@babel/core@7.27.1)
+      babel-preset-solid: 1.5.4(@babel/core@7.27.1)
       enhanced-resolve-jest: 1.1.0
     transitivePeerDependencies:
       - '@babel/core'
@@ -16675,6 +18429,10 @@ packages:
     resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==}
     dev: false
 
+  /tiny-invariant@1.3.3:
+    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+    dev: true
+
   /tiny-warning@1.0.3:
     resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
     dev: false
@@ -16716,6 +18474,11 @@ packages:
       rimraf: 3.0.2
     dev: true
 
+  /tmp@0.2.3:
+    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
+    engines: {node: '>=14.14'}
+    dev: true
+
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
@@ -17206,6 +18969,16 @@ packages:
       escalade: 3.1.1
       picocolors: 1.0.0
 
+  /update-browserslist-db@1.1.3(browserslist@4.24.5):
+    resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+    hasBin: true
+    peerDependencies:
+      browserslist: '>= 4.21.0'
+    dependencies:
+      browserslist: 4.24.5
+      escalade: 3.2.0
+      picocolors: 1.1.1
+
   /uri-js@4.4.1:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
@@ -17274,16 +19047,6 @@ packages:
       object.getownpropertydescriptors: 2.1.4
     dev: true
 
-  /util@0.12.5:
-    resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
-    dependencies:
-      inherits: 2.0.4
-      is-arguments: 1.1.1
-      is-generator-function: 1.0.10
-      is-typed-array: 1.1.10
-      which-typed-array: 1.1.9
-    dev: true
-
   /utils-merge@1.0.1:
     resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
     engines: {node: '>= 0.4.0'}
@@ -17599,6 +19362,7 @@ packages:
 
   /vue@2.7.10:
     resolution: {integrity: sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg==}
+    deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
     dependencies:
       '@vue/compiler-sfc': 2.7.10
       csstype: 3.1.0
@@ -17850,6 +19614,14 @@ packages:
       typedarray-to-buffer: 3.1.5
     dev: true
 
+  /write-file-atomic@5.0.1:
+    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
+    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+    dependencies:
+      imurmurhash: 0.1.4
+      signal-exit: 4.1.0
+    dev: true
+
   /ws@1.1.5:
     resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
     peerDependencies:
@@ -17998,6 +19770,9 @@ packages:
     resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
     dev: true
 
+  /yallist@3.1.1:
+    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
   /yallist@4.0.0:
     resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
 

From 12abdda64833a905b233086e325617c040265f7d Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Sat, 31 May 2025 11:06:54 +1000
Subject: [PATCH 34/45] ci(v4): use @tanstack/publish-config (#9225)

* ci(v4): use @tanstack/publish-config

* Fix cipublish script
---
 .gitignore                   |   4 +-
 package.json                 |  16 +-
 pnpm-lock.yaml               | 726 +++++++++++++----------------------
 project.json                 |   6 +-
 scripts/config.ts            | 102 -----
 scripts/project.json         |   8 -
 scripts/publish.mjs          |  85 ++++
 scripts/publish.ts           | 457 ----------------------
 scripts/tsconfig.json        |   5 +-
 scripts/types.ts             |  47 ---
 scripts/validate-packages.ts |  80 ----
 11 files changed, 367 insertions(+), 1169 deletions(-)
 delete mode 100644 scripts/config.ts
 delete mode 100644 scripts/project.json
 create mode 100644 scripts/publish.mjs
 delete mode 100644 scripts/publish.ts
 delete mode 100644 scripts/types.ts
 delete mode 100644 scripts/validate-packages.ts

diff --git a/.gitignore b/.gitignore
index c402703515..824beea502 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,8 +37,10 @@ stats.html
 .vscode/settings.json
 
 *.log
+*.tsbuildinfo
 .DS_Store
 .cache
 .idea
-
+.nx/cache
+.nx/workspace-data
 nx-cloud.env
diff --git a/package.json b/package.json
index e2922a45f2..3df986b552 100644
--- a/package.json
+++ b/package.json
@@ -24,8 +24,7 @@
     "dev": "pnpm run watch",
     "prettier": "prettier --plugin-search-dir . \"{packages,examples,scripts}/**/*.{md,js,jsx,cjs,ts,tsx,json,vue,svelte}\"",
     "prettier:write": "pnpm run prettier --write",
-    "cipublish": "ts-node scripts/publish.ts",
-    "validatePackages": "ts-node scripts/validate-packages.ts"
+    "cipublish": "node scripts/publish.mjs"
   },
   "nx": {
     "includedScripts": [
@@ -39,23 +38,21 @@
     "@babel/preset-env": "^7.16.11",
     "@babel/preset-react": "^7.16.7",
     "@babel/preset-typescript": "^7.16.7",
-    "@commitlint/parse": "^16.2.1",
     "@faker-js/faker": "^6.3.1",
     "@rollup/plugin-babel": "^5.3.1",
     "@rollup/plugin-commonjs": "22.0.1",
     "@rollup/plugin-node-resolve": "^13.2.1",
     "@rollup/plugin-replace": "^4.0.0",
+    "@tanstack/publish-config": "^0.1.1",
     "@testing-library/jest-dom": "^5.16.4",
     "@testing-library/react": "^13.0.0",
     "@testing-library/react-17": "npm:@testing-library/react@12.1.4",
     "@testing-library/react-hooks": "^7.0.2",
     "@testing-library/user-event": "14.4.3",
     "@types/jest": "^26.0.4",
-    "@types/luxon": "^2.3.1",
-    "@types/node": "^17.0.25",
+    "@types/node": "^22.15.3",
     "@types/react": "^18.0.14",
     "@types/react-dom": "^18.0.5",
-    "@types/semver": "^7.3.13",
     "@types/testing-library__jest-dom": "^5.14.5",
     "@typescript-eslint/eslint-plugin": "^5.41.0",
     "@typescript-eslint/parser": "^5.41.0",
@@ -65,9 +62,7 @@
     "babel-plugin-transform-async-to-promises": "^0.8.18",
     "babel-preset-solid": "^1.5.4",
     "bundlewatch": "^0.3.2",
-    "chalk": "^4.1.2",
     "concurrently": "^7.1.0",
-    "current-git-branch": "^1.1.0",
     "eslint": "^8.34.0",
     "eslint-config-prettier": "^8.8.0",
     "eslint-import-resolver-typescript": "^3.5.5",
@@ -76,10 +71,7 @@
     "eslint-plugin-react": "^7.32.2",
     "eslint-plugin-react-hooks": "^4.6.0",
     "expect-type": "^1.2.1",
-    "git-log-parser": "^1.2.0",
     "jest": "^27.5.1",
-    "jsonfile": "^6.1.0",
-    "luxon": "^2.3.2",
     "nx": "16.7.4",
     "nx-cloud": "16.3.0",
     "prettier": "^2.6.2",
@@ -94,10 +86,8 @@
     "rollup-plugin-size": "^0.2.2",
     "rollup-plugin-terser": "^7.0.2",
     "rollup-plugin-visualizer": "^5.6.0",
-    "semver": "^7.3.8",
     "solid-js": "^1.5.7",
     "solid-testing-library": "^0.3.0",
-    "stream-to-array": "^2.3.0",
     "ts-jest": "^27.1.1",
     "ts-node": "^10.7.0",
     "typescript": "^4.7.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0c02d0789e..d0f0682af0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,9 +16,6 @@ importers:
       '@babel/preset-typescript':
         specifier: ^7.16.7
         version: 7.18.6(@babel/core@7.19.1)
-      '@commitlint/parse':
-        specifier: ^16.2.1
-        version: 16.2.1
       '@faker-js/faker':
         specifier: ^6.3.1
         version: 6.3.1
@@ -34,6 +31,9 @@ importers:
       '@rollup/plugin-replace':
         specifier: ^4.0.0
         version: 4.0.0(rollup@2.78.1)
+      '@tanstack/publish-config':
+        specifier: ^0.1.1
+        version: 0.1.1
       '@testing-library/jest-dom':
         specifier: ^5.16.4
         version: 5.16.4
@@ -52,21 +52,15 @@ importers:
       '@types/jest':
         specifier: ^26.0.4
         version: 26.0.24
-      '@types/luxon':
-        specifier: ^2.3.1
-        version: 2.3.2
       '@types/node':
-        specifier: ^17.0.25
-        version: 17.0.45
+        specifier: ^22.15.3
+        version: 22.15.3
       '@types/react':
         specifier: ^18.0.14
         version: 18.0.15
       '@types/react-dom':
         specifier: ^18.0.5
         version: 18.0.6
-      '@types/semver':
-        specifier: ^7.3.13
-        version: 7.3.13
       '@types/testing-library__jest-dom':
         specifier: ^5.14.5
         version: 5.14.5
@@ -94,15 +88,9 @@ importers:
       bundlewatch:
         specifier: ^0.3.2
         version: 0.3.3
-      chalk:
-        specifier: ^4.1.2
-        version: 4.1.2
       concurrently:
         specifier: ^7.1.0
         version: 7.2.2
-      current-git-branch:
-        specifier: ^1.1.0
-        version: 1.1.0
       eslint:
         specifier: ^8.34.0
         version: 8.34.0
@@ -127,18 +115,9 @@ importers:
       expect-type:
         specifier: ^1.2.1
         version: 1.2.1
-      git-log-parser:
-        specifier: ^1.2.0
-        version: 1.2.0
       jest:
         specifier: ^27.5.1
         version: 27.5.1(ts-node@10.8.2)
-      jsonfile:
-        specifier: ^6.1.0
-        version: 6.1.0
-      luxon:
-        specifier: ^2.3.2
-        version: 2.4.0
       nx:
         specifier: 16.7.4
         version: 16.7.4
@@ -181,24 +160,18 @@ importers:
       rollup-plugin-visualizer:
         specifier: ^5.6.0
         version: 5.6.0(rollup@2.78.1)
-      semver:
-        specifier: ^7.3.8
-        version: 7.3.8
       solid-js:
         specifier: ^1.5.7
         version: 1.5.7
       solid-testing-library:
         specifier: ^0.3.0
         version: 0.3.0(solid-js@1.5.7)
-      stream-to-array:
-        specifier: ^2.3.0
-        version: 2.3.0
       ts-jest:
         specifier: ^27.1.1
         version: 27.1.5(@babel/core@7.19.1)(@types/jest@26.0.24)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.8.3)
       ts-node:
         specifier: ^10.7.0
-        version: 10.8.2(@types/node@17.0.45)(typescript@4.8.3)
+        version: 10.8.2(@types/node@22.15.3)(typescript@4.8.3)
       typescript:
         specifier: ^4.7.4
         version: 4.8.3
@@ -955,7 +928,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/svelte/basic:
     dependencies:
@@ -983,7 +956,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/svelte/load-more-infinite-scroll:
     dependencies:
@@ -1011,7 +984,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/svelte/optimistic-updates-typescript:
     dependencies:
@@ -1039,7 +1012,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/svelte/playground:
     dependencies:
@@ -1067,7 +1040,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/svelte/simple:
     dependencies:
@@ -1095,7 +1068,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/svelte/ssr:
     dependencies:
@@ -1123,7 +1096,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/svelte/star-wars:
     dependencies:
@@ -1160,7 +1133,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
 
   examples/vue/basic:
     dependencies:
@@ -1443,7 +1416,7 @@ importers:
         version: 4.8.4
       vite:
         specifier: ^4.0.0
-        version: 4.0.4(@types/node@17.0.45)
+        version: 4.0.4(@types/node@22.15.3)
       vitest:
         specifier: ^0.27.1
         version: 0.27.1(jsdom@20.0.3)
@@ -1671,7 +1644,7 @@ packages:
       '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
       convert-source-map: 2.0.0
-      debug: 4.3.4
+      debug: 4.4.1
       gensync: 1.0.0-beta.2
       json5: 2.2.3
       semver: 6.3.1
@@ -1682,16 +1655,16 @@ packages:
     resolution: {integrity: sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       '@babel/generator': 7.19.0
       '@babel/helper-module-transforms': 7.19.0
       '@babel/helpers': 7.19.0
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@babel/template': 7.18.10
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       convert-source-map: 1.8.0
-      debug: 4.3.4
+      debug: 4.4.1
       gensync: 1.0.0-beta.2
       json5: 2.2.3
       lodash: 4.17.21
@@ -1713,7 +1686,7 @@ packages:
       '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
       eslint: 8.34.0
       eslint-visitor-keys: 2.1.0
-      semver: 6.3.0
+      semver: 6.3.1
     dev: true
 
   /@babel/generator@7.19.0:
@@ -1738,7 +1711,7 @@ packages:
     resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-annotate-as-pure@7.27.1:
     resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==}
@@ -1751,7 +1724,7 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-explode-assignable-expression': 7.18.6
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-compilation-targets@7.19.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==}
@@ -1964,10 +1937,10 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.20.2
       '@babel/traverse': 7.19.1
-      debug: 4.3.4
+      debug: 4.4.1
       lodash.debounce: 4.0.8
       resolve: 1.22.1
-      semver: 6.3.0
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
 
@@ -1981,10 +1954,10 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.20.2
       '@babel/traverse': 7.19.1
-      debug: 4.3.4
+      debug: 4.4.1
       lodash.debounce: 4.0.8
       resolve: 1.22.1
-      semver: 6.3.0
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1997,32 +1970,32 @@ packages:
     resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-function-name@7.19.0:
     resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/template': 7.18.10
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-hoist-variables@7.18.6:
     resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-member-expression-to-functions@7.18.6:
     resolution: {integrity: sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-member-expression-to-functions@7.18.9:
     resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-member-expression-to-functions@7.27.1:
     resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
@@ -2037,7 +2010,7 @@ packages:
     resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     dev: true
 
   /@babel/helper-module-imports@7.18.6:
@@ -2101,7 +2074,7 @@ packages:
     resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-optimise-call-expression@7.27.1:
     resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
@@ -2131,7 +2104,7 @@ packages:
       '@babel/helper-annotate-as-pure': 7.18.6
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-wrap-function': 7.18.6
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
 
@@ -2145,7 +2118,7 @@ packages:
       '@babel/helper-annotate-as-pure': 7.18.6
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-wrap-function': 7.18.6
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2160,7 +2133,7 @@ packages:
       '@babel/helper-annotate-as-pure': 7.18.6
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-wrap-function': 7.18.6
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2173,7 +2146,7 @@ packages:
       '@babel/helper-member-expression-to-functions': 7.18.6
       '@babel/helper-optimise-call-expression': 7.18.6
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
 
@@ -2185,7 +2158,7 @@ packages:
       '@babel/helper-member-expression-to-functions': 7.18.9
       '@babel/helper-optimise-call-expression': 7.18.6
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
 
@@ -2206,13 +2179,13 @@ packages:
     resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-skip-transparent-expression-wrappers@7.18.6:
     resolution: {integrity: sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-skip-transparent-expression-wrappers@7.27.1:
     resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
@@ -2227,7 +2200,7 @@ packages:
     resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
 
   /@babel/helper-string-parser@7.18.10:
     resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==}
@@ -2260,7 +2233,7 @@ packages:
       '@babel/helper-function-name': 7.19.0
       '@babel/template': 7.18.10
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
 
@@ -2285,7 +2258,7 @@ packages:
     resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/helper-validator-identifier': 7.18.6
+      '@babel/helper-validator-identifier': 7.27.1
       chalk: 2.4.2
       js-tokens: 4.0.0
 
@@ -4057,7 +4030,7 @@ packages:
       '@babel/helper-hoist-variables': 7.18.6
       '@babel/helper-module-transforms': 7.19.0
       '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-validator-identifier': 7.18.6
+      '@babel/helper-validator-identifier': 7.27.1
       babel-plugin-dynamic-import-node: 2.3.3
     transitivePeerDependencies:
       - supports-color
@@ -4073,7 +4046,7 @@ packages:
       '@babel/helper-hoist-variables': 7.18.6
       '@babel/helper-module-transforms': 7.19.0
       '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-validator-identifier': 7.18.6
+      '@babel/helper-validator-identifier': 7.27.1
       babel-plugin-dynamic-import-node: 2.3.3
     transitivePeerDependencies:
       - supports-color
@@ -4418,7 +4391,7 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     dev: false
 
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
@@ -4860,7 +4833,7 @@ packages:
       '@babel/plugin-transform-unicode-escapes': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.9.0)
       '@babel/preset-modules': 0.1.5(@babel/core@7.9.0)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       core-js-compat: 3.23.3
       semver: 5.7.1
     transitivePeerDependencies:
@@ -5028,12 +5001,12 @@ packages:
       '@babel/plugin-transform-unicode-escapes': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
       '@babel/preset-modules': 0.1.5(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       babel-plugin-polyfill-corejs2: 0.3.1(@babel/core@7.27.1)
       babel-plugin-polyfill-corejs3: 0.5.2(@babel/core@7.27.1)
       babel-plugin-polyfill-regenerator: 0.3.1(@babel/core@7.27.1)
       core-js-compat: 3.23.3
-      semver: 6.3.0
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -5222,15 +5195,15 @@ packages:
     resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       '@babel/generator': 7.19.0
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-function-name': 7.19.0
       '@babel/helper-hoist-variables': 7.18.6
       '@babel/helper-split-export-declaration': 7.18.6
-      '@babel/parser': 7.19.1
-      '@babel/types': 7.19.0
-      debug: 4.3.4
+      '@babel/parser': 7.27.2
+      '@babel/types': 7.27.1
+      debug: 4.4.1
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
@@ -5244,7 +5217,7 @@ packages:
       '@babel/parser': 7.27.2
       '@babel/template': 7.27.2
       '@babel/types': 7.27.1
-      debug: 4.3.4
+      debug: 4.4.1
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
@@ -5320,20 +5293,21 @@ packages:
       minimist: 1.2.6
     dev: false
 
-  /@commitlint/parse@16.2.1:
-    resolution: {integrity: sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g==}
-    engines: {node: '>=v12'}
+  /@commitlint/parse@19.8.1:
+    resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==}
+    engines: {node: '>=v18'}
     dependencies:
-      '@commitlint/types': 16.2.1
-      conventional-changelog-angular: 5.0.13
-      conventional-commits-parser: 3.2.4
+      '@commitlint/types': 19.8.1
+      conventional-changelog-angular: 7.0.0
+      conventional-commits-parser: 5.0.0
     dev: true
 
-  /@commitlint/types@16.2.1:
-    resolution: {integrity: sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==}
-    engines: {node: '>=v12'}
+  /@commitlint/types@19.8.1:
+    resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==}
+    engines: {node: '>=v18'}
     dependencies:
-      chalk: 4.1.2
+      '@types/conventional-commits-parser': 5.0.1
+      chalk: 5.4.1
     dev: true
 
   /@cspotcode/source-map-support@0.8.1:
@@ -5575,7 +5549,7 @@ packages:
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
       ajv: 6.12.6
-      debug: 4.3.4
+      debug: 4.4.1
       espree: 9.4.0
       globals: 13.20.0
       ignore: 5.2.0
@@ -5631,13 +5605,13 @@ packages:
       '@expo/json-file': 8.2.33
       '@expo/plist': 0.0.14
       chalk: 4.1.2
-      debug: 4.3.4
+      debug: 4.4.1
       find-up: 5.0.0
       fs-extra: 9.0.0
       getenv: 1.0.0
       glob: 7.1.6
       resolve-from: 5.0.0
-      semver: 7.5.3
+      semver: 7.7.2
       slash: 3.0.0
       xcode: 3.0.1
       xml2js: 0.4.23
@@ -5654,12 +5628,12 @@ packages:
       '@expo/sdk-runtime-versions': 1.0.0
       '@react-native/normalize-color': 2.0.0
       chalk: 4.1.2
-      debug: 4.3.4
+      debug: 4.4.1
       find-up: 5.0.0
       getenv: 1.0.0
       glob: 7.1.6
       resolve-from: 5.0.0
-      semver: 7.5.3
+      semver: 7.7.2
       slash: 3.0.0
       xcode: 3.0.1
       xml2js: 0.4.23
@@ -5874,7 +5848,7 @@ packages:
     engines: {node: '>=10.10.0'}
     dependencies:
       '@humanwhocodes/object-schema': 1.2.1
-      debug: 4.3.4
+      debug: 4.4.1
       minimatch: 3.1.2
     transitivePeerDependencies:
       - supports-color
@@ -5910,7 +5884,7 @@ packages:
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       chalk: 4.1.2
       jest-message-util: 27.5.1
       jest-util: 27.5.1
@@ -5931,7 +5905,7 @@ packages:
       '@jest/test-result': 27.5.1
       '@jest/transform': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       ansi-escapes: 4.3.2
       chalk: 4.1.2
       emittery: 0.8.1
@@ -5975,7 +5949,7 @@ packages:
     dependencies:
       '@jest/fake-timers': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       jest-mock: 27.5.1
     dev: true
 
@@ -5985,7 +5959,7 @@ packages:
     dependencies:
       '@jest/types': 27.5.1
       '@sinonjs/fake-timers': 8.1.0
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       jest-message-util: 27.5.1
       jest-mock: 27.5.1
       jest-util: 27.5.1
@@ -6014,7 +5988,7 @@ packages:
       '@jest/test-result': 27.5.1
       '@jest/transform': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       chalk: 4.1.2
       collect-v8-coverage: 1.0.1
       exit: 0.1.2
@@ -6098,7 +6072,7 @@ packages:
     dependencies:
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       '@types/yargs': 15.0.14
       chalk: 4.1.2
 
@@ -6108,7 +6082,7 @@ packages:
     dependencies:
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       '@types/yargs': 16.0.4
       chalk: 4.1.2
     dev: true
@@ -6551,6 +6525,18 @@ packages:
       '@jridgewell/sourcemap-codec': 1.4.14
     dev: true
 
+  /@kwsites/file-exists@1.1.1:
+    resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==}
+    dependencies:
+      debug: 4.4.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
+  /@kwsites/promise-deferred@1.1.1:
+    resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==}
+    dev: true
+
   /@material-ui/core@4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0):
     resolution: {integrity: sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==}
     engines: {node: '>=8.0.0'}
@@ -6674,7 +6660,7 @@ packages:
     dependencies:
       '@open-draft/until': 1.0.3
       '@xmldom/xmldom': 0.7.5
-      debug: 4.3.4
+      debug: 4.4.1
       headers-polyfill: 3.0.9
       outvariant: 1.3.0
       strict-event-emitter: 0.2.4
@@ -6966,7 +6952,7 @@ packages:
       fast-glob: 3.2.12
       is-glob: 4.0.3
       open: 9.1.0
-      picocolors: 1.0.0
+      picocolors: 1.1.1
       tslib: 2.6.0
     dev: true
 
@@ -7103,7 +7089,7 @@ packages:
       pretty-format: 26.6.2
       prompts: 2.4.2
       react-native: 0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@17.0.1)
-      semver: 6.3.0
+      semver: 6.3.1
       serve-static: 1.15.0
       strip-ansi: 5.2.0
       sudo-prompt: 9.2.1
@@ -7156,7 +7142,7 @@ packages:
       pretty-format: 26.6.2
       prompts: 2.4.2
       react-native: 0.64.3(@babel/core@7.27.1)(@babel/preset-env@7.18.6)(react@18.2.0)
-      semver: 6.3.0
+      semver: 6.3.1
       serve-static: 1.15.0
       strip-ansi: 5.2.0
       sudo-prompt: 9.2.1
@@ -7394,7 +7380,7 @@ packages:
       svelte: 3.55.0
       tiny-glob: 0.2.9
       undici: 5.20.0
-      vite: 4.0.4(@types/node@17.0.45)
+      vite: 4.0.4(@types/node@22.15.3)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -7428,7 +7414,7 @@ packages:
       magic-string: 0.27.0
       svelte: 3.55.0
       svelte-hmr: 0.15.1(svelte@3.55.0)
-      vite: 4.0.4(@types/node@17.0.45)
+      vite: 4.0.4(@types/node@22.15.3)
       vitefu: 0.2.4(vite@4.0.4)
     transitivePeerDependencies:
       - supports-color
@@ -7454,6 +7440,18 @@ packages:
       remove-accents: 0.4.2
     dev: false
 
+  /@tanstack/publish-config@0.1.1:
+    resolution: {integrity: sha512-gw46t9d8fkf4ICU+EVcQdVWWRRux3K3+DM/vO3xp3KrU4/BlQOZgP9BFEWY7znU5pqD5rJ3ozrTbv9ezw78Qyw==}
+    engines: {node: '>=18'}
+    dependencies:
+      '@commitlint/parse': 19.8.1
+      jsonfile: 6.1.0
+      semver: 7.7.2
+      simple-git: 3.27.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@tanstack/react-location@3.7.4(react-dom@18.2.0)(react@18.2.0):
     resolution: {integrity: sha512-6rH2vNHGr0uyeUz5ZHvWMYjeYKGgIKFzvs5749QtnS9f+FU7t7fQE0hKZAzltBZk82LT7iYbcHBRyUg2lW13VA==}
     engines: {node: '>=12'}
@@ -7471,7 +7469,7 @@ packages:
     resolution: {integrity: sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==}
     engines: {node: '>=10'}
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       '@babel/runtime': 7.19.0
       '@types/aria-query': 4.2.2
       aria-query: 4.2.2
@@ -7630,8 +7628,8 @@ packages:
   /@types/babel__core@7.1.19:
     resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==}
     dependencies:
-      '@babel/parser': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/parser': 7.27.2
+      '@babel/types': 7.27.1
       '@types/babel__generator': 7.6.4
       '@types/babel__template': 7.4.1
       '@types/babel__traverse': 7.17.1
@@ -7640,20 +7638,20 @@ packages:
   /@types/babel__generator@7.6.4:
     resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     dev: true
 
   /@types/babel__template@7.4.1:
     resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
     dependencies:
-      '@babel/parser': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/parser': 7.27.2
+      '@babel/types': 7.27.1
     dev: true
 
   /@types/babel__traverse@7.17.1:
     resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==}
     dependencies:
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     dev: true
 
   /@types/chai-subset@1.3.3:
@@ -7666,6 +7664,12 @@ packages:
     resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==}
     dev: true
 
+  /@types/conventional-commits-parser@5.0.1:
+    resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==}
+    dependencies:
+      '@types/node': 22.15.3
+    dev: true
+
   /@types/cookie@0.4.1:
     resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
     dev: false
@@ -7681,7 +7685,7 @@ packages:
   /@types/graceful-fs@4.1.5:
     resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
 
   /@types/hammerjs@2.0.41:
     resolution: {integrity: sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==}
@@ -7733,20 +7737,14 @@ packages:
     resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
     dev: true
 
-  /@types/luxon@2.3.2:
-    resolution: {integrity: sha512-WOehptuhKIXukSUUkRgGbj2c997Uv/iUgYgII8U7XLJqq9W2oF0kQ6frEznRQbdurioz+L/cdaIm4GutTQfgmA==}
-    dev: true
-
-  /@types/minimist@1.2.2:
-    resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
-    dev: true
-
   /@types/node@14.14.14:
     resolution: {integrity: sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ==}
     dev: true
 
-  /@types/node@17.0.45:
-    resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
+  /@types/node@22.15.3:
+    resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==}
+    dependencies:
+      undici-types: 6.21.0
 
   /@types/normalize-package-data@2.4.1:
     resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
@@ -7811,13 +7809,13 @@ packages:
   /@types/resolve@1.17.1:
     resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
     dev: true
 
   /@types/sass@1.43.1:
     resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
     dev: true
 
   /@types/scheduler@0.16.2:
@@ -7830,7 +7828,7 @@ packages:
   /@types/set-cookie-parser@2.4.2:
     resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
     dev: false
 
   /@types/stack-utils@2.0.1:
@@ -7876,11 +7874,11 @@ packages:
       '@typescript-eslint/scope-manager': 5.41.0
       '@typescript-eslint/type-utils': 5.41.0(eslint@8.26.0)(typescript@4.8.4)
       '@typescript-eslint/utils': 5.41.0(eslint@8.26.0)(typescript@4.8.4)
-      debug: 4.3.4
+      debug: 4.4.1
       eslint: 8.26.0
       ignore: 5.2.0
       regexpp: 3.2.0
-      semver: 7.5.3
+      semver: 7.7.2
       tsutils: 3.21.0(typescript@4.8.4)
       typescript: 4.8.4
     transitivePeerDependencies:
@@ -7902,11 +7900,11 @@ packages:
       '@typescript-eslint/scope-manager': 5.41.0
       '@typescript-eslint/type-utils': 5.41.0(eslint@8.34.0)(typescript@4.4.4)
       '@typescript-eslint/utils': 5.41.0(eslint@8.34.0)(typescript@4.4.4)
-      debug: 4.3.4
+      debug: 4.4.1
       eslint: 8.34.0
       ignore: 5.2.0
       regexpp: 3.2.0
-      semver: 7.5.3
+      semver: 7.7.2
       tsutils: 3.21.0(typescript@4.4.4)
       typescript: 4.4.4
     transitivePeerDependencies:
@@ -7952,7 +7950,7 @@ packages:
       '@typescript-eslint/scope-manager': 5.41.0
       '@typescript-eslint/types': 5.41.0
       '@typescript-eslint/typescript-estree': 5.41.0(typescript@4.8.4)
-      debug: 4.3.4
+      debug: 4.4.1
       eslint: 8.26.0
       typescript: 4.8.4
     transitivePeerDependencies:
@@ -7972,7 +7970,7 @@ packages:
       '@typescript-eslint/scope-manager': 5.41.0
       '@typescript-eslint/types': 5.41.0
       '@typescript-eslint/typescript-estree': 5.41.0(typescript@4.4.4)
-      debug: 4.3.4
+      debug: 4.4.1
       eslint: 8.34.0
       typescript: 4.4.4
     transitivePeerDependencies:
@@ -8019,7 +8017,7 @@ packages:
     dependencies:
       '@typescript-eslint/typescript-estree': 5.41.0(typescript@4.8.4)
       '@typescript-eslint/utils': 5.41.0(eslint@8.26.0)(typescript@4.8.4)
-      debug: 4.3.4
+      debug: 4.4.1
       eslint: 8.26.0
       tsutils: 3.21.0(typescript@4.8.4)
       typescript: 4.8.4
@@ -8039,7 +8037,7 @@ packages:
     dependencies:
       '@typescript-eslint/typescript-estree': 5.41.0(typescript@4.4.4)
       '@typescript-eslint/utils': 5.41.0(eslint@8.34.0)(typescript@4.4.4)
-      debug: 4.3.4
+      debug: 4.4.1
       eslint: 8.34.0
       tsutils: 3.21.0(typescript@4.4.4)
       typescript: 4.4.4
@@ -8083,10 +8081,10 @@ packages:
     dependencies:
       '@typescript-eslint/types': 5.41.0
       '@typescript-eslint/visitor-keys': 5.41.0
-      debug: 4.3.4
+      debug: 4.4.1
       globby: 11.1.0
       is-glob: 4.0.3
-      semver: 7.5.3
+      semver: 7.7.2
       tsutils: 3.21.0(typescript@4.4.4)
       typescript: 4.4.4
     transitivePeerDependencies:
@@ -8104,10 +8102,10 @@ packages:
     dependencies:
       '@typescript-eslint/types': 5.41.0
       '@typescript-eslint/visitor-keys': 5.41.0
-      debug: 4.3.4
+      debug: 4.4.1
       globby: 11.1.0
       is-glob: 4.0.3
-      semver: 7.5.3
+      semver: 7.7.2
       tsutils: 3.21.0(typescript@4.8.3)
       typescript: 4.8.3
     transitivePeerDependencies:
@@ -8125,10 +8123,10 @@ packages:
     dependencies:
       '@typescript-eslint/types': 5.41.0
       '@typescript-eslint/visitor-keys': 5.41.0
-      debug: 4.3.4
+      debug: 4.4.1
       globby: 11.1.0
       is-glob: 4.0.3
-      semver: 7.5.3
+      semver: 7.7.2
       tsutils: 3.21.0(typescript@4.8.4)
       typescript: 4.8.4
     transitivePeerDependencies:
@@ -8149,7 +8147,7 @@ packages:
       eslint: 8.26.0
       eslint-scope: 5.1.1
       eslint-utils: 3.0.0(eslint@8.26.0)
-      semver: 7.5.3
+      semver: 7.7.2
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -8169,7 +8167,7 @@ packages:
       eslint: 8.34.0
       eslint-scope: 5.1.1
       eslint-utils: 3.0.0(eslint@8.34.0)
-      semver: 7.5.3
+      semver: 7.7.2
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -8189,7 +8187,7 @@ packages:
       eslint: 8.34.0
       eslint-scope: 5.1.1
       eslint-utils: 3.0.0(eslint@8.34.0)
-      semver: 7.5.3
+      semver: 7.7.2
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -8317,7 +8315,7 @@ packages:
   /@vue/compiler-core@3.2.37:
     resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/shared': 3.2.37
       estree-walker: 2.0.2
       source-map: 0.6.1
@@ -8326,7 +8324,7 @@ packages:
   /@vue/compiler-core@3.2.39:
     resolution: {integrity: sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/shared': 3.2.39
       estree-walker: 2.0.2
       source-map: 0.6.1
@@ -8334,7 +8332,7 @@ packages:
   /@vue/compiler-core@3.2.40:
     resolution: {integrity: sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/shared': 3.2.40
       estree-walker: 2.0.2
       source-map: 0.6.1
@@ -8342,7 +8340,7 @@ packages:
   /@vue/compiler-core@3.2.41:
     resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/shared': 3.2.41
       estree-walker: 2.0.2
       source-map: 0.6.1
@@ -8383,7 +8381,7 @@ packages:
   /@vue/compiler-sfc@3.2.37:
     resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.37
       '@vue/compiler-dom': 3.2.37
       '@vue/compiler-ssr': 3.2.37
@@ -8398,7 +8396,7 @@ packages:
   /@vue/compiler-sfc@3.2.39:
     resolution: {integrity: sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.39
       '@vue/compiler-dom': 3.2.39
       '@vue/compiler-ssr': 3.2.39
@@ -8412,7 +8410,7 @@ packages:
   /@vue/compiler-sfc@3.2.40:
     resolution: {integrity: sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.40
       '@vue/compiler-dom': 3.2.40
       '@vue/compiler-ssr': 3.2.40
@@ -8426,7 +8424,7 @@ packages:
   /@vue/compiler-sfc@3.2.41:
     resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.41
       '@vue/compiler-dom': 3.2.41
       '@vue/compiler-ssr': 3.2.41
@@ -8476,7 +8474,7 @@ packages:
   /@vue/reactivity-transform@3.2.37:
     resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.37
       '@vue/shared': 3.2.37
       estree-walker: 2.0.2
@@ -8486,7 +8484,7 @@ packages:
   /@vue/reactivity-transform@3.2.39:
     resolution: {integrity: sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.39
       '@vue/shared': 3.2.39
       estree-walker: 2.0.2
@@ -8495,7 +8493,7 @@ packages:
   /@vue/reactivity-transform@3.2.40:
     resolution: {integrity: sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.40
       '@vue/shared': 3.2.40
       estree-walker: 2.0.2
@@ -8504,7 +8502,7 @@ packages:
   /@vue/reactivity-transform@3.2.41:
     resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@vue/compiler-core': 3.2.41
       '@vue/shared': 3.2.41
       estree-walker: 2.0.2
@@ -8758,7 +8756,7 @@ packages:
     resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
     engines: {node: '>= 6.0.0'}
     dependencies:
-      debug: 4.3.4
+      debug: 4.4.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -8884,10 +8882,6 @@ packages:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
     dev: true
 
-  /argv-formatter@1.0.0:
-    resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==}
-    dev: true
-
   /aria-query@4.2.2:
     resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==}
     engines: {node: '>=6.0'}
@@ -9007,11 +9001,6 @@ packages:
       get-intrinsic: 1.2.1
     dev: true
 
-  /arrify@1.0.1:
-    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
-    engines: {node: '>=0.10.0'}
-    dev: true
-
   /asap@2.0.6:
     resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
     dev: false
@@ -9219,10 +9208,6 @@ packages:
       - supports-color
     dev: true
 
-  /babel-plugin-add-module-exports@0.2.1:
-    resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==}
-    dev: true
-
   /babel-plugin-dynamic-import-node@2.3.3:
     resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
     dependencies:
@@ -9246,7 +9231,7 @@ packages:
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
       '@babel/template': 7.18.10
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       '@types/babel__core': 7.1.19
       '@types/babel__traverse': 7.17.1
     dev: true
@@ -9271,7 +9256,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.16.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       html-entities: 2.3.2
     dev: true
 
@@ -9305,7 +9290,7 @@ packages:
       '@babel/compat-data': 7.19.1
       '@babel/core': 7.27.1
       '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
-      semver: 6.3.0
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -9839,15 +9824,6 @@ packages:
     engines: {node: '>= 6'}
     dev: true
 
-  /camelcase-keys@6.2.2:
-    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
-    engines: {node: '>=8'}
-    dependencies:
-      camelcase: 5.3.1
-      map-obj: 4.3.0
-      quick-lru: 4.0.1
-    dev: true
-
   /camelcase@5.3.1:
     resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
     engines: {node: '>=6'}
@@ -9920,6 +9896,11 @@ packages:
       ansi-styles: 4.3.0
       supports-color: 7.2.0
 
+  /chalk@5.4.1:
+    resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
+    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+    dev: true
+
   /char-regex@1.0.2:
     resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
     engines: {node: '>=10'}
@@ -10205,25 +10186,22 @@ packages:
       - supports-color
     dev: false
 
-  /conventional-changelog-angular@5.0.13:
-    resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
-    engines: {node: '>=10'}
+  /conventional-changelog-angular@7.0.0:
+    resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==}
+    engines: {node: '>=16'}
     dependencies:
       compare-func: 2.0.0
-      q: 1.5.1
     dev: true
 
-  /conventional-commits-parser@3.2.4:
-    resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}
-    engines: {node: '>=10'}
+  /conventional-commits-parser@5.0.0:
+    resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==}
+    engines: {node: '>=16'}
     hasBin: true
     dependencies:
       JSONStream: 1.3.5
-      is-text-path: 1.0.1
-      lodash: 4.17.21
-      meow: 8.1.2
-      split2: 3.2.2
-      through2: 4.0.2
+      is-text-path: 2.0.0
+      meow: 12.1.1
+      split2: 4.2.0
     dev: true
 
   /convert-source-map@1.8.0:
@@ -10303,14 +10281,6 @@ packages:
       - encoding
     dev: false
 
-  /cross-spawn@5.1.0:
-    resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
-    dependencies:
-      lru-cache: 4.1.5
-      shebang-command: 1.2.0
-      which: 1.3.1
-    dev: true
-
   /cross-spawn@6.0.5:
     resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
     engines: {node: '>=4.8'}
@@ -10392,14 +10362,6 @@ packages:
   /csstype@3.1.0:
     resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==}
 
-  /current-git-branch@1.1.0:
-    resolution: {integrity: sha512-n5mwGZllLsFzxDPtTmadqGe4IIBPfqPbiIRX4xgFR9VK/Bx47U+94KiVkxSKAKN6/s43TlkztS2GZpgMKzwQ8A==}
-    dependencies:
-      babel-plugin-add-module-exports: 0.2.1
-      execa: 0.6.3
-      is-git-repository: 1.1.1
-    dev: true
-
   /data-uri-to-buffer@3.0.1:
     resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
     engines: {node: '>= 6'}
@@ -10475,17 +10437,21 @@ packages:
     dependencies:
       ms: 2.1.2
 
-  /decamelize-keys@1.1.0:
-    resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==}
-    engines: {node: '>=0.10.0'}
+  /debug@4.4.1:
+    resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
+    engines: {node: '>=6.0'}
+    peerDependencies:
+      supports-color: '*'
+    peerDependenciesMeta:
+      supports-color:
+        optional: true
     dependencies:
-      decamelize: 1.2.0
-      map-obj: 1.0.1
-    dev: true
+      ms: 2.1.3
 
   /decamelize@1.2.0:
     resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
     engines: {node: '>=0.10.0'}
+    dev: false
 
   /decimal.js@10.4.3:
     resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
@@ -10724,12 +10690,6 @@ packages:
     engines: {node: '>=12'}
     dev: true
 
-  /duplexer2@0.1.4:
-    resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==}
-    dependencies:
-      readable-stream: 2.3.7
-    dev: true
-
   /duplexer@0.1.1:
     resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==}
     dev: true
@@ -11718,19 +11678,6 @@ packages:
     resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==}
     dev: false
 
-  /execa@0.6.3:
-    resolution: {integrity: sha512-/teX3MDLFBdYUhRk8WCBYboIMUmqeizu0m9Z3YF3JWrbEh/SlZg00vLJSaAGWw3wrZ9tE0buNw79eaAPYhUuvg==}
-    engines: {node: '>=4'}
-    dependencies:
-      cross-spawn: 5.1.0
-      get-stream: 3.0.0
-      is-stream: 1.1.0
-      npm-run-path: 2.0.2
-      p-finally: 1.0.0
-      signal-exit: 3.0.7
-      strip-eof: 1.0.0
-    dev: true
-
   /execa@1.0.0:
     resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
     engines: {node: '>=6'}
@@ -12358,11 +12305,6 @@ packages:
     engines: {node: '>=8.0.0'}
     dev: true
 
-  /get-stream@3.0.0:
-    resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==}
-    engines: {node: '>=4'}
-    dev: true
-
   /get-stream@4.1.0:
     resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
     engines: {node: '>=6'}
@@ -12397,17 +12339,6 @@ packages:
     resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==}
     engines: {node: '>=6'}
 
-  /git-log-parser@1.2.0:
-    resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==}
-    dependencies:
-      argv-formatter: 1.0.0
-      spawn-error-forwarder: 1.0.0
-      split2: 1.0.0
-      stream-combiner2: 1.1.1
-      through2: 2.0.5
-      traverse: 0.6.6
-    dev: true
-
   /glob-parent@5.1.2:
     resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
     engines: {node: '>= 6'}
@@ -12588,11 +12519,6 @@ packages:
       duplexer: 0.1.2
     dev: true
 
-  /hard-rejection@2.1.0:
-    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
-    engines: {node: '>=6'}
-    dev: true
-
   /has-bigints@1.0.2:
     resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
     dev: true
@@ -12700,13 +12626,6 @@ packages:
     resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
     dev: true
 
-  /hosted-git-info@4.1.0:
-    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
-    engines: {node: '>=10'}
-    dependencies:
-      lru-cache: 6.0.0
-    dev: true
-
   /html-encoding-sniffer@2.0.1:
     resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==}
     engines: {node: '>=10'}
@@ -12746,7 +12665,7 @@ packages:
     dependencies:
       '@tootallnate/once': 1.1.2
       agent-base: 6.0.2
-      debug: 4.3.4
+      debug: 4.4.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -12757,7 +12676,7 @@ packages:
     dependencies:
       '@tootallnate/once': 2.0.0
       agent-base: 6.0.2
-      debug: 4.3.4
+      debug: 4.4.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -12767,7 +12686,7 @@ packages:
     engines: {node: '>= 6'}
     dependencies:
       agent-base: 6.0.2
-      debug: 4.3.4
+      debug: 4.4.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -13086,13 +13005,6 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
-  /is-git-repository@1.1.1:
-    resolution: {integrity: sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==}
-    dependencies:
-      execa: 0.6.3
-      path-is-absolute: 1.0.1
-    dev: true
-
   /is-glob@4.0.3:
     resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
     engines: {node: '>=0.10.0'}
@@ -13156,11 +13068,6 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
-  /is-plain-obj@1.1.0:
-    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
-
   /is-plain-object@2.0.4:
     resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
     engines: {node: '>=0.10.0'}
@@ -13194,6 +13101,7 @@ packages:
   /is-stream@1.1.0:
     resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
     engines: {node: '>=0.10.0'}
+    dev: false
 
   /is-stream@2.0.1:
     resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
@@ -13219,11 +13127,11 @@ packages:
       has-symbols: 1.0.3
     dev: true
 
-  /is-text-path@1.0.1:
-    resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
-    engines: {node: '>=0.10.0'}
+  /is-text-path@2.0.0:
+    resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==}
+    engines: {node: '>=8'}
     dependencies:
-      text-extensions: 1.9.0
+      text-extensions: 2.4.0
     dev: true
 
   /is-typed-array@1.1.10:
@@ -13318,10 +13226,10 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@istanbuljs/schema': 0.1.3
       istanbul-lib-coverage: 3.2.0
-      semver: 6.3.0
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -13339,7 +13247,7 @@ packages:
     resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
     engines: {node: '>=10'}
     dependencies:
-      debug: 4.3.4
+      debug: 4.4.1
       istanbul-lib-coverage: 3.2.0
       source-map: 0.6.1
     transitivePeerDependencies:
@@ -13370,7 +13278,7 @@ packages:
       '@jest/environment': 27.5.1
       '@jest/test-result': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       chalk: 4.1.2
       co: 4.6.0
       dedent: 0.7.0
@@ -13453,7 +13361,7 @@ packages:
       pretty-format: 27.5.1
       slash: 3.0.0
       strip-json-comments: 3.1.1
-      ts-node: 10.8.2(@types/node@17.0.45)(typescript@4.8.3)
+      ts-node: 10.8.2(@types/node@22.15.3)(typescript@4.8.3)
     transitivePeerDependencies:
       - bufferutil
       - canvas
@@ -13506,7 +13414,7 @@ packages:
       '@jest/environment': 27.5.1
       '@jest/fake-timers': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       jest-mock: 27.5.1
       jest-util: 27.5.1
       jsdom: 16.7.0
@@ -13524,7 +13432,7 @@ packages:
       '@jest/environment': 27.5.1
       '@jest/fake-timers': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       jest-mock: 27.5.1
       jest-util: 27.5.1
     dev: true
@@ -13544,7 +13452,7 @@ packages:
     dependencies:
       '@jest/types': 26.6.2
       '@types/graceful-fs': 4.1.5
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       anymatch: 3.1.2
       fb-watchman: 2.0.1
       graceful-fs: 4.2.10
@@ -13567,7 +13475,7 @@ packages:
     dependencies:
       '@jest/types': 27.5.1
       '@types/graceful-fs': 4.1.5
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       anymatch: 3.1.2
       fb-watchman: 2.0.1
       graceful-fs: 4.2.10
@@ -13589,7 +13497,7 @@ packages:
       '@jest/source-map': 27.5.1
       '@jest/test-result': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       chalk: 4.1.2
       co: 4.6.0
       expect: 27.5.1
@@ -13628,7 +13536,7 @@ packages:
     resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       '@jest/types': 27.5.1
       '@types/stack-utils': 2.0.1
       chalk: 4.1.2
@@ -13644,7 +13552,7 @@ packages:
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
     dev: true
 
   /jest-pnp-resolver@1.2.2(jest-resolve@27.5.1):
@@ -13705,7 +13613,7 @@ packages:
       '@jest/test-result': 27.5.1
       '@jest/transform': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       chalk: 4.1.2
       emittery: 0.8.1
       graceful-fs: 4.2.10
@@ -13762,7 +13670,7 @@ packages:
     resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==}
     engines: {node: '>= 10.14.2'}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       graceful-fs: 4.2.10
     dev: false
 
@@ -13770,7 +13678,7 @@ packages:
     resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       graceful-fs: 4.2.10
     dev: true
 
@@ -13782,7 +13690,7 @@ packages:
       '@babel/generator': 7.19.0
       '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1)
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       '@jest/transform': 27.5.1
       '@jest/types': 27.5.1
       '@types/babel__traverse': 7.17.1
@@ -13799,7 +13707,7 @@ packages:
       jest-util: 27.5.1
       natural-compare: 1.4.0
       pretty-format: 27.5.1
-      semver: 7.5.3
+      semver: 7.7.2
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -13809,7 +13717,7 @@ packages:
     engines: {node: '>= 10.14.2'}
     dependencies:
       '@jest/types': 26.6.2
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       chalk: 4.1.2
       graceful-fs: 4.2.10
       is-ci: 2.0.0
@@ -13821,7 +13729,7 @@ packages:
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       chalk: 4.1.2
       ci-info: 3.3.2
       graceful-fs: 4.2.10
@@ -13858,7 +13766,7 @@ packages:
     dependencies:
       '@jest/test-result': 27.5.1
       '@jest/types': 27.5.1
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       ansi-escapes: 4.3.2
       chalk: 4.1.2
       jest-util: 27.5.1
@@ -13869,7 +13777,7 @@ packages:
     resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
     engines: {node: '>= 10.13.0'}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       merge-stream: 2.0.0
       supports-color: 7.2.0
 
@@ -13877,7 +13785,7 @@ packages:
     resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
     engines: {node: '>= 10.13.0'}
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       merge-stream: 2.0.0
       supports-color: 8.1.1
     dev: true
@@ -14553,13 +14461,6 @@ packages:
       tslib: 2.6.0
     dev: true
 
-  /lru-cache@4.1.5:
-    resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
-    dependencies:
-      pseudomap: 1.0.2
-      yallist: 2.1.2
-    dev: true
-
   /lru-cache@5.1.1:
     resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
     dependencies:
@@ -14570,10 +14471,6 @@ packages:
     engines: {node: '>=10'}
     dependencies:
       yallist: 4.0.0
-
-  /luxon@2.4.0:
-    resolution: {integrity: sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA==}
-    engines: {node: '>=12'}
     dev: true
 
   /lz-string@1.4.4:
@@ -14618,7 +14515,7 @@ packages:
     resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
     engines: {node: '>=8'}
     dependencies:
-      semver: 6.3.0
+      semver: 6.3.1
     dev: true
 
   /make-error@1.3.6:
@@ -14634,16 +14531,6 @@ packages:
     resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
     engines: {node: '>=0.10.0'}
 
-  /map-obj@1.0.1:
-    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
-
-  /map-obj@4.3.0:
-    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
-    engines: {node: '>=8'}
-    dev: true
-
   /map-visit@1.0.0:
     resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
     engines: {node: '>=0.10.0'}
@@ -14673,21 +14560,9 @@ packages:
       readable-stream: 2.3.7
     dev: true
 
-  /meow@8.1.2:
-    resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
-    engines: {node: '>=10'}
-    dependencies:
-      '@types/minimist': 1.2.2
-      camelcase-keys: 6.2.2
-      decamelize-keys: 1.1.0
-      hard-rejection: 2.1.0
-      minimist-options: 4.1.0
-      normalize-package-data: 3.0.3
-      read-pkg-up: 7.0.1
-      redent: 3.0.0
-      trim-newlines: 3.0.1
-      type-fest: 0.18.1
-      yargs-parser: 20.2.4
+  /meow@12.1.1:
+    resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
+    engines: {node: '>=16.10'}
     dev: true
 
   /merge-anything@5.0.4:
@@ -15005,7 +14880,7 @@ packages:
     resolution: {integrity: sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ==}
     dependencies:
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       invariant: 2.2.4
       metro-symbolicate: 0.59.0
       ob1: 0.59.0
@@ -15019,7 +14894,7 @@ packages:
     resolution: {integrity: sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==}
     dependencies:
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       invariant: 2.2.4
       metro-symbolicate: 0.64.0
       nullthrows: 1.1.1
@@ -15077,7 +14952,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/generator': 7.19.0
       '@babel/parser': 7.27.2
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       babel-preset-fbjs: 3.4.0(@babel/core@7.27.1)
       metro: 0.64.0
       metro-babel-transformer: 0.64.0
@@ -15098,13 +14973,13 @@ packages:
     resolution: {integrity: sha512-G2OC08Rzfs0kqnSEuKo2yZxR+/eNUpA93Ru45c60uN0Dw3HPrDi+ZBipgFftC6iLE0l+6hu8roFFIofotWxybw==}
     hasBin: true
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       '@babel/core': 7.19.1
       '@babel/generator': 7.19.0
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@babel/template': 7.18.10
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       absolute-path: 0.0.0
       accepts: 1.3.8
       async: 2.6.4
@@ -15273,15 +15148,6 @@ packages:
     dependencies:
       brace-expansion: 1.1.11
 
-  /minimist-options@4.1.0:
-    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
-    engines: {node: '>= 6'}
-    dependencies:
-      arrify: 1.0.1
-      is-plain-obj: 1.1.0
-      kind-of: 6.0.3
-    dev: true
-
   /minimist@1.2.6:
     resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
 
@@ -15568,16 +15434,6 @@ packages:
       validate-npm-package-license: 3.0.4
     dev: true
 
-  /normalize-package-data@3.0.3:
-    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
-    engines: {node: '>=10'}
-    dependencies:
-      hosted-git-info: 4.1.0
-      is-core-module: 2.12.1
-      semver: 7.5.3
-      validate-npm-package-license: 3.0.4
-    dev: true
-
   /normalize-path@2.1.1:
     resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
     engines: {node: '>=0.10.0'}
@@ -15599,6 +15455,7 @@ packages:
     engines: {node: '>=4'}
     dependencies:
       path-key: 2.0.1
+    dev: false
 
   /npm-run-path@4.0.1:
     resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
@@ -15966,6 +15823,7 @@ packages:
   /p-finally@1.0.0:
     resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
     engines: {node: '>=4'}
+    dev: false
 
   /p-limit@2.3.0:
     resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
@@ -16058,7 +15916,7 @@ packages:
     resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
     engines: {node: '>=8'}
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       error-ex: 1.3.2
       json-parse-even-better-errors: 2.3.1
       lines-and-columns: 1.2.4
@@ -16287,7 +16145,7 @@ packages:
     dependencies:
       lilconfig: 2.0.6
       postcss: 8.4.21
-      ts-node: 10.8.2(@types/node@17.0.45)(typescript@4.8.3)
+      ts-node: 10.8.2(@types/node@22.15.3)(typescript@4.8.3)
       yaml: 1.10.2
     dev: true
 
@@ -16327,7 +16185,7 @@ packages:
     engines: {node: ^10 || ^12 || >=14}
     dependencies:
       nanoid: 3.3.4
-      picocolors: 1.0.0
+      picocolors: 1.1.1
       source-map-js: 1.0.2
     dev: true
 
@@ -16344,7 +16202,7 @@ packages:
     engines: {node: ^10 || ^12 || >=14}
     dependencies:
       nanoid: 3.3.4
-      picocolors: 1.0.0
+      picocolors: 1.1.1
       source-map-js: 1.0.2
     dev: false
 
@@ -16446,10 +16304,6 @@ packages:
     resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
     dev: true
 
-  /pseudomap@1.0.2:
-    resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
-    dev: true
-
   /psl@1.9.0:
     resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
     dev: true
@@ -16466,11 +16320,6 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
-  /q@1.5.1:
-    resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
-    engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
-    dev: true
-
   /query-string@7.1.1:
     resolution: {integrity: sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==}
     engines: {node: '>=6'}
@@ -16487,11 +16336,6 @@ packages:
   /queue-microtask@1.2.3:
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
 
-  /quick-lru@4.0.1:
-    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
-    engines: {node: '>=8'}
-    dev: true
-
   /quick-lru@5.1.1:
     resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
     engines: {node: '>=10'}
@@ -17421,6 +17265,12 @@ packages:
     hasBin: true
     dependencies:
       lru-cache: 6.0.0
+    dev: true
+
+  /semver@7.7.2:
+    resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
+    engines: {node: '>=10'}
+    hasBin: true
 
   /send@0.18.0:
     resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
@@ -17565,6 +17415,16 @@ packages:
     engines: {node: '>=14'}
     dev: true
 
+  /simple-git@3.27.0:
+    resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
+    dependencies:
+      '@kwsites/file-exists': 1.1.1
+      '@kwsites/promise-deferred': 1.1.1
+      debug: 4.4.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /simple-plist@1.3.1:
     resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==}
     dependencies:
@@ -17696,7 +17556,7 @@ packages:
     dependencies:
       '@babel/generator': 7.19.0
       '@babel/helper-module-imports': 7.18.6
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       solid-js: 1.5.4
     dev: true
 
@@ -17785,10 +17645,6 @@ packages:
     resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==}
     dev: true
 
-  /spawn-error-forwarder@1.0.0:
-    resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==}
-    dev: true
-
   /spdx-correct@3.1.1:
     resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
     dependencies:
@@ -17822,16 +17678,9 @@ packages:
     dependencies:
       extend-shallow: 3.0.2
 
-  /split2@1.0.0:
-    resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==}
-    dependencies:
-      through2: 2.0.5
-    dev: true
-
-  /split2@3.2.2:
-    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
-    dependencies:
-      readable-stream: 3.6.0
+  /split2@4.2.0:
+    resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
+    engines: {node: '>= 10.x'}
     dev: true
 
   /sprintf-js@1.0.3:
@@ -17880,19 +17729,6 @@ packages:
     resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==}
     engines: {node: '>= 0.10.0'}
 
-  /stream-combiner2@1.1.1:
-    resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==}
-    dependencies:
-      duplexer2: 0.1.4
-      readable-stream: 2.3.7
-    dev: true
-
-  /stream-to-array@2.3.0:
-    resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==}
-    dependencies:
-      any-promise: 1.3.0
-    dev: true
-
   /streamsearch@1.1.0:
     resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
     engines: {node: '>=10.0.0'}
@@ -18007,6 +17843,7 @@ packages:
   /strip-eof@1.0.0:
     resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
     engines: {node: '>=0.10.0'}
+    dev: false
 
   /strip-final-newline@2.0.0:
     resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
@@ -18371,9 +18208,9 @@ packages:
       minimatch: 3.1.2
     dev: true
 
-  /text-extensions@1.9.0:
-    resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
-    engines: {node: '>=0.10'}
+  /text-extensions@2.4.0:
+    resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
+    engines: {node: '>=8'}
     dev: true
 
   /text-table@0.2.0:
@@ -18404,12 +18241,7 @@ packages:
     dependencies:
       readable-stream: 2.3.7
       xtend: 4.0.2
-
-  /through2@4.0.2:
-    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
-    dependencies:
-      readable-stream: 3.6.0
-    dev: true
+    dev: false
 
   /through@2.3.8:
     resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
@@ -18557,20 +18389,11 @@ packages:
       punycode: 2.1.1
     dev: true
 
-  /traverse@0.6.6:
-    resolution: {integrity: sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==}
-    dev: true
-
   /tree-kill@1.2.2:
     resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
     hasBin: true
     dev: true
 
-  /trim-newlines@3.0.1:
-    resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
-    engines: {node: '>=8'}
-    dev: true
-
   /ts-interface-checker@0.1.13:
     resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
 
@@ -18610,7 +18433,7 @@ packages:
       yargs-parser: 20.2.4
     dev: true
 
-  /ts-node@10.8.2(@types/node@17.0.45)(typescript@4.8.3):
+  /ts-node@10.8.2(@types/node@22.15.3)(typescript@4.8.3):
     resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==}
     hasBin: true
     peerDependencies:
@@ -18629,7 +18452,7 @@ packages:
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.3
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       acorn: 8.7.1
       acorn-walk: 8.2.0
       arg: 4.1.3
@@ -18759,11 +18582,6 @@ packages:
     engines: {node: '>=4'}
     dev: true
 
-  /type-fest@0.18.1:
-    resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
-    engines: {node: '>=10'}
-    dev: true
-
   /type-fest@0.20.2:
     resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
     engines: {node: '>=10'}
@@ -18861,6 +18679,9 @@ packages:
       which-boxed-primitive: 1.0.2
     dev: true
 
+  /undici-types@6.21.0:
+    resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+
   /undici@5.20.0:
     resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==}
     engines: {node: '>=12.18'}
@@ -18956,7 +18777,7 @@ packages:
     dependencies:
       browserslist: 4.21.9
       escalade: 3.1.1
-      picocolors: 1.0.0
+      picocolors: 1.1.1
     dev: true
 
   /update-browserslist-db@1.0.9(browserslist@4.21.4):
@@ -18967,7 +18788,7 @@ packages:
     dependencies:
       browserslist: 4.21.4
       escalade: 3.1.1
-      picocolors: 1.0.0
+      picocolors: 1.1.1
 
   /update-browserslist-db@1.1.3(browserslist@4.24.5):
     resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
@@ -19101,10 +18922,10 @@ packages:
     hasBin: true
     dependencies:
       cac: 6.7.14
-      debug: 4.3.4
+      debug: 4.4.1
       mlly: 1.1.0
       pathe: 0.2.0
-      picocolors: 1.0.0
+      picocolors: 1.1.1
       source-map: 0.6.1
       source-map-support: 0.5.21
       vite: 3.2.2
@@ -19245,7 +19066,7 @@ packages:
       fsevents: 2.3.2
     dev: true
 
-  /vite@4.0.4(@types/node@17.0.45):
+  /vite@4.0.4(@types/node@22.15.3):
     resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
@@ -19270,7 +19091,7 @@ packages:
       terser:
         optional: true
     dependencies:
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       esbuild: 0.16.15
       postcss: 8.4.21
       resolve: 1.22.1
@@ -19287,7 +19108,7 @@ packages:
       vite:
         optional: true
     dependencies:
-      vite: 4.0.4(@types/node@17.0.45)
+      vite: 4.0.4(@types/node@22.15.3)
     dev: true
 
   /vitest@0.27.1(jsdom@20.0.3):
@@ -19314,7 +19135,7 @@ packages:
     dependencies:
       '@types/chai': 4.3.4
       '@types/chai-subset': 1.3.3
-      '@types/node': 17.0.45
+      '@types/node': 22.15.3
       acorn: 8.8.1
       acorn-walk: 8.2.0
       cac: 6.7.14
@@ -19766,15 +19587,12 @@ packages:
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
     engines: {node: '>=10'}
 
-  /yallist@2.1.2:
-    resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
-    dev: true
-
   /yallist@3.1.1:
     resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
 
   /yallist@4.0.0:
     resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+    dev: true
 
   /yaml@1.10.2:
     resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
diff --git a/project.json b/project.json
index ca5636eacc..2569c5e709 100644
--- a/project.json
+++ b/project.json
@@ -17,11 +17,7 @@
       "dependsOn": ["rollup", "^build:types", "^build"]
     },
     "test:build": {
-      "executor": "nx:run-commands",
-      "options": {
-        "commands": ["bundlewatch", "pnpm run validatePackages"],
-        "parallel": true
-      }
+      "command": "bundlewatch"
     }
   },
   "implicitDependencies": [
diff --git a/scripts/config.ts b/scripts/config.ts
deleted file mode 100644
index ccbe8660f9..0000000000
--- a/scripts/config.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-import path from 'path'
-import type { BranchConfig, Package } from './types'
-
-// TODO: List your npm packages here. The first package will be used as the versioner.
-export const packages: Package[] = [
-  {
-    name: '@tanstack/query-core',
-    packageDir: 'query-core',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/query-persist-client-core',
-    packageDir: 'query-persist-client-core',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/query-async-storage-persister',
-    packageDir: 'query-async-storage-persister',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/query-broadcast-client-experimental',
-    packageDir: 'query-broadcast-client-experimental',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/query-sync-storage-persister',
-    packageDir: 'query-sync-storage-persister',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/react-query',
-    packageDir: 'react-query',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/react-query-devtools',
-    packageDir: 'react-query-devtools',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/react-query-persist-client',
-    packageDir: 'react-query-persist-client',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/solid-query',
-    packageDir: 'solid-query',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/svelte-query',
-    packageDir: 'svelte-query',
-    srcDir: 'src',
-    entries: ['module', 'svelte', 'types'],
-  },
-  {
-    name: '@tanstack/vue-query',
-    packageDir: 'vue-query',
-    srcDir: 'src',
-    entries: ['main', 'module', 'types'],
-  },
-  {
-    name: '@tanstack/eslint-plugin-query',
-    packageDir: 'eslint-plugin-query',
-    srcDir: 'src',
-    entries: ['main'],
-  },
-]
-
-export const branchConfigs: Record<string, BranchConfig> = {
-  main: {
-    prerelease: false,
-  },
-  next: {
-    prerelease: true,
-  },
-  beta: {
-    prerelease: true,
-  },
-  alpha: {
-    prerelease: true,
-  },
-  rc: {
-    prerelease: true,
-  },
-  v4: {
-    prerelease: false,
-    previousVersion: true,
-  },
-}
-
-export const rootDir = path.resolve(__dirname, '..')
diff --git a/scripts/project.json b/scripts/project.json
deleted file mode 100644
index 5726481430..0000000000
--- a/scripts/project.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "scripts",
-  "$schema": "../../node_modules/nx/schemas/project-schema.json",
-  "sourceRoot": "scripts",
-  "targets": {
-    "test:eslint": { "command": "eslint ./scripts" }
-  }
-}
diff --git a/scripts/publish.mjs b/scripts/publish.mjs
new file mode 100644
index 0000000000..1e64099e8e
--- /dev/null
+++ b/scripts/publish.mjs
@@ -0,0 +1,85 @@
+// @ts-check
+
+import { resolve } from 'node:path'
+import { fileURLToPath } from 'node:url'
+import { publish } from '@tanstack/publish-config'
+
+const __dirname = fileURLToPath(new URL('.', import.meta.url))
+
+await publish({
+  packages: [
+    {
+      name: '@tanstack/query-core',
+      packageDir: 'packages/query-core',
+    },
+    {
+      name: '@tanstack/query-persist-client-core',
+      packageDir: 'packages/query-persist-client-core',
+    },
+    {
+      name: '@tanstack/query-async-storage-persister',
+      packageDir: 'packages/query-async-storage-persister',
+    },
+    {
+      name: '@tanstack/query-broadcast-client-experimental',
+      packageDir: 'packages/query-broadcast-client-experimental',
+    },
+    {
+      name: '@tanstack/query-sync-storage-persister',
+      packageDir: 'packages/query-sync-storage-persister',
+    },
+    {
+      name: '@tanstack/react-query',
+      packageDir: 'packages/react-query',
+    },
+    {
+      name: '@tanstack/react-query-devtools',
+      packageDir: 'packages/react-query-devtools',
+    },
+    {
+      name: '@tanstack/react-query-persist-client',
+      packageDir: 'packages/react-query-persist-client',
+    },
+    {
+      name: '@tanstack/solid-query',
+      packageDir: 'packages/solid-query',
+    },
+    {
+      name: '@tanstack/svelte-query',
+      packageDir: 'packages/svelte-query',
+    },
+    {
+      name: '@tanstack/vue-query',
+      packageDir: 'packages/vue-query',
+    },
+    {
+      name: '@tanstack/eslint-plugin-query',
+      packageDir: 'packages/eslint-plugin-query',
+    },
+  ],
+  branchConfigs: {
+    main: {
+      prerelease: false,
+    },
+    next: {
+      prerelease: true,
+    },
+    beta: {
+      prerelease: true,
+    },
+    alpha: {
+      prerelease: true,
+    },
+    rc: {
+      prerelease: true,
+    },
+    v4: {
+      prerelease: false,
+      previousVersion: true,
+    },
+  },
+  rootDir: resolve(__dirname, '..'),
+  branch: process.env.BRANCH,
+  tag: process.env.TAG,
+  ghToken: process.env.GH_TOKEN,
+})
diff --git a/scripts/publish.ts b/scripts/publish.ts
deleted file mode 100644
index bdd3273503..0000000000
--- a/scripts/publish.ts
+++ /dev/null
@@ -1,457 +0,0 @@
-// Originally ported to TS from https://github.com/remix-run/react-router/tree/main/scripts/{version,publish}.js
-import path from 'path'
-import { execSync } from 'child_process'
-import chalk from 'chalk'
-import jsonfile from 'jsonfile'
-import semver from 'semver'
-import currentGitBranch from 'current-git-branch'
-import parseCommit from '@commitlint/parse'
-import log from 'git-log-parser'
-import streamToArray from 'stream-to-array'
-import axios from 'axios'
-import { DateTime } from 'luxon'
-import { branchConfigs, packages, rootDir } from './config'
-import type { BranchConfig, Commit } from './types'
-
-import type { PackageJson } from 'type-fest'
-
-const releaseCommitMsg = (version: string) => `release: v${version}`
-
-async function run() {
-  const branchName: string = process.env.BRANCH ?? currentGitBranch()
-  const isMainBranch = branchName === 'main'
-  const npmTag = isMainBranch ? 'latest' : branchName
-
-  const branchConfig: BranchConfig | undefined = branchConfigs[branchName]
-
-  if (!branchConfig) {
-    throw new Error(`No publish config found for branch: ${branchName}`)
-  }
-
-  // Get tags
-  let tags: string[] = execSync('git tag').toString().split('\n')
-
-  // Filter tags to our branch/pre-release combo
-  tags = tags
-    .filter((tag) => semver.valid(tag))
-    .filter((tag) => {
-      // If this is an older release, filter to only include that version
-      if (branchConfig.previousVersion) {
-        return tag.startsWith(branchName)
-      }
-      if (semver.prerelease(tag) === null) {
-        return isMainBranch
-      } else {
-        return !isMainBranch
-      }
-    })
-    // sort by latest
-    .sort(semver.compare)
-
-  // Get the latest tag
-  let latestTag = [...tags].pop()
-
-  let range = `${latestTag}..HEAD`
-  // let range = ``;
-
-  // If RELEASE_ALL is set via a commit subject or body, all packages will be
-  // released regardless if they have changed files matching the package srcDir.
-  let RELEASE_ALL = false
-
-  if (!latestTag || process.env.TAG) {
-    if (process.env.TAG) {
-      if (!process.env.TAG.startsWith('v')) {
-        throw new Error(
-          `process.env.TAG must start with "v", eg. v0.0.0. You supplied ${process.env.TAG}`,
-        )
-      }
-      console.info(
-        chalk.yellow(
-          `Tag is set to ${process.env.TAG}. This will force release all packages. Publishing...`,
-        ),
-      )
-      RELEASE_ALL = true
-
-      // Is it a major version?
-      if (!semver.patch(process.env.TAG) && !semver.minor(process.env.TAG)) {
-        range = `beta..HEAD`
-        latestTag = process.env.TAG
-      }
-    } else {
-      throw new Error(
-        'Could not find latest tag! To make a release tag of v0.0.1, run with TAG=v0.0.1',
-      )
-    }
-  }
-
-  console.info(`Git Range: ${range}`)
-
-  // Get the commits since the latest tag
-  const commitsSinceLatestTag = (
-    await new Promise<Commit[]>((resolve, reject) => {
-      const strm = log.parse({
-        _: range,
-      })
-
-      streamToArray(strm, function (err: any, arr: any[]) {
-        if (err) return reject(err)
-
-        Promise.all(
-          arr.map(async (d) => {
-            const parsed = await parseCommit(d.subject)
-
-            return { ...d, parsed }
-          }),
-        ).then((res) => resolve(res.filter(Boolean)))
-      })
-    })
-  ).filter((commit: Commit) => {
-    const exclude = [
-      commit.subject.startsWith('Merge branch '), // No merge commits
-      commit.subject.startsWith(releaseCommitMsg('')), // No example update commits
-    ].some(Boolean)
-
-    return !exclude
-  })
-
-  console.info(
-    `Parsing ${commitsSinceLatestTag.length} commits since ${latestTag}...`,
-  )
-
-  // Pares the commit messsages, log them, and determine the type of release needed
-  let recommendedReleaseLevel: number = commitsSinceLatestTag.reduce(
-    (releaseLevel, commit) => {
-      if (commit.parsed.type) {
-        if (['fix', 'refactor', 'perf'].includes(commit.parsed.type!)) {
-          releaseLevel = Math.max(releaseLevel, 0)
-        }
-        if (['feat'].includes(commit.parsed.type!)) {
-          releaseLevel = Math.max(releaseLevel, 1)
-        }
-        if (commit.body.includes('BREAKING CHANGE')) {
-          releaseLevel = Math.max(releaseLevel, 2)
-        }
-        if (
-          commit.subject.includes('RELEASE_ALL') ||
-          commit.body.includes('RELEASE_ALL')
-        ) {
-          RELEASE_ALL = true
-        }
-      }
-
-      return releaseLevel
-    },
-    -1,
-  )
-
-  const changedFiles: string[] = process.env.TAG
-    ? []
-    : execSync(`git diff ${latestTag} --name-only`)
-        .toString()
-        .split('\n')
-        .filter(Boolean)
-
-  const changedPackages = RELEASE_ALL
-    ? packages
-    : packages.filter((pkg) => {
-        const changed = changedFiles.some(
-          (file) =>
-            file.startsWith(path.join('packages', pkg.packageDir, 'src')) ||
-            file.startsWith(
-              path.join('packages', pkg.packageDir, 'package.json'),
-            ),
-        )
-        return changed
-      })
-
-  // If a package has a dependency that has been updated, we need to update the
-  // package that depends on it as well.
-  // run this multiple times so that dependencies of dependencies are also included
-  // changes to query-core affect query-persist-client-core, which affects react-query-persist-client and then indirectly the sync/async persisters
-  for (let runs = 0; runs < 3; runs++) {
-    for (const pkg of packages) {
-      const packageJson = await readPackageJson(
-        path.resolve(rootDir, 'packages', pkg.packageDir, 'package.json'),
-      )
-      const allDependencies = Object.keys(
-        Object.assign(
-          {},
-          packageJson.dependencies ?? {},
-          packageJson.peerDependencies ?? {},
-        ),
-      )
-
-      if (
-        allDependencies.find((dep) =>
-          changedPackages.find((d) => d.name === dep),
-        ) &&
-        !changedPackages.find((d) => d.name === pkg.name)
-      ) {
-        console.info(
-          'adding package dependency',
-          pkg.name,
-          'to changed packages',
-        )
-        changedPackages.push(pkg)
-      }
-    }
-  }
-
-  if (!process.env.TAG) {
-    if (recommendedReleaseLevel === 2) {
-      console.info(
-        `Major versions releases must be tagged and released manually.`,
-      )
-      return
-    }
-
-    if (recommendedReleaseLevel === -1) {
-      console.info(
-        `There have been no changes since the release of ${latestTag} that require a new version. You're good!`,
-      )
-      return
-    }
-  }
-
-  const changelogCommitsMd = process.env.TAG
-    ? `Manual Release: ${process.env.TAG}`
-    : await Promise.all(
-        Object.entries(
-          commitsSinceLatestTag.reduce((acc, next) => {
-            const type = next.parsed.type?.toLowerCase() ?? 'other'
-
-            return {
-              ...acc,
-              [type]: [...(acc[type] || []), next],
-            }
-          }, {} as Record<string, Commit[]>),
-        )
-          .sort(
-            getSorterFn([
-              ([d]) =>
-                [
-                  'other',
-                  'examples',
-                  'docs',
-                  'chore',
-                  'refactor',
-                  'perf',
-                  'fix',
-                  'feat',
-                ].indexOf(d),
-            ]),
-          )
-          .reverse()
-          .map(async ([type, commits]) => {
-            return Promise.all(
-              commits.map(async (commit) => {
-                let username = ''
-
-                if (process.env.GH_TOKEN) {
-                  const query = `${
-                    commit.author.email || commit.committer.email
-                  }`
-
-                  const res = await axios.get(
-                    'https://api.github.com/search/users',
-                    {
-                      params: {
-                        q: query,
-                      },
-                      headers: {
-                        Authorization: `token ${process.env.GH_TOKEN}`,
-                      },
-                    },
-                  )
-
-                  username = res.data.items[0]?.login
-                }
-
-                const scope = commit.parsed.scope
-                  ? `${commit.parsed.scope}: `
-                  : ''
-                const subject = commit.parsed.subject || commit.subject
-
-                return `- ${scope}${subject} (${commit.commit.short}) ${
-                  username
-                    ? `by @${username}`
-                    : `by ${commit.author.name || commit.author.email}`
-                }`
-              }),
-            ).then((c) => [type, c] as const)
-          }),
-      ).then((groups) => {
-        return groups
-          .map(([type, commits]) => {
-            return [`### ${capitalize(type)}`, commits.join('\n')].join('\n\n')
-          })
-          .join('\n\n')
-      })
-
-  if (process.env.TAG && recommendedReleaseLevel === -1) {
-    recommendedReleaseLevel = 0
-  }
-
-  const releaseType = branchConfig.prerelease
-    ? 'prerelease'
-    : ({ 0: 'patch', 1: 'minor', 2: 'major' } as const)[recommendedReleaseLevel]
-
-  if (!releaseType) {
-    throw new Error(`Invalid release level: ${recommendedReleaseLevel}`)
-  }
-
-  const version = process.env.TAG
-    ? semver.parse(process.env.TAG)?.version
-    : semver.inc(latestTag!, releaseType, npmTag)
-
-  if (!version) {
-    throw new Error(
-      `Invalid version increment from semver.inc(${[
-        latestTag,
-        recommendedReleaseLevel,
-        branchConfig.prerelease,
-      ].join(', ')}`,
-    )
-  }
-
-  const changelogMd = [
-    `Version ${version} - ${DateTime.now().toLocaleString(
-      DateTime.DATETIME_SHORT,
-    )}`,
-    `## Changes`,
-    changelogCommitsMd,
-    `## Packages`,
-    changedPackages.map((d) => `- ${d.name}@${version}`).join('\n'),
-  ].join('\n\n')
-
-  console.info('Generating changelog...')
-  console.info()
-  console.info(changelogMd)
-  console.info()
-
-  if (changedPackages.length === 0) {
-    console.info('No packages have been affected.')
-    return
-  }
-
-  console.info('Building packages...')
-  execSync(`pnpm run build --skip-nx-cache`, {
-    encoding: 'utf8',
-    stdio: 'inherit',
-  })
-  console.info('')
-
-  console.info('Validating packages...')
-  execSync(`pnpm run validatePackages`, { encoding: 'utf8', stdio: 'inherit' })
-
-  console.info(`Updating all changed packages to version ${version}...`)
-  // Update each package to the new version
-  for (const pkg of changedPackages) {
-    console.info(`  Updating ${pkg.name} version to ${version}...`)
-
-    await updatePackageJson(
-      path.resolve(rootDir, 'packages', pkg.packageDir, 'package.json'),
-      (config) => {
-        config.version = version
-      },
-    )
-  }
-
-  if (!process.env.CI) {
-    console.warn(
-      `This is a dry run for version ${version}. Push to CI to publish for real or set CI=true to override!`,
-    )
-    return
-  }
-
-  console.info()
-  console.info(`Publishing all packages to npm with tag "${npmTag}"`)
-
-  // Publish each package
-  changedPackages.forEach((pkg) => {
-    const packageDir = path.join(rootDir, 'packages', pkg.packageDir)
-
-    const cmd = `cd ${packageDir} && pnpm publish --tag ${npmTag} --access=public --no-git-checks`
-    console.info(`  Publishing ${pkg.name}@${version} to npm...`)
-    execSync(cmd, {
-      stdio: [process.stdin, process.stdout, process.stderr],
-    })
-  })
-
-  console.info()
-
-  console.info(`Committing changes...`)
-  execSync(`git add -A && git commit -m "${releaseCommitMsg(version)}"`)
-  console.info()
-  console.info(`  Committed Changes.`)
-
-  console.info(`Pushing changes...`)
-  execSync(`git push`)
-  console.info()
-  console.info(`  Changes pushed.`)
-
-  console.info(`Creating new git tag v${version}`)
-  execSync(`git tag -a -m "v${version}" v${version}`)
-
-  console.info(`Pushing tags...`)
-  execSync(`git push --tags`)
-  console.info()
-  console.info(`  Tags pushed.`)
-
-  console.info(`Creating github release...`)
-  // Stringify the markdown to excape any quotes
-  execSync(
-    `gh release create v${version} ${
-      branchConfig.prerelease ? '--prerelease' : ''
-    } --notes '${changelogMd.replace(/'/g, '"')}'`,
-  )
-  console.info(`  Github release created.`)
-
-  console.info(`All done!`)
-}
-
-run().catch((err) => {
-  console.info(err)
-  process.exit(1)
-})
-
-function capitalize(str: string) {
-  return str.slice(0, 1).toUpperCase() + str.slice(1)
-}
-
-async function readPackageJson(pathName: string) {
-  return (await jsonfile.readFile(pathName)) as PackageJson
-}
-
-async function updatePackageJson(
-  pathName: string,
-  transform: (json: PackageJson) => Promise<void> | void,
-) {
-  const json = await readPackageJson(pathName)
-  await transform(json)
-  await jsonfile.writeFile(pathName, json, {
-    spaces: 2,
-  })
-}
-
-function getSorterFn<TItem>(sorters: ((d: TItem) => any)[]) {
-  return (a: TItem, b: TItem) => {
-    let i = 0
-
-    sorters.some((sorter) => {
-      const sortedA = sorter(a)
-      const sortedB = sorter(b)
-      if (sortedA > sortedB) {
-        i = 1
-        return true
-      }
-      if (sortedA < sortedB) {
-        i = -1
-        return true
-      }
-      return false
-    })
-
-    return i
-  }
-}
diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json
index 2899ee9591..52a0022afb 100644
--- a/scripts/tsconfig.json
+++ b/scripts/tsconfig.json
@@ -1,7 +1,8 @@
 {
   "compilerOptions": {
-    "target": "ES5",
-    "module": "commonjs",
+    "target": "ES2020",
+    "module": "ES2022",
+    "moduleResolution": "NodeNext",
     "esModuleInterop": true,
     "forceConsistentCasingInFileNames": true,
     "strict": true,
diff --git a/scripts/types.ts b/scripts/types.ts
deleted file mode 100644
index 3c2ab7a8ff..0000000000
--- a/scripts/types.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-export type Commit = {
-  commit: CommitOrTree
-  tree: CommitOrTree
-  author: AuthorOrCommitter
-  committer: AuthorOrCommitter
-  subject: string
-  body: string
-  parsed: Parsed
-}
-
-export type CommitOrTree = {
-  long: string
-  short: string
-}
-
-export type AuthorOrCommitter = {
-  name: string
-  email: string
-  date: string
-}
-
-export type Parsed = {
-  type: string | null
-  scope?: string | null
-  subject: string
-  merge?: null
-  header: string
-  body?: null
-  footer?: null
-  notes?: null[] | null
-  references?: null[] | null
-  mentions?: null[] | null
-  revert?: null
-  raw: string
-}
-
-export type Package = {
-  name: string
-  packageDir: string
-  srcDir: string
-  entries: Array<'main' | 'module' | 'svelte' | 'types'>
-}
-
-export type BranchConfig = {
-  prerelease: boolean
-  previousVersion?: boolean
-}
diff --git a/scripts/validate-packages.ts b/scripts/validate-packages.ts
deleted file mode 100644
index 550a08349f..0000000000
--- a/scripts/validate-packages.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-import path from 'path'
-import fsp from 'fs/promises'
-import jsonfile from 'jsonfile'
-import { packages, rootDir } from './config'
-
-import type { PackageJson } from 'type-fest'
-
-async function run() {
-  console.info('Validating packages...')
-  const failedValidations: string[] = []
-
-  await Promise.all(
-    packages.map(async (pkg) => {
-      const pkgJson = await readPackageJson(
-        path.resolve(rootDir, 'packages', pkg.packageDir, 'package.json'),
-      )
-
-      await Promise.all(
-        pkg.entries.map(async (entryKey) => {
-          const entry = pkgJson[entryKey] as unknown
-
-          if (typeof entry !== 'string') {
-            throw new Error(
-              `Missing entry for "${entryKey}" in ${pkg.packageDir}/package.json!`,
-            )
-          }
-
-          const filePath = path.resolve(
-            rootDir,
-            'packages',
-            pkg.packageDir,
-            entry,
-          )
-
-          try {
-            await fsp.access(filePath)
-          } catch (err) {
-            failedValidations.push(`Missing build file: ${filePath}`)
-          }
-        }),
-      )
-
-      const defaultExport = pkgJson.exports?.['.']?.['default'] as unknown
-
-      if (typeof defaultExport !== 'string') {
-        throw new Error(
-          `Missing exports['.']['default'] in ${pkg.packageDir}/package.json!`,
-        )
-      }
-
-      const filePath = path.resolve(
-        rootDir,
-        'packages',
-        pkg.packageDir,
-        defaultExport,
-      )
-
-      try {
-        await fsp.access(filePath)
-      } catch (err) {
-        failedValidations.push(`Missing build file: ${filePath}`)
-      }
-    }),
-  )
-  console.info('')
-  if (failedValidations.length > 0) {
-    throw new Error(
-      'Some packages failed validation:\n\n' + failedValidations.join('\n'),
-    )
-  }
-}
-
-run().catch((err) => {
-  console.info(err)
-  process.exit(1)
-})
-
-async function readPackageJson(pathName: string) {
-  return (await jsonfile.readFile(pathName)) as PackageJson
-}

From f3f34a3f9b6f9bf4e75ae1f847a15fb25b6b4412 Mon Sep 17 00:00:00 2001
From: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Date: Sat, 31 May 2025 01:08:04 +0000
Subject: [PATCH 35/45] release: v4.39.0

---
 examples/react/algolia/package.json           |   4 +-
 examples/react/auto-refetching/package.json   |   4 +-
 .../react/basic-graphql-request/package.json  |   4 +-
 examples/react/basic-typescript/package.json  |   8 +-
 examples/react/basic/package.json             |   4 +-
 .../react/default-query-function/package.json |   4 +-
 .../load-more-infinite-scroll/package.json    |   4 +-
 examples/react/nextjs/package.json            |   4 +-
 examples/react/offline/package.json           |   8 +-
 .../package.json                              |   4 +-
 examples/react/pagination/package.json        |   4 +-
 examples/react/playground/package.json        |   4 +-
 examples/react/prefetching/package.json       |   4 +-
 examples/react/react-native/package.json      |   4 +-
 examples/react/react-router/package.json      |   4 +-
 examples/react/rick-morty/package.json        |   4 +-
 examples/react/simple/package.json            |   4 +-
 examples/react/star-wars/package.json         |   4 +-
 examples/react/suspense/package.json          |   4 +-
 .../solid/basic-graphql-request/package.json  |   2 +-
 examples/solid/basic-typescript/package.json  |   2 +-
 .../solid/default-query-function/package.json |   2 +-
 examples/solid/simple/package.json            |   2 +-
 examples/svelte/auto-refetching/package.json  |   2 +-
 examples/svelte/basic/package.json            |   2 +-
 .../load-more-infinite-scroll/package.json    |   2 +-
 .../package.json                              |   2 +-
 examples/svelte/playground/package.json       |   2 +-
 examples/svelte/simple/package.json           |   2 +-
 examples/svelte/ssr/package.json              |   2 +-
 examples/svelte/star-wars/package.json        |   2 +-
 examples/vue/2.6-basic/package.json           |   2 +-
 examples/vue/basic/package.json               |   2 +-
 examples/vue/dependent-queries/package.json   |   2 +-
 examples/vue/nuxt3/package.json               |   2 +-
 examples/vue/persister/package.json           |   6 +-
 .../package.json                              |   2 +-
 .../package.json                              |   2 +-
 packages/query-core/package.json              |   2 +-
 .../query-persist-client-core/package.json    |   2 +-
 .../query-sync-storage-persister/package.json |   2 +-
 packages/react-query-devtools/package.json    |   2 +-
 .../react-query-persist-client/package.json   |   2 +-
 packages/react-query/package.json             |   2 +-
 packages/solid-query/package.json             |   2 +-
 packages/svelte-query/package.json            |   2 +-
 packages/vue-query/package.json               |   2 +-
 pnpm-lock.yaml                                | 287 ++++++------------
 48 files changed, 158 insertions(+), 273 deletions(-)

diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json
index 54ab060b34..d2127da751 100644
--- a/examples/react/algolia/package.json
+++ b/examples/react/algolia/package.json
@@ -10,8 +10,8 @@
   "dependencies": {
     "@algolia/client-search": "4.11.0",
     "@algolia/transporter": "4.11.0",
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "algoliasearch": "4.12.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json
index 7b9b40ca2f..81af42810f 100644
--- a/examples/react/auto-refetching/package.json
+++ b/examples/react/auto-refetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json
index c4c768a2a0..b9afcb1099 100644
--- a/examples/react/basic-graphql-request/package.json
+++ b/examples/react/basic-graphql-request/package.json
@@ -12,8 +12,8 @@
     "graphql-request": "^3.1.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1"
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0"
   },
   "devDependencies": {
     "@vitejs/plugin-react": "^2.0.0",
diff --git a/examples/react/basic-typescript/package.json b/examples/react/basic-typescript/package.json
index 2088e2ad61..162ba19bd1 100644
--- a/examples/react/basic-typescript/package.json
+++ b/examples/react/basic-typescript/package.json
@@ -8,10 +8,10 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
-    "@tanstack/react-query-persist-client": "^4.7.1",
-    "@tanstack/query-sync-storage-persister": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query-persist-client": "^4.39.0",
+    "@tanstack/query-sync-storage-persister": "^4.39.0",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json
index 2c2074cdd5..fbd8dea44b 100644
--- a/examples/react/basic/package.json
+++ b/examples/react/basic/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json
index 506ef913ee..0f507f7c79 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": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json
index 992107b308..bbc72b4633 100644
--- a/examples/react/load-more-infinite-scroll/package.json
+++ b/examples/react/load-more-infinite-scroll/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json
index 84f1488c3c..870d4d7f09 100644
--- a/examples/react/nextjs/package.json
+++ b/examples/react/nextjs/package.json
@@ -8,8 +8,8 @@
     "start": "next start"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "ky": "^0.23.0",
     "ky-universal": "^0.8.2",
     "next": "12.2.2",
diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json
index 9976ca6416..c687d697aa 100644
--- a/examples/react/offline/package.json
+++ b/examples/react/offline/package.json
@@ -9,10 +9,10 @@
   },
   "dependencies": {
     "@tanstack/react-location": "^3.7.0",
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
-    "@tanstack/react-query-persist-client": "^4.7.1",
-    "@tanstack/query-sync-storage-persister": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query-persist-client": "^4.39.0",
+    "@tanstack/query-sync-storage-persister": "^4.39.0",
     "ky": "^0.30.0",
     "msw": "^0.39.2",
     "react": "^18.0.0",
diff --git a/examples/react/optimistic-updates-typescript/package.json b/examples/react/optimistic-updates-typescript/package.json
index 63e172946d..d5182e0433 100755
--- a/examples/react/optimistic-updates-typescript/package.json
+++ b/examples/react/optimistic-updates-typescript/package.json
@@ -4,8 +4,8 @@
   "main": "pages/index.tsx",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json
index 59858a088a..2938476e0c 100644
--- a/examples/react/pagination/package.json
+++ b/examples/react/pagination/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json
index a0db81af06..d03673cf5e 100644
--- a/examples/react/playground/package.json
+++ b/examples/react/playground/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
   },
diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json
index fe1dd3f3e7..ca15eeb45e 100644
--- a/examples/react/prefetching/package.json
+++ b/examples/react/prefetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json
index 66fb05b820..c79e640a7c 100644
--- a/examples/react/react-native/package.json
+++ b/examples/react/react-native/package.json
@@ -20,8 +20,8 @@
     "@react-native-community/netinfo": "6.0.2",
     "@react-navigation/stack": "^6.0.2",
     "@react-navigation/native": "^6.0.2",
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "expo": "~43.0.2",
     "expo-constants": "~12.1.3",
     "expo-status-bar": "~1.1.0",
diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json
index 263ece7c99..b1b74284a8 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": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "localforage": "^1.10.0",
     "match-sorter": "^6.3.1",
     "react": "^18.0.0",
diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json
index 25690ad79d..0204c44d63 100644
--- a/examples/react/rick-morty/package.json
+++ b/examples/react/rick-morty/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json
index c8f1a67277..58b504a85a 100644
--- a/examples/react/simple/package.json
+++ b/examples/react/simple/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json
index 5f4586245b..1b9effa1c6 100644
--- a/examples/react/star-wars/package.json
+++ b/examples/react/star-wars/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json
index 15a4876132..adce5f5c12 100644
--- a/examples/react/suspense/package.json
+++ b/examples/react/suspense/package.json
@@ -3,8 +3,8 @@
   "private": true,
   "main": "src/index.jsx",
   "dependencies": {
-    "@tanstack/react-query": "^4.7.1",
-    "@tanstack/react-query-devtools": "^4.7.1",
+    "@tanstack/react-query": "^4.39.0",
+    "@tanstack/react-query-devtools": "^4.39.0",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json
index 86f37601be..a4e4c78086 100644
--- a/examples/solid/basic-graphql-request/package.json
+++ b/examples/solid/basic-graphql-request/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.3.9",
+    "@tanstack/solid-query": "^4.39.0",
     "graphql": "^16.6.0",
     "graphql-request": "^5.0.0",
     "solid-js": "^1.5.1"
diff --git a/examples/solid/basic-typescript/package.json b/examples/solid/basic-typescript/package.json
index 5f5d160484..070dca390a 100644
--- a/examples/solid/basic-typescript/package.json
+++ b/examples/solid/basic-typescript/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.3.9",
+    "@tanstack/solid-query": "^4.39.0",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json
index 43cf4c8e26..75ae94dc8a 100644
--- a/examples/solid/default-query-function/package.json
+++ b/examples/solid/default-query-function/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.3.9",
+    "@tanstack/solid-query": "^4.39.0",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json
index 60f1d84bfb..dfabb4d560 100644
--- a/examples/solid/simple/package.json
+++ b/examples/solid/simple/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.3.9",
+    "@tanstack/solid-query": "^4.39.0",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json
index 8682542313..1768b0f354 100644
--- a/examples/svelte/auto-refetching/package.json
+++ b/examples/svelte/auto-refetching/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json
index 643e5c35f5..ca1f7a5753 100644
--- a/examples/svelte/basic/package.json
+++ b/examples/svelte/basic/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json
index 97df768ae8..99e636034a 100644
--- a/examples/svelte/load-more-infinite-scroll/package.json
+++ b/examples/svelte/load-more-infinite-scroll/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/optimistic-updates-typescript/package.json b/examples/svelte/optimistic-updates-typescript/package.json
index e259af50ac..ee7860afe1 100644
--- a/examples/svelte/optimistic-updates-typescript/package.json
+++ b/examples/svelte/optimistic-updates-typescript/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json
index b9c6e4be74..e533e2149e 100644
--- a/examples/svelte/playground/package.json
+++ b/examples/svelte/playground/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json
index 005c9eef00..fec7e2e19f 100644
--- a/examples/svelte/simple/package.json
+++ b/examples/svelte/simple/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/vite-plugin-svelte": "^2.0.2",
diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json
index d2f7274506..f654d41e98 100644
--- a/examples/svelte/ssr/package.json
+++ b/examples/svelte/ssr/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json
index 4f2603e387..f2302686c0 100644
--- a/examples/svelte/star-wars/package.json
+++ b/examples/svelte/star-wars/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.20.0"
+    "@tanstack/svelte-query": "^4.39.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json
index c91516456e..fe6f345ddf 100644
--- a/examples/vue/2.6-basic/package.json
+++ b/examples/vue/2.6-basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "4.13.3",
+    "@tanstack/vue-query": "^4.39.0",
     "@vue/composition-api": "1.4.4",
     "vue": "2.6.14",
     "vue-template-compiler": "2.6.14"
diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json
index 6858511e39..e73f31a1c8 100644
--- a/examples/vue/basic/package.json
+++ b/examples/vue/basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.13.3",
+    "@tanstack/vue-query": "^4.39.0",
     "vue": "^3.2.41"
   },
   "devDependencies": {
diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json
index ccb613ed34..1b1d88ac87 100644
--- a/examples/vue/dependent-queries/package.json
+++ b/examples/vue/dependent-queries/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.9.0",
+    "@tanstack/vue-query": "^4.39.0",
     "vue": "3.2.39"
   },
   "devDependencies": {
diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json
index c3667c849d..a63c8946bf 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": "^4.13.3"
+    "@tanstack/vue-query": "^4.39.0"
   },
   "devDependencies": {
     "nuxt": "^3.0.0-rc.12"
diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json
index aabbe57b8a..dc2b1dfb12 100644
--- a/examples/vue/persister/package.json
+++ b/examples/vue/persister/package.json
@@ -8,9 +8,9 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.14.1",
-    "@tanstack/query-persist-client-core": "^4.14.1",
-    "@tanstack/query-sync-storage-persister": "^4.14.1",
+    "@tanstack/vue-query": "^4.39.0",
+    "@tanstack/query-persist-client-core": "^4.39.0",
+    "@tanstack/query-sync-storage-persister": "^4.39.0",
     "vue": "3.2.41"
   },
   "devDependencies": {
diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json
index 27e80dce00..61a666688b 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": "4.36.1",
+  "version": "4.39.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/package.json b/packages/query-broadcast-client-experimental/package.json
index c8964ba6b5..962a71e259 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": "4.36.1",
+  "version": "4.39.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/package.json b/packages/query-core/package.json
index 709cffa391..db683bc547 100644
--- a/packages/query-core/package.json
+++ b/packages/query-core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/query-core",
-  "version": "4.36.1",
+  "version": "4.39.0",
   "description": "The framework agnostic core that powers TanStack Query",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json
index 142f008d33..4f5e0e7915 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": "4.36.1",
+  "version": "4.39.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/package.json b/packages/query-sync-storage-persister/package.json
index 3c1eaeb64c..c44f149980 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": "4.36.1",
+  "version": "4.39.0",
   "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 d0b5830cfe..c83e63d5c8 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": "4.36.1",
+  "version": "4.39.0",
   "description": "Developer tools to interact with and visualize the TanStack/react-query cache",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json
index 27dc975a0f..515546e9f3 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": "4.36.1",
+  "version": "4.39.0",
   "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 737f20e801..3336a6a967 100644
--- a/packages/react-query/package.json
+++ b/packages/react-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/react-query",
-  "version": "4.36.1",
+  "version": "4.39.0",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in React",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json
index efbc9626a3..8c8793e933 100644
--- a/packages/solid-query/package.json
+++ b/packages/solid-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/solid-query",
-  "version": "4.36.1",
+  "version": "4.39.0",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json
index 33a0ebc507..7a8f0e76c0 100644
--- a/packages/svelte-query/package.json
+++ b/packages/svelte-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/svelte-query",
-  "version": "4.36.1",
+  "version": "4.39.0",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte",
   "author": "Lachlan Collins",
   "license": "MIT",
diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json
index 695d5f7d91..14c10837e4 100644
--- a/packages/vue-query/package.json
+++ b/packages/vue-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/vue-query",
-  "version": "4.37.1",
+  "version": "4.39.0",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
   "author": "Damian Osipiuk",
   "license": "MIT",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d0f0682af0..d0648c8b4a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,5 +1,9 @@
 lockfileVersion: '6.0'
 
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
 importers:
 
   .:
@@ -188,10 +192,10 @@ importers:
         specifier: 4.11.0
         version: 4.11.0
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       algoliasearch:
         specifier: 4.12.2
@@ -225,10 +229,10 @@ importers:
   examples/react/auto-refetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -249,10 +253,10 @@ importers:
   examples/react/basic:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -277,10 +281,10 @@ importers:
   examples/react/basic-graphql-request:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       graphql:
         specifier: ^15.3.0
@@ -305,16 +309,16 @@ importers:
   examples/react/basic-typescript:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-persist-client
       axios:
         specifier: ^0.26.1
@@ -354,10 +358,10 @@ importers:
   examples/react/default-query-function:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -379,10 +383,10 @@ importers:
   examples/react/load-more-infinite-scroll:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -406,10 +410,10 @@ importers:
   examples/react/nextjs:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       ky:
         specifier: ^0.23.0
@@ -436,19 +440,19 @@ importers:
   examples/react/offline:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-location':
         specifier: ^3.7.0
         version: 3.7.4(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-persist-client
       ky:
         specifier: ^0.30.0
@@ -476,10 +480,10 @@ importers:
   examples/react/optimistic-updates-typescript:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -510,10 +514,10 @@ importers:
   examples/react/pagination:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -534,10 +538,10 @@ importers:
   examples/react/playground:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -556,10 +560,10 @@ importers:
   examples/react/prefetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -589,10 +593,10 @@ importers:
         specifier: ^6.0.2
         version: 6.2.2(@react-navigation/native@6.0.11)(react-native-gesture-handler@1.10.3)(react-native-safe-area-context@3.3.2)(react-native-screens@3.8.0)(react-native@0.64.3)(react@17.0.1)
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       expo:
         specifier: ~43.0.2
@@ -668,10 +672,10 @@ importers:
   examples/react/react-router:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       localforage:
         specifier: ^1.10.0
@@ -708,10 +712,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -736,10 +740,10 @@ importers:
   examples/react/simple:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -764,10 +768,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -792,10 +796,10 @@ importers:
   examples/react/suspense:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.7.1
+        specifier: ^4.39.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -820,7 +824,7 @@ importers:
   examples/solid/basic-graphql-request:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.3.9
+        specifier: ^4.39.0
         version: link:../../../packages/solid-query
       graphql:
         specifier: ^16.6.0
@@ -845,7 +849,7 @@ importers:
   examples/solid/basic-typescript:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.3.9
+        specifier: ^4.39.0
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -864,7 +868,7 @@ importers:
   examples/solid/default-query-function:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.3.9
+        specifier: ^4.39.0
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -883,7 +887,7 @@ importers:
   examples/solid/simple:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.3.9
+        specifier: ^4.39.0
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -905,7 +909,7 @@ importers:
   examples/svelte/auto-refetching:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -933,7 +937,7 @@ importers:
   examples/svelte/basic:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -961,7 +965,7 @@ importers:
   examples/svelte/load-more-infinite-scroll:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -989,7 +993,7 @@ importers:
   examples/svelte/optimistic-updates-typescript:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1017,7 +1021,7 @@ importers:
   examples/svelte/playground:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1045,7 +1049,7 @@ importers:
   examples/svelte/simple:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/vite-plugin-svelte':
@@ -1073,7 +1077,7 @@ importers:
   examples/svelte/ssr:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1101,7 +1105,7 @@ importers:
   examples/svelte/star-wars:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.20.0
+        specifier: ^4.39.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1138,7 +1142,7 @@ importers:
   examples/vue/basic:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.13.3
+        specifier: ^4.39.0
         version: link:../../../packages/vue-query
       vue:
         specifier: ^3.2.41
@@ -1157,7 +1161,7 @@ importers:
   examples/vue/dependent-queries:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.9.0
+        specifier: ^4.39.0
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.39
@@ -1176,13 +1180,13 @@ importers:
   examples/vue/persister:
     dependencies:
       '@tanstack/query-persist-client-core':
-        specifier: ^4.14.1
+        specifier: ^4.39.0
         version: link:../../../packages/query-persist-client-core
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.14.1
+        specifier: ^4.39.0
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/vue-query':
-        specifier: ^4.14.1
+        specifier: ^4.39.0
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.41
@@ -1356,15 +1360,6 @@ importers:
         specifier: npm:react-dom@^17.0.2
         version: /react-dom@17.0.2(react@18.2.0)
 
-  packages/react-query/build/query-codemods:
-    devDependencies:
-      '@types/jscodeshift':
-        specifier: 17.3.0
-        version: 17.3.0
-      jscodeshift:
-        specifier: 17.3.0
-        version: 17.3.0(@babel/preset-env@7.18.6)
-
   packages/solid-query:
     dependencies:
       '@tanstack/query-core':
@@ -1718,6 +1713,7 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.27.1
+    dev: false
 
   /@babel/helper-builder-binary-assignment-operator-visitor@7.18.6:
     resolution: {integrity: sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==}
@@ -1895,6 +1891,7 @@ packages:
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
@@ -2005,6 +2002,7 @@ packages:
       '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/helper-module-imports@7.16.0:
     resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
@@ -2081,6 +2079,7 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.27.1
+    dev: false
 
   /@babel/helper-plugin-utils@7.19.0:
     resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==}
@@ -2174,6 +2173,7 @@ packages:
       '@babel/traverse': 7.27.1
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/helper-simple-access@7.18.6:
     resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
@@ -2195,6 +2195,7 @@ packages:
       '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/helper-split-export-declaration@7.18.6:
     resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
@@ -3077,6 +3078,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
@@ -3167,6 +3169,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -3405,6 +3408,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
@@ -3531,19 +3535,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -3777,6 +3768,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
+    dev: false
 
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
@@ -4004,6 +3996,7 @@ packages:
       '@babel/helper-plugin-utils': 7.27.1
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
@@ -4151,16 +4144,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.27.1
-    dev: true
-
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
     engines: {node: '>=6.9.0'}
@@ -4218,19 +4201,6 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.27.1
-      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -4259,19 +4229,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
     engines: {node: '>=6.9.0'}
@@ -4391,7 +4348,7 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.27.1
+      '@babel/types': 7.19.0
     dev: false
 
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
@@ -4703,6 +4660,7 @@ packages:
       '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
@@ -5001,12 +4959,12 @@ packages:
       '@babel/plugin-transform-unicode-escapes': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
       '@babel/preset-modules': 0.1.5(@babel/core@7.27.1)
-      '@babel/types': 7.27.1
+      '@babel/types': 7.19.0
       babel-plugin-polyfill-corejs2: 0.3.1(@babel/core@7.27.1)
       babel-plugin-polyfill-corejs3: 0.5.2(@babel/core@7.27.1)
       babel-plugin-polyfill-regenerator: 0.3.1(@babel/core@7.27.1)
       core-js-compat: 3.23.3
-      semver: 6.3.1
+      semver: 6.3.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -5033,6 +4991,7 @@ packages:
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-validator-option': 7.27.1
       '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
+    dev: false
 
   /@babel/preset-modules@0.1.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
@@ -5128,6 +5087,7 @@ packages:
       '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/register@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==}
@@ -5154,6 +5114,7 @@ packages:
       make-dir: 2.1.0
       pirates: 4.0.7
       source-map-support: 0.5.21
+    dev: false
 
   /@babel/runtime-corejs3@7.18.6:
     resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
@@ -7722,13 +7683,6 @@ packages:
       recast: 0.20.5
     dev: true
 
-  /@types/jscodeshift@17.3.0:
-    resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==}
-    dependencies:
-      ast-types: 0.16.1
-      recast: 0.23.11
-    dev: true
-
   /@types/json-schema@7.0.11:
     resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
     dev: true
@@ -9029,13 +8983,6 @@ packages:
     dependencies:
       tslib: 2.6.0
 
-  /ast-types@0.16.1:
-    resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
-    engines: {node: '>=4'}
-    dependencies:
-      tslib: 2.6.0
-    dev: true
-
   /astral-regex@1.0.0:
     resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==}
     engines: {node: '>=4'}
@@ -9256,7 +9203,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.16.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.27.1
+      '@babel/types': 7.19.0
       html-entities: 2.3.2
     dev: true
 
@@ -9612,6 +9559,7 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       fill-range: 7.1.1
+    dev: false
 
   /broadcast-channel@4.14.0:
     resolution: {integrity: sha512-uNzxOgBQ+boWCRDESLNg3zZWQ3iz/X7j/uD8pAfr4/S7wQerXVvJI/SBKd9J6ckaPt2jil0gq+7l+3b+kuxJYw==}
@@ -12058,6 +12006,7 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       to-regex-range: 5.0.1
+    dev: false
 
   /filter-obj@1.1.0:
     resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
@@ -13935,39 +13884,6 @@ packages:
       - supports-color
     dev: true
 
-  /jscodeshift@17.3.0(@babel/preset-env@7.18.6):
-    resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==}
-    engines: {node: '>=16'}
-    hasBin: true
-    peerDependencies:
-      '@babel/preset-env': ^7.1.6
-    peerDependenciesMeta:
-      '@babel/preset-env':
-        optional: true
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/parser': 7.27.2
-      '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
-      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
-      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
-      '@babel/register': 7.27.1(@babel/core@7.27.1)
-      flow-parser: 0.121.0
-      graceful-fs: 4.2.10
-      micromatch: 4.0.8
-      neo-async: 2.6.2
-      picocolors: 1.1.1
-      recast: 0.23.11
-      tmp: 0.2.3
-      write-file-atomic: 5.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /jsdom@16.7.0:
     resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
     engines: {node: '>=10'}
@@ -15064,6 +14980,7 @@ packages:
     dependencies:
       braces: 3.0.3
       picomatch: 2.3.1
+    dev: false
 
   /microtime@3.1.0:
     resolution: {integrity: sha512-GcjhfC2y/DF2znac8IRwri7+YUIy34QRHz/iZK3bHrh74qrNNOpAJQwiOMnIG+v1J0K4eiqd+RiGzN3F1eofTQ==}
@@ -16049,6 +15966,7 @@ packages:
   /pirates@4.0.7:
     resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
     engines: {node: '>= 6'}
+    dev: false
 
   /pixelmatch@4.0.2:
     resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==}
@@ -16819,17 +16737,6 @@ packages:
       source-map: 0.6.1
       tslib: 2.6.0
 
-  /recast@0.23.11:
-    resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
-    engines: {node: '>= 4'}
-    dependencies:
-      ast-types: 0.16.1
-      esprima: 4.0.1
-      source-map: 0.6.1
-      tiny-invariant: 1.3.3
-      tslib: 2.6.0
-    dev: true
-
   /rechoir@0.6.2:
     resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
     engines: {node: '>= 0.10'}
@@ -17410,11 +17317,6 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
-  /signal-exit@4.1.0:
-    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
-    engines: {node: '>=14'}
-    dev: true
-
   /simple-git@3.27.0:
     resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
     dependencies:
@@ -18261,10 +18163,6 @@ packages:
     resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==}
     dev: false
 
-  /tiny-invariant@1.3.3:
-    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
-    dev: true
-
   /tiny-warning@1.0.3:
     resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
     dev: false
@@ -18306,11 +18204,6 @@ packages:
       rimraf: 3.0.2
     dev: true
 
-  /tmp@0.2.3:
-    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
-    engines: {node: '>=14.14'}
-    dev: true
-
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
@@ -19435,14 +19328,6 @@ packages:
       typedarray-to-buffer: 3.1.5
     dev: true
 
-  /write-file-atomic@5.0.1:
-    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
-    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-    dependencies:
-      imurmurhash: 0.1.4
-      signal-exit: 4.1.0
-    dev: true
-
   /ws@1.1.5:
     resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
     peerDependencies:

From 4f93b86c6c159aa81828501ceb1848f5dead9b96 Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Sat, 31 May 2025 22:47:08 +1000
Subject: [PATCH 36/45] fix(v4): ensure packages are built during CI (#9227)

* ci(v4): ensure packages are built during CI

* Fix prettier
---
 .github/workflows/ci-v3.yml                   |  53 -
 .github/workflows/ci.yml                      |  18 +-
 .github/workflows/pr.yml                      |  38 +-
 .../next-env.d.ts                             |   5 +-
 .../tsconfig.json                             |   3 +-
 package.json                                  |   3 +-
 pnpm-lock.yaml                                | 997 ++++++++++--------
 scripts/tsconfig.json                         |   8 -
 8 files changed, 603 insertions(+), 522 deletions(-)
 delete mode 100644 .github/workflows/ci-v3.yml

diff --git a/.github/workflows/ci-v3.yml b/.github/workflows/ci-v3.yml
deleted file mode 100644
index f65d7ae6ce..0000000000
--- a/.github/workflows/ci-v3.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: react-query tests
-
-on:
-  push:
-    branches:
-      - 'v3'
-env:
-  NX_DAEMON: false
-  NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
-jobs:
-  test:
-    name: 'Node ${{ matrix.node }}, React ${{ matrix.react }}'
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        node: [14, 16]
-        react: [17, 18]
-    steps:
-      - uses: actions/checkout@v2
-      - uses: actions/setup-node@v2
-        with:
-          node-version: ${{ matrix.node }}
-      - name: Install dependencies
-        uses: bahmutov/npm-install@v1
-      - run: yarn test:ci
-        env:
-          REACTJS_VERSION: ${{ matrix.react }}
-      - run: yarn test:size
-        if: matrix.node == '16' && matrix.react == '18'
-        env:
-          BUNDLEWATCH_GITHUB_TOKEN: ${{ secrets.BUNDLEWATCH_GITHUB_TOKEN }}
-      - name: Upload coverage to Codecov
-        uses: codecov/codecov-action@v2
-
-  publish-module:
-    name: 'Publish Module to NPM'
-    needs: test
-    # publish only when merged in master on original repo, not on PR
-    if: github.repository == 'TanStack/query' && github.ref == 'refs/heads/v3'
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-      - uses: actions/setup-node@v2
-        with:
-          node-version: 14
-          registry-url: https://registry.npmjs.org/
-      - name: Install dependencies
-        uses: bahmutov/npm-install@v1
-      - run: yarn build
-      - run: npx semantic-release@17
-        env:
-          NODE_AUTH_TOKEN: ${{secrets.npm_token}}
-          GH_TOKEN: ${{secrets.GH_TOKEN}}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 807bae908d..27d6d08355 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -24,16 +24,16 @@ env:
 
 jobs:
   test-and-publish:
-    if: github.repository == 'TanStack/query'
+    if: github.repository_owner == 'TanStack'
     name: 'Test & Publish'
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout
+        uses: actions/checkout@v4.2.2
         with:
-          fetch-depth: '0'
-      - uses: pnpm/action-setup@v2.4.1
-        with:
-          version: 8
+          fetch-depth: 0
+      - name: Setup pnpm
+        uses: pnpm/action-setup@v4.1.0
       - uses: actions/setup-node@v3
         with:
           registry-url: https://registry.npmjs.org/
@@ -43,11 +43,7 @@ jobs:
       - name: Install dependencies
         run: pnpm --filter "./packages/**" --filter query --prefer-offline install
       - name: Run Tests
-        uses: nick-fields/retry@v2.8.3
-        with:
-          command: pnpm run test:ci --base=${{ github.event.before }}
-          timeout_minutes: 10
-          max_attempts: 3
+        run: pnpm run test:ci --base=${{ github.event.before }}
       - name: Publish
         run: |
           git config --global user.name 'Tanner Linsley'
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index ae4710c754..9367d55996 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -1,6 +1,7 @@
 name: pr
 
-on: [pull_request]
+on:
+  pull_request:
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
@@ -17,13 +18,12 @@ jobs:
     name: Nx Cloud - Main Job
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout
+        uses: actions/checkout@v4.2.2
         with:
           fetch-depth: 0
       - name: Setup pnpm
-        uses: pnpm/action-setup@v2.4.1
-        with:
-          version: 8
+        uses: pnpm/action-setup@v4.1.0
       - name: Setup Node
         uses: actions/setup-node@v3
         with:
@@ -42,11 +42,7 @@ jobs:
       - name: Start CI Orchestrator
         run: npx nx-cloud start-ci-run
       - name: Run Tests
-        uses: nick-fields/retry@v2.8.3
-        with:
-          timeout_minutes: 5
-          max_attempts: 3
-          command: npx nx affected --targets=test:eslint,test:lib,test:types,test:build
+        run: pnpm run test:pr
       - name: Stop Agents
         run: npx nx-cloud stop-all-agents
       - name: Upload coverage to Codecov
@@ -59,13 +55,12 @@ jobs:
       matrix:
         agent: [1, 2, 3]
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout
+        uses: actions/checkout@v4.2.2
         with:
           fetch-depth: 0
       - name: Setup pnpm
-        uses: pnpm/action-setup@v2.4.1
-        with:
-          version: 8
+        uses: pnpm/action-setup@v4.1.0
       - name: Setup Node
         uses: actions/setup-node@v3
         with:
@@ -80,13 +75,12 @@ jobs:
     name: Format
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout
+        uses: actions/checkout@v4.2.2
         with:
           fetch-depth: 0
       - name: Setup pnpm
-        uses: pnpm/action-setup@v2.4.1
-        with:
-          version: 8
+        uses: pnpm/action-setup@v4.1.0
       - name: Setup Node
         uses: actions/setup-node@v3
         with:
@@ -101,14 +95,14 @@ jobs:
     name: 'Test React 17'
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout
+        uses: actions/checkout@v4.2.2
         with:
           fetch-depth: 0
           ref: ${{ github.head_ref }}
           repository: ${{github.event.pull_request.head.repo.full_name}}
-      - uses: pnpm/action-setup@v2.4.1
-        with:
-          version: 8
+      - name: Setup pnpm
+        uses: pnpm/action-setup@v4.1.0
       - uses: actions/setup-node@v3
         with:
           node-version-file: .nvmrc
diff --git a/examples/react/optimistic-updates-typescript/next-env.d.ts b/examples/react/optimistic-updates-typescript/next-env.d.ts
index 7b7aa2c772..4f11a03dc6 100644
--- a/examples/react/optimistic-updates-typescript/next-env.d.ts
+++ b/examples/react/optimistic-updates-typescript/next-env.d.ts
@@ -1,2 +1,5 @@
 /// <reference types="next" />
-/// <reference types="next/types/global" />
+/// <reference types="next/image-types/global" />
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/react/optimistic-updates-typescript/tsconfig.json b/examples/react/optimistic-updates-typescript/tsconfig.json
index 25f3638470..d04e1b9de1 100644
--- a/examples/react/optimistic-updates-typescript/tsconfig.json
+++ b/examples/react/optimistic-updates-typescript/tsconfig.json
@@ -12,7 +12,8 @@
     "module": "esnext",
     "moduleResolution": "node",
     "resolveJsonModule": true,
-    "isolatedModules": true
+    "isolatedModules": true,
+    "incremental": true
   },
   "include": ["src"],
   "exclude": ["node_modules"]
diff --git a/package.json b/package.json
index 3df986b552..ad8065f220 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,8 @@
     "preinstall": "node -e \"if(process.env.CI == 'true') {console.log('Skipping preinstall...'); process.exit(1)}\" || npx -y only-allow pnpm",
     "install:csb": "corepack enable && pnpm install --frozen-lockfile",
     "test": "pnpm run test:ci",
-    "test:ci": "nx affected --targets=test:lib,test:types,test:eslint,test:format",
+    "test:pr": "nx affected --targets=test:lib,test:types,test:eslint,build,test:build --exclude=examples/**",
+    "test:ci": "nx run-many --targets=test:lib,test:types,test:eslint,build,test:build --exclude=examples/**",
     "test:react:17": "nx affected --target=test:lib",
     "test:eslint": "nx affected --target=test:eslint",
     "test:format": "pnpm run prettier --check",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d0648c8b4a..c08446ff52 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,9 +1,5 @@
 lockfileVersion: '6.0'
 
-settings:
-  autoInstallPeers: true
-  excludeLinksFromLockfile: false
-
 importers:
 
   .:
@@ -923,7 +919,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -951,7 +947,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -979,7 +975,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -1007,7 +1003,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -1035,7 +1031,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -1063,7 +1059,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -1091,7 +1087,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -1360,6 +1356,15 @@ importers:
         specifier: npm:react-dom@^17.0.2
         version: /react-dom@17.0.2(react@18.2.0)
 
+  packages/react-query/build/query-codemods:
+    devDependencies:
+      '@types/jscodeshift':
+        specifier: 17.3.0
+        version: 17.3.0
+      jscodeshift:
+        specifier: 17.3.0
+        version: 17.3.0(@babel/preset-env@7.18.6)
+
   packages/solid-query:
     dependencies:
       '@tanstack/query-core':
@@ -1402,7 +1407,7 @@ importers:
         version: 3.55.0
       svelte-check:
         specifier: ^2.9.2
-        version: 2.10.3(@babel/core@7.19.1)(postcss@8.4.21)(svelte@3.55.0)
+        version: 2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)
       tslib:
         specifier: ^2.4.1
         version: 2.4.1
@@ -1651,12 +1656,12 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/code-frame': 7.27.1
-      '@babel/generator': 7.19.0
-      '@babel/helper-module-transforms': 7.19.0
-      '@babel/helpers': 7.19.0
+      '@babel/generator': 7.27.1
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.9.0)
+      '@babel/helpers': 7.27.1
       '@babel/parser': 7.27.2
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.19.1
+      '@babel/template': 7.27.2
+      '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
       convert-source-map: 1.8.0
       debug: 4.4.1
@@ -1713,7 +1718,6 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.27.1
-    dev: false
 
   /@babel/helper-builder-binary-assignment-operator-visitor@7.18.6:
     resolution: {integrity: sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==}
@@ -1776,12 +1780,12 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.18.6
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.19.1)
       '@babel/helper-split-export-declaration': 7.18.6
     transitivePeerDependencies:
       - supports-color
@@ -1793,16 +1797,15 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.18.6
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
       '@babel/helper-split-export-declaration': 7.18.6
     transitivePeerDependencies:
       - supports-color
-    dev: true
 
   /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
@@ -1811,87 +1814,69 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.18.6
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.9.0)
       '@babel/helper-split-export-declaration': 7.18.6
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.19.1):
-    resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==}
+  /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-annotate-as-pure': 7.18.6
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.18.9
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-replace-supers': 7.19.1
-      '@babel/helper-split-export-declaration': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.19.1)
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+      '@babel/traverse': 7.27.1
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
     dev: false
 
-  /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.27.1):
-    resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==}
+  /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-annotate-as-pure': 7.18.6
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.18.9
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-replace-supers': 7.19.1
-      '@babel/helper-split-export-declaration': 7.18.6
-    transitivePeerDependencies:
-      - supports-color
-
-  /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.9.0):
-    resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.9.0
-      '@babel/helper-annotate-as-pure': 7.18.6
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.18.9
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-replace-supers': 7.19.1
-      '@babel/helper-split-export-declaration': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+      '@babel/traverse': 7.27.1
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
-    dev: true
 
-  /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1):
+  /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
-      '@babel/core': 7.27.1
+      '@babel/core': 7.9.0
       '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-member-expression-to-functions': 7.27.1
       '@babel/helper-optimise-call-expression': 7.27.1
-      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.9.0)
       '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
       '@babel/traverse': 7.27.1
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
-    dev: false
+    dev: true
 
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
@@ -1900,7 +1885,7 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       regexpu-core: 5.1.0
 
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.27.1):
@@ -1910,7 +1895,7 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       regexpu-core: 5.1.0
 
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.9.0):
@@ -1920,7 +1905,7 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       regexpu-core: 5.1.0
     dev: true
 
@@ -1930,10 +1915,10 @@ packages:
       '@babel/core': ^7.4.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.19.1)
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/traverse': 7.19.1
+      '@babel/helper-compilation-targets': 7.27.2
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/traverse': 7.27.1
       debug: 4.4.1
       lodash.debounce: 4.0.8
       resolve: 1.22.1
@@ -1947,10 +1932,10 @@ packages:
       '@babel/core': ^7.4.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/traverse': 7.19.1
+      '@babel/helper-compilation-targets': 7.27.2
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/traverse': 7.27.1
       debug: 4.4.1
       lodash.debounce: 4.0.8
       resolve: 1.22.1
@@ -1973,7 +1958,7 @@ packages:
     resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/template': 7.18.10
+      '@babel/template': 7.27.2
       '@babel/types': 7.27.1
 
   /@babel/helper-hoist-variables@7.18.6:
@@ -1982,18 +1967,6 @@ packages:
     dependencies:
       '@babel/types': 7.27.1
 
-  /@babel/helper-member-expression-to-functions@7.18.6:
-    resolution: {integrity: sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.27.1
-
-  /@babel/helper-member-expression-to-functions@7.18.9:
-    resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.27.1
-
   /@babel/helper-member-expression-to-functions@7.27.1:
     resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
     engines: {node: '>=6.9.0'}
@@ -2002,7 +1975,6 @@ packages:
       '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
   /@babel/helper-module-imports@7.16.0:
     resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
@@ -2068,6 +2040,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-module-transforms@7.27.1(@babel/core@7.9.0):
+    resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.9.0
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-validator-identifier': 7.27.1
+      '@babel/traverse': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/helper-optimise-call-expression@7.18.6:
     resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
     engines: {node: '>=6.9.0'}
@@ -2079,7 +2065,6 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.27.1
-    dev: false
 
   /@babel/helper-plugin-utils@7.19.0:
     resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==}
@@ -2100,7 +2085,7 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-wrap-function': 7.18.6
       '@babel/types': 7.27.1
@@ -2114,7 +2099,7 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-wrap-function': 7.18.6
       '@babel/types': 7.27.1
@@ -2129,7 +2114,7 @@ packages:
       '@babel/core': ^7.0.0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-wrap-function': 7.18.6
       '@babel/types': 7.27.1
@@ -2142,22 +2127,23 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-member-expression-to-functions': 7.18.6
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/traverse': 7.19.1
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
 
-  /@babel/helper-replace-supers@7.19.1:
-    resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==}
+  /@babel/helper-replace-supers@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
     engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
     dependencies:
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-member-expression-to-functions': 7.18.9
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/traverse': 7.19.1
-      '@babel/types': 7.27.1
+      '@babel/core': 7.19.1
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/traverse': 7.27.1
     transitivePeerDependencies:
       - supports-color
 
@@ -2173,7 +2159,20 @@ packages:
       '@babel/traverse': 7.27.1
     transitivePeerDependencies:
       - supports-color
-    dev: false
+
+  /@babel/helper-replace-supers@7.27.1(@babel/core@7.9.0):
+    resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.9.0
+      '@babel/helper-member-expression-to-functions': 7.27.1
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/traverse': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
 
   /@babel/helper-simple-access@7.18.6:
     resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
@@ -2195,7 +2194,6 @@ packages:
       '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
   /@babel/helper-split-export-declaration@7.18.6:
     resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
@@ -2232,8 +2230,8 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-function-name': 7.19.0
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.19.1
+      '@babel/template': 7.27.2
+      '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
     transitivePeerDependencies:
       - supports-color
@@ -2341,7 +2339,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1)
     transitivePeerDependencies:
@@ -2356,7 +2354,7 @@ packages:
     dependencies:
       '@babel/core': 7.9.0
       '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.9.0)
     transitivePeerDependencies:
@@ -2369,8 +2367,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.27.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2394,8 +2392,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
     transitivePeerDependencies:
       - supports-color
 
@@ -2406,8 +2404,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.19.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2446,9 +2444,9 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.1)
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/helper-replace-supers': 7.19.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.19.1)
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.19.1)
       '@babel/helper-split-export-declaration': 7.18.6
       '@babel/plugin-syntax-decorators': 7.18.6(@babel/core@7.19.1)
     transitivePeerDependencies:
@@ -2494,7 +2492,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.19.1)
     dev: false
 
@@ -2505,7 +2503,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.27.1)
     dev: false
 
@@ -2622,7 +2620,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
 
   /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.9.0):
@@ -2632,7 +2630,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.9.0)
     dev: true
 
@@ -2792,8 +2790,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2805,8 +2803,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.19.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2858,7 +2856,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.9.0):
@@ -2869,7 +2867,7 @@ packages:
     dependencies:
       '@babel/core': 7.9.0
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.19.1):
@@ -2904,7 +2902,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.1):
@@ -2913,7 +2911,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.19.1):
@@ -2967,7 +2965,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
   /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.19.1):
@@ -3002,7 +3000,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
   /@babel/plugin-syntax-export-default-from@7.18.6(@babel/core@7.27.1):
@@ -3012,7 +3010,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
   /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.19.1):
@@ -3048,17 +3046,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
-
-  /@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.1):
-    resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: false
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
 
   /@babel/plugin-syntax-flow@7.27.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==}
@@ -3068,7 +3057,6 @@ packages:
     dependencies:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.27.1
-    dev: true
 
   /@babel/plugin-syntax-flow@7.27.1(@babel/core@7.27.1):
     resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==}
@@ -3078,7 +3066,6 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
-    dev: false
 
   /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
@@ -3105,7 +3092,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.1):
@@ -3114,7 +3101,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.19.1):
@@ -3150,7 +3137,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
 
   /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
@@ -3159,7 +3146,18 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: false
+
+  /@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1):
     resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
@@ -3169,7 +3167,6 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
-    dev: false
 
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -3378,37 +3375,37 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
 
-  /@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.27.1):
-    resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
+  /@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/core': 7.19.1
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
-  /@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.9.0):
-    resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
+  /@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
 
-  /@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.1):
+  /@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.27.1
+      '@babel/core': 7.9.0
       '@babel/helper-plugin-utils': 7.27.1
-    dev: false
+    dev: true
 
   /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
@@ -3458,8 +3455,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
@@ -3472,8 +3469,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.9.0)
     transitivePeerDependencies:
       - supports-color
@@ -3535,6 +3532,19 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -3664,7 +3674,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.9.0):
@@ -3675,7 +3685,7 @@ packages:
     dependencies:
       '@babel/core': 7.9.0
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-transform-duplicate-keys@7.18.6(@babel/core@7.19.1):
@@ -3725,7 +3735,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.6
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
 
   /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
@@ -3735,29 +3745,18 @@ packages:
     dependencies:
       '@babel/core': 7.9.0
       '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.6
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
-  /@babel/plugin-transform-flow-strip-types@7.18.6(@babel/core@7.19.1):
-    resolution: {integrity: sha512-wE0xtA7csz+hw4fKPwxmu5jnzAsXPIO57XnRwzXP3T19jWh1BODnPGoG9xKYwvAwusP7iUktHayRFbMPGtODaQ==}
+  /@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.19.1)
-
-  /@babel/plugin-transform-flow-strip-types@7.18.6(@babel/core@7.27.1):
-    resolution: {integrity: sha512-wE0xtA7csz+hw4fKPwxmu5jnzAsXPIO57XnRwzXP3T19jWh1BODnPGoG9xKYwvAwusP7iUktHayRFbMPGtODaQ==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
-    dev: false
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.19.1)
 
   /@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.27.1):
     resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==}
@@ -3768,7 +3767,6 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
-    dev: false
 
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
@@ -3816,9 +3814,9 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-compilation-targets': 7.27.2
       '@babel/helper-function-name': 7.19.0
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
 
   /@babel/plugin-transform-function-name@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==}
@@ -3827,9 +3825,9 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.9.0)
+      '@babel/helper-compilation-targets': 7.27.2
       '@babel/helper-function-name': 7.19.0
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-transform-literals@7.18.6(@babel/core@7.19.1):
@@ -3908,8 +3906,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-module-transforms': 7.19.0
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
       babel-plugin-dynamic-import-node: 2.3.3
     transitivePeerDependencies:
       - supports-color
@@ -3922,8 +3920,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-module-transforms': 7.19.0
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.27.1
       babel-plugin-dynamic-import-node: 2.3.3
     transitivePeerDependencies:
       - supports-color
@@ -3943,35 +3941,6 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.27.1):
-    resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-module-transforms': 7.19.0
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-simple-access': 7.18.6
-      babel-plugin-dynamic-import-node: 2.3.3
-    transitivePeerDependencies:
-      - supports-color
-
-  /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.9.0):
-    resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.9.0
-      '@babel/helper-module-transforms': 7.19.0
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-simple-access': 7.18.6
-      babel-plugin-dynamic-import-node: 2.3.3
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
     engines: {node: '>=6.9.0'}
@@ -3996,7 +3965,19 @@ packages:
       '@babel/helper-plugin-utils': 7.27.1
     transitivePeerDependencies:
       - supports-color
-    dev: false
+
+  /@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.9.0):
+    resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.9.0
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
 
   /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
@@ -4021,8 +4002,8 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-hoist-variables': 7.18.6
-      '@babel/helper-module-transforms': 7.19.0
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-validator-identifier': 7.27.1
       babel-plugin-dynamic-import-node: 2.3.3
     transitivePeerDependencies:
@@ -4037,8 +4018,8 @@ packages:
     dependencies:
       '@babel/core': 7.9.0
       '@babel/helper-hoist-variables': 7.18.6
-      '@babel/helper-module-transforms': 7.19.0
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-validator-identifier': 7.27.1
       babel-plugin-dynamic-import-node: 2.3.3
     transitivePeerDependencies:
@@ -4101,7 +4082,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-transform-named-capturing-groups-regex@7.18.6(@babel/core@7.9.0):
@@ -4112,7 +4093,7 @@ packages:
     dependencies:
       '@babel/core': 7.9.0
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.19.1):
@@ -4144,6 +4125,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
+
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
     engines: {node: '>=6.9.0'}
@@ -4151,7 +4142,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.27.1):
@@ -4161,7 +4152,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
   /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.19.1):
@@ -4183,7 +4174,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.19.0
       '@babel/helper-replace-supers': 7.18.6
     transitivePeerDependencies:
       - supports-color
@@ -4195,12 +4186,25 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.19.0
       '@babel/helper-replace-supers': 7.18.6
     transitivePeerDependencies:
       - supports-color
     dev: true
 
+  /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -4229,6 +4233,19 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
     engines: {node: '>=6.9.0'}
@@ -4293,7 +4310,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
 
   /@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==}
@@ -4302,7 +4319,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
   /@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.19.1):
@@ -4312,7 +4329,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
 
   /@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==}
@@ -4321,7 +4338,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: false
 
   /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.19.1):
@@ -4379,7 +4396,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
       regenerator-transform: 0.15.0
 
   /@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.9.0):
@@ -4389,7 +4406,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
       regenerator-transform: 0.15.0
     dev: true
 
@@ -4428,10 +4445,12 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
       resolve: 1.22.1
       semver: 5.7.1
+    transitivePeerDependencies:
+      - supports-color
     dev: false
 
   /@babel/plugin-transform-runtime@7.9.0(@babel/core@7.27.1):
@@ -4440,10 +4459,12 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
       resolve: 1.22.1
       semver: 5.7.1
+    transitivePeerDependencies:
+      - supports-color
     dev: false
 
   /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.19.1):
@@ -4491,7 +4512,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.19.0
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
 
   /@babel/plugin-transform-spread@7.18.6(@babel/core@7.9.0):
@@ -4501,7 +4522,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.19.0
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
     dev: true
 
@@ -4604,63 +4625,52 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-typescript@7.18.8(@babel/core@7.9.0):
-    resolution: {integrity: sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.9.0
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.9.0)
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /@babel/plugin-transform-typescript@7.19.3(@babel/core@7.19.1):
-    resolution: {integrity: sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==}
+  /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.1)
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1)
+      '@babel/helper-annotate-as-pure': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.19.1)
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+      '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.19.1)
     transitivePeerDependencies:
       - supports-color
     dev: false
 
-  /@babel/plugin-transform-typescript@7.19.3(@babel/core@7.27.1):
-    resolution: {integrity: sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==}
+  /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-annotate-as-pure': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+      '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
-  /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.1):
+  /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.27.1
+      '@babel/core': 7.9.0
       '@babel/helper-annotate-as-pure': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.9.0)
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
-      '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.9.0)
     transitivePeerDependencies:
       - supports-color
-    dev: false
+    dev: true
 
   /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
@@ -4709,7 +4719,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
 
   /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
@@ -4719,7 +4729,7 @@ packages:
     dependencies:
       '@babel/core': 7.9.0
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
     dev: true
 
   /@babel/preset-env@7.12.17(@babel/core@7.9.0):
@@ -4729,10 +4739,10 @@ packages:
     dependencies:
       '@babel/compat-data': 7.19.1
       '@babel/core': 7.9.0
-      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.9.0)
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-validator-option': 7.18.6
+      '@babel/helper-compilation-targets': 7.27.2
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
       '@babel/plugin-proposal-async-generator-functions': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.9.0)
@@ -4773,7 +4783,7 @@ packages:
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-transform-modules-amd': 7.18.6(@babel/core@7.9.0)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.9.0)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.9.0)
       '@babel/plugin-transform-modules-systemjs': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.9.0)
       '@babel/plugin-transform-named-capturing-groups-regex': 7.18.6(@babel/core@7.9.0)
@@ -4889,11 +4899,11 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/compat-data': 7.19.1
+      '@babel/compat-data': 7.27.2
       '@babel/core': 7.27.1
-      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-validator-option': 7.18.6
+      '@babel/helper-compilation-targets': 7.27.2
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
       '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-proposal-async-generator-functions': 7.18.6(@babel/core@7.27.1)
@@ -4941,7 +4951,7 @@ packages:
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-modules-amd': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-transform-modules-systemjs': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-named-capturing-groups-regex': 7.18.6(@babel/core@7.27.1)
@@ -4959,12 +4969,12 @@ packages:
       '@babel/plugin-transform-unicode-escapes': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
       '@babel/preset-modules': 0.1.5(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       babel-plugin-polyfill-corejs2: 0.3.1(@babel/core@7.27.1)
       babel-plugin-polyfill-corejs3: 0.5.2(@babel/core@7.27.1)
       babel-plugin-polyfill-regenerator: 0.3.1(@babel/core@7.27.1)
       core-js-compat: 3.23.3
-      semver: 6.3.0
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -4976,9 +4986,9 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/helper-validator-option': 7.18.6
-      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.19.1)
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.19.1)
     dev: true
 
   /@babel/preset-flow@7.27.1(@babel/core@7.27.1):
@@ -4991,7 +5001,6 @@ packages:
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-validator-option': 7.27.1
       '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
-    dev: false
 
   /@babel/preset-modules@0.1.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
@@ -5052,9 +5061,9 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-validator-option': 7.18.6
-      '@babel/plugin-transform-typescript': 7.18.8(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
+      '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.9.0)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -5087,7 +5096,6 @@ packages:
       '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
   /@babel/register@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==}
@@ -5099,8 +5107,9 @@ packages:
       clone-deep: 4.0.1
       find-cache-dir: 2.1.0
       make-dir: 2.1.0
-      pirates: 4.0.5
+      pirates: 4.0.7
       source-map-support: 0.5.21
+    dev: true
 
   /@babel/register@7.27.1(@babel/core@7.27.1):
     resolution: {integrity: sha512-K13lQpoV54LATKkzBpBAEu1GGSIRzxR9f4IN4V8DCDgiUMo2UDGagEZr3lPeVNJPLkWUi5JE4hCHKneVTwQlYQ==}
@@ -5114,7 +5123,6 @@ packages:
       make-dir: 2.1.0
       pirates: 4.0.7
       source-map-support: 0.5.21
-    dev: false
 
   /@babel/runtime-corejs3@7.18.6:
     resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
@@ -5885,7 +5893,7 @@ packages:
       jest-util: 27.5.1
       jest-validate: 27.5.1
       jest-watcher: 27.5.1
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       rimraf: 3.0.2
       slash: 3.0.0
       strip-ansi: 6.0.1
@@ -6008,7 +6016,7 @@ packages:
     resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@jest/types': 27.5.1
       babel-plugin-istanbul: 6.1.1
       chalk: 4.1.2
@@ -6018,7 +6026,7 @@ packages:
       jest-haste-map: 27.5.1
       jest-regex-util: 27.5.1
       jest-util: 27.5.1
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       pirates: 4.0.5
       slash: 3.0.0
       source-map: 0.6.1
@@ -6426,16 +6434,16 @@ packages:
     resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
     engines: {node: '>=6.0.0'}
     dependencies:
-      '@jridgewell/set-array': 1.1.2
+      '@jridgewell/set-array': 1.2.1
       '@jridgewell/sourcemap-codec': 1.4.14
 
   /@jridgewell/gen-mapping@0.3.2:
     resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
     engines: {node: '>=6.0.0'}
     dependencies:
-      '@jridgewell/set-array': 1.1.2
+      '@jridgewell/set-array': 1.2.1
       '@jridgewell/sourcemap-codec': 1.4.14
-      '@jridgewell/trace-mapping': 0.3.14
+      '@jridgewell/trace-mapping': 0.3.25
 
   /@jridgewell/gen-mapping@0.3.8:
     resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
@@ -6449,10 +6457,6 @@ packages:
     resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
     engines: {node: '>=6.0.0'}
 
-  /@jridgewell/set-array@1.1.2:
-    resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
-    engines: {node: '>=6.0.0'}
-
   /@jridgewell/set-array@1.2.1:
     resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
     engines: {node: '>=6.0.0'}
@@ -6460,8 +6464,8 @@ packages:
   /@jridgewell/source-map@0.3.2:
     resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
     dependencies:
-      '@jridgewell/gen-mapping': 0.3.2
-      '@jridgewell/trace-mapping': 0.3.14
+      '@jridgewell/gen-mapping': 0.3.8
+      '@jridgewell/trace-mapping': 0.3.25
     dev: true
 
   /@jridgewell/sourcemap-codec@1.4.14:
@@ -7683,6 +7687,13 @@ packages:
       recast: 0.20.5
     dev: true
 
+  /@types/jscodeshift@17.3.0:
+    resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==}
+    dependencies:
+      ast-types: 0.16.1
+      recast: 0.23.11
+    dev: true
+
   /@types/json-schema@7.0.11:
     resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
     dev: true
@@ -8983,6 +8994,13 @@ packages:
     dependencies:
       tslib: 2.6.0
 
+  /ast-types@0.16.1:
+    resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
+    engines: {node: '>=4'}
+    dependencies:
+      tslib: 2.6.0
+    dev: true
+
   /astral-regex@1.0.0:
     resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==}
     engines: {node: '>=4'}
@@ -9164,7 +9182,7 @@ packages:
     resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
     engines: {node: '>=8'}
     dependencies:
-      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-plugin-utils': 7.27.1
       '@istanbuljs/load-nyc-config': 1.1.0
       '@istanbuljs/schema': 0.1.3
       istanbul-lib-instrument: 5.2.1
@@ -9177,7 +9195,7 @@ packages:
     resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
-      '@babel/template': 7.18.10
+      '@babel/template': 7.27.2
       '@babel/types': 7.27.1
       '@types/babel__core': 7.1.19
       '@types/babel__traverse': 7.17.1
@@ -9202,8 +9220,8 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.16.0
-      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1)
+      '@babel/types': 7.27.1
       html-entities: 2.3.2
     dev: true
 
@@ -9234,7 +9252,7 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/compat-data': 7.19.1
+      '@babel/compat-data': 7.27.2
       '@babel/core': 7.27.1
       '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
       semver: 6.3.1
@@ -9361,8 +9379,8 @@ packages:
       '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-proposal-object-rest-spread': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.19.1)
-      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.19.1)
+      '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.19.1)
@@ -9370,12 +9388,12 @@ packages:
       '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.19.1)
@@ -9398,8 +9416,8 @@ packages:
       '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-proposal-object-rest-spread': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1)
-      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
       '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.27.1)
@@ -9407,12 +9425,12 @@ packages:
       '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.27.1)
       '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
       '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
       '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.27.1)
@@ -9548,18 +9566,11 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /braces@3.0.2:
-    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
-    engines: {node: '>=8'}
-    dependencies:
-      fill-range: 7.0.1
-
   /braces@3.0.3:
     resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
     engines: {node: '>=8'}
     dependencies:
       fill-range: 7.1.1
-    dev: false
 
   /broadcast-channel@4.14.0:
     resolution: {integrity: sha512-uNzxOgBQ+boWCRDESLNg3zZWQ3iz/X7j/uD8pAfr4/S7wQerXVvJI/SBKd9J6ckaPt2jil0gq+7l+3b+kuxJYw==}
@@ -9589,10 +9600,10 @@ packages:
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
     dependencies:
-      caniuse-lite: 1.0.30001508
-      electron-to-chromium: 1.4.258
-      node-releases: 2.0.6
-      update-browserslist-db: 1.0.9(browserslist@4.21.4)
+      caniuse-lite: 1.0.30001717
+      electron-to-chromium: 1.5.151
+      node-releases: 2.0.19
+      update-browserslist-db: 1.1.3(browserslist@4.21.4)
 
   /browserslist@4.21.9:
     resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==}
@@ -9790,6 +9801,7 @@ packages:
 
   /caniuse-lite@1.0.30001508:
     resolution: {integrity: sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==}
+    dev: true
 
   /caniuse-lite@1.0.30001717:
     resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==}
@@ -9867,7 +9879,7 @@ packages:
     engines: {node: '>= 8.10.0'}
     dependencies:
       anymatch: 3.1.2
-      braces: 3.0.2
+      braces: 3.0.3
       glob-parent: 5.1.2
       is-binary-path: 2.1.0
       is-glob: 4.0.3
@@ -10650,9 +10662,6 @@ packages:
     resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=}
     dev: false
 
-  /electron-to-chromium@1.4.258:
-    resolution: {integrity: sha512-vutF4q0dTUXoAFI7Vbtdwen/BJVwPgj8GRg/SElOodfH7VTX+svUe62A5BG41QRQGk5HsZPB0M++KH1lAlOt0A==}
-
   /electron-to-chromium@1.4.441:
     resolution: {integrity: sha512-LlCgQ8zgYZPymf5H4aE9itwiIWH4YlCiv1HFLmmcBeFYi5E+3eaIFnjHzYtcFQbaKfAW+CqZ9pgxo33DZuoqPg==}
     dev: true
@@ -11064,10 +11073,6 @@ packages:
       '@esbuild/win32-x64': 0.16.15
     dev: true
 
-  /escalade@3.1.1:
-    resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
-    engines: {node: '>=6'}
-
   /escalade@3.2.0:
     resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
     engines: {node: '>=6'}
@@ -11342,7 +11347,7 @@ packages:
     peerDependencies:
       eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8
     dependencies:
-      '@babel/traverse': 7.19.1
+      '@babel/traverse': 7.27.1
       eslint: 8.34.0
       eslint-plugin-react-native-globals: 0.1.2
     transitivePeerDependencies:
@@ -11880,7 +11885,7 @@ packages:
       '@nodelib/fs.walk': 1.2.8
       glob-parent: 5.1.2
       merge2: 1.4.1
-      micromatch: 4.0.5
+      micromatch: 4.0.8
     dev: true
 
   /fast-glob@3.2.12:
@@ -11891,7 +11896,7 @@ packages:
       '@nodelib/fs.walk': 1.2.8
       glob-parent: 5.1.2
       merge2: 1.4.1
-      micromatch: 4.0.5
+      micromatch: 4.0.8
 
   /fast-glob@3.2.7:
     resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
@@ -11901,7 +11906,7 @@ packages:
       '@nodelib/fs.walk': 1.2.8
       glob-parent: 5.1.2
       merge2: 1.4.1
-      micromatch: 4.0.5
+      micromatch: 4.0.8
     dev: true
 
   /fast-json-stable-stringify@2.1.0:
@@ -11995,18 +12000,11 @@ packages:
       repeat-string: 1.6.1
       to-regex-range: 2.1.1
 
-  /fill-range@7.0.1:
-    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
-    engines: {node: '>=8'}
-    dependencies:
-      to-regex-range: 5.0.1
-
   /fill-range@7.1.1:
     resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
     engines: {node: '>=8'}
     dependencies:
       to-regex-range: 5.0.1
-    dev: false
 
   /filter-obj@1.1.0:
     resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
@@ -12554,7 +12552,7 @@ packages:
       '@babel/runtime': 7.19.0
       loose-envify: 1.4.0
       resolve-pathname: 3.0.0
-      tiny-invariant: 1.2.0
+      tiny-invariant: 1.3.3
       tiny-warning: 1.0.3
       value-equal: 1.0.1
     dev: false
@@ -13174,7 +13172,7 @@ packages:
     resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
     engines: {node: '>=8'}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@babel/parser': 7.27.2
       '@istanbuljs/schema': 0.1.3
       istanbul-lib-coverage: 3.2.0
@@ -13286,10 +13284,10 @@ packages:
       ts-node:
         optional: true
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@jest/test-sequencer': 27.5.1
       '@jest/types': 27.5.1
-      babel-jest: 27.5.1(@babel/core@7.19.1)
+      babel-jest: 27.5.1(@babel/core@7.27.1)
       chalk: 4.1.2
       ci-info: 3.3.2
       deepmerge: 4.2.2
@@ -13305,7 +13303,7 @@ packages:
       jest-runner: 27.5.1
       jest-util: 27.5.1
       jest-validate: 27.5.1
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       parse-json: 5.2.0
       pretty-format: 27.5.1
       slash: 3.0.0
@@ -13432,7 +13430,7 @@ packages:
       jest-serializer: 27.5.1
       jest-util: 27.5.1
       jest-worker: 27.5.1
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       walker: 1.0.8
     optionalDependencies:
       fsevents: 2.3.2
@@ -13490,7 +13488,7 @@ packages:
       '@types/stack-utils': 2.0.1
       chalk: 4.1.2
       graceful-fs: 4.2.10
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       pretty-format: 27.5.1
       slash: 3.0.0
       stack-utils: 2.0.5
@@ -13635,16 +13633,16 @@ packages:
     resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
-      '@babel/core': 7.19.1
-      '@babel/generator': 7.19.0
-      '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1)
-      '@babel/traverse': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/generator': 7.27.1
+      '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
       '@jest/transform': 27.5.1
       '@jest/types': 27.5.1
       '@types/babel__traverse': 7.17.1
       '@types/prettier': 2.6.3
-      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1)
+      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.27.1)
       chalk: 4.1.2
       expect: 27.5.1
       graceful-fs: 4.2.10
@@ -13884,6 +13882,39 @@ packages:
       - supports-color
     dev: true
 
+  /jscodeshift@17.3.0(@babel/preset-env@7.18.6):
+    resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==}
+    engines: {node: '>=16'}
+    hasBin: true
+    peerDependencies:
+      '@babel/preset-env': ^7.1.6
+    peerDependenciesMeta:
+      '@babel/preset-env':
+        optional: true
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
+      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/register': 7.27.1(@babel/core@7.27.1)
+      flow-parser: 0.121.0
+      graceful-fs: 4.2.10
+      micromatch: 4.0.8
+      neo-async: 2.6.2
+      picocolors: 1.1.1
+      recast: 0.23.11
+      tmp: 0.2.3
+      write-file-atomic: 5.0.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /jsdom@16.7.0:
     resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
     engines: {node: '>=10'}
@@ -14499,13 +14530,13 @@ packages:
   /metro-babel-register@0.64.0:
     resolution: {integrity: sha512-Kf6YvE3kIRumGnjK0Q9LqGDIdnsX9eFGtNBmBuCVDuB9wGGA/5CgX8We8W7Y44dz1RGTcHJRhfw5iGg+pwC3aQ==}
     dependencies:
-      '@babel/core': 7.19.1
-      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
-      '@babel/register': 7.18.6(@babel/core@7.19.1)
+      '@babel/core': 7.27.1
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
+      '@babel/register': 7.27.1(@babel/core@7.27.1)
       escape-string-regexp: 1.0.5
     transitivePeerDependencies:
       - supports-color
@@ -14523,7 +14554,7 @@ packages:
   /metro-babel-transformer@0.64.0:
     resolution: {integrity: sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       metro-source-map: 0.64.0
       nullthrows: 1.1.1
     transitivePeerDependencies:
@@ -14608,7 +14639,7 @@ packages:
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.19.1)
@@ -14617,7 +14648,7 @@ packages:
       '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.19.1)
@@ -14634,9 +14665,9 @@ packages:
       '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.19.1)
+      '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.19.1)
-      '@babel/template': 7.18.10
+      '@babel/template': 7.27.2
       react-refresh: 0.4.3
     transitivePeerDependencies:
       - supports-color
@@ -14656,7 +14687,7 @@ packages:
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.19.1)
@@ -14665,11 +14696,11 @@ packages:
       '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.19.1)
@@ -14682,9 +14713,9 @@ packages:
       '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.19.1)
+      '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.19.1)
-      '@babel/template': 7.18.10
+      '@babel/template': 7.27.2
       react-refresh: 0.4.3
     transitivePeerDependencies:
       - supports-color
@@ -14704,7 +14735,7 @@ packages:
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
       '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
       '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
@@ -14713,11 +14744,11 @@ packages:
       '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
       '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
       '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.27.1)
@@ -14730,9 +14761,9 @@ packages:
       '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.27.1)
       '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.27.1)
-      '@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
       '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
-      '@babel/template': 7.18.10
+      '@babel/template': 7.27.2
       react-refresh: 0.4.3
     transitivePeerDependencies:
       - supports-color
@@ -14795,7 +14826,7 @@ packages:
   /metro-source-map@0.59.0:
     resolution: {integrity: sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ==}
     dependencies:
-      '@babel/traverse': 7.19.1
+      '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
       invariant: 2.2.4
       metro-symbolicate: 0.59.0
@@ -14809,7 +14840,7 @@ packages:
   /metro-source-map@0.64.0:
     resolution: {integrity: sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==}
     dependencies:
-      '@babel/traverse': 7.19.1
+      '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
       invariant: 2.2.4
       metro-symbolicate: 0.64.0
@@ -14854,9 +14885,9 @@ packages:
     resolution: {integrity: sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==}
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/generator': 7.19.0
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.19.1
+      '@babel/generator': 7.27.1
+      '@babel/template': 7.27.2
+      '@babel/traverse': 7.27.1
       nullthrows: 1.1.1
     transitivePeerDependencies:
       - supports-color
@@ -14866,7 +14897,7 @@ packages:
     resolution: {integrity: sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==}
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/generator': 7.19.0
+      '@babel/generator': 7.27.1
       '@babel/parser': 7.27.2
       '@babel/types': 7.27.1
       babel-preset-fbjs: 3.4.0(@babel/core@7.27.1)
@@ -14890,11 +14921,11 @@ packages:
     hasBin: true
     dependencies:
       '@babel/code-frame': 7.27.1
-      '@babel/core': 7.19.1
-      '@babel/generator': 7.19.0
+      '@babel/core': 7.27.1
+      '@babel/generator': 7.27.1
       '@babel/parser': 7.27.2
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.19.1
+      '@babel/template': 7.27.2
+      '@babel/traverse': 7.27.1
       '@babel/types': 7.27.1
       absolute-path: 0.0.0
       accepts: 1.3.8
@@ -14921,7 +14952,7 @@ packages:
       metro-hermes-compiler: 0.64.0
       metro-inspector-proxy: 0.64.0
       metro-minify-uglify: 0.64.0
-      metro-react-native-babel-preset: 0.64.0(@babel/core@7.19.1)
+      metro-react-native-babel-preset: 0.64.0(@babel/core@7.27.1)
       metro-resolver: 0.64.0
       metro-runtime: 0.64.0
       metro-source-map: 0.64.0
@@ -14971,8 +15002,9 @@ packages:
     resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
     engines: {node: '>=8.6'}
     dependencies:
-      braces: 3.0.2
+      braces: 3.0.3
       picomatch: 2.3.1
+    dev: true
 
   /micromatch@4.0.8:
     resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
@@ -14980,7 +15012,6 @@ packages:
     dependencies:
       braces: 3.0.3
       picomatch: 2.3.1
-    dev: false
 
   /microtime@3.1.0:
     resolution: {integrity: sha512-GcjhfC2y/DF2znac8IRwri7+YUIy34QRHz/iZK3bHrh74qrNNOpAJQwiOMnIG+v1J0K4eiqd+RiGzN3F1eofTQ==}
@@ -15330,9 +15361,6 @@ packages:
   /node-releases@2.0.19:
     resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
 
-  /node-releases@2.0.6:
-    resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
-
   /node-stream-zip@1.15.0:
     resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==}
     engines: {node: '>=0.12.0'}
@@ -15962,11 +15990,11 @@ packages:
   /pirates@4.0.5:
     resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
     engines: {node: '>= 6'}
+    dev: true
 
   /pirates@4.0.7:
     resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
     engines: {node: '>= 6'}
-    dev: false
 
   /pixelmatch@4.0.2:
     resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==}
@@ -16737,6 +16765,17 @@ packages:
       source-map: 0.6.1
       tslib: 2.6.0
 
+  /recast@0.23.11:
+    resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
+    engines: {node: '>= 4'}
+    dependencies:
+      ast-types: 0.16.1
+      esprima: 4.0.1
+      source-map: 0.6.1
+      tiny-invariant: 1.3.3
+      tslib: 2.6.0
+    dev: true
+
   /rechoir@0.6.2:
     resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
     engines: {node: '>= 0.10'}
@@ -17317,6 +17356,11 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
+  /signal-exit@4.1.0:
+    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+    dev: true
+
   /simple-git@3.27.0:
     resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
     dependencies:
@@ -17456,10 +17500,12 @@ packages:
     peerDependencies:
       solid-js: ^1.3
     dependencies:
-      '@babel/generator': 7.19.0
-      '@babel/helper-module-imports': 7.18.6
+      '@babel/generator': 7.27.1
+      '@babel/helper-module-imports': 7.27.1
       '@babel/types': 7.27.1
       solid-js: 1.5.4
+    transitivePeerDependencies:
+      - supports-color
     dev: true
 
   /solid-testing-library@0.3.0(solid-js@1.5.7):
@@ -17811,7 +17857,7 @@ packages:
       glob: 7.1.6
       lines-and-columns: 1.2.4
       mz: 2.7.0
-      pirates: 4.0.5
+      pirates: 4.0.7
       ts-interface-checker: 0.1.13
 
   /sudo-prompt@9.2.1:
@@ -17884,6 +17930,34 @@ packages:
       - sugarss
     dev: true
 
+  /svelte-check@2.10.3(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0):
+    resolution: {integrity: sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==}
+    hasBin: true
+    peerDependencies:
+      svelte: ^3.24.0
+    dependencies:
+      '@jridgewell/trace-mapping': 0.3.14
+      chokidar: 3.5.3
+      fast-glob: 3.2.11
+      import-fresh: 3.3.0
+      picocolors: 1.0.0
+      sade: 1.8.1
+      svelte: 3.55.0
+      svelte-preprocess: 4.10.7(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)(typescript@4.8.4)
+      typescript: 4.8.4
+    transitivePeerDependencies:
+      - '@babel/core'
+      - coffeescript
+      - less
+      - node-sass
+      - postcss
+      - postcss-load-config
+      - pug
+      - sass
+      - stylus
+      - sugarss
+    dev: true
+
   /svelte-eslint-parser@0.22.3(svelte@3.55.0):
     resolution: {integrity: sha512-l9M1QbQ8YsF92FNtwHYKoJWnJvBAKB89jmiKLCG9R5GOlidehFzvmxzdK4lsJjzx5UylrTKuKlR815RFopq1Vw==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -17958,6 +18032,59 @@ packages:
       typescript: 4.8.4
     dev: true
 
+  /svelte-preprocess@4.10.7(@babel/core@7.27.1)(postcss@8.4.21)(svelte@3.55.0)(typescript@4.8.4):
+    resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==}
+    engines: {node: '>= 9.11.2'}
+    requiresBuild: true
+    peerDependencies:
+      '@babel/core': ^7.10.2
+      coffeescript: ^2.5.1
+      less: ^3.11.3 || ^4.0.0
+      node-sass: '*'
+      postcss: ^7 || ^8
+      postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0
+      pug: ^3.0.0
+      sass: ^1.26.8
+      stylus: ^0.55.0
+      sugarss: ^2.0.0
+      svelte: ^3.23.0
+      typescript: ^3.9.5 || ^4.0.0
+    peerDependenciesMeta:
+      '@babel/core':
+        optional: true
+      coffeescript:
+        optional: true
+      less:
+        optional: true
+      node-sass:
+        optional: true
+      postcss:
+        optional: true
+      postcss-load-config:
+        optional: true
+      pug:
+        optional: true
+      sass:
+        optional: true
+      stylus:
+        optional: true
+      sugarss:
+        optional: true
+      typescript:
+        optional: true
+    dependencies:
+      '@babel/core': 7.27.1
+      '@types/pug': 2.0.6
+      '@types/sass': 1.43.1
+      detect-indent: 6.1.0
+      magic-string: 0.25.9
+      postcss: 8.4.21
+      sorcery: 0.10.0
+      strip-indent: 3.0.0
+      svelte: 3.55.0
+      typescript: 4.8.4
+    dev: true
+
   /svelte2tsx@0.6.0(svelte@3.55.0)(typescript@4.8.4):
     resolution: {integrity: sha512-TrxfQkO7CKi8Pu2eC/FyteDCdk3OOeQV5u6z7OjYAsOhsd0ClzAKqxJdvp6xxNQLrbFzf/XvCi9Fy8MQ1MleFA==}
     peerDependencies:
@@ -18163,6 +18290,9 @@ packages:
     resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==}
     dev: false
 
+  /tiny-invariant@1.3.3:
+    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+
   /tiny-warning@1.0.3:
     resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
     dev: false
@@ -18204,6 +18334,11 @@ packages:
       rimraf: 3.0.2
     dev: true
 
+  /tmp@0.2.3:
+    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
+    engines: {node: '>=14.14'}
+    dev: true
+
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
@@ -18669,18 +18804,18 @@ packages:
       browserslist: '>= 4.21.0'
     dependencies:
       browserslist: 4.21.9
-      escalade: 3.1.1
+      escalade: 3.2.0
       picocolors: 1.1.1
     dev: true
 
-  /update-browserslist-db@1.0.9(browserslist@4.21.4):
-    resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==}
+  /update-browserslist-db@1.1.3(browserslist@4.21.4):
+    resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
     hasBin: true
     peerDependencies:
       browserslist: '>= 4.21.0'
     dependencies:
       browserslist: 4.21.4
-      escalade: 3.1.1
+      escalade: 3.2.0
       picocolors: 1.1.1
 
   /update-browserslist-db@1.1.3(browserslist@4.24.5):
@@ -19328,6 +19463,14 @@ packages:
       typedarray-to-buffer: 3.1.5
     dev: true
 
+  /write-file-atomic@5.0.1:
+    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
+    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+    dependencies:
+      imurmurhash: 0.1.4
+      signal-exit: 4.1.0
+    dev: true
+
   /ws@1.1.5:
     resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
     peerDependencies:
@@ -19522,7 +19665,7 @@ packages:
     engines: {node: '>=10'}
     dependencies:
       cliui: 7.0.4
-      escalade: 3.1.1
+      escalade: 3.2.0
       get-caller-file: 2.0.5
       require-directory: 2.1.1
       string-width: 4.2.3
@@ -19534,7 +19677,7 @@ packages:
     engines: {node: '>=12'}
     dependencies:
       cliui: 7.0.4
-      escalade: 3.1.1
+      escalade: 3.2.0
       get-caller-file: 2.0.5
       require-directory: 2.1.1
       string-width: 4.2.3
@@ -19546,7 +19689,7 @@ packages:
     engines: {node: '>=12'}
     dependencies:
       cliui: 8.0.1
-      escalade: 3.1.1
+      escalade: 3.2.0
       get-caller-file: 2.0.5
       require-directory: 2.1.1
       string-width: 4.2.3
@@ -19562,3 +19705,7 @@ packages:
   /yocto-queue@0.1.0:
     resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
     engines: {node: '>=10'}
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json
index 52a0022afb..e930013d21 100644
--- a/scripts/tsconfig.json
+++ b/scripts/tsconfig.json
@@ -9,13 +9,5 @@
     "noImplicitAny": true,
     "skipLibCheck": true,
     "checkJs": true
-  },
-  "ts-node": {
-    "transpileOnly": true,
-    "files": true,
-    "compilerOptions": {
-      "sourceMap": true,
-      "inlineSources": true
-    }
   }
 }

From 52f93a53d1fa746821d60fee49c61c879c387187 Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Sat, 31 May 2025 22:59:51 +1000
Subject: [PATCH 37/45] ci(v4): fix Nx commands

---
 .github/workflows/ci.yml |  4 +--
 .github/workflows/pr.yml | 53 +++++++++-------------------------------
 2 files changed, 14 insertions(+), 43 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 27d6d08355..7e4851d9b1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -41,9 +41,9 @@ jobs:
           cache: pnpm
           cache-dependency-path: pnpm-lock.yaml
       - name: Install dependencies
-        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
+        run: pnpm install --frozen-lockfile
       - name: Run Tests
-        run: pnpm run test:ci --base=${{ github.event.before }}
+        run: pnpm run test:ci
       - name: Publish
         run: |
           git config --global user.name 'Tanner Linsley'
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 9367d55996..b29a138611 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -15,7 +15,7 @@ env:
 
 jobs:
   main:
-    name: Nx Cloud - Main Job
+    name: Nx Cloud
     runs-on: ubuntu-latest
     steps:
       - name: Checkout
@@ -31,46 +31,15 @@ jobs:
           cache: pnpm
           cache-dependency-path: pnpm-lock.yaml
       - name: Install dependencies
-        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
-      - name: Get appropriate base and head commits for `nx affected` commands
-        uses: nrwl/nx-set-shas@v3
+        run: pnpm install --frozen-lockfile
+      - name: Get base and head commits for `nx affected`
+        uses: nrwl/nx-set-shas@v4.3.0
         with:
-          main-branch-name: 'main'
-      - run: |
-          echo "BASE: ${{ env.NX_BASE }}"
-          echo "HEAD: ${{ env.NX_HEAD }}"
-      - name: Start CI Orchestrator
-        run: npx nx-cloud start-ci-run
+          main-branch-name: main
       - name: Run Tests
         run: pnpm run test:pr
-      - name: Stop Agents
-        run: npx nx-cloud stop-all-agents
       - name: Upload coverage to Codecov
         uses: codecov/codecov-action@v3
-  agents:
-    name: Nx Cloud - Agents
-    runs-on: ubuntu-latest
-    timeout-minutes: 10
-    strategy:
-      matrix:
-        agent: [1, 2, 3]
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4.2.2
-        with:
-          fetch-depth: 0
-      - name: Setup pnpm
-        uses: pnpm/action-setup@v4.1.0
-      - name: Setup Node
-        uses: actions/setup-node@v3
-        with:
-          node-version-file: .nvmrc
-          cache: pnpm
-          cache-dependency-path: pnpm-lock.yaml
-      - name: Install dependencies
-        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
-      - name: Start Nx Agent ${{ matrix.agent }}
-        run: npx nx-cloud start-agent
   format:
     name: Format
     runs-on: ubuntu-latest
@@ -88,7 +57,7 @@ jobs:
           cache: pnpm
           cache-dependency-path: pnpm-lock.yaml
       - name: Install dependencies
-        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
+        run: pnpm install --frozen-lockfile
       - name: Run prettier
         run: pnpm run test:format
   test-react-17:
@@ -109,15 +78,17 @@ jobs:
           cache: pnpm
           cache-dependency-path: pnpm-lock.yaml
       - name: Install dependencies
-        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
-      - name: Derive appropriate SHAs for base and head for `nx affected` commands
-        uses: nrwl/nx-set-shas@v2
+        run: pnpm install --frozen-lockfile
+      - name: Get base and head commits for `nx affected`
+        uses: nrwl/nx-set-shas@v4.3.0
+        with:
+          main-branch-name: main
       - name: Run Tests
         uses: nick-fields/retry@v2.8.3
         with:
           timeout_minutes: 5
           max_attempts: 3
-          command: npx nx affected --targets=test:lib --base=${{ github.event.pull_request.base.sha }}
+          command: pnpm nx affected --targets=test:lib
         env:
           NX_CLOUD_DISTRIBUTED_EXECUTION: false
           REACTJS_VERSION: 17

From e210ca1d25726670e8d83433c80fe703e95b36a1 Mon Sep 17 00:00:00 2001
From: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Date: Sat, 31 May 2025 13:09:58 +0000
Subject: [PATCH 38/45] release: v4.39.1

---
 examples/react/algolia/package.json           |   6 +-
 examples/react/auto-refetching/package.json   |   4 +-
 .../react/basic-graphql-request/package.json  |   4 +-
 examples/react/basic-typescript/package.json  |  10 +-
 examples/react/basic/package.json             |   6 +-
 .../react/default-query-function/package.json |   4 +-
 .../load-more-infinite-scroll/package.json    |   4 +-
 examples/react/nextjs/package.json            |   4 +-
 examples/react/offline/package.json           |   8 +-
 .../package.json                              |   4 +-
 examples/react/pagination/package.json        |   4 +-
 examples/react/playground/package.json        |   4 +-
 examples/react/prefetching/package.json       |   4 +-
 examples/react/react-native/package.json      |   4 +-
 examples/react/react-router/package.json      |   4 +-
 examples/react/rick-morty/package.json        |   4 +-
 examples/react/simple/package.json            |   4 +-
 examples/react/star-wars/package.json         |   4 +-
 examples/react/suspense/package.json          |   4 +-
 .../solid/basic-graphql-request/package.json  |   2 +-
 examples/solid/basic-typescript/package.json  |   2 +-
 .../solid/default-query-function/package.json |   2 +-
 examples/solid/simple/package.json            |   4 +-
 examples/svelte/auto-refetching/package.json  |   2 +-
 examples/svelte/basic/package.json            |   2 +-
 .../load-more-infinite-scroll/package.json    |   2 +-
 .../package.json                              |   2 +-
 examples/svelte/playground/package.json       |   2 +-
 examples/svelte/simple/package.json           |   2 +-
 examples/svelte/ssr/package.json              |   2 +-
 examples/svelte/star-wars/package.json        |   2 +-
 examples/vue/2.6-basic/package.json           |   2 +-
 examples/vue/basic/package.json               |   2 +-
 examples/vue/dependent-queries/package.json   |   2 +-
 examples/vue/nuxt3/package.json               |   2 +-
 examples/vue/persister/package.json           |   6 +-
 packages/eslint-plugin-query/package.json     |   2 +-
 .../package.json                              |   2 +-
 .../package.json                              |   2 +-
 packages/query-core/package.json              |   2 +-
 .../query-persist-client-core/package.json    |   2 +-
 .../query-sync-storage-persister/package.json |   2 +-
 packages/react-query-devtools/package.json    |   2 +-
 .../react-query-persist-client/package.json   |   2 +-
 packages/react-query/package.json             |   2 +-
 packages/solid-query/package.json             |   2 +-
 packages/svelte-query/package.json            |   2 +-
 packages/vue-query/package.json               |   2 +-
 pnpm-lock.yaml                                | 282 +++++-------------
 49 files changed, 155 insertions(+), 281 deletions(-)

diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json
index d2127da751..cb1bcda424 100644
--- a/examples/react/algolia/package.json
+++ b/examples/react/algolia/package.json
@@ -10,14 +10,14 @@
   "dependencies": {
     "@algolia/client-search": "4.11.0",
     "@algolia/transporter": "4.11.0",
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "algoliasearch": "4.12.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
   },
   "devDependencies": {
-    "@tanstack/eslint-plugin-query": "^4.13.0",
+    "@tanstack/eslint-plugin-query": "^4.39.1",
     "@types/react": "^18.0.14",
     "@types/react-dom": "^18.0.5",
     "@vitejs/plugin-react": "^2.0.0",
diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json
index 81af42810f..50e64cbc4e 100644
--- a/examples/react/auto-refetching/package.json
+++ b/examples/react/auto-refetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json
index b9afcb1099..979fdcf0eb 100644
--- a/examples/react/basic-graphql-request/package.json
+++ b/examples/react/basic-graphql-request/package.json
@@ -12,8 +12,8 @@
     "graphql-request": "^3.1.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0"
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1"
   },
   "devDependencies": {
     "@vitejs/plugin-react": "^2.0.0",
diff --git a/examples/react/basic-typescript/package.json b/examples/react/basic-typescript/package.json
index 162ba19bd1..393703a057 100644
--- a/examples/react/basic-typescript/package.json
+++ b/examples/react/basic-typescript/package.json
@@ -8,16 +8,16 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
-    "@tanstack/react-query-persist-client": "^4.39.0",
-    "@tanstack/query-sync-storage-persister": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query-persist-client": "^4.39.1",
+    "@tanstack/query-sync-storage-persister": "^4.39.1",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
   },
   "devDependencies": {
-    "@tanstack/eslint-plugin-query": "^4.13.0",
+    "@tanstack/eslint-plugin-query": "^4.39.1",
     "@types/react": "^17.0.3",
     "@types/react-dom": "^17.0.3",
     "@vitejs/plugin-react": "^2.0.0",
diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json
index fbd8dea44b..98e62a478a 100644
--- a/examples/react/basic/package.json
+++ b/examples/react/basic/package.json
@@ -8,14 +8,14 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
   },
   "devDependencies": {
-    "@tanstack/eslint-plugin-query": "^4.13.0",
+    "@tanstack/eslint-plugin-query": "^4.39.1",
     "@vitejs/plugin-react": "^2.0.0",
     "vite": "^3.0.0"
   },
diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json
index 0f507f7c79..3a0298edd8 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": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json
index bbc72b4633..ff1bd5390c 100644
--- a/examples/react/load-more-infinite-scroll/package.json
+++ b/examples/react/load-more-infinite-scroll/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json
index 870d4d7f09..f908e7e04e 100644
--- a/examples/react/nextjs/package.json
+++ b/examples/react/nextjs/package.json
@@ -8,8 +8,8 @@
     "start": "next start"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "ky": "^0.23.0",
     "ky-universal": "^0.8.2",
     "next": "12.2.2",
diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json
index c687d697aa..8c23e109cb 100644
--- a/examples/react/offline/package.json
+++ b/examples/react/offline/package.json
@@ -9,10 +9,10 @@
   },
   "dependencies": {
     "@tanstack/react-location": "^3.7.0",
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
-    "@tanstack/react-query-persist-client": "^4.39.0",
-    "@tanstack/query-sync-storage-persister": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query-persist-client": "^4.39.1",
+    "@tanstack/query-sync-storage-persister": "^4.39.1",
     "ky": "^0.30.0",
     "msw": "^0.39.2",
     "react": "^18.0.0",
diff --git a/examples/react/optimistic-updates-typescript/package.json b/examples/react/optimistic-updates-typescript/package.json
index d5182e0433..4f7163caef 100755
--- a/examples/react/optimistic-updates-typescript/package.json
+++ b/examples/react/optimistic-updates-typescript/package.json
@@ -4,8 +4,8 @@
   "main": "pages/index.tsx",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json
index 2938476e0c..2d5c7aadcc 100644
--- a/examples/react/pagination/package.json
+++ b/examples/react/pagination/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json
index d03673cf5e..f7956b7fd9 100644
--- a/examples/react/playground/package.json
+++ b/examples/react/playground/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
   },
diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json
index ca15eeb45e..68400ed0ab 100644
--- a/examples/react/prefetching/package.json
+++ b/examples/react/prefetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json
index c79e640a7c..27bb2cb892 100644
--- a/examples/react/react-native/package.json
+++ b/examples/react/react-native/package.json
@@ -20,8 +20,8 @@
     "@react-native-community/netinfo": "6.0.2",
     "@react-navigation/stack": "^6.0.2",
     "@react-navigation/native": "^6.0.2",
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "expo": "~43.0.2",
     "expo-constants": "~12.1.3",
     "expo-status-bar": "~1.1.0",
diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json
index b1b74284a8..94f3b27792 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": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "localforage": "^1.10.0",
     "match-sorter": "^6.3.1",
     "react": "^18.0.0",
diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json
index 0204c44d63..23f1756314 100644
--- a/examples/react/rick-morty/package.json
+++ b/examples/react/rick-morty/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json
index 58b504a85a..ce62e17111 100644
--- a/examples/react/simple/package.json
+++ b/examples/react/simple/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json
index 1b9effa1c6..836bcaad97 100644
--- a/examples/react/star-wars/package.json
+++ b/examples/react/star-wars/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json
index adce5f5c12..3bf7f5dd81 100644
--- a/examples/react/suspense/package.json
+++ b/examples/react/suspense/package.json
@@ -3,8 +3,8 @@
   "private": true,
   "main": "src/index.jsx",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.0",
-    "@tanstack/react-query-devtools": "^4.39.0",
+    "@tanstack/react-query": "^4.39.1",
+    "@tanstack/react-query-devtools": "^4.39.1",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json
index a4e4c78086..ed6d6cd06a 100644
--- a/examples/solid/basic-graphql-request/package.json
+++ b/examples/solid/basic-graphql-request/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.0",
+    "@tanstack/solid-query": "^4.39.1",
     "graphql": "^16.6.0",
     "graphql-request": "^5.0.0",
     "solid-js": "^1.5.1"
diff --git a/examples/solid/basic-typescript/package.json b/examples/solid/basic-typescript/package.json
index 070dca390a..a3bea57737 100644
--- a/examples/solid/basic-typescript/package.json
+++ b/examples/solid/basic-typescript/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.0",
+    "@tanstack/solid-query": "^4.39.1",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json
index 75ae94dc8a..d0955f7397 100644
--- a/examples/solid/default-query-function/package.json
+++ b/examples/solid/default-query-function/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.0",
+    "@tanstack/solid-query": "^4.39.1",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json
index dfabb4d560..d3802f1129 100644
--- a/examples/solid/simple/package.json
+++ b/examples/solid/simple/package.json
@@ -9,11 +9,11 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.0",
+    "@tanstack/solid-query": "^4.39.1",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
-    "@tanstack/eslint-plugin-query": "^4.13.0",
+    "@tanstack/eslint-plugin-query": "^4.39.1",
     "typescript": "^4.8.2",
     "vite": "^3.0.9",
     "vite-plugin-solid": "^2.3.9"
diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json
index 1768b0f354..5a3110fc03 100644
--- a/examples/svelte/auto-refetching/package.json
+++ b/examples/svelte/auto-refetching/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json
index ca1f7a5753..b2db5ef4a5 100644
--- a/examples/svelte/basic/package.json
+++ b/examples/svelte/basic/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json
index 99e636034a..fc693c8c21 100644
--- a/examples/svelte/load-more-infinite-scroll/package.json
+++ b/examples/svelte/load-more-infinite-scroll/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/optimistic-updates-typescript/package.json b/examples/svelte/optimistic-updates-typescript/package.json
index ee7860afe1..d0c2844d2a 100644
--- a/examples/svelte/optimistic-updates-typescript/package.json
+++ b/examples/svelte/optimistic-updates-typescript/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json
index e533e2149e..16c848c024 100644
--- a/examples/svelte/playground/package.json
+++ b/examples/svelte/playground/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json
index fec7e2e19f..0a9d86fac6 100644
--- a/examples/svelte/simple/package.json
+++ b/examples/svelte/simple/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/vite-plugin-svelte": "^2.0.2",
diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json
index f654d41e98..e150da1c82 100644
--- a/examples/svelte/ssr/package.json
+++ b/examples/svelte/ssr/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json
index f2302686c0..2a52176667 100644
--- a/examples/svelte/star-wars/package.json
+++ b/examples/svelte/star-wars/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.0"
+    "@tanstack/svelte-query": "^4.39.1"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json
index fe6f345ddf..bb615b8887 100644
--- a/examples/vue/2.6-basic/package.json
+++ b/examples/vue/2.6-basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.0",
+    "@tanstack/vue-query": "^4.39.1",
     "@vue/composition-api": "1.4.4",
     "vue": "2.6.14",
     "vue-template-compiler": "2.6.14"
diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json
index e73f31a1c8..1547ae2b88 100644
--- a/examples/vue/basic/package.json
+++ b/examples/vue/basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.0",
+    "@tanstack/vue-query": "^4.39.1",
     "vue": "^3.2.41"
   },
   "devDependencies": {
diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json
index 1b1d88ac87..924381d29f 100644
--- a/examples/vue/dependent-queries/package.json
+++ b/examples/vue/dependent-queries/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.0",
+    "@tanstack/vue-query": "^4.39.1",
     "vue": "3.2.39"
   },
   "devDependencies": {
diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json
index a63c8946bf..4fc2cba67a 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": "^4.39.0"
+    "@tanstack/vue-query": "^4.39.1"
   },
   "devDependencies": {
     "nuxt": "^3.0.0-rc.12"
diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json
index dc2b1dfb12..757fd57ad6 100644
--- a/examples/vue/persister/package.json
+++ b/examples/vue/persister/package.json
@@ -8,9 +8,9 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.0",
-    "@tanstack/query-persist-client-core": "^4.39.0",
-    "@tanstack/query-sync-storage-persister": "^4.39.0",
+    "@tanstack/vue-query": "^4.39.1",
+    "@tanstack/query-persist-client-core": "^4.39.1",
+    "@tanstack/query-sync-storage-persister": "^4.39.1",
     "vue": "3.2.41"
   },
   "devDependencies": {
diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json
index 808b432a35..7feb5f272d 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": "4.38.0",
+  "version": "4.39.1",
   "description": "ESLint plugin for TanStack Query",
   "author": "Eliya Cohen",
   "license": "MIT",
diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json
index 61a666688b..a1b0576c7c 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": "4.39.0",
+  "version": "4.39.1",
   "description": "A persister for asynchronous storages, to be used with TanStack/Query",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json
index 962a71e259..f0c66f8743 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": "4.39.0",
+  "version": "4.39.1",
   "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-core/package.json b/packages/query-core/package.json
index db683bc547..8ccdf18ce5 100644
--- a/packages/query-core/package.json
+++ b/packages/query-core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/query-core",
-  "version": "4.39.0",
+  "version": "4.39.1",
   "description": "The framework agnostic core that powers TanStack Query",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json
index 4f5e0e7915..8351c86394 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": "4.39.0",
+  "version": "4.39.1",
   "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json
index c44f149980..aff206f880 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": "4.39.0",
+  "version": "4.39.1",
   "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 c83e63d5c8..943bd725b4 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": "4.39.0",
+  "version": "4.39.1",
   "description": "Developer tools to interact with and visualize the TanStack/react-query cache",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json
index 515546e9f3..c68be9a7df 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": "4.39.0",
+  "version": "4.39.1",
   "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 3336a6a967..5075fa1c78 100644
--- a/packages/react-query/package.json
+++ b/packages/react-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/react-query",
-  "version": "4.39.0",
+  "version": "4.39.1",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in React",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json
index 8c8793e933..364144c162 100644
--- a/packages/solid-query/package.json
+++ b/packages/solid-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/solid-query",
-  "version": "4.39.0",
+  "version": "4.39.1",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json
index 7a8f0e76c0..491e1ddc3d 100644
--- a/packages/svelte-query/package.json
+++ b/packages/svelte-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/svelte-query",
-  "version": "4.39.0",
+  "version": "4.39.1",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte",
   "author": "Lachlan Collins",
   "license": "MIT",
diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json
index 14c10837e4..4a22696122 100644
--- a/packages/vue-query/package.json
+++ b/packages/vue-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/vue-query",
-  "version": "4.39.0",
+  "version": "4.39.1",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
   "author": "Damian Osipiuk",
   "license": "MIT",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c08446ff52..828c6b57fd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -188,10 +188,10 @@ importers:
         specifier: 4.11.0
         version: 4.11.0
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       algoliasearch:
         specifier: 4.12.2
@@ -204,7 +204,7 @@ importers:
         version: 18.2.0(react@18.2.0)
     devDependencies:
       '@tanstack/eslint-plugin-query':
-        specifier: ^4.13.0
+        specifier: ^4.39.1
         version: link:../../../packages/eslint-plugin-query
       '@types/react':
         specifier: ^18.0.14
@@ -225,10 +225,10 @@ importers:
   examples/react/auto-refetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -249,10 +249,10 @@ importers:
   examples/react/basic:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -265,7 +265,7 @@ importers:
         version: 18.2.0(react@18.2.0)
     devDependencies:
       '@tanstack/eslint-plugin-query':
-        specifier: ^4.13.0
+        specifier: ^4.39.1
         version: link:../../../packages/eslint-plugin-query
       '@vitejs/plugin-react':
         specifier: ^2.0.0
@@ -277,10 +277,10 @@ importers:
   examples/react/basic-graphql-request:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       graphql:
         specifier: ^15.3.0
@@ -305,16 +305,16 @@ importers:
   examples/react/basic-typescript:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-persist-client
       axios:
         specifier: ^0.26.1
@@ -327,7 +327,7 @@ importers:
         version: 18.2.0(react@18.2.0)
     devDependencies:
       '@tanstack/eslint-plugin-query':
-        specifier: ^4.13.0
+        specifier: ^4.39.1
         version: link:../../../packages/eslint-plugin-query
       '@types/react':
         specifier: ^17.0.3
@@ -354,10 +354,10 @@ importers:
   examples/react/default-query-function:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -379,10 +379,10 @@ importers:
   examples/react/load-more-infinite-scroll:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -406,10 +406,10 @@ importers:
   examples/react/nextjs:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       ky:
         specifier: ^0.23.0
@@ -436,19 +436,19 @@ importers:
   examples/react/offline:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-location':
         specifier: ^3.7.0
         version: 3.7.4(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-persist-client
       ky:
         specifier: ^0.30.0
@@ -476,10 +476,10 @@ importers:
   examples/react/optimistic-updates-typescript:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -510,10 +510,10 @@ importers:
   examples/react/pagination:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -534,10 +534,10 @@ importers:
   examples/react/playground:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -556,10 +556,10 @@ importers:
   examples/react/prefetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -589,10 +589,10 @@ importers:
         specifier: ^6.0.2
         version: 6.2.2(@react-navigation/native@6.0.11)(react-native-gesture-handler@1.10.3)(react-native-safe-area-context@3.3.2)(react-native-screens@3.8.0)(react-native@0.64.3)(react@17.0.1)
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       expo:
         specifier: ~43.0.2
@@ -668,10 +668,10 @@ importers:
   examples/react/react-router:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       localforage:
         specifier: ^1.10.0
@@ -708,10 +708,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -736,10 +736,10 @@ importers:
   examples/react/simple:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -764,10 +764,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -792,10 +792,10 @@ importers:
   examples/react/suspense:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -820,7 +820,7 @@ importers:
   examples/solid/basic-graphql-request:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/solid-query
       graphql:
         specifier: ^16.6.0
@@ -845,7 +845,7 @@ importers:
   examples/solid/basic-typescript:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -864,7 +864,7 @@ importers:
   examples/solid/default-query-function:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -883,14 +883,14 @@ importers:
   examples/solid/simple:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
         version: 1.5.4
     devDependencies:
       '@tanstack/eslint-plugin-query':
-        specifier: ^4.13.0
+        specifier: ^4.39.1
         version: link:../../../packages/eslint-plugin-query
       typescript:
         specifier: ^4.8.2
@@ -905,7 +905,7 @@ importers:
   examples/svelte/auto-refetching:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -933,7 +933,7 @@ importers:
   examples/svelte/basic:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -961,7 +961,7 @@ importers:
   examples/svelte/load-more-infinite-scroll:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -989,7 +989,7 @@ importers:
   examples/svelte/optimistic-updates-typescript:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1017,7 +1017,7 @@ importers:
   examples/svelte/playground:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1045,7 +1045,7 @@ importers:
   examples/svelte/simple:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/vite-plugin-svelte':
@@ -1073,7 +1073,7 @@ importers:
   examples/svelte/ssr:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1101,7 +1101,7 @@ importers:
   examples/svelte/star-wars:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1138,7 +1138,7 @@ importers:
   examples/vue/basic:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/vue-query
       vue:
         specifier: ^3.2.41
@@ -1157,7 +1157,7 @@ importers:
   examples/vue/dependent-queries:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.39
@@ -1176,13 +1176,13 @@ importers:
   examples/vue/persister:
     dependencies:
       '@tanstack/query-persist-client-core':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/query-persist-client-core
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/vue-query':
-        specifier: ^4.39.0
+        specifier: ^4.39.1
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.41
@@ -1356,15 +1356,6 @@ importers:
         specifier: npm:react-dom@^17.0.2
         version: /react-dom@17.0.2(react@18.2.0)
 
-  packages/react-query/build/query-codemods:
-    devDependencies:
-      '@types/jscodeshift':
-        specifier: 17.3.0
-        version: 17.3.0
-      jscodeshift:
-        specifier: 17.3.0
-        version: 17.3.0(@babel/preset-env@7.18.6)
-
   packages/solid-query:
     dependencies:
       '@tanstack/query-core':
@@ -1859,6 +1850,7 @@ packages:
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
@@ -2620,7 +2612,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
 
   /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.9.0):
@@ -2630,7 +2622,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.9.0)
     dev: true
 
@@ -3066,6 +3058,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
@@ -3147,7 +3140,6 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
-    dev: false
 
   /@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
@@ -3167,6 +3159,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -3532,19 +3525,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -3767,6 +3747,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
+    dev: false
 
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
@@ -4125,16 +4106,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.27.1
-    dev: true
-
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
     engines: {node: '>=6.9.0'}
@@ -4192,19 +4163,6 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.27.1
-      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -4233,19 +4191,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
     engines: {node: '>=6.9.0'}
@@ -4365,7 +4310,7 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     dev: false
 
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
@@ -4655,6 +4600,7 @@ packages:
       '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
@@ -5001,6 +4947,7 @@ packages:
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-validator-option': 7.27.1
       '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
+    dev: false
 
   /@babel/preset-modules@0.1.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
@@ -5096,6 +5043,7 @@ packages:
       '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/register@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==}
@@ -5123,6 +5071,7 @@ packages:
       make-dir: 2.1.0
       pirates: 4.0.7
       source-map-support: 0.5.21
+    dev: false
 
   /@babel/runtime-corejs3@7.18.6:
     resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
@@ -7687,13 +7636,6 @@ packages:
       recast: 0.20.5
     dev: true
 
-  /@types/jscodeshift@17.3.0:
-    resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==}
-    dependencies:
-      ast-types: 0.16.1
-      recast: 0.23.11
-    dev: true
-
   /@types/json-schema@7.0.11:
     resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
     dev: true
@@ -8994,13 +8936,6 @@ packages:
     dependencies:
       tslib: 2.6.0
 
-  /ast-types@0.16.1:
-    resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
-    engines: {node: '>=4'}
-    dependencies:
-      tslib: 2.6.0
-    dev: true
-
   /astral-regex@1.0.0:
     resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==}
     engines: {node: '>=4'}
@@ -9220,7 +9155,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.16.0
-      '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
       '@babel/types': 7.27.1
       html-entities: 2.3.2
     dev: true
@@ -9252,10 +9187,10 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/compat-data': 7.27.2
+      '@babel/compat-data': 7.19.1
       '@babel/core': 7.27.1
       '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
-      semver: 6.3.1
+      semver: 6.3.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -13882,39 +13817,6 @@ packages:
       - supports-color
     dev: true
 
-  /jscodeshift@17.3.0(@babel/preset-env@7.18.6):
-    resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==}
-    engines: {node: '>=16'}
-    hasBin: true
-    peerDependencies:
-      '@babel/preset-env': ^7.1.6
-    peerDependenciesMeta:
-      '@babel/preset-env':
-        optional: true
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/parser': 7.27.2
-      '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
-      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
-      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
-      '@babel/register': 7.27.1(@babel/core@7.27.1)
-      flow-parser: 0.121.0
-      graceful-fs: 4.2.10
-      micromatch: 4.0.8
-      neo-async: 2.6.2
-      picocolors: 1.1.1
-      recast: 0.23.11
-      tmp: 0.2.3
-      write-file-atomic: 5.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /jsdom@16.7.0:
     resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
     engines: {node: '>=10'}
@@ -16765,17 +16667,6 @@ packages:
       source-map: 0.6.1
       tslib: 2.6.0
 
-  /recast@0.23.11:
-    resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
-    engines: {node: '>= 4'}
-    dependencies:
-      ast-types: 0.16.1
-      esprima: 4.0.1
-      source-map: 0.6.1
-      tiny-invariant: 1.3.3
-      tslib: 2.6.0
-    dev: true
-
   /rechoir@0.6.2:
     resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
     engines: {node: '>= 0.10'}
@@ -17356,11 +17247,6 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
-  /signal-exit@4.1.0:
-    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
-    engines: {node: '>=14'}
-    dev: true
-
   /simple-git@3.27.0:
     resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
     dependencies:
@@ -18292,6 +18178,7 @@ packages:
 
   /tiny-invariant@1.3.3:
     resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+    dev: false
 
   /tiny-warning@1.0.3:
     resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
@@ -18334,11 +18221,6 @@ packages:
       rimraf: 3.0.2
     dev: true
 
-  /tmp@0.2.3:
-    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
-    engines: {node: '>=14.14'}
-    dev: true
-
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
@@ -19463,14 +19345,6 @@ packages:
       typedarray-to-buffer: 3.1.5
     dev: true
 
-  /write-file-atomic@5.0.1:
-    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
-    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-    dependencies:
-      imurmurhash: 0.1.4
-      signal-exit: 4.1.0
-    dev: true
-
   /ws@1.1.5:
     resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
     peerDependencies:

From b8868899c6d3c9896b22dff58cd5ff26fa6d7e6f Mon Sep 17 00:00:00 2001
From: Jonghyeon Ko <manudeli.ko@gmail.com>
Date: Mon, 9 Jun 2025 17:36:58 +0900
Subject: [PATCH 39/45] fix(react-query): correct type for `onSuccess` of
 `useQuery` (#9242)

* fix(react-query): correct type for `onSuccess` of `useQuery`

* chore: update

* chore: update

* ci: revert

* refactor(react-query): remove unused onSuccess, onError, and onSettled options from useSuspenseQuery

* chore: update

* refactor(react-query): reorganize tests for onSuccess and initialData in useQuery
---
 .github/workflows/pr.yml                      |  53 +++-
 packages/query-core/src/types.ts              |   5 +
 .../src/__tests__/useQuery.types.test.tsx     |  35 +++
 packages/react-query/src/queryOptions.ts      |   4 +-
 packages/react-query/src/useQuery.ts          |  20 --
 packages/react-query/src/useSuspenseQuery.ts  |   5 +-
 packages/vue-query/src/types.ts               |   4 -
 packages/vue-query/src/useMutation.ts         |   8 +-
 pnpm-lock.yaml                                | 274 ++++++++++++------
 9 files changed, 273 insertions(+), 135 deletions(-)

diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index b29a138611..9367d55996 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -15,7 +15,7 @@ env:
 
 jobs:
   main:
-    name: Nx Cloud
+    name: Nx Cloud - Main Job
     runs-on: ubuntu-latest
     steps:
       - name: Checkout
@@ -31,15 +31,46 @@ jobs:
           cache: pnpm
           cache-dependency-path: pnpm-lock.yaml
       - name: Install dependencies
-        run: pnpm install --frozen-lockfile
-      - name: Get base and head commits for `nx affected`
-        uses: nrwl/nx-set-shas@v4.3.0
+        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
+      - name: Get appropriate base and head commits for `nx affected` commands
+        uses: nrwl/nx-set-shas@v3
         with:
-          main-branch-name: main
+          main-branch-name: 'main'
+      - run: |
+          echo "BASE: ${{ env.NX_BASE }}"
+          echo "HEAD: ${{ env.NX_HEAD }}"
+      - name: Start CI Orchestrator
+        run: npx nx-cloud start-ci-run
       - name: Run Tests
         run: pnpm run test:pr
+      - name: Stop Agents
+        run: npx nx-cloud stop-all-agents
       - name: Upload coverage to Codecov
         uses: codecov/codecov-action@v3
+  agents:
+    name: Nx Cloud - Agents
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    strategy:
+      matrix:
+        agent: [1, 2, 3]
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4.2.2
+        with:
+          fetch-depth: 0
+      - name: Setup pnpm
+        uses: pnpm/action-setup@v4.1.0
+      - name: Setup Node
+        uses: actions/setup-node@v3
+        with:
+          node-version-file: .nvmrc
+          cache: pnpm
+          cache-dependency-path: pnpm-lock.yaml
+      - name: Install dependencies
+        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
+      - name: Start Nx Agent ${{ matrix.agent }}
+        run: npx nx-cloud start-agent
   format:
     name: Format
     runs-on: ubuntu-latest
@@ -57,7 +88,7 @@ jobs:
           cache: pnpm
           cache-dependency-path: pnpm-lock.yaml
       - name: Install dependencies
-        run: pnpm install --frozen-lockfile
+        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
       - name: Run prettier
         run: pnpm run test:format
   test-react-17:
@@ -78,17 +109,15 @@ jobs:
           cache: pnpm
           cache-dependency-path: pnpm-lock.yaml
       - name: Install dependencies
-        run: pnpm install --frozen-lockfile
-      - name: Get base and head commits for `nx affected`
-        uses: nrwl/nx-set-shas@v4.3.0
-        with:
-          main-branch-name: main
+        run: pnpm --filter "./packages/**" --filter query --prefer-offline install
+      - name: Derive appropriate SHAs for base and head for `nx affected` commands
+        uses: nrwl/nx-set-shas@v2
       - name: Run Tests
         uses: nick-fields/retry@v2.8.3
         with:
           timeout_minutes: 5
           max_attempts: 3
-          command: pnpm nx affected --targets=test:lib
+          command: npx nx affected --targets=test:lib --base=${{ github.event.pull_request.base.sha }}
         env:
           NX_CLOUD_DISTRIBUTED_EXECUTION: false
           REACTJS_VERSION: 17
diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts
index 8af46426bf..4e3f201fbd 100644
--- a/packages/query-core/src/types.ts
+++ b/packages/query-core/src/types.ts
@@ -10,6 +10,11 @@ import type { Logger } from './logger'
 
 export type NonUndefinedGuard<T> = T extends undefined ? never : T
 
+export type DistributiveOmit<
+  TObject,
+  TKey extends keyof TObject,
+> = TObject extends any ? Omit<TObject, TKey> : never
+
 export type OmitKeyof<
   TObject,
   TKey extends TStrictly extends 'safely'
diff --git a/packages/react-query/src/__tests__/useQuery.types.test.tsx b/packages/react-query/src/__tests__/useQuery.types.test.tsx
index 5e471f8751..fcf4388291 100644
--- a/packages/react-query/src/__tests__/useQuery.types.test.tsx
+++ b/packages/react-query/src/__tests__/useQuery.types.test.tsx
@@ -1,5 +1,7 @@
+import { expectTypeOf } from 'expect-type'
 import { useQuery } from '../useQuery'
 import { doNotExecute } from './utils'
+import type { DefinedUseQueryResult, UseQueryResult } from '../types'
 
 export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
   T,
@@ -9,6 +11,39 @@ export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
 
 export type Expect<T extends true> = T
 
+describe('onSuccess', () => {
+  it('should be typed correctly', () => {
+    doNotExecute(() => {
+      expectTypeOf(
+        useQuery({
+          queryKey: ['posts'],
+          queryFn: async () => ({ id: 1 }),
+          onSuccess: (data) =>
+            expectTypeOf(data).toEqualTypeOf<{ id: number }>(),
+        }),
+      ).toEqualTypeOf<UseQueryResult<{ id: number }, unknown>>()
+      expectTypeOf(
+        useQuery({
+          queryKey: ['posts'],
+          queryFn: async () => ({ id: 1 }),
+          initialData: { id: 1 },
+          onSuccess: (data) =>
+            expectTypeOf(data).toEqualTypeOf<{ id: number }>(),
+        }),
+      ).toEqualTypeOf<DefinedUseQueryResult<{ id: number }, unknown>>()
+      expectTypeOf(
+        useQuery({
+          queryKey: ['posts'],
+          queryFn: async () => ({ id: 1 }),
+          initialData: { id: 1 },
+          select: (data) => data.id,
+          onSuccess: (data) => expectTypeOf(data).toEqualTypeOf<number>(),
+        }),
+      ).toEqualTypeOf<DefinedUseQueryResult<number, unknown>>()
+    })
+  })
+})
+
 describe('initialData', () => {
   describe('Config object overload', () => {
     it('TData should always be defined when initialData is provided as an object', () => {
diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts
index 730eafb2a7..20c3a9060b 100644
--- a/packages/react-query/src/queryOptions.ts
+++ b/packages/react-query/src/queryOptions.ts
@@ -22,7 +22,7 @@ type ProhibitedQueryOptionsKeyInV5 = keyof Pick<
   'useErrorBoundary' | 'suspense' | 'getNextPageParam' | 'getPreviousPageParam'
 >
 
-export type UndefinedInitialDataOptions<
+type UndefinedInitialDataOptions<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
@@ -34,7 +34,7 @@ export type UndefinedInitialDataOptions<
     | NonUndefinedGuard<TQueryFnData>
 }
 
-export type DefinedInitialDataOptions<
+type DefinedInitialDataOptions<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts
index c9426dd8dc..0ae2eda575 100644
--- a/packages/react-query/src/useQuery.ts
+++ b/packages/react-query/src/useQuery.ts
@@ -1,10 +1,6 @@
 'use client'
 import { QueryObserver, parseQueryArgs } from '@tanstack/query-core'
 import { useBaseQuery } from './useBaseQuery'
-import type {
-  DefinedInitialDataOptions,
-  UndefinedInitialDataOptions,
-} from './queryOptions'
 import type {
   InitialDataFunction,
   NonUndefinedGuard,
@@ -19,14 +15,6 @@ import type {
 } from './types'
 
 // HOOK
-export function useQuery<
-  TQueryFnData = unknown,
-  TError = unknown,
-  TData = TQueryFnData,
-  TQueryKey extends QueryKey = QueryKey,
->(
-  options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
-): DefinedUseQueryResult<TData, TError>
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -42,14 +30,6 @@ export function useQuery<
       | (() => NonUndefinedGuard<TQueryFnData>)
   },
 ): DefinedUseQueryResult<TData, TError>
-export function useQuery<
-  TQueryFnData = unknown,
-  TError = unknown,
-  TData = TQueryFnData,
-  TQueryKey extends QueryKey = QueryKey,
->(
-  options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
-): UseQueryResult<TData, TError>
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
diff --git a/packages/react-query/src/useSuspenseQuery.ts b/packages/react-query/src/useSuspenseQuery.ts
index 51ef5fe0e5..06dc015a6d 100644
--- a/packages/react-query/src/useSuspenseQuery.ts
+++ b/packages/react-query/src/useSuspenseQuery.ts
@@ -2,15 +2,12 @@ import { QueryObserver } from '@tanstack/query-core'
 import { useBaseQuery } from './useBaseQuery'
 import type {
   DefinedQueryObserverResult,
+  DistributiveOmit,
   OmitKeyof,
   QueryKey,
 } from '@tanstack/query-core'
 import type { UseQueryOptions } from './types'
 
-type DistributiveOmit<TObject, TKey extends keyof TObject> = TObject extends any
-  ? Omit<TObject, TKey>
-  : never
-
 export type UseSuspenseQueryResult<
   TData = unknown,
   TError = unknown,
diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts
index cd807e6b1c..939717ac7a 100644
--- a/packages/vue-query/src/types.ts
+++ b/packages/vue-query/src/types.ts
@@ -136,7 +136,3 @@ export type VueInfiniteQueryObserverOptions<
         >[Property]
       >
 }
-
-export type DistributiveOmit<T, K extends keyof any> = T extends any
-  ? Omit<T, K>
-  : never
diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts
index ab4354740a..b235566a98 100644
--- a/packages/vue-query/src/useMutation.ts
+++ b/packages/vue-query/src/useMutation.ts
@@ -18,6 +18,7 @@ import {
 import { useQueryClient } from './useQueryClient'
 import type { ToRefs } from 'vue-demi'
 import type {
+  DistributiveOmit,
   MutateFunction,
   MutateOptions,
   MutationFunction,
@@ -25,12 +26,7 @@ import type {
   MutationObserverOptions,
   MutationObserverResult,
 } from '@tanstack/query-core'
-import type {
-  DistributiveOmit,
-  MaybeRef,
-  MaybeRefDeep,
-  WithQueryClientKey,
-} from './types'
+import type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'
 
 type MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<
   MutationObserverResult<TData, TError, TVariables, TContext>,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 828c6b57fd..dc8229c444 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1356,6 +1356,15 @@ importers:
         specifier: npm:react-dom@^17.0.2
         version: /react-dom@17.0.2(react@18.2.0)
 
+  packages/react-query/build/query-codemods:
+    devDependencies:
+      '@types/jscodeshift':
+        specifier: 17.3.0
+        version: 17.3.0
+      jscodeshift:
+        specifier: 17.3.0
+        version: 17.3.0(@babel/preset-env@7.18.6)
+
   packages/solid-query:
     dependencies:
       '@tanstack/query-core':
@@ -1781,41 +1790,6 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.27.1):
-    resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-annotate-as-pure': 7.27.1
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.27.1
-      '@babel/helper-optimise-call-expression': 7.27.1
-      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
-      '@babel/helper-split-export-declaration': 7.18.6
-    transitivePeerDependencies:
-      - supports-color
-
-  /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.9.0):
-    resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.9.0
-      '@babel/helper-annotate-as-pure': 7.27.1
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-function-name': 7.19.0
-      '@babel/helper-member-expression-to-functions': 7.27.1
-      '@babel/helper-optimise-call-expression': 7.27.1
-      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.9.0)
-      '@babel/helper-split-export-declaration': 7.18.6
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
     engines: {node: '>=6.9.0'}
@@ -1850,7 +1824,6 @@ packages:
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
   /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
@@ -2062,10 +2035,6 @@ packages:
     resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==}
     engines: {node: '>=6.9.0'}
 
-  /@babel/helper-plugin-utils@7.20.2:
-    resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
-    engines: {node: '>=6.9.0'}
-
   /@babel/helper-plugin-utils@7.27.1:
     resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
     engines: {node: '>=6.9.0'}
@@ -2296,6 +2265,8 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
+    transitivePeerDependencies:
+      - supports-color
 
   /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==}
@@ -2304,9 +2275,11 @@ packages:
       '@babel/core': ^7.13.0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
     dev: true
 
   /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.19.1):
@@ -2384,8 +2357,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
     transitivePeerDependencies:
       - supports-color
 
@@ -2396,8 +2369,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.27.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2422,8 +2395,8 @@ packages:
       '@babel/core': ^7.12.0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
@@ -2736,9 +2709,11 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.1)
+    transitivePeerDependencies:
+      - supports-color
 
   /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==}
@@ -2747,9 +2722,11 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
 
   /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==}
@@ -2758,9 +2735,11 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.20.2
-      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.9.0)
+    transitivePeerDependencies:
+      - supports-color
     dev: true
 
   /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.19.1):
@@ -2782,8 +2761,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2795,8 +2774,8 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.9.0)
+      '@babel/helper-plugin-utils': 7.27.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2822,9 +2801,9 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-annotate-as-pure': 7.18.6
-      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-annotate-as-pure': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
@@ -3058,7 +3037,6 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
-    dev: false
 
   /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
@@ -3159,7 +3137,6 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
-    dev: false
 
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -3525,6 +3502,19 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -3550,12 +3540,12 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-function-name': 7.19.0
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
       '@babel/helper-split-export-declaration': 7.18.6
       globals: 11.12.0
     transitivePeerDependencies:
@@ -3568,12 +3558,12 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-annotate-as-pure': 7.27.1
       '@babel/helper-environment-visitor': 7.18.9
       '@babel/helper-function-name': 7.19.0
-      '@babel/helper-optimise-call-expression': 7.18.6
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-optimise-call-expression': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-replace-supers': 7.27.1(@babel/core@7.9.0)
       '@babel/helper-split-export-declaration': 7.18.6
       globals: 11.12.0
     transitivePeerDependencies:
@@ -3747,7 +3737,6 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
-    dev: false
 
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
@@ -4106,6 +4095,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
+
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
     engines: {node: '>=6.9.0'}
@@ -4145,7 +4144,7 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-replace-supers': 7.18.6
     transitivePeerDependencies:
       - supports-color
@@ -4157,12 +4156,25 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-replace-supers': 7.18.6
     transitivePeerDependencies:
       - supports-color
     dev: true
 
+  /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -4191,6 +4203,19 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
     engines: {node: '>=6.9.0'}
@@ -4310,7 +4335,7 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.27.1
+      '@babel/types': 7.19.0
     dev: false
 
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
@@ -4457,8 +4482,10 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
 
   /@babel/plugin-transform-spread@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==}
@@ -4467,8 +4494,10 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.9.0
-      '@babel/helper-plugin-utils': 7.19.0
-      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
     dev: true
 
   /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.19.1):
@@ -4600,7 +4629,6 @@ packages:
       '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
   /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
@@ -4947,7 +4975,6 @@ packages:
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-validator-option': 7.27.1
       '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
-    dev: false
 
   /@babel/preset-modules@0.1.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
@@ -5043,7 +5070,6 @@ packages:
       '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
   /@babel/register@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==}
@@ -5071,7 +5097,6 @@ packages:
       make-dir: 2.1.0
       pirates: 4.0.7
       source-map-support: 0.5.21
-    dev: false
 
   /@babel/runtime-corejs3@7.18.6:
     resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
@@ -7636,6 +7661,13 @@ packages:
       recast: 0.20.5
     dev: true
 
+  /@types/jscodeshift@17.3.0:
+    resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==}
+    dependencies:
+      ast-types: 0.16.1
+      recast: 0.23.11
+    dev: true
+
   /@types/json-schema@7.0.11:
     resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
     dev: true
@@ -8936,6 +8968,13 @@ packages:
     dependencies:
       tslib: 2.6.0
 
+  /ast-types@0.16.1:
+    resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
+    engines: {node: '>=4'}
+    dependencies:
+      tslib: 2.6.0
+    dev: true
+
   /astral-regex@1.0.0:
     resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==}
     engines: {node: '>=4'}
@@ -9156,7 +9195,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.16.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.27.1
+      '@babel/types': 7.19.0
       html-entities: 2.3.2
     dev: true
 
@@ -9187,10 +9226,10 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/compat-data': 7.19.1
+      '@babel/compat-data': 7.27.2
       '@babel/core': 7.27.1
       '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
-      semver: 6.3.0
+      semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -13817,6 +13856,39 @@ packages:
       - supports-color
     dev: true
 
+  /jscodeshift@17.3.0(@babel/preset-env@7.18.6):
+    resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==}
+    engines: {node: '>=16'}
+    hasBin: true
+    peerDependencies:
+      '@babel/preset-env': ^7.1.6
+    peerDependenciesMeta:
+      '@babel/preset-env':
+        optional: true
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
+      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/register': 7.27.1(@babel/core@7.27.1)
+      flow-parser: 0.121.0
+      graceful-fs: 4.2.10
+      micromatch: 4.0.8
+      neo-async: 2.6.2
+      picocolors: 1.1.1
+      recast: 0.23.11
+      tmp: 0.2.3
+      write-file-atomic: 5.0.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /jsdom@16.7.0:
     resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
     engines: {node: '>=10'}
@@ -16667,6 +16739,17 @@ packages:
       source-map: 0.6.1
       tslib: 2.6.0
 
+  /recast@0.23.11:
+    resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
+    engines: {node: '>= 4'}
+    dependencies:
+      ast-types: 0.16.1
+      esprima: 4.0.1
+      source-map: 0.6.1
+      tiny-invariant: 1.3.3
+      tslib: 2.6.0
+    dev: true
+
   /rechoir@0.6.2:
     resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
     engines: {node: '>= 0.10'}
@@ -17247,6 +17330,11 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
+  /signal-exit@4.1.0:
+    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+    dev: true
+
   /simple-git@3.27.0:
     resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
     dependencies:
@@ -18178,7 +18266,6 @@ packages:
 
   /tiny-invariant@1.3.3:
     resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
-    dev: false
 
   /tiny-warning@1.0.3:
     resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
@@ -18221,6 +18308,11 @@ packages:
       rimraf: 3.0.2
     dev: true
 
+  /tmp@0.2.3:
+    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
+    engines: {node: '>=14.14'}
+    dev: true
+
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
@@ -19345,6 +19437,14 @@ packages:
       typedarray-to-buffer: 3.1.5
     dev: true
 
+  /write-file-atomic@5.0.1:
+    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
+    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+    dependencies:
+      imurmurhash: 0.1.4
+      signal-exit: 4.1.0
+    dev: true
+
   /ws@1.1.5:
     resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
     peerDependencies:

From 79f0b9ad2b4750392c5e9facecd1bdf79bdef24d Mon Sep 17 00:00:00 2001
From: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Date: Mon, 9 Jun 2025 09:36:40 +0000
Subject: [PATCH 40/45] release: v4.39.2

---
 examples/react/algolia/package.json           |   4 +-
 examples/react/auto-refetching/package.json   |   4 +-
 .../react/basic-graphql-request/package.json  |   4 +-
 examples/react/basic-typescript/package.json  |   8 +-
 examples/react/basic/package.json             |   4 +-
 .../react/default-query-function/package.json |   4 +-
 .../load-more-infinite-scroll/package.json    |   4 +-
 examples/react/nextjs/package.json            |   4 +-
 examples/react/offline/package.json           |   8 +-
 .../package.json                              |   4 +-
 examples/react/pagination/package.json        |   4 +-
 examples/react/playground/package.json        |   4 +-
 examples/react/prefetching/package.json       |   4 +-
 examples/react/react-native/package.json      |   4 +-
 examples/react/react-router/package.json      |   4 +-
 examples/react/rick-morty/package.json        |   4 +-
 examples/react/simple/package.json            |   4 +-
 examples/react/star-wars/package.json         |   4 +-
 examples/react/suspense/package.json          |   4 +-
 .../solid/basic-graphql-request/package.json  |   2 +-
 examples/solid/basic-typescript/package.json  |   2 +-
 .../solid/default-query-function/package.json |   2 +-
 examples/solid/simple/package.json            |   2 +-
 examples/svelte/auto-refetching/package.json  |   2 +-
 examples/svelte/basic/package.json            |   2 +-
 .../load-more-infinite-scroll/package.json    |   2 +-
 .../package.json                              |   2 +-
 examples/svelte/playground/package.json       |   2 +-
 examples/svelte/simple/package.json           |   2 +-
 examples/svelte/ssr/package.json              |   2 +-
 examples/svelte/star-wars/package.json        |   2 +-
 examples/vue/2.6-basic/package.json           |   2 +-
 examples/vue/basic/package.json               |   2 +-
 examples/vue/dependent-queries/package.json   |   2 +-
 examples/vue/nuxt3/package.json               |   2 +-
 examples/vue/persister/package.json           |   6 +-
 .../package.json                              |   2 +-
 .../package.json                              |   2 +-
 packages/query-core/package.json              |   2 +-
 .../query-persist-client-core/package.json    |   2 +-
 .../query-sync-storage-persister/package.json |   2 +-
 packages/react-query-devtools/package.json    |   2 +-
 .../react-query-persist-client/package.json   |   2 +-
 packages/react-query/package.json             |   2 +-
 packages/solid-query/package.json             |   2 +-
 packages/svelte-query/package.json            |   2 +-
 packages/vue-query/package.json               |   2 +-
 pnpm-lock.yaml                                | 268 +++++-------------
 48 files changed, 143 insertions(+), 269 deletions(-)

diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json
index cb1bcda424..e6b66447c5 100644
--- a/examples/react/algolia/package.json
+++ b/examples/react/algolia/package.json
@@ -10,8 +10,8 @@
   "dependencies": {
     "@algolia/client-search": "4.11.0",
     "@algolia/transporter": "4.11.0",
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "algoliasearch": "4.12.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json
index 50e64cbc4e..a45d3b15e9 100644
--- a/examples/react/auto-refetching/package.json
+++ b/examples/react/auto-refetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json
index 979fdcf0eb..bb0ab82e63 100644
--- a/examples/react/basic-graphql-request/package.json
+++ b/examples/react/basic-graphql-request/package.json
@@ -12,8 +12,8 @@
     "graphql-request": "^3.1.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1"
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2"
   },
   "devDependencies": {
     "@vitejs/plugin-react": "^2.0.0",
diff --git a/examples/react/basic-typescript/package.json b/examples/react/basic-typescript/package.json
index 393703a057..5b6cbb50db 100644
--- a/examples/react/basic-typescript/package.json
+++ b/examples/react/basic-typescript/package.json
@@ -8,10 +8,10 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
-    "@tanstack/react-query-persist-client": "^4.39.1",
-    "@tanstack/query-sync-storage-persister": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query-persist-client": "^4.39.2",
+    "@tanstack/query-sync-storage-persister": "^4.39.2",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json
index 98e62a478a..6b35feff68 100644
--- a/examples/react/basic/package.json
+++ b/examples/react/basic/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json
index 3a0298edd8..9ecb05a06f 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": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json
index ff1bd5390c..d640609971 100644
--- a/examples/react/load-more-infinite-scroll/package.json
+++ b/examples/react/load-more-infinite-scroll/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json
index f908e7e04e..45192d58d1 100644
--- a/examples/react/nextjs/package.json
+++ b/examples/react/nextjs/package.json
@@ -8,8 +8,8 @@
     "start": "next start"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "ky": "^0.23.0",
     "ky-universal": "^0.8.2",
     "next": "12.2.2",
diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json
index 8c23e109cb..1c3118a839 100644
--- a/examples/react/offline/package.json
+++ b/examples/react/offline/package.json
@@ -9,10 +9,10 @@
   },
   "dependencies": {
     "@tanstack/react-location": "^3.7.0",
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
-    "@tanstack/react-query-persist-client": "^4.39.1",
-    "@tanstack/query-sync-storage-persister": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query-persist-client": "^4.39.2",
+    "@tanstack/query-sync-storage-persister": "^4.39.2",
     "ky": "^0.30.0",
     "msw": "^0.39.2",
     "react": "^18.0.0",
diff --git a/examples/react/optimistic-updates-typescript/package.json b/examples/react/optimistic-updates-typescript/package.json
index 4f7163caef..1d0186f8bd 100755
--- a/examples/react/optimistic-updates-typescript/package.json
+++ b/examples/react/optimistic-updates-typescript/package.json
@@ -4,8 +4,8 @@
   "main": "pages/index.tsx",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json
index 2d5c7aadcc..0057c27736 100644
--- a/examples/react/pagination/package.json
+++ b/examples/react/pagination/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json
index f7956b7fd9..ea9d5904d4 100644
--- a/examples/react/playground/package.json
+++ b/examples/react/playground/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
   },
diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json
index 68400ed0ab..76148d0710 100644
--- a/examples/react/prefetching/package.json
+++ b/examples/react/prefetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json
index 27bb2cb892..da9311b4c7 100644
--- a/examples/react/react-native/package.json
+++ b/examples/react/react-native/package.json
@@ -20,8 +20,8 @@
     "@react-native-community/netinfo": "6.0.2",
     "@react-navigation/stack": "^6.0.2",
     "@react-navigation/native": "^6.0.2",
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "expo": "~43.0.2",
     "expo-constants": "~12.1.3",
     "expo-status-bar": "~1.1.0",
diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json
index 94f3b27792..521ba45b19 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": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "localforage": "^1.10.0",
     "match-sorter": "^6.3.1",
     "react": "^18.0.0",
diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json
index 23f1756314..a592a2721c 100644
--- a/examples/react/rick-morty/package.json
+++ b/examples/react/rick-morty/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json
index ce62e17111..45f953ce89 100644
--- a/examples/react/simple/package.json
+++ b/examples/react/simple/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json
index 836bcaad97..faea316f43 100644
--- a/examples/react/star-wars/package.json
+++ b/examples/react/star-wars/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json
index 3bf7f5dd81..b75acbc714 100644
--- a/examples/react/suspense/package.json
+++ b/examples/react/suspense/package.json
@@ -3,8 +3,8 @@
   "private": true,
   "main": "src/index.jsx",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.1",
-    "@tanstack/react-query-devtools": "^4.39.1",
+    "@tanstack/react-query": "^4.39.2",
+    "@tanstack/react-query-devtools": "^4.39.2",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json
index ed6d6cd06a..3e0411f9c2 100644
--- a/examples/solid/basic-graphql-request/package.json
+++ b/examples/solid/basic-graphql-request/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.1",
+    "@tanstack/solid-query": "^4.39.2",
     "graphql": "^16.6.0",
     "graphql-request": "^5.0.0",
     "solid-js": "^1.5.1"
diff --git a/examples/solid/basic-typescript/package.json b/examples/solid/basic-typescript/package.json
index a3bea57737..de4ce97b1e 100644
--- a/examples/solid/basic-typescript/package.json
+++ b/examples/solid/basic-typescript/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.1",
+    "@tanstack/solid-query": "^4.39.2",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json
index d0955f7397..016673a41a 100644
--- a/examples/solid/default-query-function/package.json
+++ b/examples/solid/default-query-function/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.1",
+    "@tanstack/solid-query": "^4.39.2",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json
index d3802f1129..96f5895fcd 100644
--- a/examples/solid/simple/package.json
+++ b/examples/solid/simple/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.1",
+    "@tanstack/solid-query": "^4.39.2",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json
index 5a3110fc03..99241eff4c 100644
--- a/examples/svelte/auto-refetching/package.json
+++ b/examples/svelte/auto-refetching/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json
index b2db5ef4a5..1a30fa6b64 100644
--- a/examples/svelte/basic/package.json
+++ b/examples/svelte/basic/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json
index fc693c8c21..b15679edec 100644
--- a/examples/svelte/load-more-infinite-scroll/package.json
+++ b/examples/svelte/load-more-infinite-scroll/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/optimistic-updates-typescript/package.json b/examples/svelte/optimistic-updates-typescript/package.json
index d0c2844d2a..1fa187c040 100644
--- a/examples/svelte/optimistic-updates-typescript/package.json
+++ b/examples/svelte/optimistic-updates-typescript/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json
index 16c848c024..63bd66943b 100644
--- a/examples/svelte/playground/package.json
+++ b/examples/svelte/playground/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json
index 0a9d86fac6..bc8a15a932 100644
--- a/examples/svelte/simple/package.json
+++ b/examples/svelte/simple/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/vite-plugin-svelte": "^2.0.2",
diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json
index e150da1c82..4c508345c0 100644
--- a/examples/svelte/ssr/package.json
+++ b/examples/svelte/ssr/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json
index 2a52176667..a1fe6dcd41 100644
--- a/examples/svelte/star-wars/package.json
+++ b/examples/svelte/star-wars/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.1"
+    "@tanstack/svelte-query": "^4.39.2"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json
index bb615b8887..6f5b97f041 100644
--- a/examples/vue/2.6-basic/package.json
+++ b/examples/vue/2.6-basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.1",
+    "@tanstack/vue-query": "^4.39.2",
     "@vue/composition-api": "1.4.4",
     "vue": "2.6.14",
     "vue-template-compiler": "2.6.14"
diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json
index 1547ae2b88..e612401213 100644
--- a/examples/vue/basic/package.json
+++ b/examples/vue/basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.1",
+    "@tanstack/vue-query": "^4.39.2",
     "vue": "^3.2.41"
   },
   "devDependencies": {
diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json
index 924381d29f..df28c3e0e4 100644
--- a/examples/vue/dependent-queries/package.json
+++ b/examples/vue/dependent-queries/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.1",
+    "@tanstack/vue-query": "^4.39.2",
     "vue": "3.2.39"
   },
   "devDependencies": {
diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json
index 4fc2cba67a..612e94fc28 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": "^4.39.1"
+    "@tanstack/vue-query": "^4.39.2"
   },
   "devDependencies": {
     "nuxt": "^3.0.0-rc.12"
diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json
index 757fd57ad6..36affe8b4f 100644
--- a/examples/vue/persister/package.json
+++ b/examples/vue/persister/package.json
@@ -8,9 +8,9 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.1",
-    "@tanstack/query-persist-client-core": "^4.39.1",
-    "@tanstack/query-sync-storage-persister": "^4.39.1",
+    "@tanstack/vue-query": "^4.39.2",
+    "@tanstack/query-persist-client-core": "^4.39.2",
+    "@tanstack/query-sync-storage-persister": "^4.39.2",
     "vue": "3.2.41"
   },
   "devDependencies": {
diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json
index a1b0576c7c..703f6fa69c 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": "4.39.1",
+  "version": "4.39.2",
   "description": "A persister for asynchronous storages, to be used with TanStack/Query",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json
index f0c66f8743..0281f1ad1b 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": "4.39.1",
+  "version": "4.39.2",
   "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-core/package.json b/packages/query-core/package.json
index 8ccdf18ce5..6fa16e73de 100644
--- a/packages/query-core/package.json
+++ b/packages/query-core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/query-core",
-  "version": "4.39.1",
+  "version": "4.39.2",
   "description": "The framework agnostic core that powers TanStack Query",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json
index 8351c86394..239249303d 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": "4.39.1",
+  "version": "4.39.2",
   "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json
index aff206f880..31fa9695fa 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": "4.39.1",
+  "version": "4.39.2",
   "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 943bd725b4..e25e873b77 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": "4.39.1",
+  "version": "4.39.2",
   "description": "Developer tools to interact with and visualize the TanStack/react-query cache",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json
index c68be9a7df..2861cf615b 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": "4.39.1",
+  "version": "4.39.2",
   "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 5075fa1c78..1e3eae05b1 100644
--- a/packages/react-query/package.json
+++ b/packages/react-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/react-query",
-  "version": "4.39.1",
+  "version": "4.39.2",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in React",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json
index 364144c162..12b8251ab5 100644
--- a/packages/solid-query/package.json
+++ b/packages/solid-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/solid-query",
-  "version": "4.39.1",
+  "version": "4.39.2",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json
index 491e1ddc3d..d1b75d9c0a 100644
--- a/packages/svelte-query/package.json
+++ b/packages/svelte-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/svelte-query",
-  "version": "4.39.1",
+  "version": "4.39.2",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte",
   "author": "Lachlan Collins",
   "license": "MIT",
diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json
index 4a22696122..05db269e8b 100644
--- a/packages/vue-query/package.json
+++ b/packages/vue-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/vue-query",
-  "version": "4.39.1",
+  "version": "4.39.2",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
   "author": "Damian Osipiuk",
   "license": "MIT",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index dc8229c444..ce2f9f121e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -188,10 +188,10 @@ importers:
         specifier: 4.11.0
         version: 4.11.0
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       algoliasearch:
         specifier: 4.12.2
@@ -225,10 +225,10 @@ importers:
   examples/react/auto-refetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -249,10 +249,10 @@ importers:
   examples/react/basic:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -277,10 +277,10 @@ importers:
   examples/react/basic-graphql-request:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       graphql:
         specifier: ^15.3.0
@@ -305,16 +305,16 @@ importers:
   examples/react/basic-typescript:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-persist-client
       axios:
         specifier: ^0.26.1
@@ -354,10 +354,10 @@ importers:
   examples/react/default-query-function:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -379,10 +379,10 @@ importers:
   examples/react/load-more-infinite-scroll:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -406,10 +406,10 @@ importers:
   examples/react/nextjs:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       ky:
         specifier: ^0.23.0
@@ -436,19 +436,19 @@ importers:
   examples/react/offline:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-location':
         specifier: ^3.7.0
         version: 3.7.4(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-persist-client
       ky:
         specifier: ^0.30.0
@@ -476,10 +476,10 @@ importers:
   examples/react/optimistic-updates-typescript:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -510,10 +510,10 @@ importers:
   examples/react/pagination:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -534,10 +534,10 @@ importers:
   examples/react/playground:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -556,10 +556,10 @@ importers:
   examples/react/prefetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -589,10 +589,10 @@ importers:
         specifier: ^6.0.2
         version: 6.2.2(@react-navigation/native@6.0.11)(react-native-gesture-handler@1.10.3)(react-native-safe-area-context@3.3.2)(react-native-screens@3.8.0)(react-native@0.64.3)(react@17.0.1)
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       expo:
         specifier: ~43.0.2
@@ -668,10 +668,10 @@ importers:
   examples/react/react-router:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       localforage:
         specifier: ^1.10.0
@@ -708,10 +708,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -736,10 +736,10 @@ importers:
   examples/react/simple:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -764,10 +764,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -792,10 +792,10 @@ importers:
   examples/react/suspense:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -820,7 +820,7 @@ importers:
   examples/solid/basic-graphql-request:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/solid-query
       graphql:
         specifier: ^16.6.0
@@ -845,7 +845,7 @@ importers:
   examples/solid/basic-typescript:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -864,7 +864,7 @@ importers:
   examples/solid/default-query-function:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -883,7 +883,7 @@ importers:
   examples/solid/simple:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -905,7 +905,7 @@ importers:
   examples/svelte/auto-refetching:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -933,7 +933,7 @@ importers:
   examples/svelte/basic:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -961,7 +961,7 @@ importers:
   examples/svelte/load-more-infinite-scroll:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -989,7 +989,7 @@ importers:
   examples/svelte/optimistic-updates-typescript:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1017,7 +1017,7 @@ importers:
   examples/svelte/playground:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1045,7 +1045,7 @@ importers:
   examples/svelte/simple:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/vite-plugin-svelte':
@@ -1073,7 +1073,7 @@ importers:
   examples/svelte/ssr:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1101,7 +1101,7 @@ importers:
   examples/svelte/star-wars:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1138,7 +1138,7 @@ importers:
   examples/vue/basic:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/vue-query
       vue:
         specifier: ^3.2.41
@@ -1157,7 +1157,7 @@ importers:
   examples/vue/dependent-queries:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.39
@@ -1176,13 +1176,13 @@ importers:
   examples/vue/persister:
     dependencies:
       '@tanstack/query-persist-client-core':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/query-persist-client-core
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/vue-query':
-        specifier: ^4.39.1
+        specifier: ^4.39.2
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.41
@@ -1356,15 +1356,6 @@ importers:
         specifier: npm:react-dom@^17.0.2
         version: /react-dom@17.0.2(react@18.2.0)
 
-  packages/react-query/build/query-codemods:
-    devDependencies:
-      '@types/jscodeshift':
-        specifier: 17.3.0
-        version: 17.3.0
-      jscodeshift:
-        specifier: 17.3.0
-        version: 17.3.0(@babel/preset-env@7.18.6)
-
   packages/solid-query:
     dependencies:
       '@tanstack/query-core':
@@ -3037,6 +3028,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
@@ -3137,6 +3129,7 @@ packages:
     dependencies:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
+    dev: false
 
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -3502,19 +3495,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -3737,6 +3717,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
+    dev: false
 
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
@@ -4095,16 +4076,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.27.1
-    dev: true
-
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
     engines: {node: '>=6.9.0'}
@@ -4162,19 +4133,6 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-plugin-utils': 7.27.1
-      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -4203,19 +4161,6 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1):
-    resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
-      '@babel/helper-plugin-utils': 7.27.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
     engines: {node: '>=6.9.0'}
@@ -4335,7 +4280,7 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
     dev: false
 
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
@@ -4629,6 +4574,7 @@ packages:
       '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
@@ -4975,6 +4921,7 @@ packages:
       '@babel/helper-plugin-utils': 7.27.1
       '@babel/helper-validator-option': 7.27.1
       '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
+    dev: false
 
   /@babel/preset-modules@0.1.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
@@ -5070,6 +5017,7 @@ packages:
       '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/register@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==}
@@ -5097,6 +5045,7 @@ packages:
       make-dir: 2.1.0
       pirates: 4.0.7
       source-map-support: 0.5.21
+    dev: false
 
   /@babel/runtime-corejs3@7.18.6:
     resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
@@ -7661,13 +7610,6 @@ packages:
       recast: 0.20.5
     dev: true
 
-  /@types/jscodeshift@17.3.0:
-    resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==}
-    dependencies:
-      ast-types: 0.16.1
-      recast: 0.23.11
-    dev: true
-
   /@types/json-schema@7.0.11:
     resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
     dev: true
@@ -8968,13 +8910,6 @@ packages:
     dependencies:
       tslib: 2.6.0
 
-  /ast-types@0.16.1:
-    resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
-    engines: {node: '>=4'}
-    dependencies:
-      tslib: 2.6.0
-    dev: true
-
   /astral-regex@1.0.0:
     resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==}
     engines: {node: '>=4'}
@@ -9195,7 +9130,7 @@ packages:
       '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.16.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.19.0
+      '@babel/types': 7.27.1
       html-entities: 2.3.2
     dev: true
 
@@ -9226,10 +9161,10 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/compat-data': 7.27.2
+      '@babel/compat-data': 7.19.1
       '@babel/core': 7.27.1
       '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
-      semver: 6.3.1
+      semver: 6.3.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -13856,39 +13791,6 @@ packages:
       - supports-color
     dev: true
 
-  /jscodeshift@17.3.0(@babel/preset-env@7.18.6):
-    resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==}
-    engines: {node: '>=16'}
-    hasBin: true
-    peerDependencies:
-      '@babel/preset-env': ^7.1.6
-    peerDependenciesMeta:
-      '@babel/preset-env':
-        optional: true
-    dependencies:
-      '@babel/core': 7.27.1
-      '@babel/parser': 7.27.2
-      '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
-      '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
-      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
-      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
-      '@babel/register': 7.27.1(@babel/core@7.27.1)
-      flow-parser: 0.121.0
-      graceful-fs: 4.2.10
-      micromatch: 4.0.8
-      neo-async: 2.6.2
-      picocolors: 1.1.1
-      recast: 0.23.11
-      tmp: 0.2.3
-      write-file-atomic: 5.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /jsdom@16.7.0:
     resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
     engines: {node: '>=10'}
@@ -16739,17 +16641,6 @@ packages:
       source-map: 0.6.1
       tslib: 2.6.0
 
-  /recast@0.23.11:
-    resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
-    engines: {node: '>= 4'}
-    dependencies:
-      ast-types: 0.16.1
-      esprima: 4.0.1
-      source-map: 0.6.1
-      tiny-invariant: 1.3.3
-      tslib: 2.6.0
-    dev: true
-
   /rechoir@0.6.2:
     resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
     engines: {node: '>= 0.10'}
@@ -17330,11 +17221,6 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
-  /signal-exit@4.1.0:
-    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
-    engines: {node: '>=14'}
-    dev: true
-
   /simple-git@3.27.0:
     resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
     dependencies:
@@ -18266,6 +18152,7 @@ packages:
 
   /tiny-invariant@1.3.3:
     resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+    dev: false
 
   /tiny-warning@1.0.3:
     resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
@@ -18308,11 +18195,6 @@ packages:
       rimraf: 3.0.2
     dev: true
 
-  /tmp@0.2.3:
-    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
-    engines: {node: '>=14.14'}
-    dev: true
-
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
@@ -19437,14 +19319,6 @@ packages:
       typedarray-to-buffer: 3.1.5
     dev: true
 
-  /write-file-atomic@5.0.1:
-    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
-    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-    dependencies:
-      imurmurhash: 0.1.4
-      signal-exit: 4.1.0
-    dev: true
-
   /ws@1.1.5:
     resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
     peerDependencies:

From 693a4718c3081a9115c73d15fcc1c7527f18c981 Mon Sep 17 00:00:00 2001
From: Jonghyeon Ko <manudeli.ko@gmail.com>
Date: Wed, 18 Jun 2025 01:39:20 +0900
Subject: [PATCH 41/45] feat(query-core, react-query): backport v5 types,
 deprecate `isLoading` in favor of `isPending` in mutation observer results
 (#9266)

* feat(query-core, react-query): add types, deprecate `isLoading` in favor of `isPending` in mutation observer results

* refactor(react-query): update import path in Hydrate test file
---
 packages/query-core/src/types.ts              | 19 +++++++++
 .../src/__tests__/Hydrate.test.tsx            |  2 +-
 .../src/__tests__/queryOptions.types.test.tsx | 11 +++---
 .../useSuspenseQueries.types.test.tsx         |  8 ++--
 .../__tests__/useSuspenseQuery.types.test.tsx |  6 +--
 packages/react-query/src/index.ts             | 10 ++++-
 packages/react-query/src/queryOptions.ts      |  4 +-
 packages/react-query/src/types.ts             | 29 ++++++++++++++
 packages/react-query/src/useQuery.ts          |  1 -
 .../react-query/src/useSuspenseQueries.ts     |  6 +--
 packages/react-query/src/useSuspenseQuery.ts  | 39 +++----------------
 11 files changed, 80 insertions(+), 55 deletions(-)

diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts
index 4e3f201fbd..019f235ed7 100644
--- a/packages/query-core/src/types.ts
+++ b/packages/query-core/src/types.ts
@@ -669,6 +669,9 @@ export interface MutationObserverBaseResult<
 > extends MutationState<TData, TError, TVariables, TContext> {
   isError: boolean
   isIdle: boolean
+  /**
+   * @deprecated This property will be removed in the next major version. Use `isPending` instead.
+   */
   isLoading: boolean
   isPending: boolean
   isSuccess: boolean
@@ -686,7 +689,11 @@ export interface MutationObserverIdleResult<
   error: null
   isError: false
   isIdle: true
+  /**
+   * @deprecated This property will be removed in the next major version. Use `isPending` instead.
+   */
   isLoading: false
+  isPending: false
   isSuccess: false
   status: 'idle'
 }
@@ -701,7 +708,11 @@ export interface MutationObserverLoadingResult<
   error: null
   isError: false
   isIdle: false
+  /**
+   * @deprecated This property will be removed in the next major version. Use `isPending` instead.
+   */
   isLoading: true
+  isPending: true
   isSuccess: false
   status: 'loading'
 }
@@ -716,7 +727,11 @@ export interface MutationObserverErrorResult<
   error: TError
   isError: true
   isIdle: false
+  /**
+   * @deprecated This property will be removed in the next major version. Use `isPending` instead.
+   */
   isLoading: false
+  isPending: false
   isSuccess: false
   status: 'error'
 }
@@ -731,7 +746,11 @@ export interface MutationObserverSuccessResult<
   error: null
   isError: false
   isIdle: false
+  /**
+   * @deprecated This property will be removed in the next major version. Use `isPending` instead.
+   */
   isLoading: false
+  isPending: false
   isSuccess: true
   status: 'success'
 }
diff --git a/packages/react-query/src/__tests__/Hydrate.test.tsx b/packages/react-query/src/__tests__/Hydrate.test.tsx
index 1a5c90cd90..2594d00444 100644
--- a/packages/react-query/src/__tests__/Hydrate.test.tsx
+++ b/packages/react-query/src/__tests__/Hydrate.test.tsx
@@ -10,7 +10,7 @@ import {
   dehydrate,
   useHydrate,
   useQuery,
-} from '@tanstack/react-query'
+} from '..'
 import { createQueryClient, sleep } from './utils'
 
 describe('React hydration', () => {
diff --git a/packages/react-query/src/__tests__/queryOptions.types.test.tsx b/packages/react-query/src/__tests__/queryOptions.types.test.tsx
index 9a9f485e1d..a8d435b6d2 100644
--- a/packages/react-query/src/__tests__/queryOptions.types.test.tsx
+++ b/packages/react-query/src/__tests__/queryOptions.types.test.tsx
@@ -1,16 +1,17 @@
 import { expectTypeOf } from 'expect-type'
 import {
+  type DefinedUseQueryResult,
   QueryCache,
   type UseQueryResult,
+  type UseSuspenseQueryResult,
+  queryOptions,
   useQueries,
   useQuery,
   useQueryClient,
-} from '@tanstack/react-query'
-import { queryOptions } from '..'
-import { useSuspenseQueries, useSuspenseQuery } from '..'
-import { type UseSuspenseQueryResult } from '../useSuspenseQuery'
+  useSuspenseQueries,
+  useSuspenseQuery,
+} from '..'
 import { doNotExecute } from './utils'
-import type { DefinedUseQueryResult } from '@tanstack/react-query'
 
 const queryKey = ['key'] as const
 const queryFn = () => Promise.resolve({ field: 'success' })
diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
index 741927ca9c..edb7a31d52 100644
--- a/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
+++ b/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
@@ -1,8 +1,10 @@
 import { expectTypeOf } from 'expect-type'
-import { queryOptions } from '..'
-import { useSuspenseQueries } from '..'
+import {
+  type UseSuspenseQueryResult,
+  queryOptions,
+  useSuspenseQueries,
+} from '..'
 import { doNotExecute } from './utils'
-import type { UseSuspenseQueryResult } from '../useSuspenseQuery'
 
 export const queryKey = ['key'] as const
 const sleep = (ms: number) =>
diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
index 59889d27d2..586210f9a9 100644
--- a/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
+++ b/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
@@ -1,9 +1,5 @@
 import { expectTypeOf } from 'expect-type'
-import {
-  type UseSuspenseQueryResult,
-  useSuspenseQuery,
-} from '../useSuspenseQuery'
-import { queryOptions } from '..'
+import { type UseSuspenseQueryResult, queryOptions, useSuspenseQuery } from '..'
 import { doNotExecute } from './utils'
 
 const queryKey = ['key'] as const
diff --git a/packages/react-query/src/index.ts b/packages/react-query/src/index.ts
index f906c1402a..d08e593cd7 100644
--- a/packages/react-query/src/index.ts
+++ b/packages/react-query/src/index.ts
@@ -13,6 +13,15 @@ export type { QueriesResults, QueriesOptions } from './useQueries'
 export { useQuery } from './useQuery'
 export { useSuspenseQuery } from './useSuspenseQuery'
 export { useSuspenseQueries } from './useSuspenseQueries'
+export type {
+  SuspenseQueriesResults,
+  SuspenseQueriesOptions,
+} from './useSuspenseQueries'
+export { queryOptions } from './queryOptions'
+export type {
+  DefinedInitialDataOptions,
+  UndefinedInitialDataOptions,
+} from './queryOptions'
 export {
   defaultContext,
   QueryClientProvider,
@@ -31,4 +40,3 @@ export { useIsMutating } from './useIsMutating'
 export { useMutation } from './useMutation'
 export { useInfiniteQuery } from './useInfiniteQuery'
 export { useIsRestoring, IsRestoringProvider } from './isRestoring'
-export { queryOptions } from './queryOptions'
diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts
index 20c3a9060b..730eafb2a7 100644
--- a/packages/react-query/src/queryOptions.ts
+++ b/packages/react-query/src/queryOptions.ts
@@ -22,7 +22,7 @@ type ProhibitedQueryOptionsKeyInV5 = keyof Pick<
   'useErrorBoundary' | 'suspense' | 'getNextPageParam' | 'getPreviousPageParam'
 >
 
-type UndefinedInitialDataOptions<
+export type UndefinedInitialDataOptions<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
@@ -34,7 +34,7 @@ type UndefinedInitialDataOptions<
     | NonUndefinedGuard<TQueryFnData>
 }
 
-type DefinedInitialDataOptions<
+export type DefinedInitialDataOptions<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
diff --git a/packages/react-query/src/types.ts b/packages/react-query/src/types.ts
index 648c0db85c..23bef721cb 100644
--- a/packages/react-query/src/types.ts
+++ b/packages/react-query/src/types.ts
@@ -3,11 +3,13 @@
 import type * as React from 'react'
 import type {
   DefinedQueryObserverResult,
+  DistributiveOmit,
   InfiniteQueryObserverOptions,
   InfiniteQueryObserverResult,
   MutateFunction,
   MutationObserverOptions,
   MutationObserverResult,
+  OmitKeyof,
   QueryKey,
   QueryObserverOptions,
   QueryObserverResult,
@@ -43,6 +45,25 @@ export interface UseQueryOptions<
     TQueryKey
   > {}
 
+export type UseSuspenseQueryOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = OmitKeyof<
+  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+  | 'enabled'
+  | 'useErrorBoundary'
+  | 'suspense'
+  | 'placeholderData'
+  | 'networkMode'
+  | 'onSuccess'
+  | 'onError'
+  | 'onSettled'
+  | 'getPreviousPageParam'
+  | 'getNextPageParam'
+>
+
 export interface UseInfiniteQueryOptions<
   TQueryFnData = unknown,
   TError = unknown,
@@ -68,6 +89,14 @@ export type UseQueryResult<
   TError = unknown,
 > = UseBaseQueryResult<TData, TError>
 
+export type UseSuspenseQueryResult<
+  TData = unknown,
+  TError = unknown,
+> = DistributiveOmit<
+  DefinedQueryObserverResult<TData, TError>,
+  'isPlaceholderData'
+>
+
 export type DefinedUseBaseQueryResult<
   TData = unknown,
   TError = unknown,
diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts
index 0ae2eda575..44100cc918 100644
--- a/packages/react-query/src/useQuery.ts
+++ b/packages/react-query/src/useQuery.ts
@@ -136,7 +136,6 @@ export function useQuery<
     'queryKey' | 'queryFn'
   >,
 ): UseQueryResult<TData, TError>
-/** @deprecated */
 export function useQuery<
   TQueryFnData,
   TError,
diff --git a/packages/react-query/src/useSuspenseQueries.ts b/packages/react-query/src/useSuspenseQueries.ts
index 7b70ea848d..e81956298e 100644
--- a/packages/react-query/src/useSuspenseQueries.ts
+++ b/packages/react-query/src/useSuspenseQueries.ts
@@ -1,10 +1,10 @@
 import { useQueries } from './useQueries'
-import type { UseQueryOptions } from './types'
-import type { NetworkMode, QueryFunction } from '@tanstack/query-core'
 import type {
+  UseQueryOptions,
   UseSuspenseQueryOptions,
   UseSuspenseQueryResult,
-} from './useSuspenseQuery'
+} from './types'
+import type { NetworkMode, QueryFunction } from '@tanstack/query-core'
 
 // Avoid TS depth-limit error in case of large array literal
 type MAXIMUM_DEPTH = 20
diff --git a/packages/react-query/src/useSuspenseQuery.ts b/packages/react-query/src/useSuspenseQuery.ts
index 06dc015a6d..cd8d9a1c8f 100644
--- a/packages/react-query/src/useSuspenseQuery.ts
+++ b/packages/react-query/src/useSuspenseQuery.ts
@@ -1,39 +1,7 @@
 import { QueryObserver } from '@tanstack/query-core'
 import { useBaseQuery } from './useBaseQuery'
-import type {
-  DefinedQueryObserverResult,
-  DistributiveOmit,
-  OmitKeyof,
-  QueryKey,
-} from '@tanstack/query-core'
-import type { UseQueryOptions } from './types'
-
-export type UseSuspenseQueryResult<
-  TData = unknown,
-  TError = unknown,
-> = DistributiveOmit<
-  DefinedQueryObserverResult<TData, TError>,
-  'isPlaceholderData'
->
-
-export type UseSuspenseQueryOptions<
-  TQueryFnData = unknown,
-  TError = unknown,
-  TData = TQueryFnData,
-  TQueryKey extends QueryKey = QueryKey,
-> = OmitKeyof<
-  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-  | 'enabled'
-  | 'useErrorBoundary'
-  | 'suspense'
-  | 'placeholderData'
-  | 'networkMode'
-  | 'onSuccess'
-  | 'onError'
-  | 'onSettled'
-  | 'getPreviousPageParam'
-  | 'getNextPageParam'
->
+import type { QueryKey } from '@tanstack/query-core'
+import type { UseSuspenseQueryOptions, UseSuspenseQueryResult } from './types'
 
 export function useSuspenseQuery<
   TQueryFnData = unknown,
@@ -49,6 +17,9 @@ export function useSuspenseQuery<
       suspense: true,
       placeholderData: undefined,
       networkMode: 'always',
+      onSuccess: undefined,
+      onError: undefined,
+      onSettled: undefined,
     },
     QueryObserver,
   ) as UseSuspenseQueryResult<TData, TError>

From fff40b7dd06404754ec8ff1d4cd8c002eea48740 Mon Sep 17 00:00:00 2001
From: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Date: Tue, 17 Jun 2025 16:44:51 +0000
Subject: [PATCH 42/45] release: v4.40.0

---
 examples/react/algolia/package.json           |   4 +-
 examples/react/auto-refetching/package.json   |   4 +-
 .../react/basic-graphql-request/package.json  |   4 +-
 examples/react/basic-typescript/package.json  |   8 +-
 examples/react/basic/package.json             |   4 +-
 .../react/default-query-function/package.json |   4 +-
 .../load-more-infinite-scroll/package.json    |   4 +-
 examples/react/nextjs/package.json            |   4 +-
 examples/react/offline/package.json           |   8 +-
 .../package.json                              |   4 +-
 examples/react/pagination/package.json        |   4 +-
 examples/react/playground/package.json        |   4 +-
 examples/react/prefetching/package.json       |   4 +-
 examples/react/react-native/package.json      |   4 +-
 examples/react/react-router/package.json      |   4 +-
 examples/react/rick-morty/package.json        |   4 +-
 examples/react/simple/package.json            |   4 +-
 examples/react/star-wars/package.json         |   4 +-
 examples/react/suspense/package.json          |   4 +-
 .../solid/basic-graphql-request/package.json  |   2 +-
 examples/solid/basic-typescript/package.json  |   2 +-
 .../solid/default-query-function/package.json |   2 +-
 examples/solid/simple/package.json            |   2 +-
 examples/svelte/auto-refetching/package.json  |   2 +-
 examples/svelte/basic/package.json            |   2 +-
 .../load-more-infinite-scroll/package.json    |   2 +-
 .../package.json                              |   2 +-
 examples/svelte/playground/package.json       |   2 +-
 examples/svelte/simple/package.json           |   2 +-
 examples/svelte/ssr/package.json              |   2 +-
 examples/svelte/star-wars/package.json        |   2 +-
 examples/vue/2.6-basic/package.json           |   2 +-
 examples/vue/basic/package.json               |   2 +-
 examples/vue/dependent-queries/package.json   |   2 +-
 examples/vue/nuxt3/package.json               |   2 +-
 examples/vue/persister/package.json           |   6 +-
 .../package.json                              |   2 +-
 .../package.json                              |   2 +-
 packages/query-core/package.json              |   2 +-
 .../query-persist-client-core/package.json    |   2 +-
 .../query-sync-storage-persister/package.json |   2 +-
 packages/react-query-devtools/package.json    |   2 +-
 .../react-query-persist-client/package.json   |   2 +-
 packages/react-query/package.json             |   2 +-
 packages/solid-query/package.json             |   2 +-
 packages/svelte-query/package.json            |   2 +-
 packages/vue-query/package.json               |   2 +-
 pnpm-lock.yaml                                | 118 +++++++++---------
 48 files changed, 131 insertions(+), 131 deletions(-)

diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json
index e6b66447c5..32214e2713 100644
--- a/examples/react/algolia/package.json
+++ b/examples/react/algolia/package.json
@@ -10,8 +10,8 @@
   "dependencies": {
     "@algolia/client-search": "4.11.0",
     "@algolia/transporter": "4.11.0",
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "algoliasearch": "4.12.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json
index a45d3b15e9..d931eeefb4 100644
--- a/examples/react/auto-refetching/package.json
+++ b/examples/react/auto-refetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json
index bb0ab82e63..a9a42a7b02 100644
--- a/examples/react/basic-graphql-request/package.json
+++ b/examples/react/basic-graphql-request/package.json
@@ -12,8 +12,8 @@
     "graphql-request": "^3.1.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2"
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0"
   },
   "devDependencies": {
     "@vitejs/plugin-react": "^2.0.0",
diff --git a/examples/react/basic-typescript/package.json b/examples/react/basic-typescript/package.json
index 5b6cbb50db..3d28761424 100644
--- a/examples/react/basic-typescript/package.json
+++ b/examples/react/basic-typescript/package.json
@@ -8,10 +8,10 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
-    "@tanstack/react-query-persist-client": "^4.39.2",
-    "@tanstack/query-sync-storage-persister": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query-persist-client": "^4.40.0",
+    "@tanstack/query-sync-storage-persister": "^4.40.0",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json
index 6b35feff68..d4406e9563 100644
--- a/examples/react/basic/package.json
+++ b/examples/react/basic/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json
index 9ecb05a06f..aac07b9044 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": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json
index d640609971..a73eaf3c42 100644
--- a/examples/react/load-more-infinite-scroll/package.json
+++ b/examples/react/load-more-infinite-scroll/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json
index 45192d58d1..a87f4cd163 100644
--- a/examples/react/nextjs/package.json
+++ b/examples/react/nextjs/package.json
@@ -8,8 +8,8 @@
     "start": "next start"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "ky": "^0.23.0",
     "ky-universal": "^0.8.2",
     "next": "12.2.2",
diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json
index 1c3118a839..9b336a93d1 100644
--- a/examples/react/offline/package.json
+++ b/examples/react/offline/package.json
@@ -9,10 +9,10 @@
   },
   "dependencies": {
     "@tanstack/react-location": "^3.7.0",
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
-    "@tanstack/react-query-persist-client": "^4.39.2",
-    "@tanstack/query-sync-storage-persister": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query-persist-client": "^4.40.0",
+    "@tanstack/query-sync-storage-persister": "^4.40.0",
     "ky": "^0.30.0",
     "msw": "^0.39.2",
     "react": "^18.0.0",
diff --git a/examples/react/optimistic-updates-typescript/package.json b/examples/react/optimistic-updates-typescript/package.json
index 1d0186f8bd..9acd95d3da 100755
--- a/examples/react/optimistic-updates-typescript/package.json
+++ b/examples/react/optimistic-updates-typescript/package.json
@@ -4,8 +4,8 @@
   "main": "pages/index.tsx",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json
index 0057c27736..4bff8fdb39 100644
--- a/examples/react/pagination/package.json
+++ b/examples/react/pagination/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json
index ea9d5904d4..1cc8f85535 100644
--- a/examples/react/playground/package.json
+++ b/examples/react/playground/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
   },
diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json
index 76148d0710..18c1b88ab4 100644
--- a/examples/react/prefetching/package.json
+++ b/examples/react/prefetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json
index da9311b4c7..ab582219ba 100644
--- a/examples/react/react-native/package.json
+++ b/examples/react/react-native/package.json
@@ -20,8 +20,8 @@
     "@react-native-community/netinfo": "6.0.2",
     "@react-navigation/stack": "^6.0.2",
     "@react-navigation/native": "^6.0.2",
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "expo": "~43.0.2",
     "expo-constants": "~12.1.3",
     "expo-status-bar": "~1.1.0",
diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json
index 521ba45b19..ddf3f8c1dc 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": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "localforage": "^1.10.0",
     "match-sorter": "^6.3.1",
     "react": "^18.0.0",
diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json
index a592a2721c..a953114e15 100644
--- a/examples/react/rick-morty/package.json
+++ b/examples/react/rick-morty/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json
index 45f953ce89..dd6571cc7f 100644
--- a/examples/react/simple/package.json
+++ b/examples/react/simple/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json
index faea316f43..f3ba67313d 100644
--- a/examples/react/star-wars/package.json
+++ b/examples/react/star-wars/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json
index b75acbc714..c33881f7bf 100644
--- a/examples/react/suspense/package.json
+++ b/examples/react/suspense/package.json
@@ -3,8 +3,8 @@
   "private": true,
   "main": "src/index.jsx",
   "dependencies": {
-    "@tanstack/react-query": "^4.39.2",
-    "@tanstack/react-query-devtools": "^4.39.2",
+    "@tanstack/react-query": "^4.40.0",
+    "@tanstack/react-query-devtools": "^4.40.0",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json
index 3e0411f9c2..0d5d1c64ae 100644
--- a/examples/solid/basic-graphql-request/package.json
+++ b/examples/solid/basic-graphql-request/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.2",
+    "@tanstack/solid-query": "^4.40.0",
     "graphql": "^16.6.0",
     "graphql-request": "^5.0.0",
     "solid-js": "^1.5.1"
diff --git a/examples/solid/basic-typescript/package.json b/examples/solid/basic-typescript/package.json
index de4ce97b1e..579cacb079 100644
--- a/examples/solid/basic-typescript/package.json
+++ b/examples/solid/basic-typescript/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.2",
+    "@tanstack/solid-query": "^4.40.0",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json
index 016673a41a..0c5f46ee13 100644
--- a/examples/solid/default-query-function/package.json
+++ b/examples/solid/default-query-function/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.2",
+    "@tanstack/solid-query": "^4.40.0",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json
index 96f5895fcd..e4f99f55e5 100644
--- a/examples/solid/simple/package.json
+++ b/examples/solid/simple/package.json
@@ -9,7 +9,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@tanstack/solid-query": "^4.39.2",
+    "@tanstack/solid-query": "^4.40.0",
     "solid-js": "^1.5.1"
   },
   "devDependencies": {
diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json
index 99241eff4c..630f9f6db1 100644
--- a/examples/svelte/auto-refetching/package.json
+++ b/examples/svelte/auto-refetching/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json
index 1a30fa6b64..611f720d36 100644
--- a/examples/svelte/basic/package.json
+++ b/examples/svelte/basic/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json
index b15679edec..0db5e26659 100644
--- a/examples/svelte/load-more-infinite-scroll/package.json
+++ b/examples/svelte/load-more-infinite-scroll/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/optimistic-updates-typescript/package.json b/examples/svelte/optimistic-updates-typescript/package.json
index 1fa187c040..9297af12b1 100644
--- a/examples/svelte/optimistic-updates-typescript/package.json
+++ b/examples/svelte/optimistic-updates-typescript/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json
index 63bd66943b..7aaabbec52 100644
--- a/examples/svelte/playground/package.json
+++ b/examples/svelte/playground/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json
index bc8a15a932..0ff3f1e1ba 100644
--- a/examples/svelte/simple/package.json
+++ b/examples/svelte/simple/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/vite-plugin-svelte": "^2.0.2",
diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json
index 4c508345c0..fe0ceefbe4 100644
--- a/examples/svelte/ssr/package.json
+++ b/examples/svelte/ssr/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json
index a1fe6dcd41..26cace8d4d 100644
--- a/examples/svelte/star-wars/package.json
+++ b/examples/svelte/star-wars/package.json
@@ -9,7 +9,7 @@
     "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
   },
   "dependencies": {
-    "@tanstack/svelte-query": "^4.39.2"
+    "@tanstack/svelte-query": "^4.40.0"
   },
   "devDependencies": {
     "@sveltejs/adapter-auto": "^2.0.0",
diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json
index 6f5b97f041..8179ca4203 100644
--- a/examples/vue/2.6-basic/package.json
+++ b/examples/vue/2.6-basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.2",
+    "@tanstack/vue-query": "^4.40.0",
     "@vue/composition-api": "1.4.4",
     "vue": "2.6.14",
     "vue-template-compiler": "2.6.14"
diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json
index e612401213..5ec558b250 100644
--- a/examples/vue/basic/package.json
+++ b/examples/vue/basic/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.2",
+    "@tanstack/vue-query": "^4.40.0",
     "vue": "^3.2.41"
   },
   "devDependencies": {
diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json
index df28c3e0e4..d5e8992d43 100644
--- a/examples/vue/dependent-queries/package.json
+++ b/examples/vue/dependent-queries/package.json
@@ -8,7 +8,7 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.2",
+    "@tanstack/vue-query": "^4.40.0",
     "vue": "3.2.39"
   },
   "devDependencies": {
diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json
index 612e94fc28..a0a55911cf 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": "^4.39.2"
+    "@tanstack/vue-query": "^4.40.0"
   },
   "devDependencies": {
     "nuxt": "^3.0.0-rc.12"
diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json
index 36affe8b4f..6cab1ba2ae 100644
--- a/examples/vue/persister/package.json
+++ b/examples/vue/persister/package.json
@@ -8,9 +8,9 @@
     "serve": "vite preview"
   },
   "dependencies": {
-    "@tanstack/vue-query": "^4.39.2",
-    "@tanstack/query-persist-client-core": "^4.39.2",
-    "@tanstack/query-sync-storage-persister": "^4.39.2",
+    "@tanstack/vue-query": "^4.40.0",
+    "@tanstack/query-persist-client-core": "^4.40.0",
+    "@tanstack/query-sync-storage-persister": "^4.40.0",
     "vue": "3.2.41"
   },
   "devDependencies": {
diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json
index 703f6fa69c..f5ec27e999 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": "4.39.2",
+  "version": "4.40.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/package.json b/packages/query-broadcast-client-experimental/package.json
index 0281f1ad1b..f87eb6da5b 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": "4.39.2",
+  "version": "4.40.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/package.json b/packages/query-core/package.json
index 6fa16e73de..edcfa0c25f 100644
--- a/packages/query-core/package.json
+++ b/packages/query-core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/query-core",
-  "version": "4.39.2",
+  "version": "4.40.0",
   "description": "The framework agnostic core that powers TanStack Query",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json
index 239249303d..e52b1fde2c 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": "4.39.2",
+  "version": "4.40.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/package.json b/packages/query-sync-storage-persister/package.json
index 31fa9695fa..2e75893e10 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": "4.39.2",
+  "version": "4.40.0",
   "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 e25e873b77..358ee3fc07 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": "4.39.2",
+  "version": "4.40.0",
   "description": "Developer tools to interact with and visualize the TanStack/react-query cache",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json
index 2861cf615b..adc0cd3ee2 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": "4.39.2",
+  "version": "4.40.0",
   "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 1e3eae05b1..6c66f5dbb5 100644
--- a/packages/react-query/package.json
+++ b/packages/react-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/react-query",
-  "version": "4.39.2",
+  "version": "4.40.0",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in React",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json
index 12b8251ab5..f0eb4eab9d 100644
--- a/packages/solid-query/package.json
+++ b/packages/solid-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/solid-query",
-  "version": "4.39.2",
+  "version": "4.40.0",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json
index d1b75d9c0a..0aa0b3873b 100644
--- a/packages/svelte-query/package.json
+++ b/packages/svelte-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/svelte-query",
-  "version": "4.39.2",
+  "version": "4.40.0",
   "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte",
   "author": "Lachlan Collins",
   "license": "MIT",
diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json
index 05db269e8b..e51a92f16f 100644
--- a/packages/vue-query/package.json
+++ b/packages/vue-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/vue-query",
-  "version": "4.39.2",
+  "version": "4.40.0",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
   "author": "Damian Osipiuk",
   "license": "MIT",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ce2f9f121e..5cd6f884e4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -188,10 +188,10 @@ importers:
         specifier: 4.11.0
         version: 4.11.0
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       algoliasearch:
         specifier: 4.12.2
@@ -225,10 +225,10 @@ importers:
   examples/react/auto-refetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -249,10 +249,10 @@ importers:
   examples/react/basic:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -277,10 +277,10 @@ importers:
   examples/react/basic-graphql-request:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       graphql:
         specifier: ^15.3.0
@@ -305,16 +305,16 @@ importers:
   examples/react/basic-typescript:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-persist-client
       axios:
         specifier: ^0.26.1
@@ -354,10 +354,10 @@ importers:
   examples/react/default-query-function:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -379,10 +379,10 @@ importers:
   examples/react/load-more-infinite-scroll:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -406,10 +406,10 @@ importers:
   examples/react/nextjs:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       ky:
         specifier: ^0.23.0
@@ -436,19 +436,19 @@ importers:
   examples/react/offline:
     dependencies:
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-location':
         specifier: ^3.7.0
         version: 3.7.4(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-persist-client
       ky:
         specifier: ^0.30.0
@@ -476,10 +476,10 @@ importers:
   examples/react/optimistic-updates-typescript:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -510,10 +510,10 @@ importers:
   examples/react/pagination:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -534,10 +534,10 @@ importers:
   examples/react/playground:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -556,10 +556,10 @@ importers:
   examples/react/prefetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -589,10 +589,10 @@ importers:
         specifier: ^6.0.2
         version: 6.2.2(@react-navigation/native@6.0.11)(react-native-gesture-handler@1.10.3)(react-native-safe-area-context@3.3.2)(react-native-screens@3.8.0)(react-native@0.64.3)(react@17.0.1)
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       expo:
         specifier: ~43.0.2
@@ -668,10 +668,10 @@ importers:
   examples/react/react-router:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       localforage:
         specifier: ^1.10.0
@@ -708,10 +708,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -736,10 +736,10 @@ importers:
   examples/react/simple:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -764,10 +764,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -792,10 +792,10 @@ importers:
   examples/react/suspense:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -820,7 +820,7 @@ importers:
   examples/solid/basic-graphql-request:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/solid-query
       graphql:
         specifier: ^16.6.0
@@ -845,7 +845,7 @@ importers:
   examples/solid/basic-typescript:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -864,7 +864,7 @@ importers:
   examples/solid/default-query-function:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -883,7 +883,7 @@ importers:
   examples/solid/simple:
     dependencies:
       '@tanstack/solid-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/solid-query
       solid-js:
         specifier: ^1.5.1
@@ -905,7 +905,7 @@ importers:
   examples/svelte/auto-refetching:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -933,7 +933,7 @@ importers:
   examples/svelte/basic:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -961,7 +961,7 @@ importers:
   examples/svelte/load-more-infinite-scroll:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -989,7 +989,7 @@ importers:
   examples/svelte/optimistic-updates-typescript:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1017,7 +1017,7 @@ importers:
   examples/svelte/playground:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1045,7 +1045,7 @@ importers:
   examples/svelte/simple:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/vite-plugin-svelte':
@@ -1073,7 +1073,7 @@ importers:
   examples/svelte/ssr:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1101,7 +1101,7 @@ importers:
   examples/svelte/star-wars:
     dependencies:
       '@tanstack/svelte-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/svelte-query
     devDependencies:
       '@sveltejs/adapter-auto':
@@ -1138,7 +1138,7 @@ importers:
   examples/vue/basic:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/vue-query
       vue:
         specifier: ^3.2.41
@@ -1157,7 +1157,7 @@ importers:
   examples/vue/dependent-queries:
     dependencies:
       '@tanstack/vue-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.39
@@ -1176,13 +1176,13 @@ importers:
   examples/vue/persister:
     dependencies:
       '@tanstack/query-persist-client-core':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/query-persist-client-core
       '@tanstack/query-sync-storage-persister':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/vue-query':
-        specifier: ^4.39.2
+        specifier: ^4.40.0
         version: link:../../../packages/vue-query
       vue:
         specifier: 3.2.41

From 1f9cf0b1976779319ff3440966ba83edda671f68 Mon Sep 17 00:00:00 2001
From: u9g <git@u9g.dev>
Date: Thu, 19 Jun 2025 05:12:46 -0400
Subject: [PATCH 43/45] docs: Fix syntax of batshit in batching-requests
 article (#9269)

---
 .../react/community/batching-requests-using-bathshit.md     | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/framework/react/community/batching-requests-using-bathshit.md b/docs/framework/react/community/batching-requests-using-bathshit.md
index e1b88fc269..784da772f9 100644
--- a/docs/framework/react/community/batching-requests-using-bathshit.md
+++ b/docs/framework/react/community/batching-requests-using-bathshit.md
@@ -21,11 +21,11 @@ The problem is that orchestrating a single fetch for all rendered user details c
 First lets setup a batcher using [@yornaath/batshit](https://www.npmjs.com/package/@yornaath/batshit)
 
 ```ts
-import { Batcher, windowScheduler, keyResolver } from "@yornaath/batshit"
+import { create, windowScheduler, keyResolver } from "@yornaath/batshit"
 
 type User = { id: number, name: string }
 
-const users = Batcher<User, number>({
+const users = create<User[], number>({
   // The fetcher resolves the list of queries(here just a list of user ids as number) to one single api call.
   fetcher: async (ids: number[]) => {
     return api.users.where({
@@ -72,4 +72,4 @@ const UserDetails = (props: {userId: number}) => {
 ### batshit docs
 
 For more information about how to create batchers with custom resolving and request scheduling please refer to the batshit repo readme
-over at the [yornaath/batshit github repository](https://github.com/yornaath/batshit/)
\ No newline at end of file
+over at the [yornaath/batshit github repository](https://github.com/yornaath/batshit/)

From 6213ffac1e9e26db0190195716c75d7f1779b5f5 Mon Sep 17 00:00:00 2001
From: Jonghyeon Ko <manudeli.ko@gmail.com>
Date: Fri, 4 Jul 2025 22:16:45 +0900
Subject: [PATCH 44/45] fix(react-query): mark deprecated jsdoc on `suspense`
 option of UseQueryOptions (#9360)

---
 packages/react-query/src/types.ts | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/packages/react-query/src/types.ts b/packages/react-query/src/types.ts
index 23bef721cb..e705450f1f 100644
--- a/packages/react-query/src/types.ts
+++ b/packages/react-query/src/types.ts
@@ -43,7 +43,15 @@ export interface UseQueryOptions<
     TData,
     TQueryFnData,
     TQueryKey
-  > {}
+  > {
+  /**
+   * If set to `true`, the query will suspend when `status === 'loading'`
+   * and throw errors when `status === 'error'`.
+   * Defaults to `false`.
+   * @deprecated This option will be removed in the next major version.
+   */
+  suspense?: boolean
+}
 
 export type UseSuspenseQueryOptions<
   TQueryFnData = unknown,

From 7e5e9f5f0e417ea94e13b379f842d728c9cfc5bd Mon Sep 17 00:00:00 2001
From: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Date: Fri, 4 Jul 2025 13:19:10 +0000
Subject: [PATCH 45/45] release: v4.40.1

---
 examples/react/algolia/package.json           |  4 +-
 examples/react/auto-refetching/package.json   |  4 +-
 .../react/basic-graphql-request/package.json  |  4 +-
 examples/react/basic-typescript/package.json  |  6 +-
 examples/react/basic/package.json             |  4 +-
 .../react/default-query-function/package.json |  4 +-
 .../load-more-infinite-scroll/package.json    |  4 +-
 examples/react/nextjs/package.json            |  4 +-
 examples/react/offline/package.json           |  6 +-
 .../package.json                              |  4 +-
 examples/react/pagination/package.json        |  4 +-
 examples/react/playground/package.json        |  4 +-
 examples/react/prefetching/package.json       |  4 +-
 examples/react/react-native/package.json      |  4 +-
 examples/react/react-router/package.json      |  4 +-
 examples/react/rick-morty/package.json        |  4 +-
 examples/react/simple/package.json            |  4 +-
 examples/react/star-wars/package.json         |  4 +-
 examples/react/suspense/package.json          |  4 +-
 packages/react-query-devtools/package.json    |  2 +-
 .../react-query-persist-client/package.json   |  2 +-
 packages/react-query/package.json             |  2 +-
 pnpm-lock.yaml                                | 82 +++++++++----------
 23 files changed, 84 insertions(+), 84 deletions(-)

diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json
index 32214e2713..3d84aa7d09 100644
--- a/examples/react/algolia/package.json
+++ b/examples/react/algolia/package.json
@@ -10,8 +10,8 @@
   "dependencies": {
     "@algolia/client-search": "4.11.0",
     "@algolia/transporter": "4.11.0",
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "algoliasearch": "4.12.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json
index d931eeefb4..5209069d4e 100644
--- a/examples/react/auto-refetching/package.json
+++ b/examples/react/auto-refetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json
index a9a42a7b02..cda1076ccf 100644
--- a/examples/react/basic-graphql-request/package.json
+++ b/examples/react/basic-graphql-request/package.json
@@ -12,8 +12,8 @@
     "graphql-request": "^3.1.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0"
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1"
   },
   "devDependencies": {
     "@vitejs/plugin-react": "^2.0.0",
diff --git a/examples/react/basic-typescript/package.json b/examples/react/basic-typescript/package.json
index 3d28761424..d6fe0f2d13 100644
--- a/examples/react/basic-typescript/package.json
+++ b/examples/react/basic-typescript/package.json
@@ -8,9 +8,9 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
-    "@tanstack/react-query-persist-client": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
+    "@tanstack/react-query-persist-client": "^4.40.1",
     "@tanstack/query-sync-storage-persister": "^4.40.0",
     "axios": "^0.26.1",
     "react": "^18.0.0",
diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json
index d4406e9563..c764bcc80b 100644
--- a/examples/react/basic/package.json
+++ b/examples/react/basic/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json
index aac07b9044..cf5c83fb51 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": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json
index a73eaf3c42..76cf9219e1 100644
--- a/examples/react/load-more-infinite-scroll/package.json
+++ b/examples/react/load-more-infinite-scroll/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json
index a87f4cd163..f82749e7dd 100644
--- a/examples/react/nextjs/package.json
+++ b/examples/react/nextjs/package.json
@@ -8,8 +8,8 @@
     "start": "next start"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "ky": "^0.23.0",
     "ky-universal": "^0.8.2",
     "next": "12.2.2",
diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json
index 9b336a93d1..88106dc64c 100644
--- a/examples/react/offline/package.json
+++ b/examples/react/offline/package.json
@@ -9,9 +9,9 @@
   },
   "dependencies": {
     "@tanstack/react-location": "^3.7.0",
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
-    "@tanstack/react-query-persist-client": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
+    "@tanstack/react-query-persist-client": "^4.40.1",
     "@tanstack/query-sync-storage-persister": "^4.40.0",
     "ky": "^0.30.0",
     "msw": "^0.39.2",
diff --git a/examples/react/optimistic-updates-typescript/package.json b/examples/react/optimistic-updates-typescript/package.json
index 9acd95d3da..665b376eb9 100755
--- a/examples/react/optimistic-updates-typescript/package.json
+++ b/examples/react/optimistic-updates-typescript/package.json
@@ -4,8 +4,8 @@
   "main": "pages/index.tsx",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json
index 4bff8fdb39..23bf2f5514 100644
--- a/examples/react/pagination/package.json
+++ b/examples/react/pagination/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json
index 1cc8f85535..98c6be4a5a 100644
--- a/examples/react/playground/package.json
+++ b/examples/react/playground/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
   },
diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json
index 18c1b88ab4..be407e83bd 100644
--- a/examples/react/prefetching/package.json
+++ b/examples/react/prefetching/package.json
@@ -4,8 +4,8 @@
   "main": "index.js",
   "license": "MIT",
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.21.1",
     "isomorphic-unfetch": "3.0.0",
     "next": "12.2.2",
diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json
index ab582219ba..efc10731a7 100644
--- a/examples/react/react-native/package.json
+++ b/examples/react/react-native/package.json
@@ -20,8 +20,8 @@
     "@react-native-community/netinfo": "6.0.2",
     "@react-navigation/stack": "^6.0.2",
     "@react-navigation/native": "^6.0.2",
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "expo": "~43.0.2",
     "expo-constants": "~12.1.3",
     "expo-status-bar": "~1.1.0",
diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json
index ddf3f8c1dc..774db9996c 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": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "localforage": "^1.10.0",
     "match-sorter": "^6.3.1",
     "react": "^18.0.0",
diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json
index a953114e15..2adc1808ec 100644
--- a/examples/react/rick-morty/package.json
+++ b/examples/react/rick-morty/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json
index dd6571cc7f..67252696ba 100644
--- a/examples/react/simple/package.json
+++ b/examples/react/simple/package.json
@@ -8,8 +8,8 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.26.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0"
diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json
index f3ba67313d..53b434fe5b 100644
--- a/examples/react/star-wars/package.json
+++ b/examples/react/star-wars/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@material-ui/core": "^4.9.7",
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
     "react-router": "^5.1.2",
diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json
index c33881f7bf..4c3f551e0d 100644
--- a/examples/react/suspense/package.json
+++ b/examples/react/suspense/package.json
@@ -3,8 +3,8 @@
   "private": true,
   "main": "src/index.jsx",
   "dependencies": {
-    "@tanstack/react-query": "^4.40.0",
-    "@tanstack/react-query-devtools": "^4.40.0",
+    "@tanstack/react-query": "^4.40.1",
+    "@tanstack/react-query-devtools": "^4.40.1",
     "axios": "^0.21.1",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",
diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json
index 358ee3fc07..8a8d801576 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": "4.40.0",
+  "version": "4.40.1",
   "description": "Developer tools to interact with and visualize the TanStack/react-query cache",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json
index adc0cd3ee2..015319b2d3 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": "4.40.0",
+  "version": "4.40.1",
   "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 6c66f5dbb5..65957be17f 100644
--- a/packages/react-query/package.json
+++ b/packages/react-query/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@tanstack/react-query",
-  "version": "4.40.0",
+  "version": "4.40.1",
   "description": "Hooks for managing, caching and syncing asynchronous and remote data in React",
   "author": "tannerlinsley",
   "license": "MIT",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5cd6f884e4..4ee8071177 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -188,10 +188,10 @@ importers:
         specifier: 4.11.0
         version: 4.11.0
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       algoliasearch:
         specifier: 4.12.2
@@ -225,10 +225,10 @@ importers:
   examples/react/auto-refetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -249,10 +249,10 @@ importers:
   examples/react/basic:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -277,10 +277,10 @@ importers:
   examples/react/basic-graphql-request:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       graphql:
         specifier: ^15.3.0
@@ -308,13 +308,13 @@ importers:
         specifier: ^4.40.0
         version: link:../../../packages/query-sync-storage-persister
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-persist-client
       axios:
         specifier: ^0.26.1
@@ -354,10 +354,10 @@ importers:
   examples/react/default-query-function:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -379,10 +379,10 @@ importers:
   examples/react/load-more-infinite-scroll:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -406,10 +406,10 @@ importers:
   examples/react/nextjs:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       ky:
         specifier: ^0.23.0
@@ -442,13 +442,13 @@ importers:
         specifier: ^3.7.0
         version: 3.7.4(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       '@tanstack/react-query-persist-client':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-persist-client
       ky:
         specifier: ^0.30.0
@@ -476,10 +476,10 @@ importers:
   examples/react/optimistic-updates-typescript:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -510,10 +510,10 @@ importers:
   examples/react/pagination:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -534,10 +534,10 @@ importers:
   examples/react/playground:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -556,10 +556,10 @@ importers:
   examples/react/prefetching:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -589,10 +589,10 @@ importers:
         specifier: ^6.0.2
         version: 6.2.2(@react-navigation/native@6.0.11)(react-native-gesture-handler@1.10.3)(react-native-safe-area-context@3.3.2)(react-native-screens@3.8.0)(react-native@0.64.3)(react@17.0.1)
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       expo:
         specifier: ~43.0.2
@@ -668,10 +668,10 @@ importers:
   examples/react/react-router:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       localforage:
         specifier: ^1.10.0
@@ -708,10 +708,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -736,10 +736,10 @@ importers:
   examples/react/simple:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.26.1
@@ -764,10 +764,10 @@ importers:
         specifier: ^4.9.7
         version: 4.12.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0)
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       react:
         specifier: ^18.0.0
@@ -792,10 +792,10 @@ importers:
   examples/react/suspense:
     dependencies:
       '@tanstack/react-query':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query
       '@tanstack/react-query-devtools':
-        specifier: ^4.40.0
+        specifier: ^4.40.1
         version: link:../../../packages/react-query-devtools
       axios:
         specifier: ^0.21.1
@@ -4280,7 +4280,7 @@ packages:
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
-      '@babel/types': 7.27.1
+      '@babel/types': 7.19.0
     dev: false
 
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
