diff --git a/docs/eslint/eslint-plugin-query.md b/docs/eslint/eslint-plugin-query.md
index bc092f3b77..847ccab665 100644
--- a/docs/eslint/eslint-plugin-query.md
+++ b/docs/eslint/eslint-plugin-query.md
@@ -93,9 +93,9 @@ Alternatively, add `@tanstack/query` to the plugins section, and configure the r
 
 ## Rules
 
-- [@tanstack/query/exhaustive-deps](./exhaustive-deps.md)
-- [@tanstack/query/no-rest-destructuring](./no-rest-destructuring.md)
-- [@tanstack/query/stable-query-client](./stable-query-client.md)
-- [@tanstack/query/no-unstable-deps](./no-unstable-deps.md)
-- [@tanstack/query/infinite-query-property-order](./infinite-query-property-order.md)
-- [@tanstack/query/no-void-query-fn](./no-void-query-fn.md)
+- [@tanstack/query/exhaustive-deps](../exhaustive-deps.md)
+- [@tanstack/query/no-rest-destructuring](../no-rest-destructuring.md)
+- [@tanstack/query/stable-query-client](../stable-query-client.md)
+- [@tanstack/query/no-unstable-deps](../no-unstable-deps.md)
+- [@tanstack/query/infinite-query-property-order](../infinite-query-property-order.md)
+- [@tanstack/query/no-void-query-fn](../no-void-query-fn.md)
diff --git a/docs/framework/angular/guides/caching.md b/docs/framework/angular/guides/caching.md
index 1fec944fcf..6c2d95c251 100644
--- a/docs/framework/angular/guides/caching.md
+++ b/docs/framework/angular/guides/caching.md
@@ -3,7 +3,7 @@ id: caching
 title: Caching Examples
 ---
 
-> Please thoroughly read the [Important Defaults](./important-defaults.md) before reading this guide
+> Please thoroughly read the [Important Defaults](../important-defaults.md) before reading this guide
 
 ## Basic Example
 
@@ -23,7 +23,7 @@ Let's assume we are using the default `gcTime` of **5 minutes** and the default
 - A second instance of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos })` initializes 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/injectQuery.md) are updated (including `isFetching`, `isPending`, 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/functions/injectquery.md) are updated (including `isFetching`, `isPending`, 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 `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos })` query are destroyed and no longer in use.
   - Since there are no more active instances of this query, a garbage collection timeout is set using `gcTime` to delete and garbage collect the query (defaults to **5 minutes**).
@@ -31,3 +31,5 @@ Let's assume we are using the default `gcTime` of **5 minutes** and the default
 - The final instance of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos })` gets destroyed.
 - No more instances of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos })` appear within **5 minutes**.
   - The cached data under the `['todos']` key is deleted and garbage collected.
+
+For more advanced use-cases, see [injectQuery](../../reference/functions/injectquery.md).
diff --git a/docs/framework/angular/reference/functions/infinitequeryoptions.md b/docs/framework/angular/reference/functions/infinitequeryoptions.md
index 9d76ed9456..c32914b159 100644
--- a/docs/framework/angular/reference/functions/infinitequeryoptions.md
+++ b/docs/framework/angular/reference/functions/infinitequeryoptions.md
@@ -13,25 +13,10 @@ The `queryKey` will be tagged with the type from `queryFn`.
 
 The infinite query options to tag with the type from `queryFn`.
 
-## infiniteQueryOptions(options)
+## Call Signature
 
 ```ts
