@tanstack/angular-query-experimental 5.60.0 → 5.60.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/build/{rollup.d.ts → index.d.ts} +280 -361
  2. package/build/index.js +572 -0
  3. package/build/index.js.map +1 -0
  4. package/package.json +12 -15
  5. package/src/create-base-query.ts +117 -0
  6. package/src/index.ts +28 -0
  7. package/src/infinite-query-options.ts +125 -0
  8. package/src/inject-infinite-query.ts +119 -0
  9. package/src/inject-is-fetching.ts +49 -0
  10. package/src/inject-is-mutating.ts +48 -0
  11. package/src/inject-mutation-state.ts +102 -0
  12. package/src/inject-mutation.ts +121 -0
  13. package/src/inject-queries.ts +246 -0
  14. package/src/inject-query-client.ts +22 -0
  15. package/src/inject-query.ts +207 -0
  16. package/src/providers.ts +351 -0
  17. package/src/query-options.ts +125 -0
  18. package/src/signal-proxy.ts +46 -0
  19. package/src/test-setup.ts +12 -0
  20. package/src/types.ts +328 -0
  21. package/src/util/assert-injector/assert-injector.test.ts +74 -0
  22. package/src/util/assert-injector/assert-injector.ts +81 -0
  23. package/src/util/index.ts +13 -0
  24. package/src/util/is-dev-mode/is-dev-mode.ts +3 -0
  25. package/src/util/lazy-init/lazy-init.ts +34 -0
  26. package/src/util/lazy-signal-initializer/lazy-signal-initializer.ts +23 -0
  27. package/build/README.md +0 -133
  28. package/build/esm2022/create-base-query.mjs +0 -62
  29. package/build/esm2022/index.mjs +0 -16
  30. package/build/esm2022/infinite-query-options.mjs +0 -12
  31. package/build/esm2022/inject-infinite-query.mjs +0 -15
  32. package/build/esm2022/inject-is-fetching.mjs +0 -38
  33. package/build/esm2022/inject-is-mutating.mjs +0 -37
  34. package/build/esm2022/inject-mutation-state.mjs +0 -47
  35. package/build/esm2022/inject-mutation.mjs +0 -51
  36. package/build/esm2022/inject-queries.mjs +0 -33
  37. package/build/esm2022/inject-query-client.mjs +0 -23
  38. package/build/esm2022/inject-query.mjs +0 -44
  39. package/build/esm2022/providers.mjs +0 -206
  40. package/build/esm2022/query-options.mjs +0 -26
  41. package/build/esm2022/signal-proxy.mjs +0 -38
  42. package/build/esm2022/tanstack-angular-query-experimental.mjs +0 -5
  43. package/build/esm2022/types.mjs +0 -3
  44. package/build/esm2022/util/assert-injector/assert-injector.mjs +0 -21
  45. package/build/esm2022/util/create-injection-token/create-injection-token.mjs +0 -61
  46. package/build/esm2022/util/index.mjs +0 -9
  47. package/build/esm2022/util/is-dev-mode/is-dev-mode.mjs +0 -3
  48. package/build/esm2022/util/lazy-init/lazy-init.mjs +0 -31
  49. package/build/esm2022/util/lazy-signal-initializer/lazy-signal-initializer.mjs +0 -14
  50. package/build/fesm2022/tanstack-angular-query-experimental.mjs +0 -738
  51. package/build/fesm2022/tanstack-angular-query-experimental.mjs.map +0 -1
@@ -1,257 +1,182 @@
1
- import type { DataTag } from '@tanstack/query-core';
2
- import type { DefaultError } from '@tanstack/query-core';
3
- import type { DefinedInfiniteQueryObserverResult } from '@tanstack/query-core';
4
- import type { DefinedQueryObserverResult } from '@tanstack/query-core';
5
- import type { DevtoolsButtonPosition } from '@tanstack/query-devtools';
6
- import type { DevtoolsErrorType } from '@tanstack/query-devtools';
7
- import type { DevtoolsPosition } from '@tanstack/query-devtools';
8
- import type { EnvironmentProviders } from '@angular/core';
9
- import type { InfiniteData } from '@tanstack/query-core';
10
- import type { InfiniteQueryObserverOptions } from '@tanstack/query-core';
11
- import type { InfiniteQueryObserverResult } from '@tanstack/query-core';
12
- import type { InitialDataFunction } from '@tanstack/query-core';
13
- import { InjectionToken } from '@angular/core';
14
- import { InjectOptions } from '@angular/core';
15
- import { Injector } from '@angular/core';
16
- import type { MutateFunction } from '@tanstack/query-core';
17
- import type { Mutation } from '@tanstack/query-core';
18
- import type { MutationFilters } from '@tanstack/query-core';
19
- import type { MutationObserverOptions } from '@tanstack/query-core';
20
- import type { MutationObserverResult } from '@tanstack/query-core';
21
- import type { MutationState } from '@tanstack/query-core';
22
- import type { OmitKeyof } from '@tanstack/query-core';
23
- import type { Override } from '@tanstack/query-core';
24
- import { Provider } from '@angular/core';
25
- import type { QueriesPlaceholderDataFunction } from '@tanstack/query-core';
26
- import type { QueryClient } from '@tanstack/query-core';
27
- import type { QueryFilters } from '@tanstack/query-core';
28
- import type { QueryFunction } from '@tanstack/query-core';
29
- import type { QueryKey } from '@tanstack/query-core';
30
- import type { QueryObserverOptions } from '@tanstack/query-core';
31
- import type { QueryObserverResult } from '@tanstack/query-core';
32
- import type { Signal } from '@angular/core';
33
- import type { ThrowOnError } from '@tanstack/query-core';
1
+ import { DefaultError, QueryKey, QueryObserverOptions, OmitKeyof, InfiniteQueryObserverOptions, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, DefinedInfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, Override, MutationObserverResult, InitialDataFunction, DataTag, InfiniteData, QueryClient, QueryFilters, MutationFilters, MutationState, Mutation, QueriesPlaceholderDataFunction, QueryFunction, ThrowOnError } from '@tanstack/query-core';
2
+ export * from '@tanstack/query-core';
3
+ import { Signal, Injector, InjectOptions, EnvironmentProviders, Provider } from '@angular/core';
4
+ import { DevtoolsButtonPosition, DevtoolsPosition, DevtoolsErrorType } from '@tanstack/query-devtools';
5
+
6
+ type MapToSignals<T> = {
7
+ [K in keyof T]: T[K] extends Function ? T[K] : Signal<T[K]>;
8
+ };
34
9
 
