@tanstack/query-core 4.3.6 → 4.3.8

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 (43) hide show
  1. package/build/lib/focusManager.esm.js +86 -0
  2. package/build/lib/focusManager.esm.js.map +1 -0
  3. package/build/lib/hydration.esm.js +97 -0
  4. package/build/lib/hydration.esm.js.map +1 -0
  5. package/build/lib/index.esm.js +14 -0
  6. package/build/lib/index.esm.js.map +1 -0
  7. package/build/lib/infiniteQueryBehavior.esm.js +142 -0
  8. package/build/lib/infiniteQueryBehavior.esm.js.map +1 -0
  9. package/build/lib/infiniteQueryObserver.esm.js +78 -0
  10. package/build/lib/infiniteQueryObserver.esm.js.map +1 -0
  11. package/build/lib/logger.esm.js +4 -0
  12. package/build/lib/logger.esm.js.map +1 -0
  13. package/build/lib/logger.native.esm.js +12 -0
  14. package/build/lib/logger.native.esm.js.map +1 -0
  15. package/build/lib/mutation.esm.js +243 -0
  16. package/build/lib/mutation.esm.js.map +1 -0
  17. package/build/lib/mutationCache.esm.js +85 -0
  18. package/build/lib/mutationCache.esm.js.map +1 -0
  19. package/build/lib/mutationObserver.esm.js +126 -0
  20. package/build/lib/mutationObserver.esm.js.map +1 -0
  21. package/build/lib/notifyManager.esm.js +99 -0
  22. package/build/lib/notifyManager.esm.js.map +1 -0
  23. package/build/lib/onlineManager.esm.js +85 -0
  24. package/build/lib/onlineManager.esm.js.map +1 -0
  25. package/build/lib/queriesObserver.esm.js +156 -0
  26. package/build/lib/queriesObserver.esm.js.map +1 -0
  27. package/build/lib/query.esm.js +460 -0
  28. package/build/lib/query.esm.js.map +1 -0
  29. package/build/lib/queryCache.esm.js +126 -0
  30. package/build/lib/queryCache.esm.js.map +1 -0
  31. package/build/lib/queryClient.esm.js +339 -0
  32. package/build/lib/queryClient.esm.js.map +1 -0
  33. package/build/lib/queryObserver.esm.js +515 -0
  34. package/build/lib/queryObserver.esm.js.map +1 -0
  35. package/build/lib/removable.esm.js +33 -0
  36. package/build/lib/removable.esm.js.map +1 -0
  37. package/build/lib/retryer.esm.js +160 -0
  38. package/build/lib/retryer.esm.js.map +1 -0
  39. package/build/lib/subscribable.esm.js +29 -0
  40. package/build/lib/subscribable.esm.js.map +1 -0
  41. package/build/lib/utils.esm.js +318 -0
  42. package/build/lib/utils.esm.js.map +1 -0
  43. package/package.json +2 -1