-function infiniteQueryOptions<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam,
->(
-  options,
-): UndefinedInitialDataInfiniteOptions<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam
-> &
-  object
+function infiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & object
 ```
 
 Allows to share and re-use infinite query options in a type-safe way.
@@ -46,19 +31,21 @@ The `queryKey` will be tagged with the type from `queryFn`.
 
 • **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 • **TPageParam** = `unknown`
 
 ### Parameters
 
-• **options**: [`UndefinedInitialDataInfiniteOptions`](../type-aliases/undefinedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
+#### options
+
+[`DefinedInitialDataInfiniteOptions`](../../type-aliases/definedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
 
 The infinite query options to tag with the type from `queryFn`.
 
 ### Returns
 
-[`UndefinedInitialDataInfiniteOptions`](../type-aliases/undefinedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object`
+[`DefinedInitialDataInfiniteOptions`](../../type-aliases/definedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object`
 
 The tagged infinite query options.
 
@@ -70,27 +57,12 @@ The infinite query options to tag with the type from `queryFn`.
 
 ### Defined in
 
-[infinite-query-options.ts:59](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/infinite-query-options.ts#L59)
+[infinite-query-options.ts:94](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L94)
 
-## infiniteQueryOptions(options)
+## Call Signature
 
 ```ts
-function infiniteQueryOptions<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam,
->(
-  options,
-): DefinedInitialDataInfiniteOptions<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam
-> &
-  object
+function infiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options): UnusedSkipTokenInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & object
 ```
 
 Allows to share and re-use infinite query options in a type-safe way.
@@ -105,19 +77,67 @@ The `queryKey` will be tagged with the type from `queryFn`.
 
 • **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 • **TPageParam** = `unknown`
 
 ### Parameters
 
-• **options**: [`DefinedInitialDataInfiniteOptions`](../type-aliases/definedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
+#### options
+
+[`UnusedSkipTokenInfiniteOptions`](../../type-aliases/unusedskiptokeninfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
+
+The infinite query options to tag with the type from `queryFn`.
+
+### Returns
+
+[`UnusedSkipTokenInfiniteOptions`](../../type-aliases/unusedskiptokeninfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object`
+
+The tagged infinite query options.
+
+The tagged infinite query options.
+
+### Param
+
+The infinite query options to tag with the type from `queryFn`.
+
+### Defined in
+
+[infinite-query-options.ts:126](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L126)
+
+## Call Signature
+
+```ts
+function infiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & object
+```
+
+Allows to share and re-use infinite query options in a type-safe way.
+
+The `queryKey` will be tagged with the type from `queryFn`.
+
+### Type Parameters
+
+• **TQueryFnData**
+
+• **TError** = `Error`
+
+• **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
+
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
+
+• **TPageParam** = `unknown`
+
+### Parameters
+
+#### options
+
+[`UndefinedInitialDataInfiniteOptions`](../../type-aliases/undefinedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
 
 The infinite query options to tag with the type from `queryFn`.
 
 ### Returns
 
-[`DefinedInitialDataInfiniteOptions`](../type-aliases/definedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object`
+[`UndefinedInitialDataInfiniteOptions`](../../type-aliases/undefinedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object`
 
 The tagged infinite query options.
 
@@ -129,4 +149,4 @@ The infinite query options to tag with the type from `queryFn`.
 
 ### Defined in
 
-[infinite-query-options.ts:91](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/infinite-query-options.ts#L91)
+[infinite-query-options.ts:158](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L158)
diff --git a/docs/framework/angular/reference/functions/injectinfinitequery.md b/docs/framework/angular/reference/functions/injectinfinitequery.md
index 225f71d041..fc90fbabd3 100644
--- a/docs/framework/angular/reference/functions/injectinfinitequery.md
+++ b/docs/framework/angular/reference/functions/injectinfinitequery.md
@@ -14,18 +14,12 @@ A function that returns infinite query options.
 
 ## Param
 
-The Angular injector to use.
+Additional configuration.
 
-## injectInfiniteQuery(optionsFn, injector)
+## Call Signature
 
 ```ts
-function injectInfiniteQuery<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam,
->(optionsFn, injector?): CreateInfiniteQueryResult<TData, TError>
+function injectInfiniteQuery<TQueryFnData, TError, TData, TQueryKey, TPageParam>(injectInfiniteQueryFn, options?): DefinedCreateInfiniteQueryResult<TData, TError>
 ```
 
 Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
@@ -39,23 +33,27 @@ Infinite queries can additively "load more" data onto an existing set of data or
 
 • **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 • **TPageParam** = `unknown`
 
 ### Parameters
 
-• **optionsFn**
+#### injectInfiniteQueryFn
+
+() => [`DefinedInitialDataInfiniteOptions`](../../type-aliases/definedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
 
 A function that returns infinite query options.
 
-• **injector?**: `Injector`
+#### options?
+
+[`InjectInfiniteQueryOptions`](../../interfaces/injectinfinitequeryoptions.md)
 
-The Angular injector to use.
+Additional configuration.
 
 ### Returns
 
-[`CreateInfiniteQueryResult`](../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\>
+[`DefinedCreateInfiniteQueryResult`](../../type-aliases/definedcreateinfinitequeryresult.md)\<`TData`, `TError`\>
 
 The infinite query result.
 
@@ -67,22 +65,16 @@ A function that returns infinite query options.
 
 ### Param
 
-The Angular injector to use.
+Additional configuration.
 
 ### Defined in
 
-[inject-infinite-query.ts:30](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-infinite-query.ts#L30)
+[inject-infinite-query.ts:42](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L42)
 
-## injectInfiniteQuery(optionsFn, injector)
+## Call Signature
 
 ```ts
-function injectInfiniteQuery<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam,
->(optionsFn, injector?): DefinedCreateInfiniteQueryResult<TData, TError>
+function injectInfiniteQuery<TQueryFnData, TError, TData, TQueryKey, TPageParam>(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult<TData, TError>
 ```
 
 Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
@@ -96,23 +88,27 @@ Infinite queries can additively "load more" data onto an existing set of data or
 
 • **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 • **TPageParam** = `unknown`
 
 ### Parameters
 
-• **optionsFn**
+#### injectInfiniteQueryFn
+
+() => [`UndefinedInitialDataInfiniteOptions`](../../type-aliases/undefinedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
 
 A function that returns infinite query options.
 
-• **injector?**: `Injector`
+#### options?
 
-The Angular injector to use.
+[`InjectInfiniteQueryOptions`](../../interfaces/injectinfinitequeryoptions.md)
+
+Additional configuration.
 
 ### Returns
 
-[`DefinedCreateInfiniteQueryResult`](../type-aliases/definedcreateinfinitequeryresult.md)\<`TData`, `TError`\>
+[`CreateInfiniteQueryResult`](../../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\>
 
 The infinite query result.
 
@@ -124,22 +120,16 @@ A function that returns infinite query options.
 
 ### Param
 
-The Angular injector to use.
+Additional configuration.
 
 ### Defined in
 
-[inject-infinite-query.ts:57](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-infinite-query.ts#L57)
+[inject-infinite-query.ts:67](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L67)
 
-## injectInfiniteQuery(optionsFn, injector)
+## Call Signature
 
 ```ts
-function injectInfiniteQuery<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam,
->(optionsFn, injector?): CreateInfiniteQueryResult<TData, TError>
+function injectInfiniteQuery<TQueryFnData, TError, TData, TQueryKey, TPageParam>(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult<TData, TError>
 ```
 
 Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
@@ -153,23 +143,27 @@ Infinite queries can additively "load more" data onto an existing set of data or
 
 • **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 • **TPageParam** = `unknown`
 
 ### Parameters
 
-• **optionsFn**
+#### injectInfiniteQueryFn
+
+() => [`CreateInfiniteQueryOptions`](../../interfaces/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>
 
 A function that returns infinite query options.
 
-• **injector?**: `Injector`
+#### options?
+
+[`InjectInfiniteQueryOptions`](../../interfaces/injectinfinitequeryoptions.md)
 
-The Angular injector to use.
+Additional configuration.
 
 ### Returns
 
-[`CreateInfiniteQueryResult`](../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\>
+[`CreateInfiniteQueryResult`](../../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\>
 
 The infinite query result.
 
@@ -181,8 +175,8 @@ A function that returns infinite query options.
 
 ### Param
 
-The Angular injector to use.
+Additional configuration.
 
 ### Defined in
 
-[inject-infinite-query.ts:84](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-infinite-query.ts#L84)
+[inject-infinite-query.ts:92](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L92)
diff --git a/docs/framework/angular/reference/functions/injectisfetching.md b/docs/framework/angular/reference/functions/injectisfetching.md
index 79a7335ba3..acd90757c5 100644
--- a/docs/framework/angular/reference/functions/injectisfetching.md
+++ b/docs/framework/angular/reference/functions/injectisfetching.md
@@ -6,7 +6,7 @@ title: injectIsFetching
 # Function: injectIsFetching()
 
 ```ts
-function injectIsFetching(filters?, injector?): Signal<number>
+function injectIsFetching(filters?, options?): Signal<number>
 ```
 
 Injects a signal that tracks the number of queries that your application is loading or
@@ -16,13 +16,17 @@ Can be used for app-wide loading indicators
 
 ## Parameters
 
-• **filters?**: `QueryFilters`
+### filters?
+
+`QueryFilters`\<readonly `unknown`[]\>
 
 The filters to apply to the query.
 
-• **injector?**: `Injector`
+### options?
+
+[`InjectIsFetchingOptions`](../../interfaces/injectisfetchingoptions.md)
 
-The Angular injector to use.
+Additional configuration
 
 ## Returns
 
@@ -32,4 +36,4 @@ signal with number of loading or fetching queries.
 
 ## Defined in
 
-[inject-is-fetching.ts:17](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-is-fetching.ts#L17)
+[inject-is-fetching.ts:32](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L32)
diff --git a/docs/framework/angular/reference/functions/injectismutating.md b/docs/framework/angular/reference/functions/injectismutating.md
index 210fdf4d56..7ee99e51ab 100644
--- a/docs/framework/angular/reference/functions/injectismutating.md
+++ b/docs/framework/angular/reference/functions/injectismutating.md
@@ -6,7 +6,7 @@ title: injectIsMutating
 # Function: injectIsMutating()
 
 ```ts
-function injectIsMutating(filters?, injector?): Signal<number>
+function injectIsMutating(filters?, options?): Signal<number>
 ```
 
 Injects a signal that tracks the number of mutations that your application is fetching.
@@ -15,13 +15,17 @@ Can be used for app-wide loading indicators
 
 ## Parameters
 
-• **filters?**: `MutationFilters`
+### filters?
+
+`MutationFilters`\<`unknown`, `Error`, `unknown`, `unknown`\>
 
 The filters to apply to the query.
 
-• **injector?**: `Injector`
+### options?
+
+[`InjectIsMutatingOptions`](../../interfaces/injectismutatingoptions.md)
 
-The Angular injector to use.
+Additional configuration
 
 ## Returns
 
@@ -31,4 +35,4 @@ signal with number of fetching mutations.
 
 ## Defined in
 
-[inject-is-mutating.ts:16](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-is-mutating.ts#L16)
+[inject-is-mutating.ts:31](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L31)
diff --git a/docs/framework/angular/reference/functions/injectisrestoring.md b/docs/framework/angular/reference/functions/injectisrestoring.md
new file mode 100644
index 0000000000..abc69d04bd
--- /dev/null
+++ b/docs/framework/angular/reference/functions/injectisrestoring.md
@@ -0,0 +1,30 @@
+---
+id: injectIsRestoring
+title: injectIsRestoring
+---
+
+# Function: injectIsRestoring()
+
+```ts
+function injectIsRestoring(options?): Signal<boolean>
+```
+
+Injects a signal that tracks whether a restore is currently in progress. [injectQuery](../injectquery.md) and friends also check this internally to avoid race conditions between the restore and initializing queries.
+
+## Parameters
+
+### options?
+
+`InjectIsRestoringOptions`
+
+Options for injectIsRestoring.
+
+## Returns
+
+`Signal`\<`boolean`\>
+
+signal with boolean that indicates whether a restore is in progress.
+
+## Defined in
+
+[inject-is-restoring.ts:35](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L35)
diff --git a/docs/framework/angular/reference/functions/injectmutation.md b/docs/framework/angular/reference/functions/injectmutation.md
index f649b79e96..7b95480f47 100644
--- a/docs/framework/angular/reference/functions/injectmutation.md
+++ b/docs/framework/angular/reference/functions/injectmutation.md
@@ -6,10 +6,7 @@ title: injectMutation
 # Function: injectMutation()
 
 ```ts
-function injectMutation<TData, TError, TVariables, TContext>(
-  optionsFn,
-  injector?,
-): CreateMutationResult<TData, TError, TVariables, TContext>
+function injectMutation<TData, TError, TVariables, TContext>(injectMutationFn, options?): CreateMutationResult<TData, TError, TVariables, TContext>
 ```
 
 Injects a mutation: an imperative function that can be invoked which typically performs server side effects.
@@ -28,20 +25,24 @@ Unlike queries, mutations are not run automatically.
 
 ## Parameters
 
-• **optionsFn**
+### injectMutationFn
+
+() => [`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>
 
 A function that returns mutation options.
 
-• **injector?**: `Injector`
+### options?
+
+[`InjectMutationOptions`](../../interfaces/injectmutationoptions.md)
 
-The Angular injector to use.
+Additional configuration
 
 ## Returns
 
-[`CreateMutationResult`](../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\>
+[`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\>
 
 The mutation.
 
 ## Defined in
 
-[inject-mutation.ts:38](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-mutation.ts#L38)
+[inject-mutation.ts:42](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L42)
diff --git a/docs/framework/angular/reference/functions/injectmutationstate.md b/docs/framework/angular/reference/functions/injectmutationstate.md
index 899067a3c6..80b1bdcd6a 100644
--- a/docs/framework/angular/reference/functions/injectmutationstate.md
+++ b/docs/framework/angular/reference/functions/injectmutationstate.md
@@ -6,10 +6,7 @@ title: injectMutationState
 # Function: injectMutationState()
 
 ```ts
-function injectMutationState<TResult>(
-  mutationStateOptionsFn,
-  options?,
-): Signal<TResult[]>
+function injectMutationState<TResult>(injectMutationStateFn, options?): Signal<TResult[]>
 ```
 
 Injects a signal that tracks the state of all mutations.
@@ -20,11 +17,15 @@ Injects a signal that tracks the state of all mutations.
 
 ## Parameters
 
-• **mutationStateOptionsFn** = `...`
+### injectMutationStateFn
+
+() => `MutationStateOptions`\<`TResult`\>
 
 A function that returns mutation state options.
 
-• **options?**: [`InjectMutationStateOptions`](../interfaces/injectmutationstateoptions.md)
+### options?
+
+[`InjectMutationStateOptions`](../../interfaces/injectmutationstateoptions.md)
 
 The Angular injector to use.
 
@@ -36,4 +37,4 @@ The signal that tracks the state of all mutations.
 
 ## Defined in
 
-[inject-mutation-state.ts:53](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-mutation-state.ts#L53)
+[inject-mutation-state.ts:64](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L64)
diff --git a/docs/framework/angular/reference/functions/injectqueries.md b/docs/framework/angular/reference/functions/injectqueries.md
index 89403c640d..955bf00837 100644
--- a/docs/framework/angular/reference/functions/injectqueries.md
+++ b/docs/framework/angular/reference/functions/injectqueries.md
@@ -6,27 +6,30 @@ title: injectQueries
 # Function: injectQueries()
 
 ```ts
-function injectQueries<T, TCombinedResult>(
-  __namedParameters,
-  injector?,
-): Signal<TCombinedResult>
+function injectQueries<T, TCombinedResult>(__namedParameters, injector?): Signal<TCombinedResult>
 ```
 
 ## Type Parameters
 
-• **T** _extends_ `any`[]
+• **T** *extends* `any`[]
 
-• **TCombinedResult** = `T` _extends_ [] ? [] : `T` _extends_ [`Head`] ? [`GetResults`\<`Head`\>] : `T` _extends_ [`Head`, `...Tail[]`] ? [`...Tail[]`] _extends_ [] ? [] : [`...Tail[]`] _extends_ [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] _extends_ [`Head`, `...Tail[]`] ? [`...Tail[]`] _extends_ [] ? [] : [`...Tail[]`] _extends_ [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] _extends_ [`Head`, `...Tail[]`] ? [`...(...)[]`] _extends_ [] ? [] : ... _extends_ ... ? ... : ... : [`...(...)[]`] _extends_ ...[] ? ...[] : ...[] : [`...Tail[]`] _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[]
+• **TCombinedResult** = `T` *extends* [] ? [] : `T` *extends* [`Head`] ? [`GetResults`\<`Head`\>] : `T` *extends* [`Head`, `...Tail[]`] ? [`...Tail[]`] *extends* [] ? [] : [`...Tail[]`] *extends* [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] *extends* [`Head`, `...Tail[]`] ? [`...Tail[]`] *extends* [] ? [] : [`...Tail[]`] *extends* [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] *extends* [`Head`, `...Tail[]`] ? [`...(...)[]`] *extends* [] ? [] : ... *extends* ... ? ... : ... : [`...(...)[]`] *extends* ...[] ? ...[] : ...[] : [`...Tail[]`] *extends* `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` *extends* `TData` ? `TQueryFnData` : `TData`, `unknown` *extends* `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` *extends* `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` *extends* `TData` ? `TQueryFnData` : `TData`, `unknown` *extends* `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[]
 
 ## Parameters
 
-• **\_\_namedParameters**
+### \_\_namedParameters
 
-• **\_\_namedParameters.combine?**
+#### combine
 
-• **\_\_namedParameters.queries?**: `Signal`\<[`...(T extends [] ? [] : T extends [Head] ? [GetOptions<Head>] : T extends [Head, ...Tail[]] ? [...Tail[]] extends [] ? [] : [...Tail[]] extends [Head] ? [GetOptions<Head>, GetOptions<Head>] : [...Tail[]] extends [Head, ...Tail[]] ? [...(...)[]] extends [] ? [] : (...) extends (...) ? (...) : (...) : readonly (...)[] extends [...(...)[]] ? [...(...)[]] : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : QueryObserverOptionsForCreateQueries<unknown, Error, unknown, QueryKey>[])[]`]\>
+(`result`) => `TCombinedResult`
 
-• **injector?**: `Injector`
+#### queries
+
+`Signal`\<[`...(T extends [] ? [] : T extends [Head] ? [GetOptions<Head>] : T extends [Head, ...Tail[]] ? [...Tail[]] extends [] ? [] : [...Tail[]] extends [Head] ? [GetOptions<Head>, GetOptions<Head>] : [...Tail[]] extends [Head, ...Tail[]] ? [...(...)[]] extends [] ? [] : (...) extends (...) ? (...) : (...) : readonly (...)[] extends [...(...)[]] ? [...(...)[]] : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : QueryObserverOptionsForCreateQueries<unknown, Error, unknown, readonly (...)[]>[])[]`]\>
+
+### injector?
+
+`Injector`
 
 ## Returns
 
@@ -34,4 +37,4 @@ function injectQueries<T, TCombinedResult>(
 
 ## Defined in
 
-[inject-queries.ts:188](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-queries.ts#L188)
+[inject-queries.ts:206](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L206)
diff --git a/docs/framework/angular/reference/functions/injectquery.md b/docs/framework/angular/reference/functions/injectquery.md
index aa0b3196bf..27c0147848 100644
--- a/docs/framework/angular/reference/functions/injectquery.md
+++ b/docs/framework/angular/reference/functions/injectquery.md
@@ -8,7 +8,6 @@ title: injectQuery
 Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
 
 **Basic example**
-
 ```ts
 class ServiceOrComponent {
   query = injectQuery(() => ({
@@ -24,7 +23,6 @@ In the example below, the query will be automatically enabled and executed when
 to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled.
 
 **Reactive example**
-
 ```ts
 class ServiceOrComponent {
   filter = signal('')
@@ -44,25 +42,21 @@ A function that returns query options.
 
 ## Param
 
-The Angular injector to use.
+Additional configuration
 
 ## See
 
 https://tanstack.com/query/latest/docs/framework/angular/guides/queries
 
-## injectQuery(optionsFn, injector)
+## Call Signature
 
 ```ts
-function injectQuery<TQueryFnData, TError, TData, TQueryKey>(
-  optionsFn,
-  injector?,
-): DefinedCreateQueryResult<TData, TError>
+function injectQuery<TQueryFnData, TError, TData, TQueryKey>(injectQueryFn, options?): DefinedCreateQueryResult<TData, TError>
 ```
 
 Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
 
 **Basic example**
-
 ```ts
 class ServiceOrComponent {
   query = injectQuery(() => ({
@@ -78,7 +72,6 @@ In the example below, the query will be automatically enabled and executed when
 to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled.
 
 **Reactive example**
-
 ```ts
 class ServiceOrComponent {
   filter = signal('')
@@ -100,21 +93,25 @@ class ServiceOrComponent {
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **optionsFn**
+#### injectQueryFn
+
+() => [`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
 
 A function that returns query options.
 
-• **injector?**: `Injector`
+#### options?
+
+[`InjectQueryOptions`](../../interfaces/injectqueryoptions.md)
 
-The Angular injector to use.
+Additional configuration
 
 ### Returns
 
-[`DefinedCreateQueryResult`](../type-aliases/definedcreatequeryresult.md)\<`TData`, `TError`\>
+[`DefinedCreateQueryResult`](../../type-aliases/definedcreatequeryresult.md)\<`TData`, `TError`\>
 
 The query result.
 
@@ -126,7 +123,7 @@ A function that returns query options.
 
 ### Param
 
-The Angular injector to use.
+Additional configuration
 
 ### See
 
@@ -138,21 +135,17 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries
 
 ### Defined in
 
-[inject-query.ts:53](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-query.ts#L53)
+[inject-query.ts:66](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L66)
 
-## injectQuery(optionsFn, injector)
+## Call Signature
 
 ```ts
-function injectQuery<TQueryFnData, TError, TData, TQueryKey>(
-  optionsFn,
-  injector?,
-): CreateQueryResult<TData, TError>
+function injectQuery<TQueryFnData, TError, TData, TQueryKey>(injectQueryFn, options?): CreateQueryResult<TData, TError>
 ```
 
 Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
 
 **Basic example**
-
 ```ts
 class ServiceOrComponent {
   query = injectQuery(() => ({
@@ -168,7 +161,6 @@ In the example below, the query will be automatically enabled and executed when
 to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled.
 
 **Reactive example**
-
 ```ts
 class ServiceOrComponent {
   filter = signal('')
@@ -190,21 +182,25 @@ class ServiceOrComponent {
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **optionsFn**
+#### injectQueryFn
+
+() => [`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
 
 A function that returns query options.
 
-• **injector?**: `Injector`
+#### options?
 
-The Angular injector to use.
+[`InjectQueryOptions`](../../interfaces/injectqueryoptions.md)
+
+Additional configuration
 
 ### Returns
 
-[`CreateQueryResult`](../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
+[`CreateQueryResult`](../../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
 
 The query result.
 
@@ -216,7 +212,7 @@ A function that returns query options.
 
 ### Param
 
-The Angular injector to use.
+Additional configuration
 
 ### See
 
@@ -228,21 +224,17 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries
 
 ### Defined in
 
-[inject-query.ts:102](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-query.ts#L102)
+[inject-query.ts:118](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L118)
 
-## injectQuery(optionsFn, injector)
+## Call Signature
 
 ```ts
-function injectQuery<TQueryFnData, TError, TData, TQueryKey>(
-  optionsFn,
-  injector?,
-): CreateQueryResult<TData, TError>
+function injectQuery<TQueryFnData, TError, TData, TQueryKey>(injectQueryFn, options?): CreateQueryResult<TData, TError>
 ```
 
 Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
 
 **Basic example**
-
 ```ts
 class ServiceOrComponent {
   query = injectQuery(() => ({
@@ -258,7 +250,6 @@ In the example below, the query will be automatically enabled and executed when
 to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled.
 
 **Reactive example**
-
 ```ts
 class ServiceOrComponent {
   filter = signal('')
@@ -280,21 +271,25 @@ class ServiceOrComponent {
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **optionsFn**
+#### injectQueryFn
+
+() => [`CreateQueryOptions`](../../interfaces/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
 
 A function that returns query options.
 
-• **injector?**: `Injector`
+#### options?
+
+[`InjectQueryOptions`](../../interfaces/injectqueryoptions.md)
 
-The Angular injector to use.
+Additional configuration
 
 ### Returns
 
-[`CreateQueryResult`](../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
+[`CreateQueryResult`](../../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
 
 The query result.
 
@@ -306,7 +301,7 @@ A function that returns query options.
 
 ### Param
 
-The Angular injector to use.
+Additional configuration
 
 ### See
 
@@ -318,4 +313,4 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries
 
 ### Defined in
 
-[inject-query.ts:151](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-query.ts#L151)
+[inject-query.ts:170](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L170)
diff --git a/docs/framework/angular/reference/functions/injectqueryclient.md b/docs/framework/angular/reference/functions/injectqueryclient.md
index ebe9bc821c..b77145e6ed 100644
--- a/docs/framework/angular/reference/functions/injectqueryclient.md
+++ b/docs/framework/angular/reference/functions/injectqueryclient.md
@@ -3,86 +3,38 @@ id: injectQueryClient
 title: injectQueryClient
 ---
 
-# Function: injectQueryClient()
-
-Injects the `QueryClient` instance into the component or service.
-
-**Example**
-
-```ts
-const queryClient = injectQueryClient()
-```
-
-## injectQueryClient()
-
-```ts
-function injectQueryClient(): QueryClient
-```
-
-Injects the `QueryClient` instance into the component or service.
-
-**Example**
-
-```ts
-const queryClient = injectQueryClient()
-```
-
-### Returns
-
-`QueryClient`
-
-### Defined in
-
-[inject-query-client.ts:16](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-query-client.ts#L16)
-
-## injectQueryClient(injectOptions)
+# Function: ~~injectQueryClient()~~
 
 ```ts
 function injectQueryClient(injectOptions): QueryClient
 ```
 
-Injects the `QueryClient` instance into the component or service.
+Injects a `QueryClient` instance and allows passing a custom injector.
 
-**Example**
+## Parameters
 
-```ts
-const queryClient = injectQueryClient()
-```
+### injectOptions
 
-### Parameters
+`InjectOptions` & `object` = `{}`
 
-• **injectOptions**: `InjectOptions` & `object` & `object`
+Type of the options argument to inject and optionally a custom injector.
 
-### Returns
+## Returns
 
 `QueryClient`
 
-### Defined in
+The `QueryClient` instance.
 
-[inject-query-client.ts:16](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-query-client.ts#L16)
+## Deprecated
 
-## injectQueryClient(injectOptions)
-
-```ts
-function injectQueryClient(injectOptions): null | QueryClient
-```
-
-Injects the `QueryClient` instance into the component or service.
+Use `inject(QueryClient)` instead.
+If you need to get a `QueryClient` from a custom injector, use `injector.get(QueryClient)`.
 
 **Example**
-
 ```ts
-const queryClient = injectQueryClient()
+const queryClient = injectQueryClient();
 ```
 
-### Parameters
-
-• **injectOptions**: `InjectOptions` & `object`
-
-### Returns
-
-`null` \| `QueryClient`
-
-### Defined in
+## Defined in
 
-[inject-query-client.ts:16](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-query-client.ts#L16)
+[inject-query-client.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query-client.ts#L19)
diff --git a/docs/framework/angular/reference/functions/mutationoptions.md b/docs/framework/angular/reference/functions/mutationoptions.md
new file mode 100644
index 0000000000..dc3f9eb4cb
--- /dev/null
+++ b/docs/framework/angular/reference/functions/mutationoptions.md
@@ -0,0 +1,65 @@
+---
+id: mutationOptions
+title: mutationOptions
+---
+
+# Function: mutationOptions()
+
+```ts
+function mutationOptions<TData, TError, TVariables, TContext>(options): CreateMutationOptions<TData, TError, TVariables, TContext>
+```
+
+Allows to share and re-use mutation options in a type-safe way.
+
+**Example**
+
+```ts
+export class QueriesService {
+  private http = inject(HttpClient);
+
+  updatePost(id: number) {
+    return mutationOptions({
+      mutationFn: (post: Post) => Promise.resolve(post),
+      mutationKey: ["updatePost", id],
+      onSuccess: (newPost) => {
+        //           ^? newPost: Post
+        this.queryClient.setQueryData(["posts", id], newPost);
+      },
+    });
+  }
+}
+
+queries = inject(QueriesService)
+idSignal = new Signal(0);
+mutation = injectMutation(() => this.queries.updatePost(this.idSignal()))
+
+mutation.mutate({ title: 'New Title' })
+```
+
+## Type Parameters
+
+• **TData** = `unknown`
+
+• **TError** = `Error`
+
+• **TVariables** = `void`
+
+• **TContext** = `unknown`
+
+## Parameters
+
+### options
+
+`MutationObserverOptions`\<`TData`, `TError`, `TVariables`, `TContext`\>
+
+The mutation options.
+
+## Returns
+
+[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>
+
+Mutation options.
+
+## Defined in
+
+[mutation-options.ts:38](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/mutation-options.ts#L38)
diff --git a/docs/framework/angular/reference/functions/provideangularquery.md b/docs/framework/angular/reference/functions/provideangularquery.md
deleted file mode 100644
index f6d84bb926..0000000000
--- a/docs/framework/angular/reference/functions/provideangularquery.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-id: provideAngularQuery
-title: provideAngularQuery
----
-
-# Function: provideAngularQuery()
-
-```ts
-function provideAngularQuery(queryClient): EnvironmentProviders
-```
-
-Sets up providers necessary to enable TanStack Query functionality for Angular applications.
-
-Allows to configure a `QueryClient`.
-
-**Example - standalone**
-
-```ts
-import {
-  provideAngularQuery,
-  QueryClient,
-} from '@tanstack/angular-query-experimental'
-
-bootstrapApplication(AppComponent, {
-  providers: [provideAngularQuery(new QueryClient())],
-})
-```
-
-**Example - NgModule-based**
-
-```ts
-import {
-  provideAngularQuery,
-  QueryClient,
-} from '@tanstack/angular-query-experimental'
-
-@NgModule({
-  declarations: [AppComponent],
-  imports: [BrowserModule],
-  providers: [provideAngularQuery(new QueryClient())],
-  bootstrap: [AppComponent],
-})
-export class AppModule {}
-```
-
-## Parameters
-
-• **queryClient**: `QueryClient`
-
-A `QueryClient` instance.
-
-## Returns
-
-`EnvironmentProviders`
-
-A set of providers to set up TanStack Query.
-
-## See
-
-https://tanstack.com/query/v5/docs/framework/angular/quick-start
-
-## Defined in
-
-[providers.ts:50](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/providers.ts#L50)
diff --git a/docs/framework/angular/reference/functions/provideisrestoring.md b/docs/framework/angular/reference/functions/provideisrestoring.md
new file mode 100644
index 0000000000..a920e0b6a2
--- /dev/null
+++ b/docs/framework/angular/reference/functions/provideisrestoring.md
@@ -0,0 +1,30 @@
+---
+id: provideIsRestoring
+title: provideIsRestoring
+---
+
+# Function: provideIsRestoring()
+
+```ts
+function provideIsRestoring(isRestoring): Provider
+```
+
+Used by TanStack Query Angular persist client plugin to provide the signal that tracks the restore state
+
+## Parameters
+
+### isRestoring
+
+`Signal`\<`boolean`\>
+
+a readonly signal that returns a boolean
+
+## Returns
+
+`Provider`
+
+Provider for the `isRestoring` signal
+
+## Defined in
+
+[inject-is-restoring.ts:47](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L47)
diff --git a/docs/framework/angular/reference/functions/providequeryclient.md b/docs/framework/angular/reference/functions/providequeryclient.md
index b7de8ecb87..8c67ee34fa 100644
--- a/docs/framework/angular/reference/functions/providequeryclient.md
+++ b/docs/framework/angular/reference/functions/providequeryclient.md
@@ -6,22 +6,29 @@ title: provideQueryClient
 # Function: provideQueryClient()
 
 ```ts
-function provideQueryClient(value): Provider
+function provideQueryClient(queryClient): Provider
 ```
 
-Usually [provideAngularQuery](provideangularquery.md) is used once to set up TanStack Query and the
-[https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient](https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient)
-for the entire application. You can use `provideQueryClient` to provide a
-different `QueryClient` instance for a part of the application.
+Usually [provideTanStackQuery](../providetanstackquery.md) is used once to set up TanStack Query and the
+[https://tanstack.com/query/latest/docs/reference/QueryClient\|QueryClient](https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient)
+for the entire application. Internally it calls `provideQueryClient`.
+You can use `provideQueryClient` to provide a different `QueryClient` instance for a part
+of the application or for unit testing purposes.
 
 ## Parameters
 
-• **value**: `QueryClient` \| () => `QueryClient`
+### queryClient
+
+A `QueryClient` instance, or an `InjectionToken` which provides a `QueryClient`.
+
+`QueryClient` | `InjectionToken`\<`QueryClient`\>
 
 ## Returns
 
 `Provider`
 
+a provider object that can be used to provide the `QueryClient` instance.
+
 ## Defined in
 
-[inject-query-client.ts:25](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-query-client.ts#L25)
+[providers.ts:31](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L31)
diff --git a/docs/framework/angular/reference/functions/providetanstackquery.md b/docs/framework/angular/reference/functions/providetanstackquery.md
new file mode 100644
index 0000000000..a72158e74f
--- /dev/null
+++ b/docs/framework/angular/reference/functions/providetanstackquery.md
@@ -0,0 +1,102 @@
+---
+id: provideTanStackQuery
+title: provideTanStackQuery
+---
+
+# Function: provideTanStackQuery()
+
+```ts
+function provideTanStackQuery(queryClient, ...features): Provider[]
+```
+
+Sets up providers necessary to enable TanStack Query functionality for Angular applications.
+
+Allows to configure a `QueryClient` and optional features such as developer tools.
+
+**Example - standalone**
+
+```ts
+import {
+  provideTanStackQuery,
+  QueryClient,
+} from '@tanstack/angular-query-experimental'
+
+bootstrapApplication(AppComponent, {
+  providers: [provideTanStackQuery(new QueryClient())],
+})
+```
+
+**Example - NgModule-based**
+
+```ts
+import {
+  provideTanStackQuery,
+  QueryClient,
+} from '@tanstack/angular-query-experimental'
+
+@NgModule({
+  declarations: [AppComponent],
+  imports: [BrowserModule],
+  providers: [provideTanStackQuery(new QueryClient())],
+  bootstrap: [AppComponent],
+})
+export class AppModule {}
+```
+
+You can also enable optional developer tools by adding `withDevtools`. By
+default the tools will then be loaded when your app is in development mode.
+```ts
+import {
+  provideTanStackQuery,
+  withDevtools
+  QueryClient,
+} from '@tanstack/angular-query-experimental'
+
+bootstrapApplication(AppComponent,
+  {
+    providers: [
+      provideTanStackQuery(new QueryClient(), withDevtools())
+    ]
+  }
+)
+```
+
+**Example: using an InjectionToken**
+
+```ts
+export const MY_QUERY_CLIENT = new InjectionToken('', {
+  factory: () => new QueryClient(),
+})
+
+// In a lazy loaded route or lazy loaded component's providers array:
+providers: [provideTanStackQuery(MY_QUERY_CLIENT)]
+```
+
+## Parameters
+
+### queryClient
+
+A `QueryClient` instance, or an `InjectionToken` which provides a `QueryClient`.
+
+`QueryClient` | `InjectionToken`\<`QueryClient`\>
+
+### features
+
+...[`QueryFeatures`](../../type-aliases/queryfeatures.md)[]
+
+Optional features to configure additional Query functionality.
+
+## Returns
+
+`Provider`[]
+
+A set of providers to set up TanStack Query.
+
+## See
+
+ - https://tanstack.com/query/v5/docs/framework/angular/quick-start
+ - withDevtools
+
+## Defined in
+
+[providers.ts:118](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L118)
diff --git a/docs/framework/angular/reference/functions/queryfeature.md b/docs/framework/angular/reference/functions/queryfeature.md
new file mode 100644
index 0000000000..6e5f17c375
--- /dev/null
+++ b/docs/framework/angular/reference/functions/queryfeature.md
@@ -0,0 +1,36 @@
+---
+id: queryFeature
+title: queryFeature
+---
+
+# Function: queryFeature()
+
+```ts
+function queryFeature<TFeatureKind>(kind, providers): QueryFeature<TFeatureKind>
+```
+
+Helper function to create an object that represents a Query feature.
+
+## Type Parameters
+
+• **TFeatureKind** *extends* `"DeveloperTools"` \| `"PersistQueryClient"`
+
+## Parameters
+
+### kind
+
+`TFeatureKind`
+
+### providers
+
+`Provider`[]
+
+## Returns
+
+[`QueryFeature`](../../interfaces/queryfeature.md)\<`TFeatureKind`\>
+
+A Query feature.
+
+## Defined in
+
+[providers.ts:156](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L156)
diff --git a/docs/framework/angular/reference/functions/queryoptions.md b/docs/framework/angular/reference/functions/queryoptions.md
index 05f9cc0a10..2ed665f4dc 100644
--- a/docs/framework/angular/reference/functions/queryoptions.md
+++ b/docs/framework/angular/reference/functions/queryoptions.md
@@ -12,27 +12,25 @@ The `queryKey` will be tagged with the type from `queryFn`.
 **Example**
 
 ```ts
-const { queryKey } = queryOptions({
-  queryKey: ['key'],
-  queryFn: () => Promise.resolve(5),
-  //  ^?  Promise<number>
-})
-
-const queryClient = new QueryClient()
-const data = queryClient.getQueryData(queryKey)
-//    ^?  number | undefined
+ const { queryKey } = queryOptions({
+    queryKey: ['key'],
+    queryFn: () => Promise.resolve(5),
+    //  ^?  Promise<number>
+  })
+
+  const queryClient = new QueryClient()
+  const data = queryClient.getQueryData(queryKey)
+  //    ^?  number | undefined
 ```
 
 ## Param
 
 The query options to tag with the type from `queryFn`.
 
-## queryOptions(options)
+## Call Signature
 
 ```ts
-function queryOptions<TQueryFnData, TError, TData, TQueryKey>(
-  options,
-): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
+function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
 ```
 
 Allows to share and re-use query options in a type-safe way.
@@ -42,15 +40,15 @@ The `queryKey` will be tagged with the type from `queryFn`.
 **Example**
 
 ```ts
-const { queryKey } = queryOptions({
-  queryKey: ['key'],
-  queryFn: () => Promise.resolve(5),
-  //  ^?  Promise<number>
-})
-
-const queryClient = new QueryClient()
-const data = queryClient.getQueryData(queryKey)
-//    ^?  number | undefined
+ const { queryKey } = queryOptions({
+    queryKey: ['key'],
+    queryFn: () => Promise.resolve(5),
+    //  ^?  Promise<number>
+  })
+
+  const queryClient = new QueryClient()
+  const data = queryClient.getQueryData(queryKey)
+  //    ^?  number | undefined
 ```
 
 ### Type Parameters
@@ -61,17 +59,77 @@ const data = queryClient.getQueryData(queryKey)
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **options**: [`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
+#### options
+
+[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
+
+The query options to tag with the type from `queryFn`.
+
+### Returns
+
+[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
+
+The tagged query options.
+
+The tagged query options.
+
+### Param
+
+The query options to tag with the type from `queryFn`.
+
+### Defined in
+
+[query-options.ts:78](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L78)
+
+## Call Signature
+
+```ts
+function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & object
+```
+
+Allows to share and re-use query options in a type-safe way.
+
+The `queryKey` will be tagged with the type from `queryFn`.
+
+**Example**
+
+```ts
+ const { queryKey } = queryOptions({
+    queryKey: ['key'],
+    queryFn: () => Promise.resolve(5),
+    //  ^?  Promise<number>
+  })
+
+  const queryClient = new QueryClient()
+  const data = queryClient.getQueryData(queryKey)
+  //    ^?  number | undefined
+```
+
+### Type Parameters
+
+• **TQueryFnData** = `unknown`
+
+• **TError** = `Error`
+
+• **TData** = `TQueryFnData`
+
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
+
+### Parameters
+
+#### options
+
+[`UnusedSkipTokenOptions`](../../type-aliases/unusedskiptokenoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
 
 The query options to tag with the type from `queryFn`.
 
 ### Returns
 
-[`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
+[`UnusedSkipTokenOptions`](../../type-aliases/unusedskiptokenoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
 
 The tagged query options.
 
@@ -83,14 +141,12 @@ The query options to tag with the type from `queryFn`.
 
 ### Defined in
 
-[query-options.ts:52](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/query-options.ts#L52)
+[query-options.ts:111](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L111)
 
-## queryOptions(options)
+## Call Signature
 
 ```ts
-function queryOptions<TQueryFnData, TError, TData, TQueryKey>(
-  options,
-): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
+function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
 ```
 
 Allows to share and re-use query options in a type-safe way.
@@ -100,15 +156,15 @@ The `queryKey` will be tagged with the type from `queryFn`.
 **Example**
 
 ```ts
-const { queryKey } = queryOptions({
-  queryKey: ['key'],
-  queryFn: () => Promise.resolve(5),
-  //  ^?  Promise<number>
-})
-
-const queryClient = new QueryClient()
-const data = queryClient.getQueryData(queryKey)
-//    ^?  number | undefined
+ const { queryKey } = queryOptions({
+    queryKey: ['key'],
+    queryFn: () => Promise.resolve(5),
+    //  ^?  Promise<number>
+  })
+
+  const queryClient = new QueryClient()
+  const data = queryClient.getQueryData(queryKey)
+  //    ^?  number | undefined
 ```
 
 ### Type Parameters
@@ -119,17 +175,19 @@ const data = queryClient.getQueryData(queryKey)
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **options**: [`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
+#### options
+
+[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
 
 The query options to tag with the type from `queryFn`.
 
 ### Returns
 
-[`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
+[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
 
 The tagged query options.
 
@@ -141,4 +199,4 @@ The query options to tag with the type from `queryFn`.
 
 ### Defined in
 
-[query-options.ts:85](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/query-options.ts#L85)
+[query-options.ts:144](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L144)
diff --git a/docs/framework/angular/reference/functions/withdevtools.md b/docs/framework/angular/reference/functions/withdevtools.md
new file mode 100644
index 0000000000..7e2edfaebb
--- /dev/null
+++ b/docs/framework/angular/reference/functions/withdevtools.md
@@ -0,0 +1,50 @@
+---
+id: withDevtools
+title: withDevtools
+---
+
+# Function: withDevtools()
+
+```ts
+function withDevtools(withDevtoolsFn?): DeveloperToolsFeature
+```
+
+Enables developer tools.
+
+**Example**
+
+```ts
+export const appConfig: ApplicationConfig = {
+  providers: [
+    provideTanStackQuery(new QueryClient(), withDevtools())
+  ]
+}
+```
+By default the devtools will be loaded when Angular runs in development mode and rendered in `<body>`.
+
+If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available.
+
+If you need more control over where devtools are rendered, consider `injectDevtoolsPanel`. This allows rendering devtools inside your own devtools for example.
+
+## Parameters
+
+### withDevtoolsFn?
+
+() => [`DevtoolsOptions`](../../interfaces/devtoolsoptions.md)
+
+A function that returns `DevtoolsOptions`.
+
+## Returns
+
+[`DeveloperToolsFeature`](../../type-aliases/developertoolsfeature.md)
+
+A set of providers for use with `provideTanStackQuery`.
+
+## See
+
+ - [provideTanStackQuery](../providetanstackquery.md)
+ - [DevtoolsOptions](../../interfaces/devtoolsoptions.md)
+
+## Defined in
+
+[providers.ts:262](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L262)
diff --git a/docs/framework/angular/reference/index.md b/docs/framework/angular/reference/index.md
index a0f861def3..0a14b95e1a 100644
--- a/docs/framework/angular/reference/index.md
+++ b/docs/framework/angular/reference/index.md
@@ -1,50 +1,71 @@
 ---
-id: '@tanstack/angular-query-experimental'
-title: '@tanstack/angular-query-experimental'
+id: "@tanstack/angular-query-experimental"
+title: "@tanstack/angular-query-experimental"
 ---
 
 # @tanstack/angular-query-experimental
 
 ## Interfaces
 
-- [BaseMutationNarrowing](interfaces/basemutationnarrowing.md)
-- [BaseQueryNarrowing](interfaces/basequerynarrowing.md)
-- [CreateBaseQueryOptions](interfaces/createbasequeryoptions.md)
-- [CreateInfiniteQueryOptions](interfaces/createinfinitequeryoptions.md)
-- [CreateMutationOptions](interfaces/createmutationoptions.md)
-- [CreateQueryOptions](interfaces/createqueryoptions.md)
-- [InjectMutationStateOptions](interfaces/injectmutationstateoptions.md)
+- [BaseMutationNarrowing](../interfaces/basemutationnarrowing.md)
+- [BaseQueryNarrowing](../interfaces/basequerynarrowing.md)
+- [CreateBaseQueryOptions](../interfaces/createbasequeryoptions.md)
+- [CreateInfiniteQueryOptions](../interfaces/createinfinitequeryoptions.md)
+- [CreateMutationOptions](../interfaces/createmutationoptions.md)
+- [CreateQueryOptions](../interfaces/createqueryoptions.md)
+- [DevtoolsOptions](../interfaces/devtoolsoptions.md)
+- [InjectInfiniteQueryOptions](../interfaces/injectinfinitequeryoptions.md)
+- [InjectIsFetchingOptions](../interfaces/injectisfetchingoptions.md)
+- [InjectIsMutatingOptions](../interfaces/injectismutatingoptions.md)
+- [InjectMutationOptions](../interfaces/injectmutationoptions.md)
+- [InjectMutationStateOptions](../interfaces/injectmutationstateoptions.md)
+- [InjectQueryOptions](../interfaces/injectqueryoptions.md)
+- [QueryFeature](../interfaces/queryfeature.md)
 
 ## Type Aliases
 
-- [CreateBaseMutationResult](type-aliases/createbasemutationresult.md)
-- [CreateBaseQueryResult](type-aliases/createbasequeryresult.md)
-- [CreateInfiniteQueryResult](type-aliases/createinfinitequeryresult.md)
-- [CreateMutateAsyncFunction](type-aliases/createmutateasyncfunction.md)
-- [CreateMutateFunction](type-aliases/createmutatefunction.md)
-- [CreateMutationResult](type-aliases/createmutationresult.md)
-- [CreateQueryResult](type-aliases/createqueryresult.md)
-- [DefinedCreateInfiniteQueryResult](type-aliases/definedcreateinfinitequeryresult.md)
-- [DefinedCreateQueryResult](type-aliases/definedcreatequeryresult.md)
-- [DefinedInitialDataInfiniteOptions](type-aliases/definedinitialdatainfiniteoptions.md)
-- [DefinedInitialDataOptions](type-aliases/definedinitialdataoptions.md)
-- [NonUndefinedGuard](type-aliases/nonundefinedguard.md)
-- [QueriesOptions](type-aliases/queriesoptions.md)
-- [QueriesResults](type-aliases/queriesresults.md)
-- [UndefinedInitialDataInfiniteOptions](type-aliases/undefinedinitialdatainfiniteoptions.md)
-- [UndefinedInitialDataOptions](type-aliases/undefinedinitialdataoptions.md)
+- [CreateBaseMutationResult](../type-aliases/createbasemutationresult.md)
+- [CreateBaseQueryResult](../type-aliases/createbasequeryresult.md)
+- [CreateInfiniteQueryResult](../type-aliases/createinfinitequeryresult.md)
+- [CreateMutateAsyncFunction](../type-aliases/createmutateasyncfunction.md)
+- [CreateMutateFunction](../type-aliases/createmutatefunction.md)
+- [CreateMutationResult](../type-aliases/createmutationresult.md)
+- [CreateQueryResult](../type-aliases/createqueryresult.md)
+- [DefinedCreateInfiniteQueryResult](../type-aliases/definedcreateinfinitequeryresult.md)
+- [DefinedCreateQueryResult](../type-aliases/definedcreatequeryresult.md)
+- [DefinedInitialDataInfiniteOptions](../type-aliases/definedinitialdatainfiniteoptions.md)
+- [DefinedInitialDataOptions](../type-aliases/definedinitialdataoptions.md)
+- [DeveloperToolsFeature](../type-aliases/developertoolsfeature.md)
+- [PersistQueryClientFeature](../type-aliases/persistqueryclientfeature.md)
+- [QueriesOptions](../type-aliases/queriesoptions.md)
+- [QueriesResults](../type-aliases/queriesresults.md)
+- [QueryFeatureKind](../type-aliases/queryfeaturekind.md)
+- [QueryFeatures](../type-aliases/queryfeatures.md)
+- [UndefinedInitialDataInfiniteOptions](../type-aliases/undefinedinitialdatainfiniteoptions.md)
+- [UndefinedInitialDataOptions](../type-aliases/undefinedinitialdataoptions.md)
+- [UnusedSkipTokenInfiniteOptions](../type-aliases/unusedskiptokeninfiniteoptions.md)
+- [UnusedSkipTokenOptions](../type-aliases/unusedskiptokenoptions.md)
+
+## Variables
+
+- [queryFeatures](../variables/queryfeatures.md)
 
 ## Functions
 
-- [infiniteQueryOptions](functions/infinitequeryoptions.md)
-- [injectInfiniteQuery](functions/injectinfinitequery.md)
-- [injectIsFetching](functions/injectisfetching.md)
-- [injectIsMutating](functions/injectismutating.md)
-- [injectMutation](functions/injectmutation.md)
-- [injectMutationState](functions/injectmutationstate.md)
-- [injectQueries](functions/injectqueries.md)
-- [injectQuery](functions/injectquery.md)
-- [injectQueryClient](functions/injectqueryclient.md)
-- [provideAngularQuery](functions/provideangularquery.md)
-- [provideQueryClient](functions/providequeryclient.md)
-- [queryOptions](functions/queryoptions.md)
+- [infiniteQueryOptions](../functions/infinitequeryoptions.md)
+- [injectInfiniteQuery](../functions/injectinfinitequery.md)
+- [injectIsFetching](../functions/injectisfetching.md)
+- [injectIsMutating](../functions/injectismutating.md)
+- [injectIsRestoring](../functions/injectisrestoring.md)
+- [injectMutation](../functions/injectmutation.md)
+- [injectMutationState](../functions/injectmutationstate.md)
+- [injectQueries](../functions/injectqueries.md)
+- [injectQuery](../functions/injectquery.md)
+- [injectQueryClient](../functions/injectqueryclient.md)
+- [mutationOptions](../functions/mutationoptions.md)
+- [provideIsRestoring](../functions/provideisrestoring.md)
+- [provideQueryClient](../functions/providequeryclient.md)
+- [provideTanStackQuery](../functions/providetanstackquery.md)
+- [queryFeature](../functions/queryfeature.md)
+- [queryOptions](../functions/queryoptions.md)
+- [withDevtools](../functions/withdevtools.md)
diff --git a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md
index 96ddd7fa63..2d11653893 100644
--- a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md
+++ b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md
@@ -17,80 +17,48 @@ title: BaseMutationNarrowing
 
 ## Properties
 
-### isError()
+### isError
 
 ```ts
-isError: (this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverErrorResult<TData, TError, TVariables, TContext>, Object> & Object>;
+isError: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverErrorResult<TData, TError, TVariables, TContext>, { mutate: CreateMutateFunction<TData, TError, TVariables, TContext> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext> }>>;
 ```
 
-#### Parameters
-
-• **this**: [`CreateMutationResult`](../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`, `CreateStatusBasedMutationResult`\<`"error"` \| `"success"` \| `"pending"` \| `"idle"`, `TData`, `TError`, `TVariables`, `TContext`\>\>
-
-#### Returns
-
-`this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverErrorResult<TData, TError, TVariables, TContext>, Object> & Object>`
-
 #### Defined in
 
-[types.ts:248](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L248)
+[types.ts:242](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L242)
 
----
+***
 
-### isIdle()
+### isIdle
 
 ```ts
-isIdle: (this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverIdleResult<TData, TError, TVariables, TContext>, Object> & Object>;
+isIdle: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverIdleResult<TData, TError, TVariables, TContext>, { mutate: CreateMutateFunction<TData, TError, TVariables, TContext> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext> }>>;
 ```
 
-#### Parameters
-
-• **this**: [`CreateMutationResult`](../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`, `CreateStatusBasedMutationResult`\<`"error"` \| `"success"` \| `"pending"` \| `"idle"`, `TData`, `TError`, `TVariables`, `TContext`\>\>
-
-#### Returns
-
-`this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverIdleResult<TData, TError, TVariables, TContext>, Object> & Object>`
-
 #### Defined in
 
-[types.ts:278](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L278)
+[types.ts:276](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L276)
 
----
+***
 
-### isPending()
+### isPending
 
 ```ts
-isPending: (this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverLoadingResult<TData, TError, TVariables, TContext>, Object> & Object>;
+isPending: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverLoadingResult<TData, TError, TVariables, TContext>, { mutate: CreateMutateFunction<TData, TError, TVariables, TContext> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext> }>>;
 ```
 
-#### Parameters
-
-• **this**: [`CreateMutationResult`](../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`, `CreateStatusBasedMutationResult`\<`"error"` \| `"success"` \| `"pending"` \| `"idle"`, `TData`, `TError`, `TVariables`, `TContext`\>\>
-
-#### Returns
-
-`this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverLoadingResult<TData, TError, TVariables, TContext>, Object> & Object>`
-
 #### Defined in
 
-[types.ts:263](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L263)
+[types.ts:259](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L259)
 
----
+***
 
-### isSuccess()
+### isSuccess
 
 ```ts
-isSuccess: (this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverSuccessResult<TData, TError, TVariables, TContext>, Object> & Object>;
+isSuccess: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverSuccessResult<TData, TError, TVariables, TContext>, { mutate: CreateMutateFunction<TData, TError, TVariables, TContext> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext> }>>;
 ```
 
-#### Parameters
-
-• **this**: [`CreateMutationResult`](../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`, `CreateStatusBasedMutationResult`\<`"error"` \| `"success"` \| `"pending"` \| `"idle"`, `TData`, `TError`, `TVariables`, `TContext`\>\>
-
-#### Returns
-
-`this is CreateMutationResult<TData, TError, TVariables, TContext, Override<MutationObserverSuccessResult<TData, TError, TVariables, TContext>, Object> & Object>`
-
 #### Defined in
 
-[types.ts:233](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L233)
+[types.ts:225](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L225)
diff --git a/docs/framework/angular/reference/interfaces/basequerynarrowing.md b/docs/framework/angular/reference/interfaces/basequerynarrowing.md
index 2030db4067..645bff7db2 100644
--- a/docs/framework/angular/reference/interfaces/basequerynarrowing.md
+++ b/docs/framework/angular/reference/interfaces/basequerynarrowing.md
@@ -21,7 +21,9 @@ isError: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBase
 
 #### Parameters
 
-• **this**: [`CreateBaseQueryResult`](../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\>
+##### this
+
+[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\>
 
 #### Returns
 
@@ -29,9 +31,9 @@ isError: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBase
 
 #### Defined in
 
-[types.ts:75](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L75)
+[types.ts:76](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L76)
 
----
+***
 
 ### isPending()
 
@@ -41,7 +43,9 @@ isPending: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBa
 
 #### Parameters
 
-• **this**: [`CreateBaseQueryResult`](../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\>
+##### this
+
+[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\>
 
 #### Returns
 
@@ -49,24 +53,26 @@ isPending: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBa
 
 #### Defined in
 
-[types.ts:82](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L82)
+[types.ts:83](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L83)
 
----
+***
 
 ### isSuccess()
 
 ```ts
-isSuccess: (this) => this is CreateBaseQueryResult<TData, TError, QueryObserverSuccessResult<TData, TError>>;
+isSuccess: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"success", TData, TError>>;
 ```
 
 #### Parameters
 
-• **this**: [`CreateBaseQueryResult`](../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\>
+##### this
+
+[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\>
 
 #### Returns
 
-`this is CreateBaseQueryResult<TData, TError, QueryObserverSuccessResult<TData, TError>>`
+`this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"success", TData, TError>>`
 
 #### Defined in
 
-[types.ts:68](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L68)
+[types.ts:69](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L69)
diff --git a/docs/framework/angular/reference/interfaces/createbasequeryoptions.md b/docs/framework/angular/reference/interfaces/createbasequeryoptions.md
index c371959980..288a4ecc47 100644
--- a/docs/framework/angular/reference/interfaces/createbasequeryoptions.md
+++ b/docs/framework/angular/reference/interfaces/createbasequeryoptions.md
@@ -19,4 +19,4 @@ title: CreateBaseQueryOptions
 
 • **TQueryData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
diff --git a/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md b/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md
index dade8e1e30..bd887bcc0d 100644
--- a/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md
+++ b/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md
@@ -19,6 +19,6 @@ title: CreateInfiniteQueryOptions
 
 • **TQueryData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 • **TPageParam** = `unknown`
diff --git a/docs/framework/angular/reference/interfaces/createqueryoptions.md b/docs/framework/angular/reference/interfaces/createqueryoptions.md
index 739f7179f7..e022202219 100644
--- a/docs/framework/angular/reference/interfaces/createqueryoptions.md
+++ b/docs/framework/angular/reference/interfaces/createqueryoptions.md
@@ -7,7 +7,7 @@ title: CreateQueryOptions
 
 ## Extends
 
-- `OmitKeyof`\<[`CreateBaseQueryOptions`](createbasequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`\>, `"suspense"`\>
+- `OmitKeyof`\<[`CreateBaseQueryOptions`](../createbasequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`\>, `"suspense"`\>
 
 ## Type Parameters
 
@@ -17,4 +17,4 @@ title: CreateQueryOptions
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
diff --git a/docs/framework/angular/reference/interfaces/devtoolsoptions.md b/docs/framework/angular/reference/interfaces/devtoolsoptions.md
new file mode 100644
index 0000000000..41d86b2230
--- /dev/null
+++ b/docs/framework/angular/reference/interfaces/devtoolsoptions.md
@@ -0,0 +1,141 @@
+---
+id: DevtoolsOptions
+title: DevtoolsOptions
+---
+
+# Interface: DevtoolsOptions
+
+Options for configuring the TanStack Query devtools.
+
+## Properties
+
+### buttonPosition?
+
+```ts
+optional buttonPosition: DevtoolsButtonPosition;
+```
+
+The position of the TanStack logo to open and close the devtools panel.
+`top-left` | `top-right` | `bottom-left` | `bottom-right` | `relative`
+Defaults to `bottom-right`.
+
+#### Defined in
+
+[providers.ts:192](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L192)
+
+***
+
+### client?
+
+```ts
+optional client: QueryClient;
+```
+
+Custom instance of QueryClient
+
+#### Defined in
+
+[providers.ts:202](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L202)
+
+***
+
+### errorTypes?
+
+```ts
+optional errorTypes: DevtoolsErrorType[];
+```
+
+Use this so you can define custom errors that can be shown in the devtools.
+
+#### Defined in
+
+[providers.ts:206](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L206)
+
+***
+
+### initialIsOpen?
+
+```ts
+optional initialIsOpen: boolean;
+```
+
+Set this true if you want the devtools to default to being open
+
+#### Defined in
+
+[providers.ts:186](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L186)
+
+***
+
+### loadDevtools?
+
+```ts
+optional loadDevtools: boolean | "auto";
+```
+
+Whether the developer tools should load.
+- `auto`- (Default) Lazily loads devtools when in development mode. Skips loading in production mode.
+- `true`- Always load the devtools, regardless of the environment.
+- `false`- Never load the devtools, regardless of the environment.
+
+You can use `true` and `false` to override loading developer tools from an environment file.
+For example, a test environment might run in production mode but you may want to load developer tools.
+
+Additionally, you can use a signal in the callback to dynamically load the devtools based on a condition. For example,
+a signal created from a RxJS observable that listens for a keyboard shortcut.
+
+**Example**
+```ts
+   withDevtools(() => ({
+     initialIsOpen: true,
+     loadDevtools: inject(ExampleService).loadDevtools()
+   }))
+ ```
+
+#### Defined in
+
+[providers.ts:236](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L236)
+
+***
+
+### position?
+
+```ts
+optional position: DevtoolsPosition;
+```
+
+The position of the TanStack Query devtools panel.
+`top` | `bottom` | `left` | `right`
+Defaults to `bottom`.
+
+#### Defined in
+
+[providers.ts:198](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L198)
+
+***
+
+### shadowDOMTarget?
+
+```ts
+optional shadowDOMTarget: ShadowRoot;
+```
+
+Use this so you can attach the devtool's styles to a specific element in the DOM.
+
+#### Defined in
+
+[providers.ts:214](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L214)
+
+***
+
+### styleNonce?
+
+```ts
+optional styleNonce: string;
+```
+
+Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles.
+
+#### Defined in
+
+[providers.ts:210](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L210)
diff --git a/docs/framework/angular/reference/interfaces/injectinfinitequeryoptions.md b/docs/framework/angular/reference/interfaces/injectinfinitequeryoptions.md
new file mode 100644
index 0000000000..a1783d1f97
--- /dev/null
+++ b/docs/framework/angular/reference/interfaces/injectinfinitequeryoptions.md
@@ -0,0 +1,22 @@
+---
+id: InjectInfiniteQueryOptions
+title: InjectInfiniteQueryOptions
+---
+
+# Interface: InjectInfiniteQueryOptions
+
+## Properties
+
+### injector?
+
+```ts
+optional injector: Injector;
+```
+
+The `Injector` in which to create the infinite query.
+
+If this is not provided, the current injection context will be used instead (via `inject`).
+
+#### Defined in
+
+[inject-infinite-query.ts:31](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L31)
diff --git a/docs/framework/angular/reference/interfaces/injectisfetchingoptions.md b/docs/framework/angular/reference/interfaces/injectisfetchingoptions.md
new file mode 100644
index 0000000000..55184b8053
--- /dev/null
+++ b/docs/framework/angular/reference/interfaces/injectisfetchingoptions.md
@@ -0,0 +1,22 @@
+---
+id: InjectIsFetchingOptions
+title: InjectIsFetchingOptions
+---
+
+# Interface: InjectIsFetchingOptions
+
+## Properties
+
+### injector?
+
+```ts
+optional injector: Injector;
+```
+
+The `Injector` in which to create the isFetching signal.
+
+If this is not provided, the current injection context will be used instead (via `inject`).
+
+#### Defined in
+
+[inject-is-fetching.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L19)
diff --git a/docs/framework/angular/reference/interfaces/injectismutatingoptions.md b/docs/framework/angular/reference/interfaces/injectismutatingoptions.md
new file mode 100644
index 0000000000..daf4f69b66
--- /dev/null
+++ b/docs/framework/angular/reference/interfaces/injectismutatingoptions.md
@@ -0,0 +1,22 @@
+---
+id: InjectIsMutatingOptions
+title: InjectIsMutatingOptions
+---
+
+# Interface: InjectIsMutatingOptions
+
+## Properties
+
+### injector?
+
+```ts
+optional injector: Injector;
+```
+
+The `Injector` in which to create the isMutating signal.
+
+If this is not provided, the current injection context will be used instead (via `inject`).
+
+#### Defined in
+
+[inject-is-mutating.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L19)
diff --git a/docs/framework/angular/reference/interfaces/injectmutationoptions.md b/docs/framework/angular/reference/interfaces/injectmutationoptions.md
new file mode 100644
index 0000000000..88dc930a57
--- /dev/null
+++ b/docs/framework/angular/reference/interfaces/injectmutationoptions.md
@@ -0,0 +1,22 @@
+---
+id: InjectMutationOptions
+title: InjectMutationOptions
+---
+
+# Interface: InjectMutationOptions
+
+## Properties
+
+### injector?
+
+```ts
+optional injector: Injector;
+```
+
+The `Injector` in which to create the mutation.
+
+If this is not provided, the current injection context will be used instead (via `inject`).
+
+#### Defined in
+
+[inject-mutation.ts:30](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L30)
diff --git a/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md b/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md
index 15fe330c5c..253f8cea32 100644
--- a/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md
+++ b/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md
@@ -13,6 +13,10 @@ title: InjectMutationStateOptions
 optional injector: Injector;
 ```
 
+The `Injector` in which to create the mutation state signal.
+
+If this is not provided, the current injection context will be used instead (via `inject`).
+
 #### Defined in
 
-[inject-mutation-state.ts:43](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-mutation-state.ts#L43)
+[inject-mutation-state.ts:54](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L54)
diff --git a/docs/framework/angular/reference/interfaces/injectqueryoptions.md b/docs/framework/angular/reference/interfaces/injectqueryoptions.md
new file mode 100644
index 0000000000..202354d583
--- /dev/null
+++ b/docs/framework/angular/reference/interfaces/injectqueryoptions.md
@@ -0,0 +1,22 @@
+---
+id: InjectQueryOptions
+title: InjectQueryOptions
+---
+
+# Interface: InjectQueryOptions
+
+## Properties
+
+### injector?
+
+```ts
+optional injector: Injector;
+```
+
+The `Injector` in which to create the query.
+
+If this is not provided, the current injection context will be used instead (via `inject`).
+
+#### Defined in
+
+[inject-query.ts:26](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L26)
diff --git a/docs/framework/angular/reference/interfaces/queryfeature.md b/docs/framework/angular/reference/interfaces/queryfeature.md
new file mode 100644
index 0000000000..634c9db3e7
--- /dev/null
+++ b/docs/framework/angular/reference/interfaces/queryfeature.md
@@ -0,0 +1,36 @@
+---
+id: QueryFeature
+title: QueryFeature
+---
+
+# Interface: QueryFeature\<TFeatureKind\>
+
+Helper type to represent a Query feature.
+
+## Type Parameters
+
+• **TFeatureKind** *extends* [`QueryFeatureKind`](../../type-aliases/queryfeaturekind.md)
+
+## Properties
+
+### ɵkind
+
+```ts
+ɵkind: TFeatureKind;
+```
+
+#### Defined in
+
+[providers.ts:146](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L146)
+
+***
+
+### ɵproviders
+
+```ts
+ɵproviders: Provider[];
+```
+
+#### Defined in
+
+[providers.ts:147](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L147)
diff --git a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md
index 3cad41d423..8a81728950 100644
--- a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md
+++ b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md
@@ -6,7 +6,9 @@ title: CreateBaseMutationResult
 # Type Alias: CreateBaseMutationResult\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateBaseMutationResult<TData, TError, TVariables, TContext>: Override<MutationObserverResult<TData, TError, TVariables, TContext>, object> & object;
+type CreateBaseMutationResult<TData, TError, TVariables, TContext> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
+  mutate: CreateMutateFunction<TData, TError, TVariables, TContext>;
+ }> & object;
 ```
 
 ## Type declaration
@@ -14,7 +16,7 @@ type CreateBaseMutationResult<TData, TError, TVariables, TContext>: Override<Mut
 ### mutateAsync
 
 ```ts
-mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>
+mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>;
 ```
 
 ## Type Parameters
@@ -29,4 +31,4 @@ mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>
 
 ## Defined in
 
-[types.ts:198](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L198)
+[types.ts:188](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L188)
diff --git a/docs/framework/angular/reference/type-aliases/createbasequeryresult.md b/docs/framework/angular/reference/type-aliases/createbasequeryresult.md
index 3870240677..1b4310e3b4 100644
--- a/docs/framework/angular/reference/type-aliases/createbasequeryresult.md
+++ b/docs/framework/angular/reference/type-aliases/createbasequeryresult.md
@@ -6,7 +6,7 @@ title: CreateBaseQueryResult
 # Type Alias: CreateBaseQueryResult\<TData, TError, TState\>
 
 ```ts
-type CreateBaseQueryResult<TData, TError, TState>: BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, "safely">>;
+type CreateBaseQueryResult<TData, TError, TState> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, "safely">>;
 ```
 
 ## Type Parameters
@@ -19,4 +19,4 @@ type CreateBaseQueryResult<TData, TError, TState>: BaseQueryNarrowing<TData, TEr
 
 ## Defined in
 
-[types.ts:116](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L116)
+[types.ts:117](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L117)
diff --git a/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md b/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md
index f074b556b7..b146de257e 100644
--- a/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md
+++ b/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md
@@ -6,7 +6,7 @@ title: CreateInfiniteQueryResult
 # Type Alias: CreateInfiniteQueryResult\<TData, TError\>
 
 ```ts
-type CreateInfiniteQueryResult<TData, TError>: MapToSignals<InfiniteQueryObserverResult<TData, TError>>;
+type CreateInfiniteQueryResult<TData, TError> = BaseQueryNarrowing<TData, TError> & MapToSignals<InfiniteQueryObserverResult<TData, TError>>;
 ```
 
 ## Type Parameters
@@ -17,4 +17,4 @@ type CreateInfiniteQueryResult<TData, TError>: MapToSignals<InfiniteQueryObserve
 
 ## Defined in
 
-[types.ts:143](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L143)
+[types.ts:145](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L145)
diff --git a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md
index fd6e7d2012..b5cacbc39e 100644
--- a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md
+++ b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md
@@ -6,7 +6,7 @@ title: CreateMutateAsyncFunction
 # Type Alias: CreateMutateAsyncFunction\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateMutateAsyncFunction<TData, TError, TVariables, TContext>: MutateFunction<TData, TError, TVariables, TContext>;
+type CreateMutateAsyncFunction<TData, TError, TVariables, TContext> = MutateFunction<TData, TError, TVariables, TContext>;
 ```
 
 ## Type Parameters
@@ -21,4 +21,4 @@ type CreateMutateAsyncFunction<TData, TError, TVariables, TContext>: MutateFunct
 
 ## Defined in
 
-[types.ts:188](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L188)
+[types.ts:178](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L178)
diff --git a/docs/framework/angular/reference/type-aliases/createmutatefunction.md b/docs/framework/angular/reference/type-aliases/createmutatefunction.md
index 4a8d6580dd..e96b73489c 100644
--- a/docs/framework/angular/reference/type-aliases/createmutatefunction.md
+++ b/docs/framework/angular/reference/type-aliases/createmutatefunction.md
@@ -6,7 +6,7 @@ title: CreateMutateFunction
 # Type Alias: CreateMutateFunction()\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateMutateFunction<TData, TError, TVariables, TContext>: (...args) => void;
+type CreateMutateFunction<TData, TError, TVariables, TContext> = (...args) => void;
 ```
 
 ## Type Parameters
@@ -21,7 +21,9 @@ type CreateMutateFunction<TData, TError, TVariables, TContext>: (...args) => voi
 
 ## Parameters
 
-• ...**args**: `Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\>
+### args
+
+...`Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\>
 
 ## Returns
 
@@ -29,4 +31,4 @@ type CreateMutateFunction<TData, TError, TVariables, TContext>: (...args) => voi
 
 ## Defined in
 
-[types.ts:176](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L176)
+[types.ts:166](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L166)
diff --git a/docs/framework/angular/reference/type-aliases/createmutationresult.md b/docs/framework/angular/reference/type-aliases/createmutationresult.md
index 7f52e747fb..359e20670d 100644
--- a/docs/framework/angular/reference/type-aliases/createmutationresult.md
+++ b/docs/framework/angular/reference/type-aliases/createmutationresult.md
@@ -6,7 +6,7 @@ title: CreateMutationResult
 # Type Alias: CreateMutationResult\<TData, TError, TVariables, TContext, TState\>
 
 ```ts
-type CreateMutationResult<TData, TError, TVariables, TContext, TState>: BaseMutationNarrowing<TData, TError, TVariables, TContext> & MapToSignals<OmitKeyof<TState, keyof BaseMutationNarrowing, "safely">>;
+type CreateMutationResult<TData, TError, TVariables, TContext, TState> = BaseMutationNarrowing<TData, TError, TVariables, TContext> & MapToSignals<OmitKeyof<TState, keyof BaseMutationNarrowing, "safely">>;
 ```
 
 ## Type Parameters
@@ -19,8 +19,8 @@ type CreateMutationResult<TData, TError, TVariables, TContext, TState>: BaseMuta
 
 • **TContext** = `unknown`
 
-• **TState** = `CreateStatusBasedMutationResult`\<[`CreateBaseMutationResult`](createbasemutationresult.md)\[`"status"`\], `TData`, `TError`, `TVariables`, `TContext`\>
+• **TState** = `CreateStatusBasedMutationResult`\<[`CreateBaseMutationResult`](../createbasemutationresult.md)\[`"status"`\], `TData`, `TError`, `TVariables`, `TContext`\>
 
 ## Defined in
 
-[types.ts:292](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L292)
+[types.ts:298](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L298)
diff --git a/docs/framework/angular/reference/type-aliases/createqueryresult.md b/docs/framework/angular/reference/type-aliases/createqueryresult.md
index 18b6952820..a7cd00bdb6 100644
--- a/docs/framework/angular/reference/type-aliases/createqueryresult.md
+++ b/docs/framework/angular/reference/type-aliases/createqueryresult.md
@@ -6,7 +6,7 @@ title: CreateQueryResult
 # Type Alias: CreateQueryResult\<TData, TError\>
 
 ```ts
-type CreateQueryResult<TData, TError>: CreateBaseQueryResult<TData, TError>;
+type CreateQueryResult<TData, TError> = CreateBaseQueryResult<TData, TError>;
 ```
 
 ## Type Parameters
@@ -17,4 +17,4 @@ type CreateQueryResult<TData, TError>: CreateBaseQueryResult<TData, TError>;
 
 ## Defined in
 
-[types.ts:126](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L126)
+[types.ts:127](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L127)
diff --git a/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md b/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md
index 5107554d67..9052e0725e 100644
--- a/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md
+++ b/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md
@@ -6,7 +6,7 @@ title: DefinedCreateInfiniteQueryResult
 # Type Alias: DefinedCreateInfiniteQueryResult\<TData, TError, TDefinedInfiniteQueryObserver\>
 
 ```ts
-type DefinedCreateInfiniteQueryResult<TData, TError, TDefinedInfiniteQueryObserver>: MapToSignals<TDefinedInfiniteQueryObserver>;
+type DefinedCreateInfiniteQueryResult<TData, TError, TDefinedInfiniteQueryObserver> = MapToSignals<TDefinedInfiniteQueryObserver>;
 ```
 
 ## Type Parameters
@@ -19,4 +19,4 @@ type DefinedCreateInfiniteQueryResult<TData, TError, TDefinedInfiniteQueryObserv
 
 ## Defined in
 
-[types.ts:151](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L151)
+[types.ts:154](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L154)
diff --git a/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md b/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md
index 306327f20e..cc9d352b33 100644
--- a/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md
+++ b/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md
@@ -3,10 +3,10 @@ id: DefinedCreateQueryResult
 title: DefinedCreateQueryResult
 ---
 
-# Type Alias: DefinedCreateQueryResult\<TData, TError, TDefinedQueryObserver\>
+# Type Alias: DefinedCreateQueryResult\<TData, TError, TState\>
 
 ```ts
-type DefinedCreateQueryResult<TData, TError, TDefinedQueryObserver>: MapToSignals<TDefinedQueryObserver>;
+type DefinedCreateQueryResult<TData, TError, TState> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, "safely">>;
 ```
 
 ## Type Parameters
@@ -15,8 +15,8 @@ type DefinedCreateQueryResult<TData, TError, TDefinedQueryObserver>: MapToSignal
 
 • **TError** = `DefaultError`
 
-• **TDefinedQueryObserver** = `DefinedQueryObserverResult`\<`TData`, `TError`\>
+• **TState** = `DefinedQueryObserverResult`\<`TData`, `TError`\>
 
 ## Defined in
 
-[types.ts:134](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L134)
+[types.ts:135](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L135)
diff --git a/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md b/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md
index ad63b14f44..e3dd3735e4 100644
--- a/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md
+++ b/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md
@@ -6,7 +6,7 @@ title: DefinedInitialDataInfiniteOptions
 # Type Alias: DefinedInitialDataInfiniteOptions\<TQueryFnData, TError, TData, TQueryKey, TPageParam\>
 
 ```ts
-type DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>: CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & object;
+type DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & object;
 ```
 
 ## Type declaration
@@ -14,7 +14,10 @@ type DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, T
 ### initialData
 
 ```ts
-initialData: NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>> | () => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>;
+initialData: 
+  | NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>
+  | () => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>
+  | undefined;
 ```
 
 ## Type Parameters
@@ -25,10 +28,10 @@ initialData: NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>> | () => N
 
 • **TData** = `InfiniteData`\<`TQueryFnData`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 • **TPageParam** = `unknown`
 
 ## Defined in
 
-[infinite-query-options.ts:32](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/infinite-query-options.ts#L32)
+[infinite-query-options.ts:66](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L66)
diff --git a/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md b/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md
index f4e8b6da59..17fabdb5c5 100644
--- a/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md
+++ b/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md
@@ -6,7 +6,7 @@ title: DefinedInitialDataOptions
 # Type Alias: DefinedInitialDataOptions\<TQueryFnData, TError, TData, TQueryKey\>
 
 ```ts
-type DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object;
+type DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> = Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object;
 ```
 
 ## Type declaration
@@ -14,7 +14,15 @@ type DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: CreateQu
 ### initialData
 
 ```ts
-initialData: NonUndefinedGuard<TQueryFnData> | () => NonUndefinedGuard<TQueryFnData>;
+initialData: 
+  | NonUndefinedGuard<TQueryFnData>
+| () => NonUndefinedGuard<TQueryFnData>;
+```
+
+### queryFn?
+
+```ts
+optional queryFn: QueryFunction<TQueryFnData, TQueryKey>;
 ```
 
 ## Type Parameters
@@ -25,8 +33,8 @@ initialData: NonUndefinedGuard<TQueryFnData> | () => NonUndefinedGuard<TQueryFnD
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 ## Defined in
 
-[query-options.ts:19](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/query-options.ts#L19)
+[query-options.ts:41](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L41)
diff --git a/docs/framework/angular/reference/type-aliases/developertoolsfeature.md b/docs/framework/angular/reference/type-aliases/developertoolsfeature.md
new file mode 100644
index 0000000000..239c174879
--- /dev/null
+++ b/docs/framework/angular/reference/type-aliases/developertoolsfeature.md
@@ -0,0 +1,21 @@
+---
+id: DeveloperToolsFeature
+title: DeveloperToolsFeature
+---
+
+# Type Alias: DeveloperToolsFeature
+
+```ts
+type DeveloperToolsFeature = QueryFeature<"DeveloperTools">;
+```
+
+A type alias that represents a feature which enables developer tools.
+The type is used to describe the return value of the `withDevtools` function.
+
+## See
+
+[withDevtools](../../functions/withdevtools.md)
+
+## Defined in
+
+[providers.ts:169](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L169)
diff --git a/docs/framework/angular/reference/type-aliases/nonundefinedguard.md b/docs/framework/angular/reference/type-aliases/nonundefinedguard.md
deleted file mode 100644
index f2673af9db..0000000000
--- a/docs/framework/angular/reference/type-aliases/nonundefinedguard.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: NonUndefinedGuard
-title: NonUndefinedGuard
----
-
-# Type Alias: NonUndefinedGuard\<T\>
-
-```ts
-type NonUndefinedGuard<T>: T extends undefined ? never : T;
-```
-
-## Type Parameters
-
-• **T**
-
-## Defined in
-
-[types.ts:316](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/types.ts#L316)
diff --git a/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md b/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md
new file mode 100644
index 0000000000..06d17401e3
--- /dev/null
+++ b/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md
@@ -0,0 +1,17 @@
+---
+id: PersistQueryClientFeature
+title: PersistQueryClientFeature
+---
+
+# Type Alias: PersistQueryClientFeature
+
+```ts
+type PersistQueryClientFeature = QueryFeature<"PersistQueryClient">;
+```
+
+A type alias that represents a feature which enables persistence.
+The type is used to describe the return value of the `withPersistQueryClient` function.
+
+## Defined in
+
+[providers.ts:176](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L176)
diff --git a/docs/framework/angular/reference/type-aliases/queriesoptions.md b/docs/framework/angular/reference/type-aliases/queriesoptions.md
index e21003d6f9..19ce9bf0ef 100644
--- a/docs/framework/angular/reference/type-aliases/queriesoptions.md
+++ b/docs/framework/angular/reference/type-aliases/queriesoptions.md
@@ -6,19 +6,19 @@ title: QueriesOptions
 # Type Alias: QueriesOptions\<T, TResult, TDepth\>
 
 ```ts
-type QueriesOptions<T, TResult, TDepth>: TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetOptions<Head>] : T extends [infer Head, ...(infer Tail)] ? QueriesOptions<[...Tail], [...TResult, GetOptions<Head>], [...TDepth, 1]> : ReadonlyArray<unknown> extends T ? T : T extends QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>[] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : QueryObserverOptionsForCreateQueries[];
+type QueriesOptions<T, TResult, TDepth> = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetOptions<Head>] : T extends [infer Head, ...(infer Tail)] ? QueriesOptions<[...Tail], [...TResult, GetOptions<Head>], [...TDepth, 1]> : ReadonlyArray<unknown> extends T ? T : T extends QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>[] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : QueryObserverOptionsForCreateQueries[];
 ```
 
 QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
 
 ## Type Parameters
 
-• **T** _extends_ `any`[]
+• **T** *extends* `any`[]
 
-• **TResult** _extends_ `any`[] = []
+• **TResult** *extends* `any`[] = []
 
-• **TDepth** _extends_ `ReadonlyArray`\<`number`\> = []
+• **TDepth** *extends* `ReadonlyArray`\<`number`\> = []
 
 ## Defined in
 
-[inject-queries.ts:108](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-queries.ts#L108)
+[inject-queries.ts:121](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L121)
diff --git a/docs/framework/angular/reference/type-aliases/queriesresults.md b/docs/framework/angular/reference/type-aliases/queriesresults.md
index 7ff2e3ebd1..322e1c67e4 100644
--- a/docs/framework/angular/reference/type-aliases/queriesresults.md
+++ b/docs/framework/angular/reference/type-aliases/queriesresults.md
@@ -6,19 +6,19 @@ title: QueriesResults
 # Type Alias: QueriesResults\<T, TResult, TDepth\>
 
 ```ts
-type QueriesResults<T, TResult, TDepth>: TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetResults<Head>] : T extends [infer Head, ...(infer Tail)] ? QueriesResults<[...Tail], [...TResult, GetResults<Head>], [...TDepth, 1]> : T extends QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, any>[] ? QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError>[] : QueryObserverResult[];
+type QueriesResults<T, TResult, TDepth> = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetResults<Head>] : T extends [infer Head, ...(infer Tail)] ? QueriesResults<[...Tail], [...TResult, GetResults<Head>], [...TDepth, 1]> : T extends QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, any>[] ? QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError>[] : QueryObserverResult[];
 ```
 
 QueriesResults reducer recursively maps type param to results
 
 ## Type Parameters
 
-• **T** _extends_ `any`[]
+• **T** *extends* `any`[]
 
-• **TResult** _extends_ `any`[] = []
+• **TResult** *extends* `any`[] = []
 
-• **TDepth** _extends_ `ReadonlyArray`\<`number`\> = []
+• **TDepth** *extends* `ReadonlyArray`\<`number`\> = []
 
 ## Defined in
 
-[inject-queries.ts:151](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/inject-queries.ts#L151)
+[inject-queries.ts:164](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L164)
diff --git a/docs/framework/angular/reference/type-aliases/queryfeaturekind.md b/docs/framework/angular/reference/type-aliases/queryfeaturekind.md
new file mode 100644
index 0000000000..ab00d3aef8
--- /dev/null
+++ b/docs/framework/angular/reference/type-aliases/queryfeaturekind.md
@@ -0,0 +1,14 @@
+---
+id: QueryFeatureKind
+title: QueryFeatureKind
+---
+
+# Type Alias: QueryFeatureKind
+
+```ts
+type QueryFeatureKind = typeof queryFeatures[number];
+```
+
+## Defined in
+
+[providers.ts:369](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L369)
diff --git a/docs/framework/angular/reference/type-aliases/queryfeatures.md b/docs/framework/angular/reference/type-aliases/queryfeatures.md
new file mode 100644
index 0000000000..f3b81f0110
--- /dev/null
+++ b/docs/framework/angular/reference/type-aliases/queryfeatures.md
@@ -0,0 +1,25 @@
+---
+id: QueryFeatures
+title: QueryFeatures
+---
+
+# Type Alias: QueryFeatures
+
+```ts
+type QueryFeatures = 
+  | DeveloperToolsFeature
+  | PersistQueryClientFeature;
+```
+
+A type alias that represents all Query features available for use with `provideTanStackQuery`.
+Features can be enabled by adding special functions to the `provideTanStackQuery` call.
+See documentation for each symbol to find corresponding function name. See also `provideTanStackQuery`
+documentation on how to use those functions.
+
+## See
+
+[provideTanStackQuery](../../functions/providetanstackquery.md)
+
+## Defined in
+
+[providers.ts:365](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L365)
diff --git a/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md b/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md
index b1bb260cec..b5fa78908f 100644
--- a/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md
+++ b/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md
@@ -6,7 +6,7 @@ title: UndefinedInitialDataInfiniteOptions
 # Type Alias: UndefinedInitialDataInfiniteOptions\<TQueryFnData, TError, TData, TQueryKey, TPageParam\>
 
 ```ts
-type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>: CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & object;
+type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & object;
 ```
 
 ## Type declaration
@@ -14,7 +14,9 @@ type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey,
 ### initialData?
 
 ```ts
-optional initialData: undefined;
+optional initialData: 
+  | NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>
+| InitialDataFunction<NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>>;
 ```
 
 ## Type Parameters
@@ -25,10 +27,10 @@ optional initialData: undefined;
 
 • **TData** = `InfiniteData`\<`TQueryFnData`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 • **TPageParam** = `unknown`
 
 ## Defined in
 
-[infinite-query-options.ts:12](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/infinite-query-options.ts#L12)
+[infinite-query-options.ts:12](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L12)
diff --git a/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md b/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md
index bf64cf110e..e91f7fc0c3 100644
--- a/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md
+++ b/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md
@@ -6,7 +6,7 @@ title: UndefinedInitialDataOptions
 # Type Alias: UndefinedInitialDataOptions\<TQueryFnData, TError, TData, TQueryKey\>
 
 ```ts
-type UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object;
+type UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object;
 ```
 
 ## Type declaration
@@ -14,7 +14,9 @@ type UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: Create
 ### initialData?
 
 ```ts
-optional initialData: undefined;
+optional initialData: 
+  | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
+| NonUndefinedGuard<TQueryFnData>;
 ```
 
 ## Type Parameters
@@ -25,8 +27,8 @@ optional initialData: undefined;
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 ## Defined in
 
-[query-options.ts:7](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/angular-query-experimental/src/query-options.ts#L7)
+[query-options.ts:12](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L12)
diff --git a/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md b/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md
new file mode 100644
index 0000000000..7843ee7778
--- /dev/null
+++ b/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md
@@ -0,0 +1,34 @@
+---
+id: UnusedSkipTokenInfiniteOptions
+title: UnusedSkipTokenInfiniteOptions
+---
+
+# Type Alias: UnusedSkipTokenInfiniteOptions\<TQueryFnData, TError, TData, TQueryKey, TPageParam\>
+
+```ts
+type UnusedSkipTokenInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> = OmitKeyof<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>, "queryFn"> & object;
+```
+
+## Type declaration
+
+### queryFn?
+
+```ts
+optional queryFn: Exclude<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>["queryFn"], SkipToken | undefined>;
+```
+
+## Type Parameters
+
+• **TQueryFnData**
+
+• **TError** = `DefaultError`
+
+• **TData** = `InfiniteData`\<`TQueryFnData`\>
+
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
+
+• **TPageParam** = `unknown`
+
+## Defined in
+
+[infinite-query-options.ts:34](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L34)
diff --git a/docs/framework/angular/reference/type-aliases/unusedskiptokenoptions.md b/docs/framework/angular/reference/type-aliases/unusedskiptokenoptions.md
new file mode 100644
index 0000000000..37ba0231c1
--- /dev/null
+++ b/docs/framework/angular/reference/type-aliases/unusedskiptokenoptions.md
@@ -0,0 +1,32 @@
+---
+id: UnusedSkipTokenOptions
+title: UnusedSkipTokenOptions
+---
+
+# Type Alias: UnusedSkipTokenOptions\<TQueryFnData, TError, TData, TQueryKey\>
+
+```ts
+type UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> = OmitKeyof<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object;
+```
+
+## Type declaration
+
+### queryFn?
+
+```ts
+optional queryFn: Exclude<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>["queryFn"], SkipToken | undefined>;
+```
+
+## Type Parameters
+
+• **TQueryFnData** = `unknown`
+
+• **TError** = `DefaultError`
+
+• **TData** = `TQueryFnData`
+
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
+
+## Defined in
+
+[query-options.ts:24](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L24)
diff --git a/docs/framework/angular/reference/variables/queryfeatures.md b/docs/framework/angular/reference/variables/queryfeatures.md
new file mode 100644
index 0000000000..7f58635021
--- /dev/null
+++ b/docs/framework/angular/reference/variables/queryfeatures.md
@@ -0,0 +1,14 @@
+---
+id: queryFeatures
+title: queryFeatures
+---
+
+# Variable: queryFeatures
+
+```ts
+const queryFeatures: readonly ["DeveloperTools", "PersistQueryClient"];
+```
+
+## Defined in
+
+[providers.ts:367](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L367)
diff --git a/docs/framework/react/guides/advanced-ssr.md b/docs/framework/react/guides/advanced-ssr.md
index a774868109..6b5b91c425 100644
--- a/docs/framework/react/guides/advanced-ssr.md
+++ b/docs/framework/react/guides/advanced-ssr.md
@@ -5,7 +5,7 @@ title: Advanced Server Rendering
 
 Welcome to the Advanced Server Rendering guide, where you will learn all about using React Query with streaming, Server Components and the Next.js app router.
 
-You might want to read the [Server Rendering & Hydration guide](./ssr.md) before this one as it teaches the basics for using React Query with SSR, and [Performance & Request Waterfalls](./request-waterfalls.md) as well as [Prefetching & Router Integration](./prefetching.md) also contains valuable background.
+You might want to read the [Server Rendering & Hydration guide](../ssr.md) before this one as it teaches the basics for using React Query with SSR, and [Performance & Request Waterfalls](../request-waterfalls.md) as well as [Prefetching & Router Integration](../prefetching.md) also contains valuable background.
 
 Before we start, let's note that while the `initialData` approach outlined in the SSR guide also works with Server Components, we'll focus this guide on the hydration APIs.
 
@@ -13,7 +13,7 @@ Before we start, let's note that while the `initialData` approach outlined in th
 
 We won't cover Server Components in depth here, but the short version is that they are components that are guaranteed to _only_ run on the server, both for the initial page view and **also on page transitions**. This is similar to how Next.js `getServerSideProps`/`getStaticProps` and Remix `loader` works, as these also always run on the server but while those can only return data, Server Components can do a lot more. The data part is central to React Query however, so let's focus on that.
 
-How do we take what we learned in the Server Rendering guide about [passing data prefetched in framework loaders to the app](./ssr.md#using-the-hydration-apis) and apply that to Server Components and the Next.js app router? The best way to start thinking about this is to consider Server Components as "just" another framework loader.
+How do we take what we learned in the Server Rendering guide about [passing data prefetched in framework loaders to the app](../ssr.md#using-the-hydration-apis) and apply that to Server Components and the Next.js app router? The best way to start thinking about this is to consider Server Components as "just" another framework loader.
 
 ### A quick note on terminology
 
@@ -530,7 +530,7 @@ export default function Posts() {
 
 Now, your `getPosts` function can return e.g. `Temporal` datetime objects and the data will be serialized and deserialized on the client, assuming your transformer can serialize and deserialize those data types.
 
-For more information, check out the [Next.js App with Prefetching Example](../examples/nextjs-app-prefetching).
+For more information, check out the [Next.js App with Prefetching Example](../../examples/nextjs-app-prefetching).
 
 ## Experimental streaming without prefetching in Next.js
 
@@ -597,11 +597,11 @@ export function Providers(props: { children: React.ReactNode }) {
 }
 ```
 
-For more information, check out the [NextJs Suspense Streaming Example](../examples/nextjs-suspense-streaming).
+For more information, check out the [NextJs Suspense Streaming Example](../../examples/nextjs-suspense-streaming).
 
 The big upside is that you no longer need to prefetch queries manually to have SSR work, and it even still streams in the result! This gives you phenomenal DX and lower code complexity.
 
-The downside is easiest to explain if we look back at [the complex request waterfall example](./request-waterfalls.md#code-splitting) in the Performance & Request Waterfalls guide. Server Components with prefetching effectively eliminates the request waterfalls both for the initial page load **and** any subsequent navigation. This prefetch-less approach however will only flatten the waterfalls on the initial page load but ends up the same deep waterfall as the original example on page navigations:
+The downside is easiest to explain if we look back at [the complex request waterfall example](../request-waterfalls.md#code-splitting) in the Performance & Request Waterfalls guide. Server Components with prefetching effectively eliminates the request waterfalls both for the initial page load **and** any subsequent navigation. This prefetch-less approach however will only flatten the waterfalls on the initial page load but ends up the same deep waterfall as the original example on page navigations:
 
 ```
 1. |> JS for <Feed>
diff --git a/docs/framework/react/guides/caching.md b/docs/framework/react/guides/caching.md
index 249d92bd10..116533c89b 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](./important-defaults.md) before reading this guide
+> Please thoroughly read the [Important Defaults](../important-defaults.md) before reading this guide
 
 ## Basic Example
 
@@ -23,7 +23,7 @@ Let's assume we are using the default `gcTime` of **5 minutes** and the default
 - 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.md) are updated (including `isFetching`, `isPending`, 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.md) are updated (including `isFetching`, `isPending`, 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 garbage collection timeout is set using `gcTime` to delete and garbage collect the query (defaults to **5 minutes**).
diff --git a/docs/framework/react/guides/dependent-queries.md b/docs/framework/react/guides/dependent-queries.md
index e6157f234c..d93288c5fc 100644
--- a/docs/framework/react/guides/dependent-queries.md
+++ b/docs/framework/react/guides/dependent-queries.md
@@ -90,6 +90,6 @@ const usersMessages = useQueries({
 
 ## A note about performance
 
-Dependent queries by definition constitutes a form of [request waterfall](./request-waterfalls.md), which hurts performance. If we pretend both queries take the same amount of time, doing them serially instead of in parallel always takes twice as much time, which is especially hurtful when it happens on a client that has high latency. If you can, it's always better to restructure the backend APIs so that both queries can be fetched in parallel, though that might not always be practically feasible.
+Dependent queries by definition constitutes a form of [request waterfall](../request-waterfalls.md), which hurts performance. If we pretend both queries take the same amount of time, doing them serially instead of in parallel always takes twice as much time, which is especially hurtful when it happens on a client that has high latency. If you can, it's always better to restructure the backend APIs so that both queries can be fetched in parallel, though that might not always be practically feasible.
 
 In the example above, instead of first fetching `getUserByEmail` to be able to `getProjectsByUser`, introducing a new `getProjectsByUserEmail` query would flatten the waterfall.
diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md
index 2857209455..57aeb524c5 100644
--- a/docs/framework/react/guides/important-defaults.md
+++ b/docs/framework/react/guides/important-defaults.md
@@ -36,7 +36,7 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul
 
 Have a look at the following articles from our Community Resources for further explanations of the defaults:
 
-- [Practical React Query](../community/tkdodos-blog.md#1-practical-react-query)
-- [React Query as a State Manager](../community/tkdodos-blog.md#10-react-query-as-a-state-manager)
+- [Practical React Query](../../community/tkdodos-blog.md#1-practical-react-query)
+- [React Query as a State Manager](../../community/tkdodos-blog.md#10-react-query-as-a-state-manager)
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/initial-query-data.md b/docs/framework/react/guides/initial-query-data.md
index b82ddc3c35..3e1c23920b 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`](./prefetching.md)
-  - [Manually place the data into the cache using `queryClient.setQueryData`](./prefetching.md)
+  - [Prefetch the data using `queryClient.prefetchQuery`](../prefetching.md)
+  - [Manually place the data into the cache using `queryClient.setQueryData`](../prefetching.md)
 
 ## 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.md#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.md#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 f29923932d..6f0e75537f 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](./mutations.md)
+You can wire up your invalidations to happen using any of the callbacks available in the [`useMutation` hook](../mutations.md)
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 5f22f64de4..b646580605 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.md)
-- [useQueryErrorResetBoundary](../reference/useQueryErrorResetBoundary.md)
+- [QueryErrorResetBoundary](../../reference/QueryErrorResetBoundary.md)
+- [useQueryErrorResetBoundary](../../reference/useQueryErrorResetBoundary.md)
 
 ### `QueryCache.getQuery()` has been replaced by `QueryCache.find()`.
 
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 315c1d6f67..ba41113f47 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](./default-query-function.md) 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.md) easier.
 
-However, we have not followed this concept through to all apis. For example, when using the `predicate` function on [Query Filters](./filters.md) 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.md) 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](./queries.md#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.md#why-two-different-states).
+With the introduction of the new [fetchStatus](../queries.md#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.md#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' // [!code ++]
 ```
 
-Also, have a look at [the guide on dependent queries](./dependent-queries.md)
+Also, have a look at [the guide on dependent queries](../dependent-queries.md)
 
 #### disabled queries
 
@@ -121,7 +121,7 @@ Due to this change, disabled queries (even temporarily disabled ones) will start
   isInitialLoading // [!code ++]
 ```
 
-See also the guide on [disabling queries](./disabling-queries.md#isInitialLoading)
+See also the guide on [disabling queries](../disabling-queries.md#isInitialLoading)
 
 ### new API for `useQueries`
 
@@ -142,7 +142,7 @@ The `useQueries` hook now accepts an object with a `queries` prop as its input.
 
 ### 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](./initial-query-data.md#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.md#initial-data-function) will also _not_ set data.
 
 Further, it is an easy bug to produce `Promise<void>` by adding logging in the queryFn:
 
@@ -156,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](./network-mode.md)
+Please read the [New Features announcement](#proper-offline-support) about online / offline support, and also the dedicated page about [Network mode](../network-mode.md)
 
 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:
 
@@ -217,7 +217,7 @@ queryClient.refetchQueries({ queryKey: ['todos'] }, { cancelRefetch: false })
 
 ### Query Filters
 
-A [query filter](./filters.md) 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.md) 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
@@ -242,7 +242,7 @@ The filter defaults to `all`, and you can choose to only match `active` or `inac
 
 #### refetchActive / refetchInactive
 
-[queryClient.invalidateQueries](../../../reference/QueryClient.md#queryclientinvalidatequeries) had two additional, similar flags:
+[queryClient.invalidateQueries](../../../../reference/QueryClient.md#queryclientinvalidatequeries) had two additional, similar flags:
 
 ```
 refetchActive: Boolean
@@ -280,7 +280,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.md) and [`createAsyncStoragePersister`](../plugins/createAsyncStoragePersister.md) 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.md) and [`createAsyncStoragePersister`](../../plugins/createAsyncStoragePersister.md) 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:
 
@@ -296,7 +296,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](./query-cancellation.md#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.md) (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.md#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.md) (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
 
@@ -427,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.md#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.md#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) =>
diff --git a/docs/framework/react/guides/migrating-to-v5.md b/docs/framework/react/guides/migrating-to-v5.md
index c87dc7bb79..b94f412bf3 100644
--- a/docs/framework/react/guides/migrating-to-v5.md
+++ b/docs/framework/react/guides/migrating-to-v5.md
@@ -157,7 +157,7 @@ Previously, This function was used to indicate whether to use previous `data` (`
 You can achieve the same functionality by passing a function to `structuralSharing` instead:
 
 ```tsx
- import { replaceEqualDeep } from '@tanstack/react-query'
+import { replaceEqualDeep } from '@tanstack/react-query'
 
 - isDataEqual: (oldData, newData) => customCheck(oldData, newData) // [!code --]
 + structuralSharing: (oldData, newData) => customCheck(oldData, newData) ? oldData : replaceEqualDeep(oldData, newData) // [!code ++]
@@ -218,7 +218,7 @@ useQuery<number, string>({
 })
 ```
 
-For a way to set a different kind of Error globally, see [the TypeScript Guide](../typescript.md#registering-a-global-error).
+For a way to set a different kind of Error globally, see [the TypeScript Guide](../../typescript.md#registering-a-global-error).
 
 ### eslint `prefer-query-object-syntax` rule is removed
 
@@ -480,7 +480,7 @@ if (queryInfo.data) {
 }
 ```
 
-Here, we are only changing how the UI looks when the mutation is running instead of writing data directly to the cache. This works best if we only have one place where we need to show the optimistic update. For more details, have a look at the [optimistic updates documentation](./optimistic-updates.md).
+Here, we are only changing how the UI looks when the mutation is running instead of writing data directly to the cache. This works best if we only have one place where we need to show the optimistic update. For more details, have a look at the [optimistic updates documentation](../optimistic-updates.md).
 
 ### Limited, Infinite Queries with new maxPages option
 
@@ -494,21 +494,21 @@ Note that the infinite list must be bi-directional, which requires both `getNext
 
 ### Infinite Queries can prefetch multiple pages
 
-Infinite Queries can be prefetched like regular Queries. Per default, only the first page of the Query will be prefetched and will be stored under the given QueryKey. If you want to prefetch more than one page, you can use the `pages` option. Read the [prefetching guide](./prefetching.md) for more information.
+Infinite Queries can be prefetched like regular Queries. Per default, only the first page of the Query will be prefetched and will be stored under the given QueryKey. If you want to prefetch more than one page, you can use the `pages` option. Read the [prefetching guide](../prefetching.md) for more information.
 
 ### New `combine` option for `useQueries`
 
-See the [useQueries docs](../reference/useQueries.md#combine) for more details.
+See the [useQueries docs](../../reference/useQueries.md#combine) for more details.
 
 ### Experimental `fine grained storage persister`
 
-See the [experimental_createPersister docs](../plugins/createPersister.md) for more details.
+See the [experimental_createPersister docs](../../plugins/createPersister.md) for more details.
 
 [//]: # 'FrameworkSpecificNewFeatures'
 
 ### Typesafe way to create Query Options
 
-See the [TypeScript docs](../typescript.md#typing-query-options) for more details.
+See the [TypeScript docs](../../typescript.md#typing-query-options) for more details.
 
 ### new hooks for suspense
 
@@ -524,6 +524,6 @@ const { data: post } = useSuspenseQuery({
 
 The experimental `suspense: boolean` flag on the query hooks has been removed.
 
-You can read more about them in the [suspense docs](./suspense.md).
+You can read more about them in the [suspense docs](../suspense.md).
 
 [//]: # 'FrameworkSpecificNewFeatures'
diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md
index 655d44f28d..852ce7eb5c 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.md#queryclientinvalidatequeries) and the [Query Client's `setQueryData` method](../../../reference/QueryClient.md#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.md#queryclientinvalidatequeries) and the [Query Client's `setQueryData` method](../../../../reference/QueryClient.md#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](./invalidations-from-mutations.md) and even [optimistic updates](./optimistic-updates.md)
+`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.md) and even [optimistic updates](../optimistic-updates.md)
 
 [//]: # 'Example4'
 
@@ -182,233 +182,4 @@ useMutation({
 
 [//]: # 'Example5'
 
-You might find that you want to **trigger additional callbacks** beyond the ones defined on `useMutation` when calling `mutate`. This can be used to trigger component-specific side effects. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported options include: `onSuccess`, `onError` and `onSettled`. Please keep in mind that those additional callbacks won't run if your component unmounts _before_ the mutation finishes.
-
-[//]: # 'Example6'
-
-```tsx
-useMutation({
-  mutationFn: addTodo,
-  onSuccess: (data, variables, context) => {
-    // I will fire first
-  },
-  onError: (error, variables, context) => {
-    // I will fire first
-  },
-  onSettled: (data, error, variables, context) => {
-    // I will fire first
-  },
-})
-
-mutate(todo, {
-  onSuccess: (data, variables, context) => {
-    // I will fire second!
-  },
-  onError: (error, variables, context) => {
-    // I will fire second!
-  },
-  onSettled: (data, error, variables, context) => {
-    // I will fire second!
-  },
-})
-```
-
-[//]: # 'Example6'
-
-### Consecutive mutations
-
-There is a slight difference in handling `onSuccess`, `onError` and `onSettled` callbacks when it comes to consecutive mutations. When passed to the `mutate` function, they will be fired up only _once_ and only if the component is still mounted. This is due to the fact that mutation observer is removed and resubscribed every time when the `mutate` function is called. On the contrary, `useMutation` handlers execute for each `mutate` call.
-
-> Be aware that most likely, `mutationFn` passed to `useMutation` is asynchronous. In that case, the order in which mutations are fulfilled may differ from the order of `mutate` function calls.
-
-[//]: # 'Example7'
-
-```tsx
-useMutation({
-  mutationFn: addTodo,
-  onSuccess: (data, variables, context) => {
-    // Will be called 3 times
-  },
-})
-
-const todos = ['Todo 1', 'Todo 2', 'Todo 3']
-todos.forEach((todo) => {
-  mutate(todo, {
-    onSuccess: (data, variables, context) => {
-      // Will execute only once, for the last mutation (Todo 3),
-      // regardless which mutation resolves first
-    },
-  })
-})
-```
-
-[//]: # 'Example7'
-
-## Promises
-
-Use `mutateAsync` instead of `mutate` to get a promise which will resolve on success or throw on an error. This can for example be used to compose side effects.
-
-[//]: # 'Example8'
-
-```tsx
-const mutation = useMutation({ mutationFn: addTodo })
-
-try {
-  const todo = await mutation.mutateAsync(todo)
-  console.log(todo)
-} catch (error) {
-  console.error(error)
-} finally {
-  console.log('done')
-}
-```
-
-[//]: # 'Example8'
-
-## Retry
-
-By default, TanStack Query will not retry a mutation on error, but it is possible with the `retry` option:
-
-[//]: # 'Example9'
-
-```tsx
-const mutation = useMutation({
-  mutationFn: addTodo,
-  retry: 3,
-})
-```
-
-[//]: # 'Example9'
-
-If mutations fail because the device is offline, they will be retried in the same order when the device reconnects.
-
-## Persist mutations
-
-Mutations can be persisted to storage if needed and resumed at a later point. This can be done with the hydration functions:
-
-[//]: # 'Example10'
-
-```tsx
-const queryClient = new QueryClient()
-
-// Define the "addTodo" mutation
-queryClient.setMutationDefaults(['addTodo'], {
-  mutationFn: addTodo,
-  onMutate: async (variables) => {
-    // Cancel current queries for the todos list
-    await queryClient.cancelQueries({ queryKey: ['todos'] })
-
-    // Create optimistic todo
-    const optimisticTodo = { id: uuid(), title: variables.title }
-
-    // Add optimistic todo to todos list
-    queryClient.setQueryData(['todos'], (old) => [...old, optimisticTodo])
-
-    // Return context with the optimistic todo
-    return { optimisticTodo }
-  },
-  onSuccess: (result, variables, context) => {
-    // Replace optimistic todo in the todos list with the result
-    queryClient.setQueryData(['todos'], (old) =>
-      old.map((todo) =>
-        todo.id === context.optimisticTodo.id ? result : todo,
-      ),
-    )
-  },
-  onError: (error, variables, context) => {
-    // Remove optimistic todo from the todos list
-    queryClient.setQueryData(['todos'], (old) =>
-      old.filter((todo) => todo.id !== context.optimisticTodo.id),
-    )
-  },
-  retry: 3,
-})
-
-// Start mutation in some component:
-const mutation = useMutation({ mutationKey: ['addTodo'] })
-mutation.mutate({ title: 'title' })
-
-// If the mutation has been paused because the device is for example offline,
-// Then the paused mutation can be dehydrated when the application quits:
-const state = dehydrate(queryClient)
-
-// The mutation can then be hydrated again when the application is started:
-hydrate(queryClient, state)
-
-// Resume the paused mutations:
-queryClient.resumePausedMutations()
-```
-
-[//]: # 'Example10'
-
-### Persisting Offline mutations
-
-If you persist offline mutations with the [persistQueryClient plugin](../plugins/persistQueryClient.md), 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`.
-
-[//]: # 'Example11'
-
-```tsx
-const persister = createSyncStoragePersister({
-  storage: window.localStorage,
-})
-const queryClient = new QueryClient({
-  defaultOptions: {
-    queries: {
-      gcTime: 1000 * 60 * 60 * 24, // 24 hours
-    },
-  },
-})
-
-// we need a default mutation function so that paused mutations can resume after a page reload
-queryClient.setMutationDefaults(['todos'], {
-  mutationFn: ({ id, data }) => {
-    return api.updateTodo(id, data)
-  },
-})
-
-export default function App() {
-  return (
-    <PersistQueryClientProvider
-      client={queryClient}
-      persistOptions={{ persister }}
-      onSuccess={() => {
-        // resume mutations after initial restore from localStorage was successful
-        queryClient.resumePausedMutations()
-      }}
-    >
-      <RestOfTheApp />
-    </PersistQueryClientProvider>
-  )
-}
-```
-
-[//]: # 'Example11'
-
-We also have an extensive [offline example](../examples/offline) that covers both queries and mutations.
-
-## Mutation Scopes
-
-Per default, all mutations run in parallel - even if you invoke `.mutate()` of the same mutation multiple times. Mutations can be given a `scope` with an `id` to avoid that. All mutations with the same `scope.id` will run in serial, which means when they are triggered, they will start in `isPaused: true` state if there is already a mutation for that scope in progress. They will be put into a queue and will automatically resume once their time in the queue has come.
-
-[//]: # 'ExampleScopes'
-
-```tsx
-const mutation = useMutation({
-  mutationFn: addTodo,
-  scope: {
-    id: 'todo',
-  },
-})
-```
-
-[//]: # 'ExampleScopes'
-[//]: # 'Materials'
-
-## Further reading
-
-For more information about mutations, have a look at [#12: Mastering Mutations in React Query](../community/tkdodos-blog.md#12-mastering-mutations-in-react-query) from
-the Community Resources.
-
-[//]: # 'Materials'
+You might find that you want to **trigger additional callbacks** beyond the ones defined on `useMutation` when calling `mutate`. This can be used to trigger component-specific side effects. To do that, you can provide any of the same callback options to the `
\ No newline at end of file
diff --git a/docs/framework/react/guides/network-mode.md b/docs/framework/react/guides/network-mode.md
index 6457f6b145..ee49f02574 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](./queries.md) and [Mutations](./mutations.md) 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](../queries.md) and [Mutations](../mutations.md) 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` (`pending`, `error`, `success`) it is in if the fetch cannot be made because there is no network connection. However, a [fetchStatus](./queries.md#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` (`pending`, `error`, `success`) it is in if the fetch cannot be made because there is no network connection. However, a [fetchStatus](../queries.md#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 `pending` state to show a loading spinner. Queries can be in `state: 'pending'`, 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](./query-cancellation.md) 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](../query-cancellation.md) 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.md) 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.md) in an offline state.
+The [TanStack Query Devtools](../../devtools.md) 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.md) 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 841339d897..b9e1a0fa5f 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](./prefetching.md)
+  - [Prefetch or fetch the data using `queryClient` and the `placeholderData` option](../prefetching.md)
 
 When we use `placeholderData`, our Query will not be in a `pending` state - it will start out as being in `success` state, because we have `data` to display - even if that data is just "placeholder" data. To distinguish it from "real" data, we will also have the `isPlaceholderData` flag set to `true` on the Query result.
 
@@ -54,7 +54,7 @@ function Todos() {
 
 ## Placeholder Data as a Function
 
-`placeholderData` can also be a function, where you can get access to the data and Query meta information of a "previous" successful Query. This is useful for situations where you want to use the data from one query as the placeholder data for another query. When the QueryKey changes, e.g. from `['todos', 1]` to `['todos', 2]`, we can keep displaying "old" data instead of having to show a loading spinner while data is _transitioning_ from one Query to the next. For more information, see [Paginated Queries](./paginated-queries.md).
+`placeholderData` can also be a function, where you can get access to the data and Query meta information of a "previous" successful Query. This is useful for situations where you want to use the data from one query as the placeholder data for another query. When the QueryKey changes, e.g. from `['todos', 1]` to `['todos', 2]`, we can keep displaying "old" data instead of having to show a loading spinner while data is _transitioning_ from one Query to the next. For more information, see [Paginated Queries](../paginated-queries.md).
 
 [//]: # 'ExampleFunction'
 
@@ -96,6 +96,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.md#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.md#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 d1a9c13169..d11b6f22b4 100644
--- a/docs/framework/react/guides/prefetching.md
+++ b/docs/framework/react/guides/prefetching.md
@@ -12,9 +12,9 @@ There are a few different prefetching patterns:
 3. Via router integration
 4. During Server Rendering (another form of router integration)
 
-In this guide, we'll take a look at the first three, while the fourth will be covered in depth in the [Server Rendering & Hydration guide](./ssr.md) and the [Advanced Server Rendering guide](./advanced-ssr.md).
+In this guide, we'll take a look at the first three, while the fourth will be covered in depth in the [Server Rendering & Hydration guide](../ssr.md) and the [Advanced Server Rendering guide](../advanced-ssr.md).
 
-One specific use of prefetching is to avoid Request Waterfalls, for an in-depth background and explanation of those, see the [Performance & Request Waterfalls guide](./request-waterfalls.md).
+One specific use of prefetching is to avoid Request Waterfalls, for an in-depth background and explanation of those, see the [Performance & Request Waterfalls guide](../request-waterfalls.md).
 
 ## prefetchQuery & prefetchInfiniteQuery
 
@@ -196,7 +196,7 @@ This starts fetching `'article-comments'` immediately and flattens the waterfall
 
 [//]: # 'Suspense'
 
-If you want to prefetch together with Suspense, you will have to do things a bit differently. You can't use `useSuspenseQueries` to prefetch, since the prefetch would block the component from rendering. You also can not use `useQuery` for the prefetch, because that wouldn't start the prefetch until after suspenseful query had resolved. For this scenario, you can use the [`usePrefetchQuery`](../reference/usePrefetchQuery.md) or the [`usePrefetchInfiniteQuery`](../reference/usePrefetchInfiniteQuery.md) hooks available in the library.
+If you want to prefetch together with Suspense, you will have to do things a bit differently. You can't use `useSuspenseQueries` to prefetch, since the prefetch would block the component from rendering. You also can not use `useQuery` for the prefetch, because that wouldn't start the prefetch until after suspenseful query had resolved. For this scenario, you can use the [`usePrefetchQuery`](../../reference/usePrefetchQuery.md) or the [`usePrefetchInfiniteQuery`](../../reference/usePrefetchInfiniteQuery.md) hooks available in the library.
 
 You can now use `useSuspenseQuery` in the component that actually needs the data. You _might_ want to wrap this later component in its own `<Suspense>` boundary so the "secondary" query we are prefetching does not block rendering of the "primary" data.
 
@@ -267,7 +267,7 @@ Let's look at a slightly more advanced case next.
 
 ### Dependent Queries & Code Splitting
 
-Sometimes we want to prefetch conditionally, based on the result of another fetch. Consider this example borrowed from the [Performance & Request Waterfalls guide](./request-waterfalls.md):
+Sometimes we want to prefetch conditionally, based on the result of another fetch. Consider this example borrowed from the [Performance & Request Waterfalls guide](../request-waterfalls.md):
 
 [//]: # 'ExampleConditionally1'
 
@@ -367,7 +367,7 @@ There is a tradeoff however, in that the code for `getGraphDataById` is now incl
 
 Because data fetching in the component tree itself can easily lead to request waterfalls and the different fixes for that can be cumbersome as they accumulate throughout the application, an attractive way to do prefetching is integrating it at the router level.
 
-In this approach, you explicitly declare for each _route_ what data is going to be needed for that component tree, ahead of time. Because Server Rendering has traditionally needed all data to be loaded before rendering starts, this has been the dominating approach for SSR'd apps for a long time. This is still a common approach and you can read more about it in the [Server Rendering & Hydration guide](./ssr.md).
+In this approach, you explicitly declare for each _route_ what data is going to be needed for that component tree, ahead of time. Because Server Rendering has traditionally needed all data to be loaded before rendering starts, this has been the dominating approach for SSR'd apps for a long time. This is still a common approach and you can read more about it in the [Server Rendering & Hydration guide](../ssr.md).
 
 For now, let's focus on the client side case and look at an example of how you can make this work with [Tanstack Router](https://tanstack.com/router). These examples leave out a lot of setup and boilerplate to stay concise, you can check out a [full React Query example](https://tanstack.com/router/.latest/docs/framework/react/examples/basic-react-query-file-based) over in the [Tanstack Router docs](https://tanstack.com/router/latest/docs).
 
@@ -412,13 +412,13 @@ const articleRoute = new Route({
 })
 ```
 
-Integration with other routers is also possible, see the [React Router example](../examples/react-router) for another demonstration.
+Integration with other routers is also possible, see the [react-router](../../examples/react-router) for another demonstration.
 
 [//]: # 'Router'
 
 ## Manually Priming a Query
 
-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.md#queryclientsetquerydata) to directly add or update a query's cached result by key.
+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.md#queryclientsetquerydata) to directly add or update a query's cached result by key.
 
 [//]: # 'ExampleManualPriming'
 
@@ -431,8 +431,8 @@ 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.md#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.md#17-seeding-the-query-cache) from the Community Resources.
 
-Integrating with Server Side routers and frameworks is very similar to what we just saw, with the addition that the data has to passed from the server to the client to be hydrated into the cache there. To learn how, continue on to the [Server Rendering & Hydration guide](./ssr.md).
+Integrating with Server Side routers and frameworks is very similar to what we just saw, with the addition that the data has to passed from the server to the client to be hydrated into the cache there. To learn how, continue on to the [Server Rendering & Hydration guide](../ssr.md).
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/queries.md b/docs/framework/react/guides/queries.md
index ea3881cf41..8107801143 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](./mutations.md) 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.md) 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, 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](./network-mode.md) guide.
+- `fetchStatus === 'paused'` - The query wanted to fetch, but it is paused. Read more about this in the [Network Mode](../network-mode.md) 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 `pending` state without actually fetching
 
 ## Further Reading
 
-For an alternative way of performing status checks, have a look at the [Community Resources](../community/tkdodos-blog.md#4-status-checks-in-react-query).
+For an alternative way of performing status checks, have a look at the [Community Resources](../../community/tkdodos-blog.md#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 4fa621c697..7cd0aa7209 100644
--- a/docs/framework/react/guides/query-functions.md
+++ b/docs/framework/react/guides/query-functions.md
@@ -99,15 +99,15 @@ function fetchTodoList({ queryKey }) {
 
 The `QueryFunctionContext` is the object passed to each query function. It consists of:
 
-- `queryKey: QueryKey`: [Query Keys](./query-keys.md)
-- `client: QueryClient`: [QueryClient](../../../reference/QueryClient.md)
+- `queryKey: QueryKey`: [Query Keys](../query-keys.md)
+- `client: QueryClient`: [QueryClient](../../../../reference/QueryClient.md)
 - `signal?: AbortSignal`
   - [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) instance provided by TanStack Query
-  - Can be used for [Query Cancellation](./query-cancellation.md)
+  - Can be used for [Query Cancellation](../query-cancellation.md)
 - `meta: Record<string, unknown> | undefined`
   - an optional field you can fill with additional information about your query
 
-Additionally, [Infinite Queries](./infinite-queries.md) get the following options passed:
+Additionally, [Infinite Queries](../infinite-queries.md) get the following options passed:
 
 - `pageParam: TPageParam`
   - the page parameter used to fetch the current page
diff --git a/docs/framework/react/guides/query-invalidation.md b/docs/framework/react/guides/query-invalidation.md
index 3981b4d221..41a0fe50ab 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](./filters.md#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](../filters.md#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 9370bd76d2..a914aefbb8 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.md) 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.md) 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.md#8-effective-react-query-keys) and check the [Query Key Factory Package](../community/community-projects.md#query-key-factory) from
+For tips on organizing Query Keys in larger applications, have a look at [Effective React Query Keys](../../community/tkdodos-blog.md#8-effective-react-query-keys) and check the [Query Key Factory Package](../../community/community-projects.md#query-key-factory) from
 the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/guides/query-options.md b/docs/framework/react/guides/query-options.md
index 03ee5d14e1..d66911a67f 100644
--- a/docs/framework/react/guides/query-options.md
+++ b/docs/framework/react/guides/query-options.md
@@ -3,7 +3,7 @@ id: query-options
 title: Query Options
 ---
 
-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. At runtime, this helper just returns whatever you pass into it, but it has a lot of advantages when using it [with TypeScript](../typescript.md#typing-query-options). You can define all possible options for a query in one place, and you'll also get type inference and type safety for all of them.
+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. At runtime, this helper just returns whatever you pass into it, but it has a lot of advantages when using it [with TypeScript](../../typescript.md#typing-query-options). You can define all possible options for a query in one place, and you'll also get type inference and type safety for all of them.
 
 [//]: # 'Example1'
 
@@ -31,9 +31,9 @@ queryClient.setQueryData(groupOptions(42).queryKey, newGroups)
 
 [//]: # 'Example1'
 
-For Infinite Queries, a separate [`infiniteQueryOptions`](../reference/infiniteQueryOptions.md) helper is available.
+For Infinite Queries, a separate [`infiniteQueryOptions`](../../reference/infiniteQueryOptions.md) helper is available.
 
-You can still override some options at the component level. A very common and useful pattern is to create per-component [`select`](./render-optimizations.md#select) functions:
+You can still override some options at the component level. A very common and useful pattern is to create per-component [`select`](../render-optimizations.md#select) functions:
 
 [//]: # 'Example2'
 
diff --git a/docs/framework/react/guides/render-optimizations.md b/docs/framework/react/guides/render-optimizations.md
index 75775eab34..91254670d2 100644
--- a/docs/framework/react/guides/render-optimizations.md
+++ b/docs/framework/react/guides/render-optimizations.md
@@ -21,7 +21,7 @@ React Query will only trigger a re-render if one of the properties returned from
 
 You can customize this feature by setting `notifyOnChangeProps` manually globally or on a per-query basis. If you want to turn that feature off, you can set `notifyOnChangeProps: 'all'`.
 
-> Note: The get trap of a proxy is invoked by accessing a property, either via destructuring or by accessing it directly. If you use object rest destructuring, you will disable this optimization. We have a [lint rule](../../../eslint/no-rest-destructuring.md) to guard against this pitfall.
+> Note: The get trap of a proxy is invoked by accessing a property, either via destructuring or by accessing it directly. If you use object rest destructuring, you will disable this optimization. We have a [lint rule](../../../../eslint/no-rest-destructuring.md) to guard against this pitfall.
 
 ## select
 
@@ -72,5 +72,5 @@ export const useTodoCount = () => {
 
 ## Further Reading
 
-For an in-depth guide about these topics, read [React Query Render Optimizations](../community/tkdodos-blog.md#3-react-query-render-optimizations) from
+For an in-depth guide about these topics, read [React Query Render Optimizations](../../community/tkdodos-blog.md#3-react-query-render-optimizations) from
 the Community Resources.
diff --git a/docs/framework/react/guides/request-waterfalls.md b/docs/framework/react/guides/request-waterfalls.md
index aaa350a0e7..e4e45a33fa 100644
--- a/docs/framework/react/guides/request-waterfalls.md
+++ b/docs/framework/react/guides/request-waterfalls.md
@@ -7,11 +7,11 @@ Application performance is a broad and complex area and while React Query can't
 
 The biggest performance footgun when using React Query, or indeed any data fetching library that lets you fetch data inside of components, is request waterfalls. The rest of this page will explain what they are, how you can spot them and how you can restructure your application or APIs to avoid them.
 
-The [Prefetching & Router Integration guide](./prefetching.md) builds on this and teaches you how to prefetch data ahead of time when it's not possible or feasible to restructure your application or APIs.
+The [Prefetching & Router Integration guide](../prefetching.md) builds on this and teaches you how to prefetch data ahead of time when it's not possible or feasible to restructure your application or APIs.
 
-The [Server Rendering & Hydration guide](./ssr.md) teaches you how to prefetch data on the server and pass that data down to the client so you don't have to fetch it again.
+The [Server Rendering & Hydration guide](../ssr.md) teaches you how to prefetch data on the server and pass that data down to the client so you don't have to fetch it again.
 
-The [Advanced Server Rendering guide](./advanced-ssr.md) further teaches you how to apply these patterns to Server Components and Streaming Server Rendering.
+The [Advanced Server Rendering guide](../advanced-ssr.md) further teaches you how to apply these patterns to Server Components and Streaming Server Rendering.
 
 ## What is a Request Waterfall?
 
@@ -65,7 +65,7 @@ With this as a basis, let's look at a few different patterns that can lead to Re
 
 ### Single Component Waterfalls / Serial Queries
 
-When a single component first fetches one query, and then another, that's a request waterfall. This can happen when the second query is a [Dependent Query](./dependent-queries.md), that is, it depends on data from the first query when fetching:
+When a single component first fetches one query, and then another, that's a request waterfall. This can happen when the second query is a [Dependent Query](../dependent-queries.md), that is, it depends on data from the first query when fetching:
 
 ```tsx
 // Get the user
@@ -91,7 +91,7 @@ const {
 
 While not always feasible, for optimal performance it's better to restructure your API so you can fetch both of these in a single query. In the example above, instead of first fetching `getUserByEmail` to be able to `getProjectsByUser`, introducing a new `getProjectsByUserEmail` query would flatten the waterfall.
 
-> Another way to mitigate dependent queries without restructuring your API is to move the waterfall to the server where latency is lower. This is the idea behind Server Components which are covered in the [Advanced Server Rendering guide](./advanced-ssr.md).
+> Another way to mitigate dependent queries without restructuring your API is to move the waterfall to the server where latency is lower. This is the idea behind Server Components which are covered in the [Advanced Server Rendering guide](../advanced-ssr.md).
 
 Another example of serial queries is when you use React Query with Suspense:
 
@@ -195,7 +195,7 @@ function Article({ id }) {
 
 The two queries will now fetch in parallel. Note that if you are using suspense, you'd want to combine these two queries into a single `useSuspenseQueries` instead.
 
-Another way to flatten this waterfall would be to prefetch the comments in the `<Article>` component, or prefetch both of these queries at the router level on page load or page navigation, read more about this in the [Prefetching & Router Integration guide](./prefetching.md).
+Another way to flatten this waterfall would be to prefetch the comments in the `<Article>` component, or prefetch both of these queries at the router level on page load or page navigation, read more about this in the [Prefetching & Router Integration guide](../prefetching.md).
 
 Next, let's look at a _Dependent Nested Component Waterfall_.
 
@@ -240,7 +240,7 @@ The second query `getGraphDataById` is dependent on its parent in two different
 2.   |> getGraphDataById()
 ```
 
-In this example, we can't trivially flatten the waterfall by just hoisting the query to the parent, or even adding prefetching. Just like the dependent query example at the beginning of this guide, one option is to refactor our API to include the graph data in the `getFeed` query. Another more advanced solution is to leverage Server Components to move the waterfall to the server where latency is lower (read more about this in the [Advanced Server Rendering guide](./advanced-ssr.md)) but note that this can be a very big architectural change.
+In this example, we can't trivially flatten the waterfall by just hoisting the query to the parent, or even adding prefetching. Just like the dependent query example at the beginning of this guide, one option is to refactor our API to include the graph data in the `getFeed` query. Another more advanced solution is to leverage Server Components to move the waterfall to the server where latency is lower (read more about this in the [Advanced Server Rendering guide](../advanced-ssr.md)) but note that this can be a very big architectural change.
 
 You can have good performance even with a few query waterfalls here and there, just know they are a common performance concern and be mindful about them. An especially insidious version is when Code Splitting is involved, let's take a look at this next.
 
@@ -307,7 +307,7 @@ But that's just looking at the code from the example, if we consider what the fi
 5.         |> getGraphDataById()
 ```
 
-Note that this looks a bit different when server rendering, we will explore that further in the [Server Rendering & Hydration guide](./ssr.md). Also note that it's not uncommon for the route that contains `<Feed>` to also be code split, which could add yet another hop.
+Note that this looks a bit different when server rendering, we will explore that further in the [Server Rendering & Hydration guide](../ssr.md). Also note that it's not uncommon for the route that contains `<Feed>` to also be code split, which could add yet another hop.
 
 In the code split case, it might actually help to hoist the `getGraphDataById` query to the `<Feed>` component and make it conditional, or add a conditional prefetch. That query could then be fetched in parallel with the code, turning the example part into this:
 
@@ -317,14 +317,14 @@ In the code split case, it might actually help to hoist the `getGraphDataById` q
 2.   |> JS for <GraphFeedItem>
 ```
 
-This is very much a tradeoff however. You are now including the data fetching code for `getGraphDataById` in the same bundle as `<Feed>`, so evaluate what is best for your case. Read more about how to do this in the [Prefetching & Router Integration guide](./prefetching.md).
+This is very much a tradeoff however. You are now including the data fetching code for `getGraphDataById` in the same bundle as `<Feed>`, so evaluate what is best for your case. Read more about how to do this in the [Prefetching & Router Integration guide](../prefetching.md).
 
 > The tradeoff between:
 >
 > - Include all data fetching code in the main bundle, even if we seldom use it
 > - Put the data fetching code in the code split bundle, but with a request waterfall
 >
-> is not great and has been one of the motivations for Server Components. With Server Components, it's possible to avoid both, read more about how this applies to React Query in the [Advanced Server Rendering guide](./advanced-ssr.md).
+> is not great and has been one of the motivations for Server Components. With Server Components, it's possible to avoid both, read more about how this applies to React Query in the [Advanced Server Rendering guide](../advanced-ssr.md).
 
 ## Summary and takeaways
 
@@ -337,4 +337,4 @@ Request Waterfalls are a very common and complex performance concern with many t
 
 Because of this accidental complexity, it pays off to be mindful of waterfalls and regularly examine your application looking for them (a good way is to examine the Network tab every now and then!). You don't necessarily have to flatten them all to have good performance, but keep an eye out for the high impact ones.
 
-In the next guide, we'll look at more ways to flatten waterfalls, by leveraging [Prefetching & Router Integration](./prefetching.md).
+In the next guide, we'll look at more ways to flatten waterfalls, by leveraging [Prefetching & Router Integration](../prefetching.md).
diff --git a/docs/framework/react/guides/ssr.md b/docs/framework/react/guides/ssr.md
index 82846a41bd..eeecf03d2f 100644
--- a/docs/framework/react/guides/ssr.md
+++ b/docs/framework/react/guides/ssr.md
@@ -5,9 +5,9 @@ title: Server Rendering & Hydration
 
 In this guide you'll learn how to use React Query with server rendering.
 
-See the guide on [Prefetching & Router Integration](./prefetching.md) for some background. You might also want to check out the [Performance & Request Waterfalls guide](./request-waterfalls.md) before that.
+See the guide on [Prefetching & Router Integration](../prefetching.md) for some background. You might also want to check out the [Performance & Request Waterfalls guide](../request-waterfalls.md) before that.
 
-For advanced server rendering patterns, such as streaming, Server Components and the new Next.js app router, see the [Advanced Server Rendering guide](./advanced-ssr.md).
+For advanced server rendering patterns, such as streaming, Server Components and the new Next.js app router, see the [Advanced Server Rendering guide](../advanced-ssr.md).
 
 If you just want to see some code, you can skip ahead to the [Full Next.js pages router example](#full-nextjs-pages-router-example) or the [Full Remix example](#full-remix-example) below.
 
@@ -177,11 +177,11 @@ With just a little more setup, you can use a `queryClient` to prefetch queries d
 
 > An interesting detail is that there are actually _three_ `queryClient`s involved. The framework loaders are a form of "preloading" phase that happens before rendering, and this phase has its own `queryClient` that does the prefetching. The dehydrated result of this phase gets passed to **both** the server rendering process **and** the client rendering process which each has its own `queryClient`. This ensures they both start with the same data so they can return the same markup.
 
-> Server Components are another form of "preloading" phase, that can also "preload" (pre-render) parts of a React component tree. Read more in the [Advanced Server Rendering guide](./advanced-ssr.md).
+> Server Components are another form of "preloading" phase, that can also "preload" (pre-render) parts of a React component tree. Read more in the [Advanced Server Rendering guide](../advanced-ssr.md).
 
 ### Full Next.js pages router example
 
-> For app router documentation, see the [Advanced Server Rendering guide](./advanced-ssr.md).
+> For app router documentation, see the [Advanced Server Rendering guide](../advanced-ssr.md).
 
 Initial setup:
 
@@ -386,7 +386,7 @@ With Remix, this is a little bit more involved, we recommend checking out the [u
 
 ## Prefetching dependent queries
 
-Over in the Prefetching guide we learned how to [prefetch dependent queries](./prefetching.md#dependent-queries--code-splitting), but how do we do this in framework loaders? Consider the following code, taken from the [Dependent Queries guide](./dependent-queries.md):
+Over in the Prefetching guide we learned how to [prefetch dependent queries](../prefetching.md#dependent-queries--code-splitting), but how do we do this in framework loaders? Consider the following code, taken from the [Dependent Queries guide](../dependent-queries.md):
 
 ```tsx
 // Get the user
@@ -482,7 +482,7 @@ If you are using a custom SSR setup, you need to take care of this step yourself
 
 ## A note about request waterfalls
 
-In the [Performance & Request Waterfalls guide](./request-waterfalls.md) we mentioned we would revisit how server rendering changes one of the more complex nested waterfalls. Check back for the [specific code example](../request-waterfalls#code-splitting), but as a refresher, we have a code split `<GraphFeedItem>` component inside a `<Feed>` component. This only renders if the feed contains a graph item and both of these components fetches their own data. With client rendering, this leads to the following request waterfall:
+In the [Performance & Request Waterfalls guide](../request-waterfalls.md) we mentioned we would revisit how server rendering changes one of the more complex nested waterfalls. Check back for the [specific code example](../request-waterfalls#code-splitting), but as a refresher, we have a code split `<GraphFeedItem>` component inside a `<Feed>` component. This only renders if the feed contains a graph item and both of these components fetches their own data. With client rendering, this leads to the following request waterfall:
 
 ```
 1. |> Markup (without content)
@@ -528,7 +528,7 @@ Modern frameworks often try to solve this by fetching the initial code and data
 2.   |> JS for <GraphFeedItem>
 ```
 
-This is much better, but if we want to improve this further we can flatten this to a single roundtrip with Server Components. Learn how in the [Advanced Server Rendering guide](./advanced-ssr.md).
+This is much better, but if we want to improve this further we can flatten this to a single roundtrip with Server Components. Learn how in the [Advanced Server Rendering guide](../advanced-ssr.md).
 
 ## Tips, Tricks and Caveats
 
@@ -546,9 +546,9 @@ In case you are creating the `QueryClient` for every request, React Query create
 
 On the server, `gcTime` 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 `gcTime` then you will be responsible for clearing the cache early.
 
-Avoid setting `gcTime` to `0` as it may result in a hydration error. This occurs because the [Hydration Boundary](../reference/hydration.md#hydrationboundary) places necessary data into the cache for rendering, but if the garbage collector removes the data before the rendering completes, issues may arise. If you require a shorter `gcTime`, we recommend setting it to `2 * 1000` to allow sufficient time for the app to reference the data.
+Avoid setting `gcTime` to `0` as it may result in a hydration error. This occurs because the [Hydration Boundary](../../reference/hydration.md#hydrationboundary) places necessary data into the cache for rendering, but if the garbage collector removes the data before the rendering completes, issues may arise. If you require a shorter `gcTime`, we recommend setting it to `2 * 1000` to allow sufficient time for the app to reference the data.
 
-To clear the cache after it is not needed and to lower memory consumption, you can add a call to [`queryClient.clear()`](../../../reference/QueryClient.md#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.md#queryclientclear) after the request is handled and dehydrated state has been sent to the client.
 
 Alternatively, you can set a smaller `gcTime`.
 
diff --git a/docs/framework/react/guides/suspense.md b/docs/framework/react/guides/suspense.md
index 37215b9e4d..94d3c528e9 100644
--- a/docs/framework/react/guides/suspense.md
+++ b/docs/framework/react/guides/suspense.md
@@ -5,12 +5,12 @@ title: Suspense
 
 React Query can also be used with React's Suspense for Data Fetching APIs. For this, we have dedicated hooks:
 
-- [useSuspenseQuery](../reference/useSuspenseQuery.md)
-- [useSuspenseInfiniteQuery](../reference/useSuspenseInfiniteQuery.md)
-- [useSuspenseQueries](../reference/useSuspenseQueries.md)
+- [useSuspenseQuery](../../reference/useSuspenseQuery.md)
+- [useSuspenseInfiniteQuery](../../reference/useSuspenseInfiniteQuery.md)
+- [useSuspenseQueries](../../reference/useSuspenseQueries.md)
 - Additionally, you can use the `useQuery().promise` and `React.use()` (Experimental)
 
-When using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please read the [Resetting Error Boundaries](#resetting-error-boundaries) and look at the [Suspense Example](../examples/suspense) for more information on how to set up suspense mode.
+When using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please read the [Resetting Error Boundaries](#resetting-error-boundaries) and look at the [Suspense Example](../../examples/suspense) for more information on how to set up suspense mode.
 
 If you want mutations to propagate errors to the nearest error boundary (similar to queries), you can set the `throwOnError` option to `true` as well.
 
@@ -107,7 +107,7 @@ const App = () => {
 
 ## 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](./prefetching.md) 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.md) 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.
 
 ## Suspense on the Server with streaming
 
@@ -172,7 +172,7 @@ export function Providers(props: { children: React.ReactNode }) {
 }
 ```
 
-For more information, check out the [NextJs Suspense Streaming Example](../examples/nextjs-suspense-streaming) and the [Advanced Rendering & Hydration](./advanced-ssr.md) guide.
+For more information, check out the [NextJs Suspense Streaming Example](../../examples/nextjs-suspense-streaming) and the [Advanced Rendering & Hydration](../advanced-ssr.md) guide.
 
 ## Using `useQuery().promise` and `React.use()` (Experimental)
 
@@ -222,3 +222,7 @@ export function App() {
   )
 }
 ```
+
+For a more complete example, see [suspense example on GitHub](https://github.com/TanStack/query/tree/main/examples/react/suspense).
+
+For a Next.js streaming example, see [nextjs-suspense-streaming example on GitHub](https://github.com/TanStack/query/tree/main/examples/react/nextjs-suspense-streaming).
diff --git a/docs/framework/react/guides/testing.md b/docs/framework/react/guides/testing.md
index 9c0486a729..598d9c30cc 100644
--- a/docs/framework/react/guides/testing.md
+++ b/docs/framework/react/guides/testing.md
@@ -167,5 +167,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.md#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.md#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 f3a582805d..142b71bab8 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.md#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.md#queryclientsetquerydata) method:
 
 [//]: # 'Example'
 
diff --git a/docs/framework/react/installation.md b/docs/framework/react/installation.md
index f52d7b7e87..4634816a46 100644
--- a/docs/framework/react/installation.md
+++ b/docs/framework/react/installation.md
@@ -66,7 +66,7 @@ Opera >= 77
 
 ### Recommendations
 
-It is recommended to also use our [ESLint Plugin Query](../../eslint/eslint-plugin-query.md) 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.md) 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 73975b0248..b8ac10ffd5 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 [TanStack Query Course](https://query.gg?s=tanstack) (or buying it for your whole team!)
-- Learn TanStack Query at your own pace with our amazingly thorough [Walkthrough Guide](./installation.md) and [API Reference](./reference/useQuery.md)
+- Learn TanStack Query at your own pace with our amazingly thorough [Walkthrough Guide](../installation.md) and [API Reference](../reference/useQuery.md)
 
 [//]: # 'Materials'
diff --git a/docs/framework/react/plugins/createAsyncStoragePersister.md b/docs/framework/react/plugins/createAsyncStoragePersister.md
index 7b299fa07b..4ce789cd65 100644
--- a/docs/framework/react/plugins/createAsyncStoragePersister.md
+++ b/docs/framework/react/plugins/createAsyncStoragePersister.md
@@ -34,7 +34,7 @@ bun add @tanstack/query-async-storage-persister @tanstack/react-query-persist-cl
 - 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`](./persistQueryClient.md#persistqueryclientprovider) component.
+- Wrap your app by using [`PersistQueryClientProvider`](../persistQueryClient.md#persistqueryclientprovider) component.
 
 ```tsx
 import AsyncStorage from '@react-native-async-storage/async-storage'
@@ -68,7 +68,7 @@ export default Root
 
 ## Retries
 
-Retries work the same as for a [SyncStoragePersister](./createSyncStoragePersister.md), 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.md), 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 a0a0c48e35..f1f69ccce5 100644
--- a/docs/framework/react/plugins/createSyncStoragePersister.md
+++ b/docs/framework/react/plugins/createSyncStoragePersister.md
@@ -33,7 +33,7 @@ bun add @tanstack/query-sync-storage-persister @tanstack/react-query-persist-cli
 
 - Import the `createSyncStoragePersister` function
 - Create a new syncStoragePersister
-- Pass it to the [`persistQueryClient`](./persistQueryClient.md) function
+- Pass it to the [`persistQueryClient`](../persistQueryClient.md) 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 3b6881fe06..77e9aa5b13 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](./createSyncStoragePersister.md)
-- [createAsyncStoragePersister](./createAsyncStoragePersister.md)
+- [createSyncStoragePersister](../createSyncStoragePersister.md)
+- [createAsyncStoragePersister](../createAsyncStoragePersister.md)
 - [create a custom persister](#persisters)
 
 ## How It Works
@@ -58,7 +58,7 @@ the persister `removeClient()` is called and the cache is immediately discarded.
 
 ### `persistQueryClientSave`
 
-- Your query/mutation are [`dehydrated`](../reference/hydration.md#dehydrate) and stored by the persister you provided.
+- Your query/mutation are [`dehydrated`](../../reference/hydration.md#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.
@@ -90,7 +90,7 @@ persistQueryClientSubscribe({
 
 ### `persistQueryClientRestore`
 
-- Attempts to [`hydrate`](../reference/hydration.md#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.md#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.
@@ -180,7 +180,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.md):
+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.md):
 
 ```tsx
 import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client'
@@ -210,14 +210,14 @@ ReactDOM.createRoot(rootElement).render(
 
 #### Props
 
-`PersistQueryClientProvider` takes the same props as [QueryClientProvider](../reference/QueryClientProvider.md), and additionally:
+`PersistQueryClientProvider` takes the same props as [QueryClientProvider](../../reference/QueryClientProvider.md), and additionally:
 
 - `persistOptions: PersistQueryClientOptions`
   - all [options](#options) you can pass to [persistQueryClient](#persistqueryclient) minus the QueryClient itself
 - `onSuccess?: () => Promise<unknown> | unknown`
   - optional
   - will be called when the initial restore is finished
-  - can be used to [resumePausedMutations](../../../reference/QueryClient.md#queryclientresumepausedmutations)
+  - can be used to [resumePausedMutations](../../../../reference/QueryClient.md#queryclientresumepausedmutations)
   - if a Promise is returned, it will be awaited; restoring is seen as ongoing until then
 - `onError?: () => Promise<unknown> | unknown`
   - optional
diff --git a/docs/framework/react/quick-start.md b/docs/framework/react/quick-start.md
index b180666796..4fdc72b820 100644
--- a/docs/framework/react/quick-start.md
+++ b/docs/framework/react/quick-start.md
@@ -5,9 +5,9 @@ title: Quick Start
 
 This code snippet very briefly illustrates the 3 core concepts of React Query:
 
-- [Queries](./guides/queries.md)
-- [Mutations](./guides/mutations.md)
-- [Query Invalidation](./guides/query-invalidation.md)
+- [Queries](../guides/queries.md)
+- [Mutations](../guides/mutations.md)
+- [Query Invalidation](../guides/query-invalidation.md)
 
 [//]: # 'Example'
 
diff --git a/docs/framework/react/reference/infiniteQueryOptions.md b/docs/framework/react/reference/infiniteQueryOptions.md
index d7ed548cd4..76b123253f 100644
--- a/docs/framework/react/reference/infiniteQueryOptions.md
+++ b/docs/framework/react/reference/infiniteQueryOptions.md
@@ -12,8 +12,10 @@ infiniteQueryOptions({
 
 **Options**
 
-You can generally pass everything to `infiniteQueryOptions` that you can also pass to [`useInfiniteQuery`](./useInfiniteQuery.md). Some options will have no effect when then forwarded to a function like `queryClient.prefetchInfiniteQuery`, but TypeScript will still be fine with those excess properties.
+You can generally pass everything to `infiniteQueryOptions` that you can also pass to [`useInfiniteQuery`](../useInfiniteQuery.md). Some options will have no effect when then forwarded to a function like `queryClient.prefetchInfiniteQuery`, but TypeScript will still be fine with those excess properties.
 
 - `queryKey: QueryKey`
   - **Required**
   - The query key to generate options for.
+
+See [useInfiniteQuery](../useInfiniteQuery.md) for more information.
diff --git a/docs/framework/react/reference/queryOptions.md b/docs/framework/react/reference/queryOptions.md
index 4445708edf..3bf604a687 100644
--- a/docs/framework/react/reference/queryOptions.md
+++ b/docs/framework/react/reference/queryOptions.md
@@ -12,7 +12,7 @@ queryOptions({
 
 **Options**
 
-You can generally pass everything to `queryOptions` that you can also pass to [`useQuery`](./useQuery.md). Some options will have no effect when then forwarded to a function like `queryClient.prefetchQuery`, but TypeScript will still be fine with those excess properties.
+You can generally pass everything to `queryOptions` that you can also pass to [`useQuery`](../useQuery.md). Some options will have no effect when then forwarded to a function like `queryClient.prefetchQuery`, but TypeScript will still be fine with those excess properties.
 
 - `queryKey: QueryKey`
   - **Required**
diff --git a/docs/framework/react/reference/useInfiniteQuery.md b/docs/framework/react/reference/useInfiniteQuery.md
index 4749be2b59..212ec619c8 100644
--- a/docs/framework/react/reference/useInfiniteQuery.md
+++ b/docs/framework/react/reference/useInfiniteQuery.md
@@ -27,12 +27,12 @@ const {
 
 **Options**
 
-The options for `useInfiniteQuery` are identical to the [`useQuery` hook](./useQuery.md) with the addition of the following:
+The options for `useInfiniteQuery` are identical to the [`useQuery` hook](../../reference/useQuery.md) 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.md)
+  - **Required, but only if no default query function has been defined** [`defaultQueryFn`](../../guides/default-query-function.md)
   - The function that the query will use to request data.
-  - Receives a [QueryFunctionContext](../guides/query-functions.md#queryfunctioncontext)
+  - Receives a [QueryFunctionContext](../../guides/query-functions.md#queryfunctioncontext)
   - Must return a promise that will either resolve data or throw an error.
 - `initialPageParam: TPageParam`
   - **Required**
@@ -55,7 +55,7 @@ The options for `useInfiniteQuery` are identical to the [`useQuery` hook](./useQ
 
 **Returns**
 
-The returned properties for `useInfiniteQuery` are identical to the [`useQuery` hook](./useQuery.md), with the addition of the following properties and a small difference in `isRefetching` and `isRefetchError`:
+The returned properties for `useInfiniteQuery` are identical to the [`useQuery` hook](../../reference/useQuery.md), with the addition of the following properties and a small difference in `isRefetching` and `isRefetchError`:
 
 - `data.pages: TData[]`
   - Array containing all pages.
diff --git a/docs/framework/react/reference/useIsFetching.md b/docs/framework/react/reference/useIsFetching.md
index 15ebdc7e19..e60e2b6de8 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.md#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../guides/filters.md#query-filters)
 - `queryClient?: QueryClient`,
   - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used.
 
diff --git a/docs/framework/react/reference/useIsMutating.md b/docs/framework/react/reference/useIsMutating.md
index f1471f9679..6118468d76 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.md#mutation-filters)
+- `filters?: MutationFilters`: [Mutation Filters](../../guides/filters.md#mutation-filters)
 - `queryClient?: QueryClient`,
   - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used.
 
diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md
index c678450781..9147c072ef 100644
--- a/docs/framework/react/reference/useMutation.md
+++ b/docs/framework/react/reference/useMutation.md
@@ -62,7 +62,7 @@ mutate(variables, {
 - `networkMode: 'online' | 'always' | 'offlineFirst'`
   - Optional
   - defaults to `'online'`
-  - see [Network Mode](../guides/network-mode.md) for more information.
+  - see [Network Mode](../../guides/network-mode.md) 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
@@ -137,7 +137,7 @@ mutate(variables, {
 - `isIdle`, `isPending`, `isSuccess`, `isError`: boolean variables derived from `status`
 - `isPaused: boolean`
   - will be `true` if the mutation has been `paused`
-  - see [Network Mode](../guides/network-mode.md) for more information.
+  - see [Network Mode](../../guides/network-mode.md) for more information.
 - `data: undefined | unknown`
   - Defaults to `undefined`
   - The last successfully resolved data for the mutation.
diff --git a/docs/framework/react/reference/useMutationState.md b/docs/framework/react/reference/useMutationState.md
index 321f814281..124ba8f55a 100644
--- a/docs/framework/react/reference/useMutationState.md
+++ b/docs/framework/react/reference/useMutationState.md
@@ -69,7 +69,7 @@ const latest = data[data.length - 1]
 **Options**
 
 - `options`
-  - `filters?: MutationFilters`: [Mutation Filters](../guides/filters.md#mutation-filters)
+  - `filters?: MutationFilters`: [Mutation Filters](../../guides/filters.md#mutation-filters)
   - `select?: (mutation: Mutation) => TResult`
     - Use this to transform the mutation state.
 - `queryClient?: QueryClient`,
diff --git a/docs/framework/react/reference/usePrefetchInfiniteQuery.md b/docs/framework/react/reference/usePrefetchInfiniteQuery.md
index a534c8c88c..bb2502b9ca 100644
--- a/docs/framework/react/reference/usePrefetchInfiniteQuery.md
+++ b/docs/framework/react/reference/usePrefetchInfiniteQuery.md
@@ -9,7 +9,7 @@ usePrefetchInfiniteQuery(options)
 
 **Options**
 
-You can pass everything to `usePrefetchInfiniteQuery` that you can pass to [`queryClient.prefetchInfiniteQuery`](../../../reference/QueryClient.md#queryclientprefetchinfinitequery). Remember that some of them are required as below:
+You can pass everything to `usePrefetchInfiniteQuery` that you can pass to [`queryClient.prefetchInfiniteQuery`](../../../../reference/QueryClient.md#queryclientprefetchinfinitequery). Remember that some of them are required as below:
 
 - `queryKey: QueryKey`
 
@@ -18,7 +18,7 @@ You can pass everything to `usePrefetchInfiniteQuery` that you can pass to [`que
 
 - `queryFn: (context: QueryFunctionContext) => Promise<TData>`
 
-  - **Required, but only if no default query function has been defined** See [Default Query Function](../guides/default-query-function.md) for more information.
+  - **Required, but only if no default query function has been defined** See [Default Query Function](../../guides/default-query-function.md) for more information.
 
 - `initialPageParam: TPageParam`
 
@@ -34,4 +34,4 @@ You can pass everything to `usePrefetchInfiniteQuery` that you can pass to [`que
 
 - **Returns**
 
-The `usePrefetchInfiniteQuery` does not return anything, it should be used just to fire a prefetch during render, before a suspense boundary that wraps a component that uses [`useSuspenseInfiniteQuery`](../reference/useSuspenseInfiniteQuery.md)
+The `usePrefetchInfiniteQuery` does not return anything, it should be used just to fire a prefetch during render, before a suspense boundary that wraps a component that uses [`useSuspenseInfiniteQuery`](../useSuspenseInfiniteQuery.md)
diff --git a/docs/framework/react/reference/usePrefetchQuery.md b/docs/framework/react/reference/usePrefetchQuery.md
index 0bac0f7bc6..b0c59fbbb3 100644
--- a/docs/framework/react/reference/usePrefetchQuery.md
+++ b/docs/framework/react/reference/usePrefetchQuery.md
@@ -9,7 +9,7 @@ usePrefetchQuery(options)
 
 **Options**
 
-You can pass everything to `usePrefetchQuery` that you can pass to [`queryClient.prefetchQuery`](../../../reference/QueryClient.md#queryclientprefetchquery). Remember that some of them are required as below:
+You can pass everything to `usePrefetchQuery` that you can pass to [`queryClient.prefetchQuery`](../../../../reference/QueryClient.md#queryclientprefetchquery). Remember that some of them are required as below:
 
 - `queryKey: QueryKey`
 
@@ -17,8 +17,8 @@ You can pass everything to `usePrefetchQuery` that you can pass to [`queryClient
   - The query key to prefetch during render
 
 - `queryFn: (context: QueryFunctionContext) => Promise<TData>`
-  - **Required, but only if no default query function has been defined** See [Default Query Function](../guides/default-query-function.md) for more information.
+  - **Required, but only if no default query function has been defined** See [Default Query Function](../../guides/default-query-function.md) for more information.
 
 **Returns**
 
-The `usePrefetchQuery` does not return anything, it should be used just to fire a prefetch during render, before a suspense boundary that wraps a component that uses [`useSuspenseQuery`](../reference/useSuspenseQuery.md).
+The `usePrefetchQuery` does not return anything, it should be used just to fire a prefetch during render, before a suspense boundary that wraps a component that uses [`useSuspenseQuery`](../useSuspenseQuery.md).
diff --git a/docs/framework/react/reference/useQueries.md b/docs/framework/react/reference/useQueries.md
index 69cbbdcf3d..41d423b2d5 100644
--- a/docs/framework/react/reference/useQueries.md
+++ b/docs/framework/react/reference/useQueries.md
@@ -18,7 +18,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.md) (excluding the `queryClient` option - because the `QueryClient` can be passed in on the top level).
+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](../useQuery.md) (excluding the `queryClient` option - because the `QueryClient` can be passed in on the top level).
 
 - `queryClient?: QueryClient`
   - Use this to provide a custom QueryClient. Otherwise, the one from the nearest context will be used.
diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md
index 82d240e80f..0b4066dbf4 100644
--- a/docs/framework/react/reference/useQuery.md
+++ b/docs/framework/react/reference/useQuery.md
@@ -65,20 +65,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.md) for more information.
+  - The query key will be hashed into a stable hash. See [Query Keys](../../guides/query-keys.md) 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.md) for more information.
+  - **Required, but only if no default query function has been defined** See [Default Query Function](../../guides/default-query-function.md) for more information.
   - The function that the query will use to request data.
-  - Receives a [QueryFunctionContext](../guides/query-functions.md#queryfunctioncontext)
+  - Receives a [QueryFunctionContext](../../guides/query-functions.md#queryfunctioncontext)
   - Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
 - `enabled: boolean | (query: Query) => boolean`
   - Set this to `false` to disable this query from automatically running.
-  - Can be used for [Dependent Queries](../guides/dependent-queries.md).
+  - Can be used for [Dependent Queries](../../guides/dependent-queries.md).
 - `networkMode: 'online' | 'always' | 'offlineFirst'`
   - optional
   - defaults to `'online'`
-  - see [Network Mode](../guides/network-mode.md) for more information.
+  - see [Network Mode](../../guides/network-mode.md) 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.
@@ -219,7 +219,7 @@ const {
   - `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` 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.md) for more information.
 - `isFetching: boolean`
   - A derived boolean from the `fetchStatus` variable above, provided for convenience.
 - `isPaused: boolean`
diff --git a/docs/framework/react/reference/useSuspenseInfiniteQuery.md b/docs/framework/react/reference/useSuspenseInfiniteQuery.md
index 46453f7299..86ad90e7bf 100644
--- a/docs/framework/react/reference/useSuspenseInfiniteQuery.md
+++ b/docs/framework/react/reference/useSuspenseInfiniteQuery.md
@@ -9,7 +9,7 @@ const result = useSuspenseInfiniteQuery(options)
 
 **Options**
 
-The same as for [useInfiniteQuery](../reference/useInfiniteQuery.md), except for:
+The same as for [useInfiniteQuery](../useInfiniteQuery.md), except for:
 
 - `suspense`
 - `throwOnError`
@@ -18,7 +18,7 @@ The same as for [useInfiniteQuery](../reference/useInfiniteQuery.md), except for
 
 **Returns**
 
-Same object as [useInfiniteQuery](../reference/useInfiniteQuery.md), except that:
+Same object as [useInfiniteQuery](../useInfiniteQuery.md), except that:
 
 - `data` is guaranteed to be defined
 - `isPlaceholderData` is missing
@@ -27,4 +27,4 @@ Same object as [useInfiniteQuery](../reference/useInfiniteQuery.md), except that
 
 **Caveat**
 
-[Cancellation](../guides/query-cancellation.md) does not work.
+[Cancellation](../../guides/query-cancellation.md) does not work.
diff --git a/docs/framework/react/reference/useSuspenseQueries.md b/docs/framework/react/reference/useSuspenseQueries.md
index 8f3e7f8ebd..629d61aaa2 100644
--- a/docs/framework/react/reference/useSuspenseQueries.md
+++ b/docs/framework/react/reference/useSuspenseQueries.md
@@ -9,7 +9,7 @@ const result = useSuspenseQueries(options)
 
 **Options**
 
-The same as for [useQueries](../reference/useQueries.md), except that each `query` can't have:
+The same as for [useQueries](../useQueries.md), except that each `query` can't have:
 
 - `suspense`
 - `throwOnError`
@@ -18,7 +18,7 @@ The same as for [useQueries](../reference/useQueries.md), except that each `quer
 
 **Returns**
 
-Same structure as [useQueries](../reference/useQueries.md), except that for each `query`:
+Same structure as [useQueries](../useQueries.md), except that for each `query`:
 
 - `data` is guaranteed to be defined
 - `isPlaceholderData` is missing
@@ -29,4 +29,4 @@ Same structure as [useQueries](../reference/useQueries.md), except that for each
 
 Keep in mind that the component will only re-mount after **all queries** have finished loading. Hence, if a query has gone stale in the time it took for all the queries to complete, it will be fetched again at re-mount. To avoid this, make sure to set a high enough `staleTime`.
 
-[Cancellation](../guides/query-cancellation.md) does not work.
+[Cancellation](../../guides/query-cancellation.md) does not work.
diff --git a/docs/framework/react/reference/useSuspenseQuery.md b/docs/framework/react/reference/useSuspenseQuery.md
index f51416947e..4eaee3ddf4 100644
--- a/docs/framework/react/reference/useSuspenseQuery.md
+++ b/docs/framework/react/reference/useSuspenseQuery.md
@@ -9,7 +9,7 @@ const result = useSuspenseQuery(options)
 
 **Options**
 
-The same as for [useQuery](../reference/useQuery.md), except for:
+The same as for [useQuery](../useQuery.md), except for:
 
 - `throwOnError`
 - `enabled`
@@ -17,7 +17,7 @@ The same as for [useQuery](../reference/useQuery.md), except for:
 
 **Returns**
 
-Same object as [useQuery](../reference/useQuery.md), except that:
+Same object as [useQuery](../useQuery.md), except that:
 
 - `data` is guaranteed to be defined
 - `isPlaceholderData` is missing
@@ -26,4 +26,4 @@ Same object as [useQuery](../reference/useQuery.md), except that:
 
 **Caveat**
 
-[Cancellation](../guides/query-cancellation.md) does not work.
+[Cancellation](../../guides/query-cancellation.md) does not work.
diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md
index baac2cc771..259ada640e 100644
--- a/docs/framework/react/typescript.md
+++ b/docs/framework/react/typescript.md
@@ -154,7 +154,7 @@ const { error } = useQuery({ queryKey: ['groups'], queryFn: fetchGroups })
 
 ### Registering global Meta
 
-Similarly to registering a [global error type](#registering-a-global-error) you can also register a global `Meta` type. This ensures the optional `meta` field on [queries](./reference/useQuery.md) and [mutations](./reference/useMutation.md) stays consistent and is type-safe. Note that the registered type must extend `Record<string, unknown>` so that `meta` remains an object.
+Similarly to registering a [global error type](#registering-a-global-error) you can also register a global `Meta` type. This ensures the optional `meta` field on [queries](../reference/useQuery.md) and [mutations](../reference/useMutation.md) stays consistent and is type-safe. Note that the registered type must extend `Record<string, unknown>` so that `meta` remains an object.
 
 ```ts
 import '@tanstack/react-query'
@@ -241,12 +241,12 @@ const data = queryClient.getQueryData<Group[]>(['groups'])
 
 ## Further Reading
 
-For tips and tricks around type inference, have a look at [React Query and TypeScript](./community/tkdodos-blog.md#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.md#19-type-safe-react-query).
+For tips and tricks around type inference, have a look at [React Query and TypeScript](../community/tkdodos-blog.md#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.md#19-type-safe-react-query).
 
 [//]: # 'Materials'
 
 ## Typesafe disabling of queries using `skipToken`
 
 If you are using TypeScript, you can use the `skipToken` to disable a query. This is useful when you want to disable a query based on a condition, but you still want to keep the query to be type safe.
-Read more about it in the [Disabling Queries](./guides/disabling-queries.md) guide.
+Read more about it in the [Disabling Queries](../guides/disabling-queries.md) guide.
diff --git a/docs/framework/solid/reference/useQuery.md b/docs/framework/solid/reference/useQuery.md
index e0a06d38bd..96e3e2d254 100644
--- a/docs/framework/solid/reference/useQuery.md
+++ b/docs/framework/solid/reference/useQuery.md
@@ -191,16 +191,16 @@ function App() {
   - ##### `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.md) 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.md) 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.md#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.md) for more information.
   - ##### `select: (data: TData) => unknown`
     - Optional
     - This option can be used to transform or select a part of the data returned by the query function. It affects the returned `data` value, but does not affect what gets stored in the query cache.
@@ -229,7 +229,7 @@ function App() {
   - ##### `networkMode: 'online' | 'always' | 'offlineFirst`
     - optional
     - defaults to `'online'`
-    - see [Network Mode](../../guides/network-mode) for more information.
+    - see [Network Mode](../../guides/network-mode.md) for more information.
   - ##### `initialData: TData | () => TData`
     - Optional
     - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)
@@ -342,7 +342,7 @@ function App() {
   - `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` 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.md) for more information.
 - ##### `isFetching: boolean`
   - A derived boolean from the `fetchStatus` variable above, provided for convenience.
 - ##### `isPaused: boolean`
diff --git a/docs/framework/solid/typescript.md b/docs/framework/solid/typescript.md
index 7f0ddb18bb..aa6bd28a8f 100644
--- a/docs/framework/solid/typescript.md
+++ b/docs/framework/solid/typescript.md
@@ -153,7 +153,7 @@ query.error
 
 ## Registering global `Meta`
 
-Similarly to registering a [global error type](#registering-a-global-error) you can also register a global `Meta` type. This ensures the optional `meta` field on [queries](../useQuery) and [mutations](../createMutation) stays consistent and is type-safe. Note that the registered type must extend `Record<string, unknown>` so that `meta` remains an object.
+Similarly to registering a [global error type](#registering-a-global-error) you can also register a global `Meta` type. This ensures the optional `meta` field on [queries](../reference/useQuery.md) and [mutations](../reference/useMutation.md) stays consistent and is type-safe. Note that the registered type must extend `Record<string, unknown>` so that `meta` remains an object.
 
 ```ts
 import '@tanstack/solid-query'
@@ -214,4 +214,4 @@ const data = queryClient.getQueryData<Group[]>(['groups'])
 
 If you are using TypeScript, you can use the `skipToken` to disable a query. This is useful when you want to disable a query based on a condition, but you still want to keep the query to be type safe.
 
-Read more about it in the [Disabling Queries](../disabling-queries) guide.
+Read more about it in the [Disabling Queries](../guides/disabling-queries.md) guide.
diff --git a/docs/framework/svelte/reference/classes/hydrationboundary.md b/docs/framework/svelte/reference/classes/hydrationboundary.md
deleted file mode 100644
index 9690e1a6d6..0000000000
--- a/docs/framework/svelte/reference/classes/hydrationboundary.md
+++ /dev/null
@@ -1,274 +0,0 @@
----
-id: HydrationBoundary
-title: HydrationBoundary
----
-
-# Class: HydrationBoundary\<Props, Events, Slots\>
-
-Base class for Svelte components with some minor dev-enhancements. Used when dev=true.
-
-Can be used to create strongly typed Svelte components.
-
-#### Example:
-
-You have component library on npm called `component-library`, from which
-you export a component called `MyComponent`. For Svelte+TypeScript users,
-you want to provide typings. Therefore you create a `index.d.ts`:
-
-```ts
-import { SvelteComponent } from 'svelte'
-export class MyComponent extends SvelteComponent<{ foo: string }> {}
-```
-
-Typing this makes it possible for IDEs like VS Code with the Svelte extension
-to provide intellisense and to use the component like this in a Svelte file
-with TypeScript:
-
-```svelte
-<script lang="ts">
-  import { MyComponent } from 'component-library'
-</script>
-
-<MyComponent foo={'bar'} />
-```
-
-## Extends
-
-- `SvelteComponent_1`\<`Props`, `Events`\>
-
-## Type Parameters
-
-• **Props** _extends_ `Record`\<`string`, `any`\> = `any`
-
-• **Events** _extends_ `Record`\<`string`, `any`\> = `any`
-
-• **Slots** _extends_ `Record`\<`string`, `any`\> = `any`
-
-## Indexable
-
-\[`prop`: `string`\]: `any`
-
-## Constructors
-
-### new HydrationBoundary()
-
-```ts
-new HydrationBoundary<Props, Events, Slots>(options): HydrationBoundary<Props, Events, Slots>
-```
-
-#### Parameters
-
-• **options**: `ComponentConstructorOptions`\<`Props`\>
-
-#### Returns
-
-[`HydrationBoundary`](hydrationboundary.md)\<`Props`, `Events`, `Slots`\>
-
-#### Overrides
-
-`SvelteComponent_1<Props, Events>.constructor`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:144
-
-## Properties
-
-### $$
-
-```ts
-$$: any
-```
-
-### PRIVATE API
-
-Do not use, may change at any time
-
-#### Inherited from
-
-`SvelteComponent_1.$$`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:102
-
----
-
-### $$events_def
-
-```ts
-$$events_def: Events
-```
-
-For type checking capabilities only.
-Does not exist at runtime.
-
-### DO NOT USE!
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:158
-
----
-
-### $$prop_def
-
-```ts
-$$prop_def: Props
-```
-
-For type checking capabilities only.
-Does not exist at runtime.
-
-### DO NOT USE!
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:151
-
----
-
-### $$set
-
-```ts
-$$set: any
-```
-
-### PRIVATE API
-
-Do not use, may change at any time
-
-#### Inherited from
-
-`SvelteComponent_1.$$set`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:109
-
----
-
-### $$slot_def
-
-```ts
-$$slot_def: Slots
-```
-
-For type checking capabilities only.
-Does not exist at runtime.
-
-### DO NOT USE!
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:165
-
-## Methods
-
-### $capture_state()
-
-```ts
-$capture_state(): void
-```
-
-#### Returns
-
-`void`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:167
-
----
-
-### $destroy()
-
-```ts
-$destroy(): void
-```
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-`SvelteComponent_1.$destroy`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:111
-
----
-
-### $inject_state()
-
-```ts
-$inject_state(): void
-```
-
-#### Returns
-
-`void`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:169
-
----
-
-### $on()
-
-```ts
-$on<K>(type, callback): () => void
-```
-
-#### Type Parameters
-
-• **K** _extends_ `string`
-
-#### Parameters
-
-• **type**: `K`
-
-• **callback**: `undefined` \| `null` \| (`e`) => `void`
-
-#### Returns
-
-`Function`
-
-##### Returns
-
-`void`
-
-#### Inherited from
-
-`SvelteComponent_1.$on`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:113
-
----
-
-### $set()
-
-```ts
-$set(props): void
-```
-
-#### Parameters
-
-• **props**: `Partial`\<`Props`\>
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-`SvelteComponent_1.$set`
-
-#### Defined in
-
-node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:115
diff --git a/docs/framework/svelte/reference/functions/createinfinitequery.md b/docs/framework/svelte/reference/functions/createinfinitequery.md
index a067f73775..5626f640e1 100644
--- a/docs/framework/svelte/reference/functions/createinfinitequery.md
+++ b/docs/framework/svelte/reference/functions/createinfinitequery.md
@@ -6,13 +6,7 @@ title: createInfiniteQuery
 # Function: createInfiniteQuery()
 
 ```ts
-function createInfiniteQuery<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam,
->(options, queryClient?): CreateInfiniteQueryResult<TData, TError>
+function createInfiniteQuery<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options, queryClient?): CreateInfiniteQueryResult<TData, TError>
 ```
 
 ## Type Parameters
@@ -23,20 +17,24 @@ function createInfiniteQuery<
 
 • **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 • **TPageParam** = `unknown`
 
 ## Parameters
 
-• **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`CreateInfiniteQueryOptions`](../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>\>
+### options
 
-• **queryClient?**: `QueryClient`
+[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateInfiniteQueryOptions`](../../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>\>
+
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
-[`CreateInfiniteQueryResult`](../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\>
+[`CreateInfiniteQueryResult`](../../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\>
 
 ## Defined in
 
-[packages/svelte-query/src/createInfiniteQuery.ts:16](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createInfiniteQuery.ts#L16)
+[packages/svelte-query/src/createInfiniteQuery.ts:16](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createInfiniteQuery.ts#L16)
diff --git a/docs/framework/svelte/reference/functions/createmutation.md b/docs/framework/svelte/reference/functions/createmutation.md
index ad11e8c6e9..e76c79cf42 100644
--- a/docs/framework/svelte/reference/functions/createmutation.md
+++ b/docs/framework/svelte/reference/functions/createmutation.md
@@ -6,10 +6,7 @@ title: createMutation
 # Function: createMutation()
 
 ```ts
-function createMutation<TData, TError, TVariables, TContext>(
-  options,
-  queryClient?,
-): CreateMutationResult<TData, TError, TVariables, TContext>
+function createMutation<TData, TError, TVariables, TContext>(options, queryClient?): CreateMutationResult<TData, TError, TVariables, TContext>
 ```
 
 ## Type Parameters
@@ -24,14 +21,18 @@ function createMutation<TData, TError, TVariables, TContext>(
 
 ## Parameters
 
-• **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`CreateMutationOptions`](../type-aliases/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>\>
+### options
 
-• **queryClient?**: `QueryClient`
+[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateMutationOptions`](../../type-aliases/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>\>
+
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
-[`CreateMutationResult`](../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\>
+[`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\>
 
 ## Defined in
 
-[packages/svelte-query/src/createMutation.ts:13](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createMutation.ts#L13)
+[packages/svelte-query/src/createMutation.ts:13](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createMutation.ts#L13)
diff --git a/docs/framework/svelte/reference/functions/createqueries.md b/docs/framework/svelte/reference/functions/createqueries.md
index 90a77b2a1c..44d393f8c6 100644
--- a/docs/framework/svelte/reference/functions/createqueries.md
+++ b/docs/framework/svelte/reference/functions/createqueries.md
@@ -6,27 +6,31 @@ title: createQueries
 # Function: createQueries()
 
 ```ts
-function createQueries<T, TCombinedResult>(
-  __namedParameters,
-  queryClient?,
-): Readable<TCombinedResult>
+function createQueries<T, TCombinedResult>(__namedParameters, queryClient?): Readable<TCombinedResult>
 ```
 
 ## Type Parameters
 
-• **T** _extends_ `any`[]
+• **T** *extends* `any`[]
 
-• **TCombinedResult** = `T` _extends_ [] ? [] : `T` _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>] : `T` _extends_ [`Head`, `...Tails[]`] ? [`...Tails[]`] _extends_ [] ? [] : [`...Tails[]`] _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] _extends_ [`Head`, `...Tails[]`] ? [`...Tails[]`] _extends_ [] ? [] : [`...Tails[]`] _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] _extends_ [`Head`, `...Tails[]`] ? [`...(...)[]`] _extends_ [] ? [] : ... _extends_ ... ? ... : ... : [`...(...)[]`] _extends_ ...[] ? ...[] : ...[] : [`...Tails[]`] _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[]
+• **TCombinedResult** = `T` *extends* [] ? [] : `T` *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>] : `T` *extends* [`Head`, `...Tails[]`] ? [`...Tails[]`] *extends* [] ? [] : [`...Tails[]`] *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] *extends* [`Head`, `...Tails[]`] ? [`...Tails[]`] *extends* [] ? [] : [`...Tails[]`] *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] *extends* [`Head`, `...Tails[]`] ? [`...(...)[]`] *extends* [] ? [] : ... *extends* ... ? ... : ... : [`...{ [K in (...)]: (...) }[]`] : [...\{ \[K in string \| number \| symbol\]: GetCreateQueryResult\<Tails\[K\<(...)\>\]\> \}\[\]] : \{ \[K in string \| number \| symbol\]: GetCreateQueryResult\<T\[K\<K\>\]\> \}
 
 ## Parameters
 
-• **\_\_namedParameters**
+### \_\_namedParameters
 
-• **\_\_namedParameters.combine?**
+#### combine
 
-• **\_\_namedParameters.queries?**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`...(T extends [] ? [] : T extends [Head] ? [GetQueryObserverOptionsForCreateQueries<Head>] : T extends [Head, ...Tails[]] ? [...Tails[]] extends [] ? [] : [...Tails[]] extends [Head] ? [GetQueryObserverOptionsForCreateQueries<Head>, GetQueryObserverOptionsForCreateQueries<Head>] : [...Tails[]] extends [Head, ...Tails[]] ? [...(...)[]] extends [] ? [] : (...) extends (...) ? (...) : (...) : readonly (...)[] extends [...(...)[]] ? [...(...)[]] : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : QueryObserverOptionsForCreateQueries<unknown, Error, unknown, QueryKey>[])[]`]\>
+(`result`) => `TCombinedResult`
 
-• **queryClient?**: `QueryClient`
+#### queries
+
+  \| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[`...(T extends [] ? [] : T extends [Head] ? [GetQueryObserverOptionsForCreateQueries<Head>] : T extends [Head, ...Tails[]] ? [...Tails[]] extends [] ? [] : [...Tails[]] extends [Head] ? [GetQueryObserverOptionsForCreateQueries<(...)>, GetQueryObserverOptionsForCreateQueries<(...)>] : [...(...)[]] extends [(...), ...(...)[]] ? (...) extends (...) ? (...) : (...) : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] ? QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] : QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[])[]`]\>
+  \| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[...\{ \[K in string \| number \| symbol\]: GetQueryObserverOptionsForCreateQueries\<T\[K\<K\>\]\> \}\[\]]\>
+
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
@@ -34,4 +38,4 @@ function createQueries<T, TCombinedResult>(
 
 ## Defined in
 
-[packages/svelte-query/src/createQueries.ts:205](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQueries.ts#L205)
+[packages/svelte-query/src/createQueries.ts:189](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQueries.ts#L189)
diff --git a/docs/framework/svelte/reference/functions/createquery.md b/docs/framework/svelte/reference/functions/createquery.md
index 605fbc1f99..8cf7c132de 100644
--- a/docs/framework/svelte/reference/functions/createquery.md
+++ b/docs/framework/svelte/reference/functions/createquery.md
@@ -5,13 +5,10 @@ title: createQuery
 
 # Function: createQuery()
 
-## createQuery(options, queryClient)
+## Call Signature
 
 ```ts
-function createQuery<TQueryFnData, TError, TData, TQueryKey>(
-  options,
-  queryClient?,
-): DefinedCreateQueryResult<TData, TError>
+function createQuery<TQueryFnData, TError, TData, TQueryKey>(options, queryClient?): DefinedCreateQueryResult<TData, TError>
 ```
 
 ### Type Parameters
@@ -22,29 +19,30 @@ function createQuery<TQueryFnData, TError, TData, TQueryKey>(
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\>
+#### options
 
-• **queryClient?**: `QueryClient`
+[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\>
+
+#### queryClient?
+
+`QueryClient`
 
 ### Returns
 
-[`DefinedCreateQueryResult`](../type-aliases/definedcreatequeryresult.md)\<`TData`, `TError`\>
+[`DefinedCreateQueryResult`](../../type-aliases/definedcreatequeryresult.md)\<`TData`, `TError`\>
 
 ### Defined in
 
-[packages/svelte-query/src/createQuery.ts:15](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQuery.ts#L15)
+[packages/svelte-query/src/createQuery.ts:15](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQuery.ts#L15)
 
-## createQuery(options, queryClient)
+## Call Signature
 
 ```ts
-function createQuery<TQueryFnData, TError, TData, TQueryKey>(
-  options,
-  queryClient?,
-): CreateQueryResult<TData, TError>
+function createQuery<TQueryFnData, TError, TData, TQueryKey>(options, queryClient?): CreateQueryResult<TData, TError>
 ```
 
 ### Type Parameters
@@ -55,29 +53,30 @@ function createQuery<TQueryFnData, TError, TData, TQueryKey>(
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\>
+#### options
+
+[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\>
 
-• **queryClient?**: `QueryClient`
+#### queryClient?
+
+`QueryClient`
 
 ### Returns
 
-[`CreateQueryResult`](../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
+[`CreateQueryResult`](../../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
 
 ### Defined in
 
-[packages/svelte-query/src/createQuery.ts:27](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQuery.ts#L27)
+[packages/svelte-query/src/createQuery.ts:27](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQuery.ts#L27)
 
-## createQuery(options, queryClient)
+## Call Signature
 
 ```ts
-function createQuery<TQueryFnData, TError, TData, TQueryKey>(
-  options,
-  queryClient?,
-): CreateQueryResult<TData, TError>
+function createQuery<TQueryFnData, TError, TData, TQueryKey>(options, queryClient?): CreateQueryResult<TData, TError>
 ```
 
 ### Type Parameters
@@ -88,18 +87,22 @@ function createQuery<TQueryFnData, TError, TData, TQueryKey>(
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`CreateQueryOptions`](../type-aliases/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\>
+#### options
+
+[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateQueryOptions`](../../type-aliases/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\>
+
+#### queryClient?
 
-• **queryClient?**: `QueryClient`
+`QueryClient`
 
 ### Returns
 
-[`CreateQueryResult`](../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
+[`CreateQueryResult`](../../type-aliases/createqueryresult.md)\<`TData`, `TError`\>
 
 ### Defined in
 
-[packages/svelte-query/src/createQuery.ts:39](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQuery.ts#L39)
+[packages/svelte-query/src/createQuery.ts:39](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQuery.ts#L39)
diff --git a/docs/framework/svelte/reference/functions/getisrestoringcontext.md b/docs/framework/svelte/reference/functions/getisrestoringcontext.md
index 22aa563796..923a433775 100644
--- a/docs/framework/svelte/reference/functions/getisrestoringcontext.md
+++ b/docs/framework/svelte/reference/functions/getisrestoringcontext.md
@@ -17,4 +17,4 @@ Retrieves a `isRestoring` from Svelte's context
 
 ## Defined in
 
-[packages/svelte-query/src/context.ts:28](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L28)
+[packages/svelte-query/src/context.ts:28](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L28)
diff --git a/docs/framework/svelte/reference/functions/getqueryclientcontext.md b/docs/framework/svelte/reference/functions/getqueryclientcontext.md
index f311a473f6..8d34ab100c 100644
--- a/docs/framework/svelte/reference/functions/getqueryclientcontext.md
+++ b/docs/framework/svelte/reference/functions/getqueryclientcontext.md
@@ -17,4 +17,4 @@ Retrieves a Client from Svelte's context
 
 ## Defined in
 
-[packages/svelte-query/src/context.ts:9](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L9)
+[packages/svelte-query/src/context.ts:9](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L9)
diff --git a/docs/framework/svelte/reference/functions/infinitequeryoptions.md b/docs/framework/svelte/reference/functions/infinitequeryoptions.md
index 3e9a0c5b4b..52577caf02 100644
--- a/docs/framework/svelte/reference/functions/infinitequeryoptions.md
+++ b/docs/framework/svelte/reference/functions/infinitequeryoptions.md
@@ -6,22 +6,7 @@ title: infiniteQueryOptions
 # Function: infiniteQueryOptions()
 
 ```ts
-function infiniteQueryOptions<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryKey,
-  TPageParam,
->(
-  options,
-): CreateInfiniteQueryOptions<
-  TQueryFnData,
-  TError,
-  TData,
-  TQueryFnData,
-  TQueryKey,
-  TPageParam
->
+function infiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options): CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>
 ```
 
 ## Type Parameters
@@ -32,18 +17,20 @@ function infiniteQueryOptions<
 
 • **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\>
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 • **TPageParam** = `unknown`
 
 ## Parameters
 
-• **options**: [`CreateInfiniteQueryOptions`](../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>
+### options
+
+[`CreateInfiniteQueryOptions`](../../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>
 
 ## Returns
 
-[`CreateInfiniteQueryOptions`](../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>
+[`CreateInfiniteQueryOptions`](../../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>
 
 ## Defined in
 
-[packages/svelte-query/src/infiniteQueryOptions.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/infiniteQueryOptions.ts#L4)
+[packages/svelte-query/src/infiniteQueryOptions.ts:4](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/infiniteQueryOptions.ts#L4)
diff --git a/docs/framework/svelte/reference/functions/queryoptions.md b/docs/framework/svelte/reference/functions/queryoptions.md
index d499202669..2733e14b58 100644
--- a/docs/framework/svelte/reference/functions/queryoptions.md
+++ b/docs/framework/svelte/reference/functions/queryoptions.md
@@ -5,12 +5,10 @@ title: queryOptions
 
 # Function: queryOptions()
 
-## queryOptions(options)
+## Call Signature
 
 ```ts
-function queryOptions<TQueryFnData, TError, TData, TQueryKey>(
-  options,
-): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
+function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
 ```
 
 ### Type Parameters
@@ -21,26 +19,26 @@ function queryOptions<TQueryFnData, TError, TData, TQueryKey>(
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **options**: [`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
+#### options
+
+[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
 
 ### Returns
 
-[`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
+[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
 
 ### Defined in
 
-[packages/svelte-query/src/queryOptions.ts:26](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/queryOptions.ts#L26)
+[packages/svelte-query/src/queryOptions.ts:31](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/queryOptions.ts#L31)
 
-## queryOptions(options)
+## Call Signature
 
 ```ts
-function queryOptions<TQueryFnData, TError, TData, TQueryKey>(
-  options,
-): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
+function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & object
 ```
 
 ### Type Parameters
@@ -51,16 +49,18 @@ function queryOptions<TQueryFnData, TError, TData, TQueryKey>(
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[]
 
 ### Parameters
 
-• **options**: [`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
+#### options
+
+[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
 
 ### Returns
 
-[`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
+[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object`
 
 ### Defined in
 
-[packages/svelte-query/src/queryOptions.ts:37](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/queryOptions.ts#L37)
+[packages/svelte-query/src/queryOptions.ts:42](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/queryOptions.ts#L42)
diff --git a/docs/framework/svelte/reference/functions/setisrestoringcontext.md b/docs/framework/svelte/reference/functions/setisrestoringcontext.md
index 0ab290bf09..95555d77cb 100644
--- a/docs/framework/svelte/reference/functions/setisrestoringcontext.md
+++ b/docs/framework/svelte/reference/functions/setisrestoringcontext.md
@@ -13,7 +13,9 @@ Sets a `isRestoring` on Svelte's context
 
 ## Parameters
 
-• **isRestoring**: `Readable`\<`boolean`\>
+### isRestoring
+
+`Readable`\<`boolean`\>
 
 ## Returns
 
@@ -21,4 +23,4 @@ Sets a `isRestoring` on Svelte's context
 
 ## Defined in
 
-[packages/svelte-query/src/context.ts:40](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L40)
+[packages/svelte-query/src/context.ts:40](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L40)
diff --git a/docs/framework/svelte/reference/functions/setqueryclientcontext.md b/docs/framework/svelte/reference/functions/setqueryclientcontext.md
index 4a4ce300b2..22caba70a8 100644
--- a/docs/framework/svelte/reference/functions/setqueryclientcontext.md
+++ b/docs/framework/svelte/reference/functions/setqueryclientcontext.md
@@ -13,7 +13,9 @@ Sets a QueryClient on Svelte's context
 
 ## Parameters
 
-• **client**: `QueryClient`
+### client
+
+`QueryClient`
 
 ## Returns
 
@@ -21,4 +23,4 @@ Sets a QueryClient on Svelte's context
 
 ## Defined in
 
-[packages/svelte-query/src/context.ts:21](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L21)
+[packages/svelte-query/src/context.ts:21](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L21)
diff --git a/docs/framework/svelte/reference/functions/usehydrate.md b/docs/framework/svelte/reference/functions/usehydrate.md
index c4abb97e0d..a2dbd05fdf 100644
--- a/docs/framework/svelte/reference/functions/usehydrate.md
+++ b/docs/framework/svelte/reference/functions/usehydrate.md
@@ -6,16 +6,25 @@ title: useHydrate
 # Function: useHydrate()
 
 ```ts
-function useHydrate(state?, options?, queryClient?): void
+function useHydrate(
+   state?, 
+   options?, 
+   queryClient?): void
 ```
 
 ## Parameters
 
-• **state?**: `unknown`
+### state?
 
-• **options?**: `HydrateOptions`
+`unknown`
 
-• **queryClient?**: `QueryClient`
+### options?
+
+`HydrateOptions`
+
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
@@ -23,4 +32,4 @@ function useHydrate(state?, options?, queryClient?): void
 
 ## Defined in
 
-[packages/svelte-query/src/useHydrate.ts:8](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useHydrate.ts#L8)
+[packages/svelte-query/src/useHydrate.ts:5](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useHydrate.ts#L5)
diff --git a/docs/framework/svelte/reference/functions/useisfetching.md b/docs/framework/svelte/reference/functions/useisfetching.md
index fbfd0d55bf..0b637880c4 100644
--- a/docs/framework/svelte/reference/functions/useisfetching.md
+++ b/docs/framework/svelte/reference/functions/useisfetching.md
@@ -11,9 +11,13 @@ function useIsFetching(filters?, queryClient?): Readable<number>
 
 ## Parameters
 
-• **filters?**: `QueryFilters`
+### filters?
 
-• **queryClient?**: `QueryClient`
+`QueryFilters`\<readonly `unknown`[]\>
+
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
@@ -21,4 +25,4 @@ function useIsFetching(filters?, queryClient?): Readable<number>
 
 ## Defined in
 
-[packages/svelte-query/src/useIsFetching.ts:10](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useIsFetching.ts#L10)
+[packages/svelte-query/src/useIsFetching.ts:7](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useIsFetching.ts#L7)
diff --git a/docs/framework/svelte/reference/functions/useismutating.md b/docs/framework/svelte/reference/functions/useismutating.md
index 2e05ae3218..a2773004ab 100644
--- a/docs/framework/svelte/reference/functions/useismutating.md
+++ b/docs/framework/svelte/reference/functions/useismutating.md
@@ -11,9 +11,13 @@ function useIsMutating(filters?, queryClient?): Readable<number>
 
 ## Parameters
 
-• **filters?**: `MutationFilters`
+### filters?
 
-• **queryClient?**: `QueryClient`
+`MutationFilters`\<`unknown`, `Error`, `unknown`, `unknown`\>
+
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
@@ -21,4 +25,4 @@ function useIsMutating(filters?, queryClient?): Readable<number>
 
 ## Defined in
 
-[packages/svelte-query/src/useIsMutating.ts:10](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useIsMutating.ts#L10)
+[packages/svelte-query/src/useIsMutating.ts:7](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useIsMutating.ts#L7)
diff --git a/docs/framework/svelte/reference/functions/useisrestoring.md b/docs/framework/svelte/reference/functions/useisrestoring.md
index 4cd72cfab8..5bebc77087 100644
--- a/docs/framework/svelte/reference/functions/useisrestoring.md
+++ b/docs/framework/svelte/reference/functions/useisrestoring.md
@@ -15,4 +15,4 @@ function useIsRestoring(): Readable<boolean>
 
 ## Defined in
 
-[packages/svelte-query/src/useIsRestoring.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useIsRestoring.ts#L4)
+[packages/svelte-query/src/useIsRestoring.ts:4](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useIsRestoring.ts#L4)
diff --git a/docs/framework/svelte/reference/functions/usemutationstate.md b/docs/framework/svelte/reference/functions/usemutationstate.md
index 83de5455e7..14ceee7865 100644
--- a/docs/framework/svelte/reference/functions/usemutationstate.md
+++ b/docs/framework/svelte/reference/functions/usemutationstate.md
@@ -15,9 +15,13 @@ function useMutationState<TResult>(options, queryClient?): Readable<TResult[]>
 
 ## Parameters
 
-• **options**: [`MutationStateOptions`](../type-aliases/mutationstateoptions.md)\<`TResult`\> = `{}`
+### options
 
-• **queryClient?**: `QueryClient`
+[`MutationStateOptions`](../../type-aliases/mutationstateoptions.md)\<`TResult`\> = `{}`
+
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
@@ -25,4 +29,4 @@ function useMutationState<TResult>(options, queryClient?): Readable<TResult[]>
 
 ## Defined in
 
-[packages/svelte-query/src/useMutationState.ts:24](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useMutationState.ts#L24)
+[packages/svelte-query/src/useMutationState.ts:24](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useMutationState.ts#L24)
diff --git a/docs/framework/svelte/reference/functions/usequeryclient.md b/docs/framework/svelte/reference/functions/usequeryclient.md
index e6f169c143..2a962408ca 100644
--- a/docs/framework/svelte/reference/functions/usequeryclient.md
+++ b/docs/framework/svelte/reference/functions/usequeryclient.md
@@ -11,7 +11,9 @@ function useQueryClient(queryClient?): QueryClient
 
 ## Parameters
 
-• **queryClient?**: `QueryClient`
+### queryClient?
+
+`QueryClient`
 
 ## Returns
 
@@ -19,4 +21,4 @@ function useQueryClient(queryClient?): QueryClient
 
 ## Defined in
 
-[packages/svelte-query/src/useQueryClient.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useQueryClient.ts#L4)
+[packages/svelte-query/src/useQueryClient.ts:4](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useQueryClient.ts#L4)
diff --git a/docs/framework/svelte/reference/index.md b/docs/framework/svelte/reference/index.md
index 8b50592d89..0ffa33f6fe 100644
--- a/docs/framework/svelte/reference/index.md
+++ b/docs/framework/svelte/reference/index.md
@@ -1,6 +1,6 @@
 ---
-id: '@tanstack/svelte-query'
-title: '@tanstack/svelte-query'
+id: "@tanstack/svelte-query"
+title: "@tanstack/svelte-query"
 ---
 
 # @tanstack/svelte-query
@@ -9,49 +9,50 @@ title: '@tanstack/svelte-query'
 
 ### QueryClientProvider
 
-Renames and re-exports [HydrationBoundary](classes/hydrationboundary.md)
-
-## Classes
-
-- [HydrationBoundary](classes/hydrationboundary.md)
+Renames and re-exports [HydrationBoundary](../variables/hydrationboundary.md)
 
 ## Type Aliases
 
-- [CreateBaseMutationResult](type-aliases/createbasemutationresult.md)
-- [CreateBaseQueryOptions](type-aliases/createbasequeryoptions.md)
-- [CreateBaseQueryResult](type-aliases/createbasequeryresult.md)
-- [CreateInfiniteQueryOptions](type-aliases/createinfinitequeryoptions.md)
-- [CreateInfiniteQueryResult](type-aliases/createinfinitequeryresult.md)
-- [CreateMutateAsyncFunction](type-aliases/createmutateasyncfunction.md)
-- [CreateMutateFunction](type-aliases/createmutatefunction.md)
-- [CreateMutationOptions](type-aliases/createmutationoptions.md)
-- [CreateMutationResult](type-aliases/createmutationresult.md)
-- [CreateQueryOptions](type-aliases/createqueryoptions.md)
-- [CreateQueryResult](type-aliases/createqueryresult.md)
-- [DefinedCreateBaseQueryResult](type-aliases/definedcreatebasequeryresult.md)
-- [DefinedCreateQueryResult](type-aliases/definedcreatequeryresult.md)
-- [DefinedInitialDataOptions](type-aliases/definedinitialdataoptions.md)
-- [MutationStateOptions](type-aliases/mutationstateoptions.md)
-- [QueriesOptions](type-aliases/queriesoptions.md)
-- [QueriesResults](type-aliases/queriesresults.md)
-- [StoreOrVal](type-aliases/storeorval.md)
-- [UndefinedInitialDataOptions](type-aliases/undefinedinitialdataoptions.md)
+- [CreateBaseMutationResult](../type-aliases/createbasemutationresult.md)
+- [CreateBaseQueryOptions](../type-aliases/createbasequeryoptions.md)
+- [CreateBaseQueryResult](../type-aliases/createbasequeryresult.md)
+- [CreateInfiniteQueryOptions](../type-aliases/createinfinitequeryoptions.md)
+- [CreateInfiniteQueryResult](../type-aliases/createinfinitequeryresult.md)
+- [CreateMutateAsyncFunction](../type-aliases/createmutateasyncfunction.md)
+- [CreateMutateFunction](../type-aliases/createmutatefunction.md)
+- [CreateMutationOptions](../type-aliases/createmutationoptions.md)
+- [CreateMutationResult](../type-aliases/createmutationresult.md)
+- [CreateQueryOptions](../type-aliases/createqueryoptions.md)
+- [CreateQueryResult](../type-aliases/createqueryresult.md)
+- [DefinedCreateBaseQueryResult](../type-aliases/definedcreatebasequeryresult.md)
+- [DefinedCreateQueryResult](../type-aliases/definedcreatequeryresult.md)
+- [DefinedInitialDataOptions](../type-aliases/definedinitialdataoptions.md)
+- [HydrationBoundary](../type-aliases/hydrationboundary.md)
+- [MutationStateOptions](../type-aliases/mutationstateoptions.md)
+- [QueriesOptions](../type-aliases/queriesoptions.md)
+- [QueriesResults](../type-aliases/queriesresults.md)
+- [StoreOrVal](../type-aliases/storeorval.md)
+- [UndefinedInitialDataOptions](../type-aliases/undefinedinitialdataoptions.md)
+
+## Variables
+
+- [HydrationBoundary](../variables/hydrationboundary.md)
 
 ## Functions
 
-- [createInfiniteQuery](functions/createinfinitequery.md)
-- [createMutation](functions/createmutation.md)
-- [createQueries](functions/createqueries.md)
-- [createQuery](functions/createquery.md)
-- [getIsRestoringContext](functions/getisrestoringcontext.md)
-- [getQueryClientContext](functions/getqueryclientcontext.md)
-- [infiniteQueryOptions](functions/infinitequeryoptions.md)
-- [queryOptions](functions/queryoptions.md)
-- [setIsRestoringContext](functions/setisrestoringcontext.md)
-- [setQueryClientContext](functions/setqueryclientcontext.md)
-- [useHydrate](functions/usehydrate.md)
-- [useIsFetching](functions/useisfetching.md)
-- [useIsMutating](functions/useismutating.md)
-- [useIsRestoring](functions/useisrestoring.md)
-- [useMutationState](functions/usemutationstate.md)
-- [useQueryClient](functions/usequeryclient.md)
+- [createInfiniteQuery](../functions/createinfinitequery.md)
+- [createMutation](../functions/createmutation.md)
+- [createQueries](../functions/createqueries.md)
+- [createQuery](../functions/createquery.md)
+- [getIsRestoringContext](../functions/getisrestoringcontext.md)
+- [getQueryClientContext](../functions/getqueryclientcontext.md)
+- [infiniteQueryOptions](../functions/infinitequeryoptions.md)
+- [queryOptions](../functions/queryoptions.md)
+- [setIsRestoringContext](../functions/setisrestoringcontext.md)
+- [setQueryClientContext](../functions/setqueryclientcontext.md)
+- [useHydrate](../functions/usehydrate.md)
+- [useIsFetching](../functions/useisfetching.md)
+- [useIsMutating](../functions/useismutating.md)
+- [useIsRestoring](../functions/useisrestoring.md)
+- [useMutationState](../functions/usemutationstate.md)
+- [useQueryClient](../functions/usequeryclient.md)
diff --git a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md
index 750c599d80..02f68b27e2 100644
--- a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md
+++ b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md
@@ -6,7 +6,9 @@ title: CreateBaseMutationResult
 # Type Alias: CreateBaseMutationResult\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateBaseMutationResult<TData, TError, TVariables, TContext>: Override<MutationObserverResult<TData, TError, TVariables, TContext>, object> & object;
+type CreateBaseMutationResult<TData, TError, TVariables, TContext> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
+  mutate: CreateMutateFunction<TData, TError, TVariables, TContext>;
+ }> & object;
 ```
 
 ## Type declaration
@@ -14,7 +16,7 @@ type CreateBaseMutationResult<TData, TError, TVariables, TContext>: Override<Mut
 ### mutateAsync
 
 ```ts
-mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>
+mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>;
 ```
 
 ## Type Parameters
@@ -29,4 +31,4 @@ mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:113](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L113)
+[packages/svelte-query/src/types.ts:114](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L114)
diff --git a/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md b/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md
index 8a1967c124..51f6a6d003 100644
--- a/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md
@@ -6,7 +6,7 @@ title: CreateBaseQueryOptions
 # Type Alias: CreateBaseQueryOptions\<TQueryFnData, TError, TData, TQueryData, TQueryKey\>
 
 ```ts
-type CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
+type CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> = QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
 ```
 
 Options for createBaseQuery
@@ -21,8 +21,8 @@ Options for createBaseQuery
 
 • **TQueryData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:23](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L23)
+[packages/svelte-query/src/types.ts:24](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L24)
diff --git a/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md b/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md
index 01d19e64ea..861f43cf98 100644
--- a/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md
+++ b/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md
@@ -6,7 +6,7 @@ title: CreateBaseQueryResult
 # Type Alias: CreateBaseQueryResult\<TData, TError\>
 
 ```ts
-type CreateBaseQueryResult<TData, TError>: Readable<QueryObserverResult<TData, TError>>;
+type CreateBaseQueryResult<TData, TError> = Readable<QueryObserverResult<TData, TError>>;
 ```
 
 Result from createBaseQuery
@@ -19,4 +19,4 @@ Result from createBaseQuery
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:32](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L32)
+[packages/svelte-query/src/types.ts:33](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L33)
diff --git a/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md b/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md
index e248532a85..ff726a1ccc 100644
--- a/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md
@@ -6,7 +6,7 @@ title: CreateInfiniteQueryOptions
 # Type Alias: CreateInfiniteQueryOptions\<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam\>
 
 ```ts
-type CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>: InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>;
+type CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam> = InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>;
 ```
 
 Options for createInfiniteQuery
@@ -21,10 +21,10 @@ Options for createInfiniteQuery
 
 • **TQueryData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 • **TPageParam** = `unknown`
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:52](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L52)
+[packages/svelte-query/src/types.ts:53](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L53)
diff --git a/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md b/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md
index 4027388adc..e5247763c5 100644
--- a/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md
+++ b/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md
@@ -6,7 +6,7 @@ title: CreateInfiniteQueryResult
 # Type Alias: CreateInfiniteQueryResult\<TData, TError\>
 
 ```ts
-type CreateInfiniteQueryResult<TData, TError>: Readable<InfiniteQueryObserverResult<TData, TError>>;
+type CreateInfiniteQueryResult<TData, TError> = Readable<InfiniteQueryObserverResult<TData, TError>>;
 ```
 
 Result from createInfiniteQuery
@@ -19,4 +19,4 @@ Result from createInfiniteQuery
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:69](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L69)
+[packages/svelte-query/src/types.ts:70](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L70)
diff --git a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md
index 01567a772e..ac34d9829b 100644
--- a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md
+++ b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md
@@ -6,7 +6,7 @@ title: CreateMutateAsyncFunction
 # Type Alias: CreateMutateAsyncFunction\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateMutateAsyncFunction<TData, TError, TVariables, TContext>: MutateFunction<TData, TError, TVariables, TContext>;
+type CreateMutateAsyncFunction<TData, TError, TVariables, TContext> = MutateFunction<TData, TError, TVariables, TContext>;
 ```
 
 ## Type Parameters
@@ -21,4 +21,4 @@ type CreateMutateAsyncFunction<TData, TError, TVariables, TContext>: MutateFunct
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:106](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L106)
+[packages/svelte-query/src/types.ts:107](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L107)
diff --git a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md
index 18230411ef..034c383b7c 100644
--- a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md
+++ b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md
@@ -6,7 +6,7 @@ title: CreateMutateFunction
 # Type Alias: CreateMutateFunction()\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateMutateFunction<TData, TError, TVariables, TContext>: (...args) => void;
+type CreateMutateFunction<TData, TError, TVariables, TContext> = (...args) => void;
 ```
 
 ## Type Parameters
@@ -21,7 +21,9 @@ type CreateMutateFunction<TData, TError, TVariables, TContext>: (...args) => voi
 
 ## Parameters
 
-• ...**args**: `Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\>
+### args
+
+...`Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\>
 
 ## Returns
 
@@ -29,4 +31,4 @@ type CreateMutateFunction<TData, TError, TVariables, TContext>: (...args) => voi
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:97](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L97)
+[packages/svelte-query/src/types.ts:98](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L98)
diff --git a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md
index c091bb44db..d5c192b9e4 100644
--- a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md
@@ -6,7 +6,7 @@ title: CreateMutationOptions
 # Type Alias: CreateMutationOptions\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateMutationOptions<TData, TError, TVariables, TContext>: OmitKeyof<MutationObserverOptions<TData, TError, TVariables, TContext>, "_defaulted">;
+type CreateMutationOptions<TData, TError, TVariables, TContext> = OmitKeyof<MutationObserverOptions<TData, TError, TVariables, TContext>, "_defaulted">;
 ```
 
 Options for createMutation
@@ -23,4 +23,4 @@ Options for createMutation
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:87](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L87)
+[packages/svelte-query/src/types.ts:88](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L88)
diff --git a/docs/framework/svelte/reference/type-aliases/createmutationresult.md b/docs/framework/svelte/reference/type-aliases/createmutationresult.md
index f0cc9f62c7..48a6dfe524 100644
--- a/docs/framework/svelte/reference/type-aliases/createmutationresult.md
+++ b/docs/framework/svelte/reference/type-aliases/createmutationresult.md
@@ -6,7 +6,7 @@ title: CreateMutationResult
 # Type Alias: CreateMutationResult\<TData, TError, TVariables, TContext\>
 
 ```ts
-type CreateMutationResult<TData, TError, TVariables, TContext>: Readable<CreateBaseMutationResult<TData, TError, TVariables, TContext>>;
+type CreateMutationResult<TData, TError, TVariables, TContext> = Readable<CreateBaseMutationResult<TData, TError, TVariables, TContext>>;
 ```
 
 Result from createMutation
@@ -23,4 +23,4 @@ Result from createMutation
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:126](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L126)
+[packages/svelte-query/src/types.ts:127](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L127)
diff --git a/docs/framework/svelte/reference/type-aliases/createqueryoptions.md b/docs/framework/svelte/reference/type-aliases/createqueryoptions.md
index 0f24070104..520d38f29f 100644
--- a/docs/framework/svelte/reference/type-aliases/createqueryoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/createqueryoptions.md
@@ -6,7 +6,7 @@ title: CreateQueryOptions
 # Type Alias: CreateQueryOptions\<TQueryFnData, TError, TData, TQueryKey\>
 
 ```ts
-type CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>: CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>;
+type CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> = CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>;
 ```
 
 Options for createQuery
@@ -19,8 +19,8 @@ Options for createQuery
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:38](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L38)
+[packages/svelte-query/src/types.ts:39](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L39)
diff --git a/docs/framework/svelte/reference/type-aliases/createqueryresult.md b/docs/framework/svelte/reference/type-aliases/createqueryresult.md
index f57f253fea..04fc016e01 100644
--- a/docs/framework/svelte/reference/type-aliases/createqueryresult.md
+++ b/docs/framework/svelte/reference/type-aliases/createqueryresult.md
@@ -6,7 +6,7 @@ title: CreateQueryResult
 # Type Alias: CreateQueryResult\<TData, TError\>
 
 ```ts
-type CreateQueryResult<TData, TError>: CreateBaseQueryResult<TData, TError>;
+type CreateQueryResult<TData, TError> = CreateBaseQueryResult<TData, TError>;
 ```
 
 Result from createQuery
@@ -19,4 +19,4 @@ Result from createQuery
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:46](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L46)
+[packages/svelte-query/src/types.ts:47](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L47)
diff --git a/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md b/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md
index 1c4afda88a..8a874c6d20 100644
--- a/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md
+++ b/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md
@@ -6,7 +6,7 @@ title: DefinedCreateBaseQueryResult
 # Type Alias: DefinedCreateBaseQueryResult\<TData, TError\>
 
 ```ts
-type DefinedCreateBaseQueryResult<TData, TError>: Readable<DefinedQueryObserverResult<TData, TError>>;
+type DefinedCreateBaseQueryResult<TData, TError> = Readable<DefinedQueryObserverResult<TData, TError>>;
 ```
 
 Options for createBaseQuery with initialData
@@ -19,4 +19,4 @@ Options for createBaseQuery with initialData
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:75](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L75)
+[packages/svelte-query/src/types.ts:76](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L76)
diff --git a/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md b/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md
index 7f360dc680..bcf78ad036 100644
--- a/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md
+++ b/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md
@@ -6,7 +6,7 @@ title: DefinedCreateQueryResult
 # Type Alias: DefinedCreateQueryResult\<TData, TError\>
 
 ```ts
-type DefinedCreateQueryResult<TData, TError>: DefinedCreateBaseQueryResult<TData, TError>;
+type DefinedCreateQueryResult<TData, TError> = DefinedCreateBaseQueryResult<TData, TError>;
 ```
 
 Options for createQuery with initialData
@@ -19,4 +19,4 @@ Options for createQuery with initialData
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:81](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L81)
+[packages/svelte-query/src/types.ts:82](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L82)
diff --git a/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md b/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md
index 95a0613537..176d91c61d 100644
--- a/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md
@@ -6,7 +6,7 @@ title: DefinedInitialDataOptions
 # Type Alias: DefinedInitialDataOptions\<TQueryFnData, TError, TData, TQueryKey\>
 
 ```ts
-type DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object;
+type DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object;
 ```
 
 ## Type declaration
@@ -14,7 +14,9 @@ type DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: CreateQu
 ### initialData
 
 ```ts
-initialData: NonUndefinedGuard<TQueryFnData> | () => NonUndefinedGuard<TQueryFnData>;
+initialData: 
+  | NonUndefinedGuard<TQueryFnData>
+| () => NonUndefinedGuard<TQueryFnData>;
 ```
 
 ## Type Parameters
@@ -25,8 +27,8 @@ initialData: NonUndefinedGuard<TQueryFnData> | () => NonUndefinedGuard<TQueryFnD
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 ## Defined in
 
-[packages/svelte-query/src/queryOptions.ts:15](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/queryOptions.ts#L15)
+[packages/svelte-query/src/queryOptions.ts:20](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/queryOptions.ts#L20)
diff --git a/docs/framework/svelte/reference/type-aliases/hydrationboundary.md b/docs/framework/svelte/reference/type-aliases/hydrationboundary.md
new file mode 100644
index 0000000000..47fa29ddee
--- /dev/null
+++ b/docs/framework/svelte/reference/type-aliases/hydrationboundary.md
@@ -0,0 +1,14 @@
+---
+id: HydrationBoundary
+title: HydrationBoundary
+---
+
+# Type Alias: HydrationBoundary
+
+```ts
+type HydrationBoundary = SvelteComponent;
+```
+
+## Defined in
+
+node\_modules/.pnpm/svelte@5.26.1/node\_modules/svelte/types/index.d.ts:2675
diff --git a/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md b/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md
index ecbdaad703..2c9edd210e 100644
--- a/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md
@@ -6,7 +6,7 @@ title: MutationStateOptions
 # Type Alias: MutationStateOptions\<TResult\>
 
 ```ts
-type MutationStateOptions<TResult>: object;
+type MutationStateOptions<TResult> = object;
 ```
 
 Options for useMutationState
@@ -31,7 +31,9 @@ optional select: (mutation) => TResult;
 
 #### Parameters
 
-• **mutation**: `Mutation`\<`unknown`, `DefaultError`, `unknown`, `unknown`\>
+##### mutation
+
+`Mutation`\<`unknown`, `DefaultError`, `unknown`, `unknown`\>
 
 #### Returns
 
@@ -39,4 +41,4 @@ optional select: (mutation) => TResult;
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:140](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L140)
+[packages/svelte-query/src/types.ts:135](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L135)
diff --git a/docs/framework/svelte/reference/type-aliases/queriesoptions.md b/docs/framework/svelte/reference/type-aliases/queriesoptions.md
index 0f6fe1097b..831379b4f4 100644
--- a/docs/framework/svelte/reference/type-aliases/queriesoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/queriesoptions.md
@@ -6,19 +6,19 @@ title: QueriesOptions
 # Type Alias: QueriesOptions\<T, TResults, TDepth\>
 
 ```ts
-type QueriesOptions<T, TResults, TDepth>: TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetQueryObserverOptionsForCreateQueries<Head>] : T extends [infer Head, ...(infer Tails)] ? QueriesOptions<[...Tails], [...TResults, GetQueryObserverOptionsForCreateQueries<Head>], [...TDepth, 1]> : ReadonlyArray<unknown> extends T ? T : T extends QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>[] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : QueryObserverOptionsForCreateQueries[];
+type QueriesOptions<T, TResults, TDepth> = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetQueryObserverOptionsForCreateQueries<Head>] : T extends [infer Head, ...(infer Tails)] ? QueriesOptions<[...Tails], [...TResults, GetQueryObserverOptionsForCreateQueries<Head>], [...TDepth, 1]> : ReadonlyArray<unknown> extends T ? T : T extends QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>[] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : QueryObserverOptionsForCreateQueries[];
 ```
 
 QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
 
 ## Type Parameters
 
-• **T** _extends_ `any`[]
+• **T** *extends* `any`[]
 
-• **TResults** _extends_ `any`[] = []
+• **TResults** *extends* `any`[] = []
 
-• **TDepth** _extends_ `ReadonlyArray`\<`number`\> = []
+• **TDepth** *extends* `ReadonlyArray`\<`number`\> = []
 
 ## Defined in
 
-[packages/svelte-query/src/createQueries.ts:129](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQueries.ts#L129)
+[packages/svelte-query/src/createQueries.ts:129](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQueries.ts#L129)
diff --git a/docs/framework/svelte/reference/type-aliases/queriesresults.md b/docs/framework/svelte/reference/type-aliases/queriesresults.md
index 7ce41d896f..f02e4cfa9f 100644
--- a/docs/framework/svelte/reference/type-aliases/queriesresults.md
+++ b/docs/framework/svelte/reference/type-aliases/queriesresults.md
@@ -6,19 +6,19 @@ title: QueriesResults
 # Type Alias: QueriesResults\<T, TResults, TDepth\>
 
 ```ts
-type QueriesResults<T, TResults, TDepth>: TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryResult<Head>] : T extends [infer Head, ...(infer Tails)] ? QueriesResults<[...Tails], [...TResults, GetCreateQueryResult<Head>], [...TDepth, 1]> : T extends QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, any>[] ? QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError>[] : QueryObserverResult[];
+type QueriesResults<T, TResults, TDepth> = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryResult<Head>] : T extends [infer Head, ...(infer Tails)] ? QueriesResults<[...Tails], [...TResults, GetCreateQueryResult<Head>], [...TDepth, 1]> : { [K in keyof T]: GetCreateQueryResult<T[K]> };
 ```
 
 QueriesResults reducer recursively maps type param to results
 
 ## Type Parameters
 
-• **T** _extends_ `any`[]
+• **T** *extends* `any`[]
 
-• **TResults** _extends_ `any`[] = []
+• **TResults** *extends* `any`[] = []
 
-• **TDepth** _extends_ `ReadonlyArray`\<`number`\> = []
+• **TDepth** *extends* `ReadonlyArray`\<`number`\> = []
 
 ## Defined in
 
-[packages/svelte-query/src/createQueries.ts:171](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQueries.ts#L171)
+[packages/svelte-query/src/createQueries.ts:171](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQueries.ts#L171)
diff --git a/docs/framework/svelte/reference/type-aliases/storeorval.md b/docs/framework/svelte/reference/type-aliases/storeorval.md
index 7f7c5d5125..b3151118ff 100644
--- a/docs/framework/svelte/reference/type-aliases/storeorval.md
+++ b/docs/framework/svelte/reference/type-aliases/storeorval.md
@@ -6,7 +6,7 @@ title: StoreOrVal
 # Type Alias: StoreOrVal\<T\>
 
 ```ts
-type StoreOrVal<T>: T | Readable<T>;
+type StoreOrVal<T> = T | Readable<T>;
 ```
 
 Allows a type to be either the base object or a store of that object
@@ -17,4 +17,4 @@ Allows a type to be either the base object or a store of that object
 
 ## Defined in
 
-[packages/svelte-query/src/types.ts:20](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L20)
+[packages/svelte-query/src/types.ts:21](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L21)
diff --git a/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md b/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md
index de13b3d802..88747af68f 100644
--- a/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md
+++ b/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md
@@ -6,7 +6,7 @@ title: UndefinedInitialDataOptions
 # Type Alias: UndefinedInitialDataOptions\<TQueryFnData, TError, TData, TQueryKey\>
 
 ```ts
-type UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object;
+type UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object;
 ```
 
 ## Type declaration
@@ -14,7 +14,7 @@ type UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>: Create
 ### initialData?
 
 ```ts
-optional initialData: undefined;
+optional initialData: InitialDataFunction<NonUndefinedGuard<TQueryFnData>>;
 ```
 
 ## Type Parameters
@@ -25,8 +25,8 @@ optional initialData: undefined;
 
 • **TData** = `TQueryFnData`
 
-• **TQueryKey** _extends_ `QueryKey` = `QueryKey`
+• **TQueryKey** *extends* `QueryKey` = `QueryKey`
 
 ## Defined in
 
-[packages/svelte-query/src/queryOptions.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/queryOptions.ts#L4)
+[packages/svelte-query/src/queryOptions.ts:9](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/queryOptions.ts#L9)
diff --git a/docs/framework/svelte/reference/variables/hydrationboundary.md b/docs/framework/svelte/reference/variables/hydrationboundary.md
new file mode 100644
index 0000000000..3015e71d81
--- /dev/null
+++ b/docs/framework/svelte/reference/variables/hydrationboundary.md
@@ -0,0 +1,14 @@
+---
+id: HydrationBoundary
+title: HydrationBoundary
+---
+
+# Variable: HydrationBoundary
+
+```ts
+const HydrationBoundary: LegacyComponentType;
+```
+
+## Defined in
+
+node\_modules/.pnpm/svelte@5.26.1/node\_modules/svelte/types/index.d.ts:2675
diff --git a/docs/framework/vue/reactivity.md b/docs/framework/vue/reactivity.md
index 50e5b8874f..6ad9a459a1 100644
--- a/docs/framework/vue/reactivity.md
+++ b/docs/framework/vue/reactivity.md
@@ -155,7 +155,7 @@ export function useUserProjects(userId: MaybeRef<string>) {
 }
 ```
 
-More details on this option can be found on the [useQuery reference](./reference/useQuery.md) page.
+More details on this option can be found on the [useQuery reference](../reference/useQuery.md) page.
 
 ## Immutability
 
diff --git a/docs/reference/QueryCache.md b/docs/reference/QueryCache.md
index cd3e0f2a51..2b3843cc1f 100644
--- a/docs/reference/QueryCache.md
+++ b/docs/reference/QueryCache.md
@@ -75,8 +75,8 @@ const queries = queryCache.findAll(queryKey)
 
 **Options**
 
-- `queryKey?: QueryKey`: [Query Keys](../framework/react/guides/query-keys.md)
-- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters.md#query-filters)
+- `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters)
 
 **Returns**
 
@@ -118,6 +118,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.md#18-inside-react-query) from the Community Resources.
+](../../framework/react/community/tkdodos-blog.md#18-inside-react-query) from the Community Resources.
 
 [//]: # 'Materials'
diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md
index 8ce2c3b510..78fab85092 100644
--- a/docs/reference/QueryClient.md
+++ b/docs/reference/QueryClient.md
@@ -63,7 +63,7 @@ Its available methods are:
 - `defaultOptions?: DefaultOptions`
   - Optional
   - Define defaults for all queries and mutations using this queryClient.
-  - You can also define defaults to be used for [hydration](../framework/react/reference/hydration)
+  - You can also define defaults to be used for [hydration](../../framework/react/reference/hydration.md)
 
 ## `queryClient.fetchQuery`
 
@@ -95,7 +95,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, refetchOnMount, notifyOnChangeProps, throwOnError, select, suspense, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/TanStack/query/blob/7cd2d192e6da3df0b08e334ea1cf04cd70478827/packages/query-core/src/types.ts#L119) for more clarity.
+The options for `fetchQuery` are exactly the same as those of [`useQuery`](../../framework/react/reference/useQuery.md), except the following: `enabled, refetchInterval, refetchIntervalInBackground, refetchOnWindowFocus, refetchOnReconnect, refetchOnMount, notifyOnChangeProps, throwOnError, select, suspense, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/TanStack/query/blob/7cd2d192e6da3df0b08e334ea1cf04cd70478827/packages/query-core/src/types.ts#L119) for more clarity.
 
 **Returns**
 
@@ -172,7 +172,7 @@ const data = queryClient.getQueryData(queryKey)
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md)
 
 **Returns**
 
@@ -234,7 +234,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.md#query-filters)
   - if a filter is passed, the data with queryKeys matching the filter will be returned
 
 **Returns**
@@ -260,7 +260,7 @@ queryClient.setQueryData(queryKey, updater)
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md)
 - `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.
@@ -298,7 +298,7 @@ console.log(state.dataUpdatedAt)
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md)
 
 ## `queryClient.setQueriesData`
 
@@ -310,7 +310,7 @@ queryClient.setQueriesData(filters, updater)
 
 **Options**
 
-- `filters: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters)
+- `filters: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#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
@@ -335,8 +335,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.md#query-filters)
+  - `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md)
   - `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.
@@ -377,7 +377,7 @@ await queryClient.refetchQueries({
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters)
 - `options?: RefetchOptions`:
   - `throwOnError?: boolean`
     - When set to `true`, this method will throw if any of the query refetch tasks fail.
@@ -402,7 +402,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.md#query-filters)
 
 **Returns**
 
@@ -418,7 +418,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.md#query-filters)
 
 **Returns**
 
@@ -441,7 +441,7 @@ queryClient.resetQueries({ queryKey, exact: true })
 
 **Options**
 
-- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters)
+- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters)
 - `options?: ResetOptions`:
   - `throwOnError?: boolean`
     - When set to `true`, this method will throw if any of the query refetch tasks fail.
@@ -464,11 +464,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.md) 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.md#query-filters)
 
 **Returns**
 
@@ -484,11 +484,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.md) 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.md#mutation-filters)
 
 **Returns**
 
@@ -539,7 +539,7 @@ function Component() {
 
 **Options**
 
-- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys)
+- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md)
 - `options: QueryOptions`
 
 > As stated in [`getQueryDefaults`](#queryclientgetquerydefaults), the order of registration of query defaults does matter.
diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md
index 1926b0fd68..6c1444c254 100644
--- a/docs/reference/streamedQuery.md
+++ b/docs/reference/streamedQuery.md
@@ -5,7 +5,7 @@ title: streamedQuery
 
 `streamedQuery` is a helper function to create a query function that streams data from an [AsyncIterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator). Data will be an Array of all the chunks received. The query will be in a `pending` state until the first chunk of data is received, but will go to `success` after that. The query will stay in fetchStatus `fetching` until the stream ends.
 
-To see `streamedQuery` in action, take a look at our [chat example](../framework/react/examples/chat).
+To see `streamedQuery` in action, take a look at our chat example in the [examples/react/chat directory on GitHub](https://github.com/TanStack/query/tree/main/examples/react/chat).
 
 ```tsx
 import { experimental_streamedQuery as streamedQuery } from '@tanstack/react-query'
@@ -25,7 +25,7 @@ const query = queryOptions({
 - `queryFn: (context: QueryFunctionContext) => Promise<AsyncIterable<TData>>`
   - **Required**
   - The function that returns a Promise of an AsyncIterable of data to stream in.
-  - Receives a [QueryFunctionContext](../guides/query-functions.md#queryfunctioncontext)
+  - Receives a [QueryFunctionContext](../../framework/react/guides/query-functions.md#queryfunctioncontext)
 - `refetchMode?: 'append' | 'reset' | 'replace`
   - Optional
   - Defines how refetches are handled.
@@ -33,3 +33,4 @@ const query = queryOptions({
   - When set to `'reset'`, the query will erase all data and go back into `pending` state.
   - When set to `'append'`, data will be appended to existing data.
   - When set to `'replace'`, data will be written to the cache at the end of the stream.
+
diff --git a/package.json b/package.json
index 835dd44626..879e472583 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,8 @@
     "prettier": "prettier --ignore-unknown '**/*'",
     "prettier:write": "pnpm run prettier --write",
     "docs:generate": "node scripts/generateDocs.js",
-    "cipublish": "node scripts/publish.js"
+    "cipublish": "node scripts/publish.js",
+    "verify-links": "node scripts/verify-links.ts"
   },
   "nx": {
     "includedScripts": [
@@ -42,7 +43,7 @@
     "@eslint-react/eslint-plugin": "^1.19.0",
     "@tanstack/config": "^0.14.2",
     "@testing-library/jest-dom": "^6.6.3",
-    "@types/node": "^22.9.3",
+    "@types/node": "^22.15.3",
     "@types/react": "^19.0.1",
     "@types/react-dom": "^19.0.2",
     "@vitest/coverage-istanbul": "^3.1.1",
@@ -51,8 +52,10 @@
     "esbuild-plugin-file-path-extensions": "^2.1.4",
     "eslint": "^9.15.0",
     "eslint-plugin-react-hooks": "^5.2.0",
+    "fast-glob": "^3.3.3",
     "jsdom": "^25.0.1",
     "knip": "^5.50.2",
+    "markdown-link-extractor": "^4.0.2",
     "nx": "20.7.2",
     "premove": "^4.0.0",
     "prettier": "^3.5.3",
@@ -61,6 +64,7 @@
     "react": "^19.0.0",
     "react-dom": "^19.0.0",
     "sherif": "^1.0.0",
+    "ts-node": "^10.9.2",
     "tsup": "^8.4.0",
     "typescript": "5.8.3",
     "typescript50": "npm:typescript@5.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index bf50e50f0a..35a700d63f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -51,7 +51,7 @@ importers:
         specifier: ^6.6.3
         version: 6.6.3
       '@types/node':
-        specifier: ^22.9.3
+        specifier: ^22.15.3
         version: 22.15.3
       '@types/react':
         specifier: ^19.0.1
@@ -77,12 +77,18 @@ importers:
       eslint-plugin-react-hooks:
         specifier: ^5.2.0
         version: 5.2.0(eslint@9.15.0(jiti@2.4.2))
+      fast-glob:
+        specifier: ^3.3.3
+        version: 3.3.3
       jsdom:
         specifier: ^25.0.1
         version: 25.0.1
       knip:
         specifier: ^5.50.2
         version: 5.50.2(@types/node@22.15.3)(typescript@5.8.3)
+      markdown-link-extractor:
+        specifier: ^4.0.2
+        version: 4.0.2
       nx:
         specifier: 20.7.2
         version: 20.7.2
@@ -107,6 +113,9 @@ importers:
       sherif:
         specifier: ^1.0.0
         version: 1.0.0
+      ts-node:
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@22.15.3)(typescript@5.8.3)
       tsup:
         specifier: ^8.4.0
         version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)
@@ -1514,7 +1523,7 @@ importers:
         version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(yaml@2.6.1)
       '@astrojs/tailwind':
         specifier: ^6.0.2
-        version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7)
+        version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       '@astrojs/vercel':
         specifier: ^8.1.3
         version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))
@@ -1532,7 +1541,7 @@ importers:
         version: 1.9.5
       tailwindcss:
         specifier: ^3.4.7
-        version: 3.4.7
+        version: 3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       typescript:
         specifier: 5.8.3
         version: 5.8.3
@@ -1910,7 +1919,7 @@ importers:
         version: 4.1.5(picomatch@4.0.2)(svelte@5.26.1)(typescript@5.8.3)
       tailwindcss:
         specifier: ^3.4.7
-        version: 3.4.7
+        version: 3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       typescript:
         specifier: 5.8.3
         version: 5.8.3
@@ -2736,7 +2745,7 @@ importers:
         version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))
       eslint-plugin-svelte:
         specifier: ^2.46.0
-        version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)
+        version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       svelte:
         specifier: ^5.26.1
         version: 5.26.1
@@ -2764,7 +2773,7 @@ importers:
         version: link:../svelte-query
       eslint-plugin-svelte:
         specifier: ^2.46.0
-        version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)
+        version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       svelte:
         specifier: ^5.26.1
         version: 5.26.1
@@ -2795,7 +2804,7 @@ importers:
         version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))
       eslint-plugin-svelte:
         specifier: ^2.46.0
-        version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)
+        version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       svelte:
         specifier: ^5.26.1
         version: 5.26.1
@@ -4530,6 +4539,10 @@ packages:
     resolution: {integrity: sha512-LMvReIndW1ckvemElfDgTt282fb2C3C/ZXfsm0pJsTV5ZmtdelCHwzmgSBmY5fDr7D66XDp8EurotSE0K6BTvw==}
     engines: {node: '>=18.0'}
 
+  '@cspotcode/source-map-support@0.8.1':
+    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+    engines: {node: '>=12'}
+
   '@deno/shim-deno-test@0.5.0':
     resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==}
 
@@ -5859,6 +5872,9 @@ packages:
   '@jridgewell/trace-mapping@0.3.25':
     resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
 
+  '@jridgewell/trace-mapping@0.3.9':
+    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
   '@js-temporal/polyfill@0.4.4':
     resolution: {integrity: sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg==}
     engines: {node: '>=12'}
@@ -7375,6 +7391,18 @@ packages:
       vitest:
         optional: true
 
+  '@tsconfig/node10@1.0.11':
+    resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
+
+  '@tsconfig/node12@1.0.11':
+    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+
+  '@tsconfig/node14@1.0.3':
+    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+
+  '@tsconfig/node16@1.0.4':
+    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+
   '@tsconfig/svelte@5.0.4':
     resolution: {integrity: sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==}
 
@@ -8032,6 +8060,10 @@ packages:
     peerDependencies:
       acorn: '>=8.9.0'
 
+  acorn-walk@8.3.4:
+    resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+    engines: {node: '>=0.4.0'}
+
   acorn@6.4.2:
     resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==}
     engines: {node: '>=0.4.0'}
@@ -8200,6 +8232,9 @@ packages:
     resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
     engines: {node: '>=14'}
 
+  arg@4.1.3:
+    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+
   arg@5.0.2:
     resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
 
@@ -8757,6 +8792,13 @@ packages:
     resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
     engines: {node: '>= 16'}
 
+  cheerio-select@2.1.0:
+    resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
+
+  cheerio@1.0.0:
+    resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==}
+    engines: {node: '>=18.17'}
+
   chokidar@2.1.8:
     resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==}
 
@@ -9131,6 +9173,9 @@ packages:
   create-hmac@1.1.7:
     resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==}
 
+  create-require@1.1.1:
+    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+
   croner@9.0.0:
     resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==}
     engines: {node: '>=18.0'}
@@ -9440,6 +9485,10 @@ packages:
     resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
 
+  diff@4.0.2:
+    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+    engines: {node: '>=0.3.1'}
+
   diff@5.2.0:
     resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
     engines: {node: '>=0.3.1'}
@@ -9578,6 +9627,9 @@ packages:
     resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
     engines: {node: '>= 0.8'}
 
+  encoding-sniffer@0.2.0:
+    resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==}
+
   encoding@0.1.13:
     resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
 
@@ -10699,6 +10751,9 @@ packages:
   html-escaper@3.0.3:
     resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
 
+  html-link-extractor@1.0.5:
+    resolution: {integrity: sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==}
+
   html-minifier-terser@5.1.1:
     resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==}
     engines: {node: '>=6'}
@@ -10739,6 +10794,9 @@ packages:
   htmlparser2@6.1.0:
     resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
 
+  htmlparser2@9.1.0:
+    resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==}
+
   http-cache-semantics@4.1.1:
     resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
 
@@ -11818,6 +11876,9 @@ packages:
     resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
     engines: {node: '>=10'}
 
+  make-error@1.3.6:
+    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
   make-fetch-happen@13.0.1:
     resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==}
     engines: {node: ^16.14.0 || >=18.0.0}
@@ -11841,6 +11902,9 @@ packages:
     resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
     hasBin: true
 
+  markdown-link-extractor@4.0.2:
+    resolution: {integrity: sha512-5cUOu4Vwx1wenJgxaudsJ8xwLUMN7747yDJX3V/L7+gi3e4MsCm7w5nbrDQQy8nEfnl4r5NV3pDXMAjhGXYXAw==}
+
   markdown-table@3.0.4:
     resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
 
@@ -11850,6 +11914,11 @@ packages:
     peerDependencies:
       marked: '>=1 <12'
 
+  marked@12.0.2:
+    resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==}
+    engines: {node: '>= 18'}
+    hasBin: true
+
   marked@9.1.6:
     resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==}
     engines: {node: '>= 16'}
@@ -12892,6 +12961,12 @@ packages:
   parse5-html-rewriting-stream@7.1.0:
     resolution: {integrity: sha512-2ifK6Jb+ONoqOy5f+cYHsqvx1obHQdvIk13Jmt/5ezxP0U9p+fqd+R6O73KblGswyuzBYfetmsfK9ThMgnuPPg==}
 
+  parse5-htmlparser2-tree-adapter@7.1.0:
+    resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==}
+
+  parse5-parser-stream@7.1.2:
+    resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==}
+
   parse5-sax-parser@7.0.0:
     resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==}
 
@@ -14835,6 +14910,20 @@ packages:
   ts-interface-checker@0.1.13:
     resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
 
+  ts-node@10.9.2:
+    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
+    hasBin: true
+    peerDependencies:
+      '@swc/core': '>=1.2.50'
+      '@swc/wasm': '>=1.2.50'
+      '@types/node': '*'
+      typescript: '>=2.7'
+    peerDependenciesMeta:
+      '@swc/core':
+        optional: true
+      '@swc/wasm':
+        optional: true
+
   ts-pattern@5.6.0:
     resolution: {integrity: sha512-SL8u60X5+LoEy9tmQHWCdPc2hhb2pKI6I1tU5Jue3v8+iRqZdcT3mWPwKKJy1fMfky6uha82c8ByHAE8PMhKHw==}
 
@@ -15337,6 +15426,9 @@ packages:
     resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
     hasBin: true
 
+  v8-compile-cache-lib@3.0.1:
+    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
   v8flags@4.0.1:
     resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==}
     engines: {node: '>= 10.13.0'}
@@ -16091,6 +16183,10 @@ packages:
     resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
     engines: {node: '>=12'}
 
+  yn@3.1.1:
+    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+    engines: {node: '>=6'}
+
   yocto-queue@0.1.0:
     resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
     engines: {node: '>=10'}
@@ -16508,13 +16604,13 @@ snapshots:
       - tsx
       - yaml
 
-  '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7)':
+  '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))':
     dependencies:
       astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1)
       autoprefixer: 10.4.21(postcss@8.5.3)
       postcss: 8.5.3
-      postcss-load-config: 4.0.2(postcss@8.5.3)
-      tailwindcss: 3.4.7
+      postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
+      tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
     transitivePeerDependencies:
       - ts-node
 
@@ -18371,6 +18467,10 @@ snapshots:
 
   '@cspell/url@8.17.1': {}
 
+  '@cspotcode/source-map-support@0.8.1':
+    dependencies:
+      '@jridgewell/trace-mapping': 0.3.9
+
   '@deno/shim-deno-test@0.5.0': {}
 
   '@deno/shim-deno@0.19.2':
@@ -19721,6 +19821,11 @@ snapshots:
       '@jridgewell/resolve-uri': 3.1.2
       '@jridgewell/sourcemap-codec': 1.5.0
 
+  '@jridgewell/trace-mapping@0.3.9':
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.2
+      '@jridgewell/sourcemap-codec': 1.5.0
+
   '@js-temporal/polyfill@0.4.4':
     dependencies:
       jsbi: 4.3.0
@@ -21421,6 +21526,14 @@ snapshots:
       vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)
       vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)
 
+  '@tsconfig/node10@1.0.11': {}
+
+  '@tsconfig/node12@1.0.11': {}
+
+  '@tsconfig/node14@1.0.3': {}
+
+  '@tsconfig/node16@1.0.4': {}
+
   '@tsconfig/svelte@5.0.4': {}
 
   '@tufjs/canonical-json@2.0.0': {}
@@ -22319,6 +22432,10 @@ snapshots:
     dependencies:
       acorn: 8.14.1
 
+  acorn-walk@8.3.4:
+    dependencies:
+      acorn: 8.14.1
+
   acorn@6.4.2: {}
 
   acorn@8.14.1: {}
@@ -22480,6 +22597,8 @@ snapshots:
 
   are-docs-informative@0.0.2: {}
 
+  arg@4.1.3: {}
+
   arg@5.0.2: {}
 
   argparse@1.0.10:
@@ -23293,6 +23412,29 @@ snapshots:
 
   check-error@2.1.1: {}
 
+  cheerio-select@2.1.0:
+    dependencies:
+      boolbase: 1.0.0
+      css-select: 5.1.0
+      css-what: 6.1.0
+      domelementtype: 2.3.0
+      domhandler: 5.0.3
+      domutils: 3.2.2
+
+  cheerio@1.0.0:
+    dependencies:
+      cheerio-select: 2.1.0
+      dom-serializer: 2.0.0
+      domhandler: 5.0.3
+      domutils: 3.2.2
+      encoding-sniffer: 0.2.0
+      htmlparser2: 9.1.0
+      parse5: 7.2.1
+      parse5-htmlparser2-tree-adapter: 7.1.0
+      parse5-parser-stream: 7.1.2
+      undici: 6.21.0
+      whatwg-mimetype: 4.0.0
+
   chokidar@2.1.8:
     dependencies:
       anymatch: 2.0.0
@@ -23716,6 +23858,8 @@ snapshots:
       safe-buffer: 5.2.1
       sha.js: 2.4.11
 
+  create-require@1.1.1: {}
+
   croner@9.0.0: {}
 
   cross-env@7.0.3:
@@ -24032,6 +24176,8 @@ snapshots:
 
   diff-sequences@29.6.3: {}
 
+  diff@4.0.2: {}
+
   diff@5.2.0: {}
 
   diff@7.0.0: {}
@@ -24180,6 +24326,11 @@ snapshots:
 
   encodeurl@2.0.0: {}
 
+  encoding-sniffer@0.2.0:
+    dependencies:
+      iconv-lite: 0.6.3
+      whatwg-encoding: 3.1.1
+
   encoding@0.1.13:
     dependencies:
       iconv-lite: 0.6.3
@@ -24669,7 +24820,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1):
+  eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
     dependencies:
       '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2))
       '@jridgewell/sourcemap-codec': 1.5.0
@@ -24678,7 +24829,7 @@ snapshots:
       esutils: 2.0.3
       known-css-properties: 0.35.0
       postcss: 8.5.3
-      postcss-load-config: 3.1.4(postcss@8.5.3)
+      postcss-load-config: 3.1.4(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       postcss-safe-parser: 6.0.0(postcss@8.5.3)
       postcss-selector-parser: 6.1.1
       semver: 7.7.1
@@ -25735,6 +25886,10 @@ snapshots:
 
   html-escaper@3.0.3: {}
 
+  html-link-extractor@1.0.5:
+    dependencies:
+      cheerio: 1.0.0
+
   html-minifier-terser@5.1.1:
     dependencies:
       camel-case: 4.1.2
@@ -25796,6 +25951,13 @@ snapshots:
       domutils: 2.8.0
       entities: 2.2.0
 
+  htmlparser2@9.1.0:
+    dependencies:
+      domelementtype: 2.3.0
+      domhandler: 5.0.3
+      domutils: 3.2.2
+      entities: 4.5.0
+
   http-cache-semantics@4.1.1: {}
 
   http-errors@2.0.0:
@@ -26957,6 +27119,8 @@ snapshots:
     dependencies:
       semver: 7.7.1
 
+  make-error@1.3.6: {}
+
   make-fetch-happen@13.0.1:
     dependencies:
       '@npmcli/agent': 2.2.2
@@ -27009,6 +27173,11 @@ snapshots:
       punycode.js: 2.3.1
       uc.micro: 2.1.0
 
+  markdown-link-extractor@4.0.2:
+    dependencies:
+      html-link-extractor: 1.0.5
+      marked: 12.0.2
+
   markdown-table@3.0.4: {}
 
   marked-terminal@6.2.0(marked@9.1.6):
@@ -27021,6 +27190,8 @@ snapshots:
       node-emoji: 2.1.3
       supports-hyperlinks: 3.0.0
 
+  marked@12.0.2: {}
+
   marked@9.1.6: {}
 
   marky@1.2.5: {}
@@ -28673,6 +28844,15 @@ snapshots:
       parse5: 7.2.1
       parse5-sax-parser: 7.0.0
 
+  parse5-htmlparser2-tree-adapter@7.1.0:
+    dependencies:
+      domhandler: 5.0.3
+      parse5: 7.2.1
+
+  parse5-parser-stream@7.1.2:
+    dependencies:
+      parse5: 7.2.1
+
   parse5-sax-parser@7.0.0:
     dependencies:
       parse5: 7.2.1
@@ -28823,19 +29003,21 @@ snapshots:
       camelcase-css: 2.0.1
       postcss: 8.5.3
 
-  postcss-load-config@3.1.4(postcss@8.5.3):
+  postcss-load-config@3.1.4(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
     dependencies:
       lilconfig: 2.1.0
       yaml: 1.10.2
     optionalDependencies:
       postcss: 8.5.3
+      ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3)
 
-  postcss-load-config@4.0.2(postcss@8.5.3):
+  postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
     dependencies:
       lilconfig: 3.1.2
       yaml: 2.6.1
     optionalDependencies:
       postcss: 8.5.3
+      ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3)
 
   postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.6.1):
     dependencies:
@@ -30599,7 +30781,7 @@ snapshots:
 
   system-architecture@0.1.0: {}
 
-  tailwindcss@3.4.7:
+  tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
     dependencies:
       '@alloc/quick-lru': 5.2.0
       arg: 5.0.2
@@ -30618,7 +30800,7 @@ snapshots:
       postcss: 8.5.3
       postcss-import: 15.1.0(postcss@8.5.3)
       postcss-js: 4.0.1(postcss@8.5.3)
-      postcss-load-config: 4.0.2(postcss@8.5.3)
+      postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
       postcss-nested: 6.2.0(postcss@8.5.3)
       postcss-selector-parser: 6.1.1
       resolve: 1.22.10
@@ -30872,6 +31054,24 @@ snapshots:
 
   ts-interface-checker@0.1.13: {}
 
+  ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3):
+    dependencies:
+      '@cspotcode/source-map-support': 0.8.1
+      '@tsconfig/node10': 1.0.11
+      '@tsconfig/node12': 1.0.11
+      '@tsconfig/node14': 1.0.3
+      '@tsconfig/node16': 1.0.4
+      '@types/node': 22.15.3
+      acorn: 8.14.1
+      acorn-walk: 8.3.4
+      arg: 4.1.3
+      create-require: 1.1.1
+      diff: 4.0.2
+      make-error: 1.3.6
+      typescript: 5.8.3
+      v8-compile-cache-lib: 3.0.1
+      yn: 3.1.1
+
   ts-pattern@5.6.0: {}
 
   tsconfck@3.1.5(typescript@5.8.3):
@@ -31346,6 +31546,8 @@ snapshots:
 
   uuid@8.3.2: {}
 
+  v8-compile-cache-lib@3.0.1: {}
+
   v8flags@4.0.1: {}
 
   validate-html-nesting@1.2.2: {}
@@ -32192,6 +32394,8 @@ snapshots:
       y18n: 5.0.8
       yargs-parser: 21.1.1
 
+  yn@3.1.1: {}
+
   yocto-queue@0.1.0: {}
 
   yocto-queue@1.1.1: {}
diff --git a/scripts/generateDocs.js b/scripts/generateDocs.js
index fdf6aac0a7..a02332bd46 100644
--- a/scripts/generateDocs.js
+++ b/scripts/generateDocs.js
@@ -29,4 +29,36 @@ const packages = [
 
 await generateReferenceDocs({ packages })
 
+import fg from 'fast-glob'
+import { readFileSync, writeFileSync } from 'node:fs'
+
+// Define the pattern to match all generated markdown files
+const markdownFilesPattern = 'docs/framework/{angular,svelte}/reference/**/*.md'
+
+// Find all markdown files matching the pattern
+const markdownFiles = await fg(markdownFilesPattern)
+
+console.log(`Found ${markdownFiles.length} markdown files to process\n`)
+
+// Process each markdown file
+markdownFiles.forEach(file => {
+  const content = readFileSync(file, 'utf-8')
+  let updatedContent = content
+  updatedContent = updatedContent.replaceAll(/\]\(\.\.\//gm, '](../../')
+  // updatedContent = content.replaceAll(/\]\(\.\//gm, '](../')
+  updatedContent = updatedContent.replaceAll(
+    /\]\((?!https?:\/\/|\/\/|\/|\.\/|\.\.\/|#)([^)]+)\)/gm,
+    (match, p1) => `](../${p1})`
+  )
+
+  // Write the updated content back to the file
+  if (updatedContent !== content) {
+    writeFileSync(file, updatedContent, 'utf-8')
+    console.log(`Processed file: ${file}`)
+  }
+})
+
+console.log('\n✅ All markdown files have been processed!')
+
+
 process.exit(0)
diff --git a/scripts/verify-links.ts b/scripts/verify-links.ts
new file mode 100644
index 0000000000..023e981c52
--- /dev/null
+++ b/scripts/verify-links.ts
@@ -0,0 +1,130 @@
+import fg from 'fast-glob'
+import { readFileSync, existsSync, statSync } from 'node:fs'
+// @ts-ignore
+import markdownLinkExtractor from 'markdown-link-extractor'
+import path, { join, dirname, resolve } from 'node:path'
+
+interface MarkdownLink {
+  href: string
+  text: string
+}
+
+function isRelativeLink(link: string) {
+  return (
+    link &&
+    !link.startsWith('http://') &&
+    !link.startsWith('https://') &&
+    !link.startsWith('//') &&
+    !link.startsWith('#') &&
+    !link.startsWith('mailto:')
+  )
+}
+
+function normalizePath(p: string): string {
+  // Remove any trailing .md
+  p = p.replace(`${path.extname(p)}`, '')
+  return p
+}
+
+function fileExistsForLink(link: string, markdownFile: string, errors: any[]): boolean {
+  // Remove hash if present
+  const filePart = link.split('#')[0]
+  // If the link is empty after removing hash, it's not a file
+  if (!filePart) return false
+
+  // Normalize the markdown file path
+  markdownFile = normalizePath(markdownFile)
+
+  // Normalize the path
+  const normalizedPath = normalizePath(filePart)
+
+  // Resolve the path relative to the markdown file's directory
+  let absPath = resolve(markdownFile, normalizedPath)
+
+  // Ensure the resolved path is within /docs
+  const docsRoot = resolve('docs')
+  if (!absPath.startsWith(docsRoot)) {
+    errors.push({
+      link,
+      markdownFile,
+      resolvedPath: absPath,
+      reason: 'navigates above /docs, invalid',
+    })
+    return false
+  }
+
+  // Check if this is an example path
+  const isExample = absPath.includes('/examples/')
+
+  let exists = false
+  
+  if (isExample) {
+    // Transform /docs/framework/{framework}/examples/ to /examples/{framework}/
+    absPath = absPath.replace(/\/docs\/framework\/([^/]+)\/examples\//, '/examples/$1/')
+    // For examples, we want to check if the directory exists
+    exists = existsSync(absPath) && statSync(absPath).isDirectory()
+  } else {
+    // For non-examples, we want to check if the .md file exists
+    if (!absPath.endsWith('.md')) {
+      absPath = `${absPath}.md`
+    }
+    exists = existsSync(absPath)
+  }
+
+  if (!exists) {
+    errors.push({
+      link,
+      markdownFile,
+      resolvedPath: absPath,
+      reason: 'not found',
+    })
+  }
+  return exists
+}
+
+async function findMarkdownLinks() {
+  // Find all markdown files in docs directory
+  const markdownFiles = await fg('docs/**/*.md', {
+    ignore: ['**/node_modules/**'],
+  })
+
+  console.log(`Found ${markdownFiles.length} markdown files\n`)
+
+  const errors: any[] = []
+
+  // Process each file
+  for (const file of markdownFiles) {
+    const content = readFileSync(file, 'utf-8')
+    const links: any[] = markdownLinkExtractor(content)
+
+    const filteredLinks = links.filter((link: any) => {
+      if (typeof link === 'string') {
+        return isRelativeLink(link)
+      } else if (link && typeof link.href === 'string') {
+        return isRelativeLink(link.href)
+      }
+      return false
+    })
+
+    if (filteredLinks.length > 0) {
+      filteredLinks.forEach((link: any) => {
+        const href = typeof link === 'string' ? link : link.href
+        fileExistsForLink(href, file, errors)
+      })
+    }
+  }
+
+  if (errors.length > 0) {
+    console.log(`\n❌ Found ${errors.length} broken links:`)
+    errors.forEach(err => {
+      console.log(
+        `${err.link}\n  in:    ${err.markdownFile}\n  path:  ${err.resolvedPath}\n  why:   ${err.reason}\n`
+      )
+    })
+    process.exit(1)
+  } else {
+    console.log('\n✅ No broken links found!')
+  }
+}
+
+findMarkdownLinks().catch(console.error)