35
10
  /**
36
11
  * @public
37
12
  */
38
- export declare interface BaseMutationNarrowing<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> {
39
- isSuccess: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'success', TData, TError, TVariables, TContext>>>;
40
- isError: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'error', TData, TError, TVariables, TContext>>>;
41
- isPending: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'pending', TData, TError, TVariables, TContext>>>;
42
- isIdle: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'idle', TData, TError, TVariables, TContext>>>;
13
+ interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
43
14
  }
44
-
45
15
  /**
46
16
  * @public
47
17
  */
48
- export declare interface BaseQueryNarrowing<TData = unknown, TError = DefaultError> {
49
- isSuccess: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'success', TData, TError>>;
50
- isError: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'error', TData, TError>>;
51
- isPending: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'pending', TData, TError>>;
18
+ interface CreateQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'suspense'> {
52
19
  }
53
-
54
20
  /**
55
21
  * @public
56
22
  */
57
- export declare type CreateBaseMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
58
- mutate: CreateMutateFunction<TData, TError, TVariables, TContext>;
59
- }> & {
60
- mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>;
61
- };
62
-
23
+ type CreateStatusBasedQueryResult<TStatus extends QueryObserverResult['status'], TData = unknown, TError = DefaultError> = Extract<QueryObserverResult<TData, TError>, {
24
+ status: TStatus;
25
+ }>;
63
26
  /**
64
27
  * @public
65
28
  */
66
- export declare interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
29
+ interface BaseQueryNarrowing<TData = unknown, TError = DefaultError> {
30
+ isSuccess: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'success', TData, TError>>;
31
+ isError: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'error', TData, TError>>;
32
+ isPending: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'pending', TData, TError>>;
67
33
  }
68
-
69
34
  /**
70
35
  * @public
71
36
  */
72
- export declare type CreateBaseQueryResult<TData = unknown, TError = DefaultError, TState = QueryObserverResult<TData, TError>> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, 'safely'>>;
73
-
37
+ interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'suspense'> {
38
+ }
74
39
  /**
75
40
  * @public
76
41
  */
77
- export declare interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'suspense'> {
78
- }
79
-
42
+ type CreateBaseQueryResult<TData = unknown, TError = DefaultError, TState = QueryObserverResult<TData, TError>> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, 'safely'>>;
80
43
  /**
81
44
  * @public
82
45
  */
83
- export declare type CreateInfiniteQueryResult<TData = unknown, TError = DefaultError> = MapToSignals<InfiniteQueryObserverResult<TData, TError>>;
84
-
46
+ type CreateQueryResult<TData = unknown, TError = DefaultError> = CreateBaseQueryResult<TData, TError>;
85
47
  /**
86
48
  * @public
87
49
  */
88
- export declare type CreateMutateAsyncFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = MutateFunction<TData, TError, TVariables, TContext>;
89
-
50
+ type DefinedCreateQueryResult<TData = unknown, TError = DefaultError, TDefinedQueryObserver = DefinedQueryObserverResult<TData, TError>> = MapToSignals<TDefinedQueryObserver>;
90
51
  /**
91
52
  * @public
92
53
  */
93
- export declare type CreateMutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>) => void;
94
-
54
+ type CreateInfiniteQueryResult<TData = unknown, TError = DefaultError> = MapToSignals<InfiniteQueryObserverResult<TData, TError>>;
95
55
  /**
96
56
  * @public
97
57
  */
98
- export declare interface CreateMutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends OmitKeyof<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted'> {
58
+ type DefinedCreateInfiniteQueryResult<TData = unknown, TError = DefaultError, TDefinedInfiniteQueryObserver = DefinedInfiniteQueryObserverResult<TData, TError>> = MapToSignals<TDefinedInfiniteQueryObserver>;
59
+ /**
60
+ * @public
61
+ */
62
+ interface CreateMutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends OmitKeyof<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted'> {
99
63
  }
100
-
101
64
  /**
102
65
  * @public
103
66
  */
104
- export declare type CreateMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown, TState = CreateStatusBasedMutationResult<CreateBaseMutationResult['status'], TData, TError, TVariables, TContext>> = BaseMutationNarrowing<TData, TError, TVariables, TContext> & MapToSignals<OmitKeyof<TState, keyof BaseMutationNarrowing, 'safely'>>;
105
-
67
+ type CreateMutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>) => void;
106
68
  /**
107
69
  * @public
108
70
  */
109
- export declare interface CreateQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'suspense'> {
110
- }
111
-
71
+ type CreateMutateAsyncFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = MutateFunction<TData, TError, TVariables, TContext>;
112
72
  /**
113
73
  * @public
114
74
  */