@@ -0,0 +1,339 @@
1
+ import { parseFilterArgs, functionalUpdate, parseQueryArgs, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.esm.js';
2
+ import { QueryCache } from './queryCache.esm.js';
3
+ import { MutationCache } from './mutationCache.esm.js';
4
+ import { focusManager } from './focusManager.esm.js';
5
+ import { onlineManager } from './onlineManager.esm.js';
6
+ import { notifyManager } from './notifyManager.esm.js';
7
+ import { infiniteQueryBehavior } from './infiniteQueryBehavior.esm.js';
8
+ import { defaultLogger } from './logger.esm.js';
9
+
10
+ // CLASS
11
+ class QueryClient {
12
+ constructor(config = {}) {
13
+ this.queryCache = config.queryCache || new QueryCache();
14
+ this.mutationCache = config.mutationCache || new MutationCache();
15
+ this.logger = config.logger || defaultLogger;
16
+ this.defaultOptions = config.defaultOptions || {};
17
+ this.queryDefaults = [];
18
+ this.mutationDefaults = [];
19
+ }
20
+
21
+ mount() {
22
+ this.unsubscribeFocus = focusManager.subscribe(() => {
23
+ if (focusManager.isFocused()) {
24
+ this.resumePausedMutations();
25
+ this.queryCache.onFocus();
26
+ }
27
+ });
28
+ this.unsubscribeOnline = onlineManager.subscribe(() => {
29
+ if (onlineManager.isOnline()) {
30
+ this.resumePausedMutations();
31
+ this.queryCache.onOnline();
32
+ }
33
+ });
34
+ }
35
+
36
+ unmount() {
37
+ var _this$unsubscribeFocu, _this$unsubscribeOnli;
38
+
39
+ (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);
40
+ (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);
41
+ }
42
+
43
+ isFetching(arg1, arg2) {
44
+ const [filters] = parseFilterArgs(arg1, arg2);
45
+ filters.fetchStatus = 'fetching';
46
+ return this.queryCache.findAll(filters).length;
47
+ }
48
+
49
+ isMutating(filters) {
50
+ return this.mutationCache.findAll({ ...filters,
51
+ fetching: true
52
+ }).length;
53
+ }
54
+
55
+ getQueryData(queryKey, filters) {
56
+ var _this$queryCache$find;
57
+
58
+ return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;
59
+ }
60
+
61
+ getQueriesData(queryKeyOrFilters) {
62
+ return this.getQueryCache().findAll(queryKeyOrFilters).map(({
63
+ queryKey,
64
+ state
65
+ }) => {
66
+ const data = state.data;
67
+ return [queryKey, data];
68
+ });
69
+ }
70
+
71
+ setQueryData(queryKey, updater, options) {
72
+ const query = this.queryCache.find(queryKey);
73
+ const prevData = query == null ? void 0 : query.state.data;
74
+ const data = functionalUpdate(updater, prevData);
75
+
76
+ if (typeof data === 'undefined') {
77
+ return undefined;
78
+ }
79
+
80
+ const parsedOptions = parseQueryArgs(queryKey);
81
+ const defaultedOptions = this.defaultQueryOptions(parsedOptions);
82
+ return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,
83
+ manual: true
84
+ });
85
+ }
86
+
87
+ setQueriesData(queryKeyOrFilters, updater, options) {
88
+ return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({
89
+ queryKey
90
+ }) => [queryKey, this.setQueryData(queryKey, updater, options)]));
91
+ }
92
+
93
+ getQueryState(queryKey, filters) {
94
+ var _this$queryCache$find2;
95
+
96
+ return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;
97
+ }
98
+
99
+ removeQueries(arg1, arg2) {
100
+ const [filters] = parseFilterArgs(arg1, arg2);
101
+ const queryCache = this.queryCache;
102
+ notifyManager.batch(() => {
103
+ queryCache.findAll(filters).forEach(query => {
104
+ queryCache.remove(query);
105
+ });
106
+ });
107
+ }
108
+
109
+ resetQueries(arg1, arg2, arg3) {
110
+ const [filters, options] = parseFilterArgs(arg1, arg2, arg3);
111
+ const queryCache = this.queryCache;
112
+ const refetchFilters = {
113
+ type: 'active',
114
+ ...filters
115
+ };
116
+ return notifyManager.batch(() => {
117
+ queryCache.findAll(filters).forEach(query => {
118
+ query.reset();
119
+ });
120
+ return this.refetchQueries(refetchFilters, options);
121
+ });
122
+ }
123
+
124
+ cancelQueries(arg1, arg2, arg3) {
125
+ const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);
126
+
127
+ if (typeof cancelOptions.revert === 'undefined') {
128
+ cancelOptions.revert = true;
129
+ }
130
+
131
+ const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));
132
+ return Promise.all(promises).then(noop).catch(noop);
133
+ }
134
+
135
+ invalidateQueries(arg1, arg2, arg3) {
136
+ const [filters, options] = parseFilterArgs(arg1, arg2, arg3);
137
+ return notifyManager.batch(() => {
138
+ var _ref, _filters$refetchType;
139
+
140
+ this.queryCache.findAll(filters).forEach(query => {
141
+ query.invalidate();
142
+ });
143
+
144
+ if (filters.refetchType === 'none') {
145
+ return Promise.resolve();
146
+ }
147
+
148
+ const refetchFilters = { ...filters,
149
+ type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'
150
+ };
151
+ return this.refetchQueries(refetchFilters, options);
152
+ });
153
+ }
154
+
155
+ refetchQueries(arg1, arg2, arg3) {
156
+ const [filters, options] = parseFilterArgs(arg1, arg2, arg3);
157
+ const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {
158
+ var _options$cancelRefetc;
159
+
160
+ return query.fetch(undefined, { ...options,
161
+ cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,
162
+ meta: {
163
+ refetchPage: filters.refetchPage
164
+ }
165
+ });
166
+ }));
167
+ let promise = Promise.all(promises).then(noop);
168
+
169
+ if (!(options != null && options.throwOnError)) {
170
+ promise = promise.catch(noop);
171
+ }
172
+
173
+ return promise;
174
+ }
175
+
176
+ fetchQuery(arg1, arg2, arg3) {
177
+ const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
178
+ const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652
179
+
180
+ if (typeof defaultedOptions.retry === 'undefined') {
181
+ defaultedOptions.retry = false;
182
+ }
183
+
184
+ const query = this.queryCache.build(this, defaultedOptions);
185
+ return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);
186
+ }
187
+
188
+ prefetchQuery(arg1, arg2, arg3) {
189
+ return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);
190
+ }
191
+
192
+ fetchInfiniteQuery(arg1, arg2, arg3) {
193
+ const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
194
+ parsedOptions.behavior = infiniteQueryBehavior();
195
+ return this.fetchQuery(parsedOptions);
196
+ }
197
+
198
+ prefetchInfiniteQuery(arg1, arg2, arg3) {
199
+ return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);
200
+ }
201
+
202
+ resumePausedMutations() {
203
+ return this.mutationCache.resumePausedMutations();
204
+ }
205
+
206
+ getQueryCache() {
207
+ return this.queryCache;
208
+ }
209
+
210
+ getMutationCache() {
211
+ return this.mutationCache;
212
+ }
213
+
214
+ getLogger() {
215
+ return this.logger;
216
+ }
217
+
218
+ getDefaultOptions() {
219
+ return this.defaultOptions;
220
+ }
221
+
222
+ setDefaultOptions(options) {
223
+ this.defaultOptions = options;
224
+ }
225
+
226
+ setQueryDefaults(queryKey, options) {
227
+ const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));
228
+
229
+ if (result) {
230
+ result.defaultOptions = options;
231
+ } else {
232
+ this.queryDefaults.push({
233
+ queryKey,
234
+ defaultOptions: options
235
+ });
236
+ }
237
+ }
238
+
239
+ getQueryDefaults(queryKey) {
240
+ if (!queryKey) {
241
+ return undefined;
242
+ } // Get the first matching defaults
243
+
244
+
245
+ const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode
246
+
247
+ if (process.env.NODE_ENV !== 'production') {
248
+ // Retrieve all matching defaults for the given key
249
+ const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key
250
+
251
+ if (matchingDefaults.length > 1) {
252
+ this.logger.error("[QueryClient] Several query defaults match with key '" + JSON.stringify(queryKey) + "'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.");
253
+ }
254
+ }
255
+
256
+ return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;
257
+ }
258
+
259
+ setMutationDefaults(mutationKey, options) {
260
+ const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));
261
+
262
+ if (result) {
263
+ result.defaultOptions = options;
264
+ } else {
265
+ this.mutationDefaults.push({
266
+ mutationKey,
267
+ defaultOptions: options
268
+ });
269
+ }
270
+ }
271
+
272
+ getMutationDefaults(mutationKey) {
273
+ if (!mutationKey) {
274
+ return undefined;
275
+ } // Get the first matching defaults
276
+
277
+
278
+ const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode
279
+
280
+ if (process.env.NODE_ENV !== 'production') {
281
+ // Retrieve all matching defaults for the given key
282
+ const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key
283
+
284
+ if (matchingDefaults.length > 1) {
285
+ this.logger.error("[QueryClient] Several mutation defaults match with key '" + JSON.stringify(mutationKey) + "'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.");
286
+ }
287
+ }
288
+
289
+ return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;
290
+ }
291
+
292
+ defaultQueryOptions(options) {
293
+ if (options != null && options._defaulted) {
294
+ return options;
295
+ }
296
+
297
+ const defaultedOptions = { ...this.defaultOptions.queries,
298
+ ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),
299
+ ...options,
300
+ _defaulted: true
301
+ };
302
+
303
+ if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {
304
+ defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);
305
+ } // dependent default values
306
+
307
+
308
+ if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {
309
+ defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';
310
+ }
311
+
312
+ if (typeof defaultedOptions.useErrorBoundary === 'undefined') {
313
+ defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;
314
+ }
315
+
316
+ return defaultedOptions;
317
+ }
318
+
319
+ defaultMutationOptions(options) {
320
+ if (options != null && options._defaulted) {
321
+ return options;
322
+ }
323
+
324
+ return { ...this.defaultOptions.mutations,
325
+ ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),
326
+ ...options,
327
+ _defaulted: true
328
+ };
329
+ }
330
+
331
+ clear() {
332
+ this.queryCache.clear();
333
+ this.mutationCache.clear();
334
+ }
335
+
336
+ }
337
+
338
+ export { QueryClient };
339
+ //# sourceMappingURL=queryClient.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryClient.esm.js","sources":["../../src/queryClient.ts"],"sourcesContent":["import {\n QueryFilters,\n Updater,\n hashQueryKey,\n noop,\n parseFilterArgs,\n parseQueryArgs,\n partialMatchKey,\n hashQueryKeyByOptions,\n MutationFilters,\n functionalUpdate,\n} from './utils'\nimport type {\n QueryClientConfig,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n ResetQueryFilters,\n SetDataOptions,\n} from './types'\nimport type { QueryState } from './query'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\nimport { CancelOptions, DefaultedQueryObserverOptions } from './types'\nimport { defaultLogger, Logger } from './logger'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions<any, any, any>\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions<any, any, any, any>\n}\n\n// CLASS\n\nexport class QueryClient {\n private queryCache: QueryCache\n private mutationCache: MutationCache\n private logger: Logger\n private defaultOptions: DefaultOptions\n private queryDefaults: QueryDefaults[]\n private mutationDefaults: MutationDefaults[]\n private unsubscribeFocus?: () => void\n private unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.queryCache = config.queryCache || new QueryCache()\n this.mutationCache = config.mutationCache || new MutationCache()\n this.logger = config.logger || defaultLogger\n this.defaultOptions = config.defaultOptions || {}\n this.queryDefaults = []\n this.mutationDefaults = []\n }\n\n mount(): void {\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.queryCache.onFocus()\n }\n })\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.unsubscribeFocus?.()\n this.unsubscribeOnline?.()\n }\n\n isFetching(filters?: QueryFilters): number\n isFetching(queryKey?: QueryKey, filters?: QueryFilters): number\n isFetching(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): number {\n const [filters] = parseFilterArgs(arg1, arg2)\n filters.fetchStatus = 'fetching'\n return this.queryCache.findAll(filters).length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.mutationCache.findAll({ ...filters, fetching: true }).length\n }\n\n getQueryData<TData = unknown>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): TData | undefined {\n return this.queryCache.find<TData>(queryKey, filters)?.state.data\n }\n\n getQueriesData<TData = unknown>(queryKey: QueryKey): [QueryKey, TData][]\n getQueriesData<TData = unknown>(filters: QueryFilters): [QueryKey, TData][]\n getQueriesData<TData = unknown>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n ): [QueryKey, TData][] {\n return this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey, state }) => {\n const data = state.data as TData\n return [queryKey, data]\n })\n }\n\n setQueryData<TData>(\n queryKey: QueryKey,\n updater: Updater<TData | undefined, TData | undefined>,\n options?: SetDataOptions,\n ): TData | undefined {\n const query = this.queryCache.find<TData>(queryKey)\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const parsedOptions = parseQueryArgs(queryKey)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n return this.queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TData>(\n queryKey: QueryKey,\n updater: Updater<TData | undefined, TData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TData | undefined][]\n\n setQueriesData<TData>(\n filters: QueryFilters,\n updater: Updater<TData | undefined, TData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TData | undefined][]\n\n setQueriesData<TData>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n updater: Updater<TData | undefined, TData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TData = unknown, TError = undefined>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): QueryState<TData, TError> | undefined {\n return this.queryCache.find<TData, TError>(queryKey, filters)?.state\n }\n\n removeQueries(filters?: QueryFilters): void\n removeQueries(queryKey?: QueryKey, filters?: QueryFilters): void\n removeQueries(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): void {\n const [filters] = parseFilterArgs(arg1, arg2)\n const queryCache = this.queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries<TPageData = unknown>(\n filters?: ResetQueryFilters<TPageData>,\n options?: ResetOptions,\n ): Promise<void>\n resetQueries<TPageData = unknown>(\n queryKey?: QueryKey,\n filters?: ResetQueryFilters<TPageData>,\n options?: ResetOptions,\n ): Promise<void>\n resetQueries(\n arg1?: QueryKey | ResetQueryFilters,\n arg2?: ResetQueryFilters | ResetOptions,\n arg3?: ResetOptions,\n ): Promise<void> {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n const queryCache = this.queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise<void>\n cancelQueries(\n queryKey?: QueryKey,\n filters?: QueryFilters,\n options?: CancelOptions,\n ): Promise<void>\n cancelQueries(\n arg1?: QueryKey | QueryFilters,\n arg2?: QueryFilters | CancelOptions,\n arg3?: CancelOptions,\n ): Promise<void> {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3)\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true\n }\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .map((query) => query.cancel(cancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries<TPageData = unknown>(\n filters?: InvalidateQueryFilters<TPageData>,\n options?: InvalidateOptions,\n ): Promise<void>\n invalidateQueries<TPageData = unknown>(\n queryKey?: QueryKey,\n filters?: InvalidateQueryFilters<TPageData>,\n options?: InvalidateOptions,\n ): Promise<void>\n invalidateQueries(\n arg1?: QueryKey | InvalidateQueryFilters,\n arg2?: InvalidateQueryFilters | InvalidateOptions,\n arg3?: InvalidateOptions,\n ): Promise<void> {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n return notifyManager.batch(() => {\n this.queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries<TPageData = unknown>(\n filters?: RefetchQueryFilters<TPageData>,\n options?: RefetchOptions,\n ): Promise<void>\n refetchQueries<TPageData = unknown>(\n queryKey?: QueryKey,\n filters?: RefetchQueryFilters<TPageData>,\n options?: RefetchOptions,\n ): Promise<void>\n refetchQueries(\n arg1?: QueryKey | RefetchQueryFilters,\n arg2?: RefetchQueryFilters | RefetchOptions,\n arg3?: RefetchOptions,\n ): Promise<void> {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) =>\n query.fetch(undefined, {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n meta: { refetchPage: filters.refetchPage },\n }),\n ),\n )\n\n let promise = Promise.all(promises).then(noop)\n\n if (!options?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>>\n fetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n parsedOptions.behavior = infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData\n >()\n return this.fetchQuery(parsedOptions)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchInfiniteQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n resumePausedMutations(): Promise<void> {\n return this.mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.mutationCache\n }\n\n getLogger(): Logger {\n return this.logger\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: QueryObserverOptions<unknown, any, any, any>,\n ): void {\n const result = this.queryDefaults.find(\n (x) => hashQueryKey(queryKey) === hashQueryKey(x.queryKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.queryDefaults.push({ queryKey, defaultOptions: options })\n }\n }\n\n getQueryDefaults(\n queryKey?: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> | undefined {\n if (!queryKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.queryDefaults.find((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several query defaults match with key '${JSON.stringify(\n queryKey,\n )}'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: MutationObserverOptions<any, any, any, any>,\n ): void {\n const result = this.mutationDefaults.find(\n (x) => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.mutationDefaults.push({ mutationKey, defaultOptions: options })\n }\n }\n\n getMutationDefaults(\n mutationKey?: MutationKey,\n ): MutationObserverOptions<any, any, any, any> | undefined {\n if (!mutationKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.mutationDefaults.find((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several mutation defaults match with key '${JSON.stringify(\n mutationKey,\n )}'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n defaultQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n >(\n options?:\n | QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options?.queryKey),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options?.mutationKey),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.queryCache.clear()\n this.mutationCache.clear()\n }\n}\n"],"names":["QueryClient","constructor","config","queryCache","QueryCache","mutationCache","MutationCache","logger","defaultLogger","defaultOptions","queryDefaults","mutationDefaults","mount","unsubscribeFocus","focusManager","subscribe","isFocused","resumePausedMutations","onFocus","unsubscribeOnline","onlineManager","isOnline","onOnline","unmount","isFetching","arg1","arg2","filters","parseFilterArgs","fetchStatus","findAll","length","isMutating","fetching","getQueryData","queryKey","find","state","data","getQueriesData","queryKeyOrFilters","getQueryCache","map","setQueryData","updater","options","query","prevData","functionalUpdate","undefined","parsedOptions","parseQueryArgs","defaultedOptions","defaultQueryOptions","build","setData","manual","setQueriesData","notifyManager","batch","getQueryState","removeQueries","forEach","remove","resetQueries","arg3","refetchFilters","type","reset","refetchQueries","cancelQueries","cancelOptions","revert","promises","cancel","Promise","all","then","noop","catch","invalidateQueries","invalidate","refetchType","resolve","filter","isDisabled","fetch","cancelRefetch","meta","refetchPage","promise","throwOnError","fetchQuery","retry","isStaleByTime","staleTime","prefetchQuery","fetchInfiniteQuery","behavior","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getLogger","getDefaultOptions","setDefaultOptions","setQueryDefaults","result","x","hashQueryKey","push","getQueryDefaults","firstMatchingDefaults","partialMatchKey","process","env","NODE_ENV","matchingDefaults","error","JSON","stringify","setMutationDefaults","mutationKey","getMutationDefaults","_defaulted","queries","queryHash","hashQueryKeyByOptions","refetchOnReconnect","networkMode","useErrorBoundary","suspense","defaultMutationOptions","mutations","clear"],"mappings":"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"}