115
- export declare type CreateQueryResult<TData = unknown, TError = DefaultError> = CreateBaseQueryResult<TData, TError>;
116
-
75
+ type CreateBaseMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
76
+ mutate: CreateMutateFunction<TData, TError, TVariables, TContext>;
77
+ }> & {
78
+ mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>;
79
+ };
117
80
  /**
118
81
  * @public
119
82
  */
120
- declare type CreateStatusBasedMutationResult<TStatus extends CreateBaseMutationResult['status'], TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> = Extract<CreateBaseMutationResult<TData, TError, TVariables, TContext>, {
83
+ type CreateStatusBasedMutationResult<TStatus extends CreateBaseMutationResult['status'], TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> = Extract<CreateBaseMutationResult<TData, TError, TVariables, TContext>, {
121
84
  status: TStatus;
122
85
  }>;
123
-
86
+ type SignalFunction<T extends () => any> = T & Signal<ReturnType<T>>;
124
87
  /**
125
88
  * @public
126
89
  */
127
- declare type CreateStatusBasedQueryResult<TStatus extends QueryObserverResult['status'], TData = unknown, TError = DefaultError> = Extract<QueryObserverResult<TData, TError>, {
128
- status: TStatus;
129
- }>;
130
-
90
+ interface BaseMutationNarrowing<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> {
91
+ isSuccess: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'success', TData, TError, TVariables, TContext>>>;
92
+ isError: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'error', TData, TError, TVariables, TContext>>>;
93
+ isPending: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'pending', TData, TError, TVariables, TContext>>>;
94
+ isIdle: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'idle', TData, TError, TVariables, TContext>>>;
95
+ }
131
96
  /**
132
97
  * @public
133
98
  */
134
- export declare type DefinedCreateInfiniteQueryResult<TData = unknown, TError = DefaultError, TDefinedInfiniteQueryObserver = DefinedInfiniteQueryObserverResult<TData, TError>> = MapToSignals<TDefinedInfiniteQueryObserver>;
135
-
99
+ type CreateMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown, TState = CreateStatusBasedMutationResult<CreateBaseMutationResult['status'], TData, TError, TVariables, TContext>> = BaseMutationNarrowing<TData, TError, TVariables, TContext> & MapToSignals<OmitKeyof<TState, keyof BaseMutationNarrowing, 'safely'>>;
136
100
  /**
137
101
  * @public
138
102
  */
139
- export declare type DefinedCreateQueryResult<TData = unknown, TError = DefaultError, TDefinedQueryObserver = DefinedQueryObserverResult<TData, TError>> = MapToSignals<TDefinedQueryObserver>;
103
+ type NonUndefinedGuard<T> = T extends undefined ? never : T;
140
104
 
141
105
  /**
142
106
  * @public
143
107
  */
144
- export declare type DefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & {
145
- initialData: NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>> | (() => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>);
108
+ type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
109
+ initialData?: undefined | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>;
146
110
  };
147
-
148
111
  /**
149
112
  * @public
150
113
  */
151
- export declare type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
114
+ type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
152
115
  initialData: NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>);
153
116
  };
154
-
155
117
  /**
156
- * A type alias that represents a feature which enables developer tools.
157
- * The type is used to describe the return value of the `withDevtools` function.
118
+ * Allows to share and re-use query options in a type-safe way.
119
+ *
120
+ * The `queryKey` will be tagged with the type from `queryFn`.
121
+ *
122
+ * **Example**
123
+ *
124
+ * ```ts
125
+ * const { queryKey } = queryOptions({
126
+ * queryKey: ['key'],
127
+ * queryFn: () => Promise.resolve(5),
128
+ * // ^? Promise<number>
129
+ * })
130
+ *
131
+ * const queryClient = new QueryClient()
132
+ * const data = queryClient.getQueryData(queryKey)
133
+ * // ^? number | undefined
134
+ * ```
135
+ * @param options - The query options to tag with the type from `queryFn`.
136
+ * @returns The tagged query options.
158
137
  * @public
159
- * @see {@link withDevtools}
160
138
  */
161
- export declare type DeveloperToolsFeature = QueryFeature<'DeveloperTools'>;
162
-
139
+ declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
140
+ queryKey: DataTag<TQueryKey, TQueryFnData>;
141
+ };
163
142
  /**
164
- * Options for configuring the TanStack Query devtools.
143
+ * Allows to share and re-use query options in a type-safe way.
144
+ *
145
+ * The `queryKey` will be tagged with the type from `queryFn`.
146
+ *
147
+ * **Example**
148
+ *
149
+ * ```ts
150
+ * const { queryKey } = queryOptions({
151
+ * queryKey: ['key'],
152
+ * queryFn: () => Promise.resolve(5),
153
+ * // ^? Promise<number>
154
+ * })
155
+ *
156
+ * const queryClient = new QueryClient()
157
+ * const data = queryClient.getQueryData(queryKey)
158
+ * // ^? number | undefined
159
+ * ```
160
+ * @param options - The query options to tag with the type from `queryFn`.
161
+ * @returns The tagged query options.
165
162
  * @public
166
163
  */
167
- export declare interface DevtoolsOptions {
168
- /**
169
- * Set this true if you want the devtools to default to being open
170
- */
171
- initialIsOpen?: boolean;
172
- /**
173
- * The position of the TanStack logo to open and close the devtools panel.
174
- * `top-left` | `top-right` | `bottom-left` | `bottom-right` | `relative`
175
- * Defaults to `bottom-right`.
176
- */
177
- buttonPosition?: DevtoolsButtonPosition;
178
- /**
179
- * The position of the TanStack Query devtools panel.
180
- * `top` | `bottom` | `left` | `right`
181
- * Defaults to `bottom`.
182
- */
183
- position?: DevtoolsPosition;
184
- /**
185
- * Custom instance of QueryClient
186
- */
187
- client?: QueryClient;
188
- /**
189
- * Use this so you can define custom errors that can be shown in the devtools.
190
- */
191
- errorTypes?: Array<DevtoolsErrorType>;
192
- /**
193
- * 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.
194
- */
195
- styleNonce?: string;
196
- /**
197
- * Use this so you can attach the devtool's styles to a specific element in the DOM.
198
- */
199
- shadowDOMTarget?: ShadowRoot;
200
- /**
201
- * Whether the developer tools should load.
202
- * - `auto`- (Default) Lazily loads devtools when in development mode. Skips loading in production mode.
203
- * - `true`- Always load the devtools, regardless of the environment.
204
- * - `false`- Never load the devtools, regardless of the environment.
205
- *
206
- * You can use `true` and `false` to override loading developer tools from an environment file.
207
- * For example, a test environment might run in production mode but you may want to load developer tools.
208
- *
209
- * Additionally, you can use a signal in the callback to dynamically load the devtools based on a condition. For example,
210
- * a signal created from a RxJS observable that listens for a keyboard shortcut.
211
- *
212
- * **Example**
213
- * ```ts
214
- * withDevtools(() => ({
215
- * initialIsOpen: true,
216
- * loadDevtools: inject(ExampleService).loadDevtools()
217
- * }))
218
- * ```
219
- */
220
- loadDevtools?: 'auto' | boolean;
221
- }
222
-
223
- declare type GetOptions<T> = T extends {
224
- queryFnData: infer TQueryFnData;
225
- error?: infer TError;
226
- data: infer TData;
227
- } ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData> : T extends {
228
- queryFnData: infer TQueryFnData;
229
- error?: infer TError;
230
- } ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError> : T extends {
231
- data: infer TData;
232
- error?: infer TError;
233
- } ? QueryObserverOptionsForCreateQueries<unknown, TError, TData> : T extends [infer TQueryFnData, infer TError, infer TData] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData> : T extends [infer TQueryFnData, infer TError] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError> : T extends [infer TQueryFnData] ? QueryObserverOptionsForCreateQueries<TQueryFnData> : T extends {
234
- queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> | SkipTokenForUseQueries;
235
- select: (data: any) => infer TData;
236
- throwOnError?: ThrowOnError<any, infer TError, any, any>;
237
- } ? QueryObserverOptionsForCreateQueries<TQueryFnData, unknown extends TError ? DefaultError : TError, unknown extends TData ? TQueryFnData : TData, TQueryKey> : QueryObserverOptionsForCreateQueries;
238
-
239
- declare type GetResults<T> = T extends {
240
- queryFnData: any;
241
- error?: infer TError;
242
- data: infer TData;
243
- } ? QueryObserverResult<TData, TError> : T extends {
244
- queryFnData: infer TQueryFnData;
245
- error?: infer TError;
246
- } ? QueryObserverResult<TQueryFnData, TError> : T extends {
247
- data: infer TData;
248
- error?: infer TError;
249
- } ? QueryObserverResult<TData, TError> : T extends [any, infer TError, infer TData] ? QueryObserverResult<TData, TError> : T extends [infer TQueryFnData, infer TError] ? QueryObserverResult<TQueryFnData, TError> : T extends [infer TQueryFnData] ? QueryObserverResult<TQueryFnData> : T extends {
250
- queryFn?: QueryFunction<infer TQueryFnData, any> | SkipTokenForUseQueries;
251
- select: (data: any) => infer TData;
252
- throwOnError?: ThrowOnError<any, infer TError, any, any>;
253
- } ? QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError> : QueryObserverResult;
164
+ declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
165
+ queryKey: DataTag<TQueryKey, TQueryFnData>;
166
+ };
254
167
 
168
+ /**
169
+ * @public
170
+ */
171
+ type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & {
172
+ initialData?: undefined;
173
+ };
174
+ /**
175
+ * @public
176
+ */
177
+ type DefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & {
178
+ initialData: NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>> | (() => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>);
179
+ };
255
180
  /**
256
181
  * Allows to share and re-use infinite query options in a type-safe way.
257
182
  *
@@ -260,10 +185,9 @@ declare type GetResults<T> = T extends {
260
185
  * @returns The tagged infinite query options.
261
186
  * @public
262
187
  */
263
- export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
188
+ declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
264
189
  queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>>;
265
190
  };
266
-
267
191
  /**
268
192
  * Allows to share and re-use infinite query options in a type-safe way.
269
193
  *
@@ -272,7 +196,7 @@ export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError
272
196
  * @returns The tagged infinite query options.
273
197
  * @public
274
198
  */
275
- export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
199
+ declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
276
200
  queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>>;
277
201
  };
278
202
 
@@ -284,8 +208,7 @@ export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError
284
208
  * @returns The infinite query result.
285
209
  * @public
286
210
  */
287
- export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(optionsFn: (client: QueryClient) => DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, injector?: Injector): DefinedCreateInfiniteQueryResult<TData, TError>;
288
-
211
+ declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(optionsFn: (client: QueryClient) => DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, injector?: Injector): DefinedCreateInfiniteQueryResult<TData, TError>;
289
212
  /**
290
213
  * Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
291
214
  * Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
@@ -294,8 +217,7 @@ export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError,
294
217
  * @returns The infinite query result.
295
218
  * @public
296
219
  */
297
- export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(optionsFn: (client: QueryClient) => UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, injector?: Injector): CreateInfiniteQueryResult<TData, TError>;
298
-
220
+ declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(optionsFn: (client: QueryClient) => UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, injector?: Injector): CreateInfiniteQueryResult<TData, TError>;
299
221
  /**
300
222
  * Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
301
223
  * Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
@@ -304,7 +226,7 @@ export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError,
304
226
  * @returns The infinite query result.
305
227
  * @public
306
228
  */
307
- export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(optionsFn: (client: QueryClient) => CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>, injector?: Injector): CreateInfiniteQueryResult<TData, TError>;
229
+ declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(optionsFn: (client: QueryClient) => CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>, injector?: Injector): CreateInfiniteQueryResult<TData, TError>;
308
230
 
309
231
  /**
310
232
  * Injects a signal that tracks the number of queries that your application is loading or
@@ -316,7 +238,7 @@ export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError,
316
238
  * @returns signal with number of loading or fetching queries.
317
239
  * @public
318
240
  */
319
- export declare function injectIsFetching(filters?: QueryFilters, injector?: Injector): Signal<number>;
241
+ declare function injectIsFetching(filters?: QueryFilters, injector?: Injector): Signal<number>;
320
242
 
321
243
  /**
322
244
  * Injects a signal that tracks the number of mutations that your application is fetching.
@@ -327,7 +249,7 @@ export declare function injectIsFetching(filters?: QueryFilters, injector?: Inje
327
249
  * @returns signal with number of fetching mutations.
328
250
  * @public
329
251
  */
330
- export declare function injectIsMutating(filters?: MutationFilters, injector?: Injector): Signal<number>;
252
+ declare function injectIsMutating(filters?: MutationFilters, injector?: Injector): Signal<number>;
331
253
 
332
254
  /**
333
255
  * Injects a mutation: an imperative function that can be invoked which typically performs server side effects.
@@ -338,8 +260,18 @@ export declare function injectIsMutating(filters?: MutationFilters, injector?: I
338
260
  * @returns The mutation.
339
261
  * @public
340
262
  */
341
- export declare function injectMutation<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown>(optionsFn: (client: QueryClient) => CreateMutationOptions<TData, TError, TVariables, TContext>, injector?: Injector): CreateMutationResult<TData, TError, TVariables, TContext>;
263
+ declare function injectMutation<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown>(optionsFn: (client: QueryClient) => CreateMutationOptions<TData, TError, TVariables, TContext>, injector?: Injector): CreateMutationResult<TData, TError, TVariables, TContext>;
342
264
 
265
+ type MutationStateOptions<TResult = MutationState> = {
266
+ filters?: MutationFilters;
267
+ select?: (mutation: Mutation) => TResult;
268
+ };
269
+ /**
270
+ * @public
271
+ */
272
+ interface InjectMutationStateOptions {
273
+ injector?: Injector;
274
+ }
343
275
  /**
344
276
  * Injects a signal that tracks the state of all mutations.
345
277
  * @param mutationStateOptionsFn - A function that returns mutation state options.
@@ -347,19 +279,73 @@ export declare function injectMutation<TData = unknown, TError = DefaultError, T
347
279
  * @returns The signal that tracks the state of all mutations.
348
280
  * @public
349
281
  */
350
- export declare function injectMutationState<TResult = MutationState>(mutationStateOptionsFn?: () => MutationStateOptions<TResult>, options?: InjectMutationStateOptions): Signal<Array<TResult>>;
282
+ declare function injectMutationState<TResult = MutationState>(mutationStateOptionsFn?: () => MutationStateOptions<TResult>, options?: InjectMutationStateOptions): Signal<Array<TResult>>;
351
283
 
284
+ type QueryObserverOptionsForCreateQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = OmitKeyof<QueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'placeholderData'> & {
285
+ placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
286
+ };
287
+ type MAXIMUM_DEPTH = 20;
288
+ type SkipTokenForUseQueries = symbol;
289
+ type GetOptions<T> = T extends {
290
+ queryFnData: infer TQueryFnData;
291
+ error?: infer TError;
292
+ data: infer TData;
293
+ } ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData> : T extends {
294
+ queryFnData: infer TQueryFnData;
295
+ error?: infer TError;
296
+ } ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError> : T extends {
297
+ data: infer TData;
298
+ error?: infer TError;
299
+ } ? QueryObserverOptionsForCreateQueries<unknown, TError, TData> : T extends [infer TQueryFnData, infer TError, infer TData] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData> : T extends [infer TQueryFnData, infer TError] ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError> : T extends [infer TQueryFnData] ? QueryObserverOptionsForCreateQueries<TQueryFnData> : T extends {
300
+ queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> | SkipTokenForUseQueries;
301
+ select: (data: any) => infer TData;
302
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
303
+ } ? QueryObserverOptionsForCreateQueries<TQueryFnData, unknown extends TError ? DefaultError : TError, unknown extends TData ? TQueryFnData : TData, TQueryKey> : QueryObserverOptionsForCreateQueries;
304
+ type GetResults<T> = T extends {
305
+ queryFnData: any;
306
+ error?: infer TError;
307
+ data: infer TData;
308
+ } ? QueryObserverResult<TData, TError> : T extends {
309
+ queryFnData: infer TQueryFnData;
310
+ error?: infer TError;
311
+ } ? QueryObserverResult<TQueryFnData, TError> : T extends {
312
+ data: infer TData;
313
+ error?: infer TError;
314
+ } ? QueryObserverResult<TData, TError> : T extends [any, infer TError, infer TData] ? QueryObserverResult<TData, TError> : T extends [infer TQueryFnData, infer TError] ? QueryObserverResult<TQueryFnData, TError> : T extends [infer TQueryFnData] ? QueryObserverResult<TQueryFnData> : T extends {
315
+ queryFn?: QueryFunction<infer TQueryFnData, any> | SkipTokenForUseQueries;
316
+ select: (data: any) => infer TData;
317
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
318
+ } ? QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError> : QueryObserverResult;
352
319
  /**
320
+ * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
353
321
  * @public
354
322
  */
355
- export declare interface InjectMutationStateOptions {
356
- injector?: Injector;
357
- }
358
-
323
+ type QueriesOptions<T extends Array<any>, TResult extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<QueryObserverOptionsForCreateQueries> : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetOptions<Head>] : T extends [infer Head, ...infer Tail] ? QueriesOptions<[
324
+ ...Tail
325
+ ], [
326
+ ...TResult,
327
+ GetOptions<Head>
328
+ ], [
329
+ ...TDepth,
330
+ 1
331
+ ]> : ReadonlyArray<unknown> extends T ? T : T extends Array<QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>> ? Array<QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>> : Array<QueryObserverOptionsForCreateQueries>;
332
+ /**
333
+ * QueriesResults reducer recursively maps type param to results
334
+ * @public
335
+ */
336
+ type QueriesResults<T extends Array<any>, TResult extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<QueryObserverResult> : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetResults<Head>] : T extends [infer Head, ...infer Tail] ? QueriesResults<[
337
+ ...Tail
338
+ ], [
339
+ ...TResult,
340
+ GetResults<Head>
341
+ ], [
342
+ ...TDepth,
343
+ 1
344
+ ]> : T extends Array<QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, any>> ? Array<QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError>> : Array<QueryObserverResult>;
359
345
  /**
360
346
  * @public
361
347
  */
362
- export declare function injectQueries<T extends Array<any>, TCombinedResult = QueriesResults<T>>({ queries, ...options }: {
348
+ declare function injectQueries<T extends Array<any>, TCombinedResult = QueriesResults<T>>({ queries, ...options }: {
363
349
  queries: Signal<[...QueriesOptions<T>]>;
364
350
  combine?: (result: QueriesResults<T>) => TCombinedResult;
365
351
  }, injector?: Injector): Signal<TCombinedResult>;
@@ -401,8 +387,7 @@ export declare function injectQueries<T extends Array<any>, TCombinedResult = Qu
401
387
  * @public
402
388
  * @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries
403
389
  */
404
- export declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(optionsFn: (client: QueryClient) => DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, injector?: Injector): DefinedCreateQueryResult<TData, TError>;
405
-
390
+ declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(optionsFn: (client: QueryClient) => DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, injector?: Injector): DefinedCreateQueryResult<TData, TError>;
406
391
  /**
407
392
  * Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
408
393
  *
@@ -440,8 +425,7 @@ export declare function injectQuery<TQueryFnData = unknown, TError = DefaultErro
440
425
  * @public
441
426
  * @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries
442
427
  */
443
- export declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(optionsFn: (client: QueryClient) => UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, injector?: Injector): CreateQueryResult<TData, TError>;
444
-
428
+ declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(optionsFn: (client: QueryClient) => UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, injector?: Injector): CreateQueryResult<TData, TError>;
445
429
  /**
446
430
  * Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
447
431
  *
@@ -479,67 +463,37 @@ export declare function injectQuery<TQueryFnData = unknown, TError = DefaultErro
479
463
  * @public
480
464
  * @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries
481
465
  */
482
- export declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(optionsFn: (client: QueryClient) => CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, injector?: Injector): CreateQueryResult<TData, TError>;
466
+ declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(optionsFn: (client: QueryClient) => CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, injector?: Injector): CreateQueryResult<TData, TError>;
483
467
 
484
468
  /**
485
- * Injects the `QueryClient` instance into the component or service.
469
+ * Injects a `QueryClient` instance and allows passing a custom injector.
470
+ *
471
+ * You can also use `inject(QueryClient)` if you don't need to provide a custom injector.
486
472
  *
487
473
  * **Example**
488
474
  * ```ts
489
475
  * const queryClient = injectQueryClient();
490
476
  * ```
477
+ * @param injectOptions - Type of the options argument to inject and optionally a custom injector.
491
478
  * @returns The `QueryClient` instance.
492
479
  * @public
493
480
  */
494
- export declare const injectQueryClient: {
495
- (): QueryClient;
496
- (injectOptions: InjectOptions & {
497
- optional?: false;
498
- } & {
499
- injector?: Injector;
500
- }): QueryClient;
501
- (injectOptions: InjectOptions & {
502
- injector?: Injector;
503
- }): QueryClient;
504
- };
505
-
506
- declare type MapToSignals<T> = {
507
- [K in keyof T]: T[K] extends Function ? T[K] : Signal<T[K]>;
508
- };
509
-
510
- declare type MAXIMUM_DEPTH = 20;
511
-
512
- declare type MutationStateOptions<TResult = MutationState> = {
513
- filters?: MutationFilters;
514
- select?: (mutation: Mutation) => TResult;
515
- };
516
-
517
- /**
518
- * @public
519
- */
520
- export declare type NonUndefinedGuard<T> = T extends undefined ? never : T;
521
-
522
- /**
523
- * Sets up providers necessary to enable TanStack Query functionality for Angular applications.
524
- *
525
- * Allows to configure a `QueryClient`.
526
- * @param queryClient - A `QueryClient` instance.
527
- * @returns A set of providers to set up TanStack Query.
528
- * @public
529
- * @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
530
- * @deprecated Use `provideTanStackQuery` instead.
531
- */
532
- export declare function provideAngularQuery(queryClient: QueryClient): EnvironmentProviders;
481
+ declare function injectQueryClient(injectOptions?: InjectOptions & {
482
+ injector?: Injector;
483
+ }): QueryClient;
533
484
 
534
485
  /**
535
486
  * Usually {@link provideTanStackQuery} is used once to set up TanStack Query and the
536
487
  * {@link https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient}
537
488
  * for the entire application. You can use `provideQueryClient` to provide a
538
489
  * different `QueryClient` instance for a part of the application.
490
+ * @param queryClient - the `QueryClient` instance to provide.
539
491
  * @public
540
492
  */
541
- export declare const provideQueryClient: ((value: QueryClient | (() => QueryClient)) => Provider) & ((value: QueryClient | (() => QueryClient)) => Provider);
542
-
493
+ declare function provideQueryClient(queryClient: QueryClient): {
494
+ provide: typeof QueryClient;
495
+ useValue: QueryClient;
496
+ };
543
497
  /**
544
498
  * Sets up providers necessary to enable TanStack Query functionality for Angular applications.
545
499
  *
@@ -599,134 +553,91 @@ export declare const provideQueryClient: ((value: QueryClient | (() => QueryClie
599
553
  * @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
600
554
  * @see withDevtools
601
555
  */
602
- export declare function provideTanStackQuery(queryClient: QueryClient, ...features: Array<QueryFeatures>): EnvironmentProviders;
603
-
604
- /**
605
- * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
606
- * @public
607
- */
608
- export declare type QueriesOptions<T extends Array<any>, TResult extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<QueryObserverOptionsForCreateQueries> : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetOptions<Head>] : T extends [infer Head, ...infer Tail] ? QueriesOptions<[
609
- ...Tail
610
- ], [
611
- ...TResult,
612
- GetOptions<Head>
613
- ], [
614
- ...TDepth,
615
- 1
616
- ]> : ReadonlyArray<unknown> extends T ? T : T extends Array<QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>> ? Array<QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>> : Array<QueryObserverOptionsForCreateQueries>;
617
-
556
+ declare function provideTanStackQuery(queryClient: QueryClient, ...features: Array<QueryFeatures>): EnvironmentProviders;
618
557
  /**
619
- * QueriesResults reducer recursively maps type param to results
558
+ * Sets up providers necessary to enable TanStack Query functionality for Angular applications.
559
+ *
560
+ * Allows to configure a `QueryClient`.
561
+ * @param queryClient - A `QueryClient` instance.
562
+ * @returns A set of providers to set up TanStack Query.
620
563
  * @public
564
+ * @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
565
+ * @deprecated Use `provideTanStackQuery` instead.
621
566
  */
622
- export declare type QueriesResults<T extends Array<any>, TResult extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<QueryObserverResult> : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetResults<Head>] : T extends [infer Head, ...infer Tail] ? QueriesResults<[
623
- ...Tail
624
- ], [
625
- ...TResult,
626
- GetResults<Head>
627
- ], [
628
- ...TDepth,
629
- 1
630
- ]> : T extends Array<QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, any>> ? Array<QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError>> : Array<QueryObserverResult>;
631
-
632
- export declare const QUERY_CLIENT: InjectionToken<QueryClient>;
633
-
567
+ declare function provideAngularQuery(queryClient: QueryClient): EnvironmentProviders;
634
568
  /**
635
569
  * Helper type to represent a Query feature.
636
570
  */
637
- export declare interface QueryFeature<TFeatureKind extends QueryFeatureKind> {
571
+ interface QueryFeature<TFeatureKind extends QueryFeatureKind> {
638
572
  ɵkind: TFeatureKind;
639
573
  ɵproviders: Array<Provider>;
640
574
  }
641
-
642
- export declare type QueryFeatureKind = (typeof queryFeatures)[number];
643
-
644
- /**
645
- * A type alias that represents all Query features available for use with `provideTanStackQuery`.
646
- * Features can be enabled by adding special functions to the `provideTanStackQuery` call.
647
- * See documentation for each symbol to find corresponding function name. See also `provideTanStackQuery`
648
- * documentation on how to use those functions.
649
- * @public
650
- * @see {@link provideTanStackQuery}
651
- */
652
- export declare type QueryFeatures = DeveloperToolsFeature;
653
-
654
- export declare const queryFeatures: readonly ["DeveloperTools"];
655
-
656
- declare type QueryObserverOptionsForCreateQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = OmitKeyof<QueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'placeholderData'> & {
657
- placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
658
- };
659
-
660
- /**
661
- * Allows to share and re-use query options in a type-safe way.
662
- *
663
- * The `queryKey` will be tagged with the type from `queryFn`.
664
- *
665
- * **Example**
666
- *
667
- * ```ts
668
- * const { queryKey } = queryOptions({
669
- * queryKey: ['key'],
670
- * queryFn: () => Promise.resolve(5),
671
- * // ^? Promise<number>
672
- * })
673
- *
674
- * const queryClient = new QueryClient()
675
- * const data = queryClient.getQueryData(queryKey)
676
- * // ^? number | undefined
677
- * ```
678
- * @param options - The query options to tag with the type from `queryFn`.
679
- * @returns The tagged query options.
680
- * @public
681
- */
682
- export declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
683
- queryKey: DataTag<TQueryKey, TQueryFnData>;
684
- };
685
-
686
- /**
687
- * Allows to share and re-use query options in a type-safe way.
688
- *
689
- * The `queryKey` will be tagged with the type from `queryFn`.
690
- *
691
- * **Example**
692
- *
693
- * ```ts
694
- * const { queryKey } = queryOptions({
695
- * queryKey: ['key'],
696
- * queryFn: () => Promise.resolve(5),
697
- * // ^? Promise<number>
698
- * })
699
- *
700
- * const queryClient = new QueryClient()
701
- * const data = queryClient.getQueryData(queryKey)
702
- * // ^? number | undefined
703
- * ```
704
- * @param options - The query options to tag with the type from `queryFn`.
705
- * @returns The tagged query options.
706
- * @public
707
- */
708
- export declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
709
- queryKey: DataTag<TQueryKey, TQueryFnData>;
710
- };
711
-
712
- declare type SignalFunction<T extends () => any> = T & Signal<ReturnType<T>>;
713
-
714
- declare type SkipTokenForUseQueries = symbol;
715
-
716
575
  /**
576
+ * A type alias that represents a feature which enables developer tools.
577
+ * The type is used to describe the return value of the `withDevtools` function.
717
578
  * @public
579
+ * @see {@link withDevtools}
718
580
  */
719
- export declare type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & {
720
- initialData?: undefined;
721
- };
722
-
581
+ type DeveloperToolsFeature = QueryFeature<'DeveloperTools'>;
723
582
  /**
583
+ * Options for configuring the TanStack Query devtools.
724
584
  * @public
725
585
  */
726
- export declare type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
727
- initialData?: undefined | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>;
728
- };
729
-
586
+ interface DevtoolsOptions {
587
+ /**
588
+ * Set this true if you want the devtools to default to being open
589
+ */
590
+ initialIsOpen?: boolean;
591
+ /**
592
+ * The position of the TanStack logo to open and close the devtools panel.
593
+ * `top-left` | `top-right` | `bottom-left` | `bottom-right` | `relative`
594
+ * Defaults to `bottom-right`.
595
+ */
596
+ buttonPosition?: DevtoolsButtonPosition;
597
+ /**
598
+ * The position of the TanStack Query devtools panel.
599
+ * `top` | `bottom` | `left` | `right`
600
+ * Defaults to `bottom`.
601
+ */
602
+ position?: DevtoolsPosition;
603
+ /**
604
+ * Custom instance of QueryClient
605
+ */
606
+ client?: QueryClient;
607
+ /**
608
+ * Use this so you can define custom errors that can be shown in the devtools.
609
+ */
610
+ errorTypes?: Array<DevtoolsErrorType>;
611
+ /**
612
+ * 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.
613
+ */
614
+ styleNonce?: string;
615
+ /**
616
+ * Use this so you can attach the devtool's styles to a specific element in the DOM.
617
+ */
618
+ shadowDOMTarget?: ShadowRoot;
619
+ /**
620
+ * Whether the developer tools should load.
621
+ * - `auto`- (Default) Lazily loads devtools when in development mode. Skips loading in production mode.
622
+ * - `true`- Always load the devtools, regardless of the environment.
623
+ * - `false`- Never load the devtools, regardless of the environment.
624
+ *
625
+ * You can use `true` and `false` to override loading developer tools from an environment file.
626
+ * For example, a test environment might run in production mode but you may want to load developer tools.
627
+ *
628
+ * Additionally, you can use a signal in the callback to dynamically load the devtools based on a condition. For example,
629
+ * a signal created from a RxJS observable that listens for a keyboard shortcut.
630
+ *
631
+ * **Example**
632
+ * ```ts
633
+ * withDevtools(() => ({
634
+ * initialIsOpen: true,
635
+ * loadDevtools: inject(ExampleService).loadDevtools()
636
+ * }))
637
+ * ```
638
+ */
639
+ loadDevtools?: 'auto' | boolean;
640
+ }
730
641
  /**
731
642
  * Enables developer tools.
732
643
  *
@@ -750,9 +661,17 @@ export declare type UndefinedInitialDataOptions<TQueryFnData = unknown, TError =
750
661
  * @see {@link provideTanStackQuery}
751
662
  * @see {@link DevtoolsOptions}
752
663
  */
753
- export declare function withDevtools(optionsFn?: () => DevtoolsOptions): DeveloperToolsFeature;
754
-
755
-
756
- export * from "@tanstack/query-core";
664
+ declare function withDevtools(optionsFn?: () => DevtoolsOptions): DeveloperToolsFeature;
665
+ /**
666
+ * A type alias that represents all Query features available for use with `provideTanStackQuery`.
667
+ * Features can be enabled by adding special functions to the `provideTanStackQuery` call.
668
+ * See documentation for each symbol to find corresponding function name. See also `provideTanStackQuery`
669
+ * documentation on how to use those functions.
670
+ * @public
671
+ * @see {@link provideTanStackQuery}
672
+ */
673
+ type QueryFeatures = DeveloperToolsFeature;
674
+ declare const queryFeatures: readonly ["DeveloperTools"];
675
+ type QueryFeatureKind = (typeof queryFeatures)[number];
757
676
 
758
- export { }
677
+ export { type BaseMutationNarrowing, type BaseQueryNarrowing, type CreateBaseMutationResult, type CreateBaseQueryOptions, type CreateBaseQueryResult, type CreateInfiniteQueryOptions, type CreateInfiniteQueryResult, type CreateMutateAsyncFunction, type CreateMutateFunction, type CreateMutationOptions, type CreateMutationResult, type CreateQueryOptions, type CreateQueryResult, type DefinedCreateInfiniteQueryResult, type DefinedCreateQueryResult, type DefinedInitialDataInfiniteOptions, type DefinedInitialDataOptions, type DeveloperToolsFeature, type DevtoolsOptions, type InjectMutationStateOptions, type NonUndefinedGuard, type QueriesOptions, type QueriesResults, type QueryFeature, type QueryFeatureKind, type QueryFeatures, type UndefinedInitialDataInfiniteOptions, type UndefinedInitialDataOptions, infiniteQueryOptions, injectInfiniteQuery, injectIsFetching, injectIsMutating, injectMutation, injectMutationState, injectQueries, injectQuery, injectQueryClient, provideAngularQuery, provideQueryClient, provideTanStackQuery, queryFeatures, queryOptions, withDevtools };