@tanstack/query-core 4.24.4 → 4.24.9
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.
- package/build/lib/mutation.d.ts +1 -1
- package/build/lib/mutation.esm.js +2 -5
- package/build/lib/mutation.esm.js.map +1 -1
- package/build/lib/mutation.js +2 -5
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutation.mjs +2 -5
- package/build/lib/mutation.mjs.map +1 -1
- package/build/lib/mutationCache.d.ts +9 -8
- package/build/lib/mutationCache.esm.js +9 -2
- package/build/lib/mutationCache.esm.js.map +1 -1
- package/build/lib/mutationCache.js +9 -2
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationCache.mjs +9 -2
- package/build/lib/mutationCache.mjs.map +1 -1
- package/build/lib/queryCache.d.ts +9 -9
- package/build/lib/queryCache.esm.js.map +1 -1
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.mjs.map +1 -1
- package/build/lib/queryClient.d.ts +1 -1
- package/build/lib/queryClient.esm.js.map +1 -1
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.mjs.map +1 -1
- package/build/lib/retryer.d.ts +1 -1
- package/build/lib/retryer.esm.js +8 -3
- package/build/lib/retryer.esm.js.map +1 -1
- package/build/lib/retryer.js +8 -3
- package/build/lib/retryer.js.map +1 -1
- package/build/lib/retryer.mjs +8 -3
- package/build/lib/retryer.mjs.map +1 -1
- package/build/lib/types.d.ts +4 -0
- package/build/umd/index.development.js +19 -10
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/mutation.ts +2 -6
- package/src/mutationCache.ts +25 -16
- package/src/queryCache.ts +10 -10
- package/src/queryClient.ts +1 -1
- package/src/retryer.ts +8 -5
- package/src/tests/queryClient.test.tsx +77 -1
- package/src/types.ts +13 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutationCache.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<
|
|
1
|
+
{"version":3,"file":"mutationCache.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
|
|
@@ -74,8 +74,15 @@ class MutationCache extends Subscribable {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
resumePausedMutations() {
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
var _this$resuming;
|
|
78
|
+
|
|
79
|
+
this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {
|
|
80
|
+
const pausedMutations = this.mutations.filter(x => x.state.isPaused);
|
|
81
|
+
return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));
|
|
82
|
+
}).then(() => {
|
|
83
|
+
this.resuming = undefined;
|
|
84
|
+
});
|
|
85
|
+
return this.resuming;
|
|
79
86
|
}
|
|
80
87
|
|
|
81
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutationCache.mjs","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<
|
|
1
|
+
{"version":3,"file":"mutationCache.mjs","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { QueryFilters } from './utils';
|
|
2
2
|
import type { Action, QueryState } from './query';
|
|
3
3
|
import { Query } from './query';
|
|
4
|
-
import type { QueryKey, QueryOptions } from './types';
|
|
4
|
+
import type { NotifyEvent, QueryKey, QueryOptions } from './types';
|
|
5
5
|
import type { QueryClient } from './queryClient';
|
|
6
6
|
import { Subscribable } from './subscribable';
|
|
7
7
|
import type { QueryObserver } from './queryObserver';
|
|
@@ -9,34 +9,34 @@ interface QueryCacheConfig {
|
|
|
9
9
|
onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void;
|
|
10
10
|
onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void;
|
|
11
11
|
}
|
|
12
|
-
interface NotifyEventQueryAdded {
|
|
12
|
+
interface NotifyEventQueryAdded extends NotifyEvent {
|
|
13
13
|
type: 'added';
|
|
14
14
|
query: Query<any, any, any, any>;
|
|
15
15
|
}
|
|
16
|
-
interface NotifyEventQueryRemoved {
|
|
16
|
+
interface NotifyEventQueryRemoved extends NotifyEvent {
|
|
17
17
|
type: 'removed';
|
|
18
18
|
query: Query<any, any, any, any>;
|
|
19
19
|
}
|
|
20
|
-
interface NotifyEventQueryUpdated {
|
|
20
|
+
interface NotifyEventQueryUpdated extends NotifyEvent {
|
|
21
21
|
type: 'updated';
|
|
22
22
|
query: Query<any, any, any, any>;
|
|
23
23
|
action: Action<any, any>;
|
|
24
24
|
}
|
|
25
|
-
interface NotifyEventQueryObserverAdded {
|
|
25
|
+
interface NotifyEventQueryObserverAdded extends NotifyEvent {
|
|
26
26
|
type: 'observerAdded';
|
|
27
27
|
query: Query<any, any, any, any>;
|
|
28
28
|
observer: QueryObserver<any, any, any, any, any>;
|
|
29
29
|
}
|
|
30
|
-
interface NotifyEventQueryObserverRemoved {
|
|
30
|
+
interface NotifyEventQueryObserverRemoved extends NotifyEvent {
|
|
31
31
|
type: 'observerRemoved';
|
|
32
32
|
query: Query<any, any, any, any>;
|
|
33
33
|
observer: QueryObserver<any, any, any, any, any>;
|
|
34
34
|
}
|
|
35
|
-
interface NotifyEventQueryObserverResultsUpdated {
|
|
35
|
+
interface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {
|
|
36
36
|
type: 'observerResultsUpdated';
|
|
37
37
|
query: Query<any, any, any, any>;
|
|
38
38
|
}
|
|
39
|
-
interface NotifyEventQueryObserverOptionsUpdated {
|
|
39
|
+
interface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {
|
|
40
40
|
type: 'observerOptionsUpdated';
|
|
41
41
|
query: Query<any, any, any, any>;
|
|
42
42
|
observer: QueryObserver<any, any, any, any, any>;
|
|
@@ -52,7 +52,7 @@ export declare class QueryCache extends Subscribable<QueryCacheListener> {
|
|
|
52
52
|
add(query: Query<any, any, any, any>): void;
|
|
53
53
|
remove(query: Query<any, any, any, any>): void;
|
|
54
54
|
clear(): void;
|
|
55
|
-
get<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData,
|
|
55
|
+
get<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryHash: string): Query<TQueryFnData, TError, TData, TQueryKey> | undefined;
|
|
56
56
|
getAll(): Query[];
|
|
57
57
|
find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(arg1: QueryKey, arg2?: QueryFilters): Query<TQueryFnData, TError, TData> | undefined;
|
|
58
58
|
findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.esm.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type { QueryKey, QueryOptions } from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n
|
|
1
|
+
{"version":3,"file":"queryCache.esm.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","queries","queriesMap","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","logger","getLogger","defaultQueryOptions","defaultOptions","getQueryDefaults","add","push","notify","type","remove","queryInMap","destroy","filter","x","clear","notifyManager","batch","forEach","getAll","find","arg1","arg2","filters","parseFilterArgs","exact","matchQuery","findAll","Object","keys","length","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type { QueryKey, QueryOptions } from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n
|
|
1
|
+
{"version":3,"file":"queryCache.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","queries","queriesMap","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","logger","getLogger","defaultQueryOptions","defaultOptions","getQueryDefaults","add","push","notify","type","remove","queryInMap","destroy","filter","x","clear","notifyManager","batch","forEach","getAll","find","arg1","arg2","filters","parseFilterArgs","exact","matchQuery","findAll","Object","keys","length","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.mjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type { QueryKey, QueryOptions } from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n
|
|
1
|
+
{"version":3,"file":"queryCache.mjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","queries","queriesMap","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","logger","getLogger","defaultQueryOptions","defaultOptions","getQueryDefaults","add","push","notify","type","remove","queryInMap","destroy","filter","x","clear","notifyManager","batch","forEach","getAll","find","arg1","arg2","filters","parseFilterArgs","exact","matchQuery","findAll","Object","keys","length","event","listeners","listener","onFocus","onOnline"],"mappings":";;;;;AAuEA;AAEO,MAAMA,UAAN,SAAyBC,YAAzB,CAA0D;EAM/DC,WAAW,CAACC,MAAD,EAA4B;AACrC,IAAA,KAAA,EAAA,CAAA;AACA,IAAA,IAAA,CAAKA,MAAL,GAAcA,MAAM,IAAI,EAAxB,CAAA;IACA,IAAKC,CAAAA,OAAL,GAAe,EAAf,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,EAAlB,CAAA;AACD,GAAA;;AAEDC,EAAAA,KAAK,CACHC,MADG,EAEHC,OAFG,EAGHC,KAHG,EAI4C;AAAA,IAAA,IAAA,kBAAA,CAAA;;AAC/C,IAAA,MAAMC,QAAQ,GAAGF,OAAO,CAACE,QAAzB,CAAA;IACA,MAAMC,SAAS,GACbH,CAAAA,kBAAAA,GAAAA,OAAO,CAACG,SADK,KACQC,IAAAA,GAAAA,kBAAAA,GAAAA,qBAAqB,CAACF,QAAD,EAAWF,OAAX,CAD5C,CAAA;AAEA,IAAA,IAAIK,KAAK,GAAG,IAAA,CAAKC,GAAL,CAAiDH,SAAjD,CAAZ,CAAA;;IAEA,IAAI,CAACE,KAAL,EAAY;MACVA,KAAK,GAAG,IAAIE,KAAJ,CAAU;AAChBC,QAAAA,KAAK,EAAE,IADS;AAEhBC,QAAAA,MAAM,EAAEV,MAAM,CAACW,SAAP,EAFQ;QAGhBR,QAHgB;QAIhBC,SAJgB;AAKhBH,QAAAA,OAAO,EAAED,MAAM,CAACY,mBAAP,CAA2BX,OAA3B,CALO;QAMhBC,KANgB;AAOhBW,QAAAA,cAAc,EAAEb,MAAM,CAACc,gBAAP,CAAwBX,QAAxB,CAAA;AAPA,OAAV,CAAR,CAAA;MASA,IAAKY,CAAAA,GAAL,CAAST,KAAT,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAOA,KAAP,CAAA;AACD,GAAA;;EAEDS,GAAG,CAACT,KAAD,EAAyC;IAC1C,IAAI,CAAC,KAAKR,UAAL,CAAgBQ,KAAK,CAACF,SAAtB,CAAL,EAAuC;AACrC,MAAA,IAAA,CAAKN,UAAL,CAAgBQ,KAAK,CAACF,SAAtB,IAAmCE,KAAnC,CAAA;AACA,MAAA,IAAA,CAAKT,OAAL,CAAamB,IAAb,CAAkBV,KAAlB,CAAA,CAAA;AACA,MAAA,IAAA,CAAKW,MAAL,CAAY;AACVC,QAAAA,IAAI,EAAE,OADI;AAEVZ,QAAAA,KAAAA;OAFF,CAAA,CAAA;AAID,KAAA;AACF,GAAA;;EAEDa,MAAM,CAACb,KAAD,EAAyC;IAC7C,MAAMc,UAAU,GAAG,IAAKtB,CAAAA,UAAL,CAAgBQ,KAAK,CAACF,SAAtB,CAAnB,CAAA;;AAEA,IAAA,IAAIgB,UAAJ,EAAgB;AACdd,MAAAA,KAAK,CAACe,OAAN,EAAA,CAAA;AAEA,MAAA,IAAA,CAAKxB,OAAL,GAAe,IAAKA,CAAAA,OAAL,CAAayB,MAAb,CAAqBC,CAAD,IAAOA,CAAC,KAAKjB,KAAjC,CAAf,CAAA;;MAEA,IAAIc,UAAU,KAAKd,KAAnB,EAA0B;AACxB,QAAA,OAAO,KAAKR,UAAL,CAAgBQ,KAAK,CAACF,SAAtB,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAA,CAAKa,MAAL,CAAY;AAAEC,QAAAA,IAAI,EAAE,SAAR;AAAmBZ,QAAAA,KAAAA;OAA/B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAEDkB,EAAAA,KAAK,GAAS;IACZC,aAAa,CAACC,KAAd,CAAoB,MAAM;AACxB,MAAA,IAAA,CAAK7B,OAAL,CAAa8B,OAAb,CAAsBrB,KAAD,IAAW;QAC9B,IAAKa,CAAAA,MAAL,CAAYb,KAAZ,CAAA,CAAA;OADF,CAAA,CAAA;KADF,CAAA,CAAA;AAKD,GAAA;;EAEDC,GAAG,CAMDH,SANC,EAO0D;AAC3D,IAAA,OAAO,IAAKN,CAAAA,UAAL,CAAgBM,SAAhB,CAAP,CAAA;AACD,GAAA;;AAEDwB,EAAAA,MAAM,GAAY;AAChB,IAAA,OAAO,KAAK/B,OAAZ,CAAA;AACD,GAAA;;AAEDgC,EAAAA,IAAI,CACFC,IADE,EAEFC,IAFE,EAG8C;IAChD,MAAM,CAACC,OAAD,CAAYC,GAAAA,eAAe,CAACH,IAAD,EAAOC,IAAP,CAAjC,CAAA;;AAEA,IAAA,IAAI,OAAOC,OAAO,CAACE,KAAf,KAAyB,WAA7B,EAA0C;MACxCF,OAAO,CAACE,KAAR,GAAgB,IAAhB,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,IAAKrC,CAAAA,OAAL,CAAagC,IAAb,CAAmBvB,KAAD,IAAW6B,UAAU,CAACH,OAAD,EAAU1B,KAAV,CAAvC,CAAP,CAAA;AACD,GAAA;;AAKD8B,EAAAA,OAAO,CAACN,IAAD,EAAiCC,IAAjC,EAA+D;IACpE,MAAM,CAACC,OAAD,CAAYC,GAAAA,eAAe,CAACH,IAAD,EAAOC,IAAP,CAAjC,CAAA;IACA,OAAOM,MAAM,CAACC,IAAP,CAAYN,OAAZ,CAAqBO,CAAAA,MAArB,GAA8B,CAA9B,GACH,IAAA,CAAK1C,OAAL,CAAayB,MAAb,CAAqBhB,KAAD,IAAW6B,UAAU,CAACH,OAAD,EAAU1B,KAAV,CAAzC,CADG,GAEH,IAAA,CAAKT,OAFT,CAAA;AAGD,GAAA;;EAEDoB,MAAM,CAACuB,KAAD,EAA+B;IACnCf,aAAa,CAACC,KAAd,CAAoB,MAAM;AACxB,MAAA,IAAA,CAAKe,SAAL,CAAed,OAAf,CAAwBe,QAAD,IAAc;QACnCA,QAAQ,CAACF,KAAD,CAAR,CAAA;OADF,CAAA,CAAA;KADF,CAAA,CAAA;AAKD,GAAA;;AAEDG,EAAAA,OAAO,GAAS;IACdlB,aAAa,CAACC,KAAd,CAAoB,MAAM;AACxB,MAAA,IAAA,CAAK7B,OAAL,CAAa8B,OAAb,CAAsBrB,KAAD,IAAW;AAC9BA,QAAAA,KAAK,CAACqC,OAAN,EAAA,CAAA;OADF,CAAA,CAAA;KADF,CAAA,CAAA;AAKD,GAAA;;AAEDC,EAAAA,QAAQ,GAAS;IACfnB,aAAa,CAACC,KAAd,CAAoB,MAAM;AACxB,MAAA,IAAA,CAAK7B,OAAL,CAAa8B,OAAb,CAAsBrB,KAAD,IAAW;AAC9BA,QAAAA,KAAK,CAACsC,QAAN,EAAA,CAAA;OADF,CAAA,CAAA;KADF,CAAA,CAAA;AAKD,GAAA;;AAtI8D;;;;"}
|
|
@@ -53,7 +53,7 @@ export declare class QueryClient {
|
|
|
53
53
|
prefetchInfiniteQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<void>;
|
|
54
54
|
prefetchInfiniteQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<void>;
|
|
55
55
|
prefetchInfiniteQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, TQueryKey>, options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<void>;
|
|
56
|
-
resumePausedMutations(): Promise<
|
|
56
|
+
resumePausedMutations(): Promise<unknown>;
|
|
57
57
|
getQueryCache(): QueryCache;
|
|
58
58
|
getMutationCache(): MutationCache;
|
|
59
59
|
getLogger(): Logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryClient.esm.js","sources":["../../src/queryClient.ts"],"sourcesContent":["import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashQueryKey,\n noop,\n parseFilterArgs,\n parseQueryArgs,\n partialMatchKey,\n hashQueryKeyByOptions,\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 WithRequired,\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 type { CancelOptions, DefaultedQueryObserverOptions } from './types'\nimport type { Logger } from './logger'\nimport { defaultLogger } 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 mountCount: number\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 this.mountCount = 0\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\n `Passing a custom logger has been deprecated and will be removed in the next major version.`,\n )\n }\n }\n\n mount(): void {\n this.mountCount++\n if (this.mountCount !== 1) return\n\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.mountCount--\n if (this.mountCount !== 0) return\n\n this.unsubscribeFocus?.()\n this.unsubscribeFocus = undefined\n\n this.unsubscribeOnline?.()\n this.unsubscribeOnline = undefined\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<TQueryFnData = unknown>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): TQueryFnData | undefined {\n return this.queryCache.find<TQueryFnData>(queryKey, filters)?.state.data\n }\n\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: WithRequired<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n ): Promise<TData>\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: Omit<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n ): Promise<TData>\n ensureQueryData<\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?: Omit<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n ): Promise<TData>\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | WithRequired<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\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 cachedData = this.getQueryData<TData>(parsedOptions.queryKey!)\n\n return cachedData\n ? Promise.resolve(cachedData)\n : this.fetchQuery(parsedOptions)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData<TQueryFnData = unknown>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.queryCache.find<TQueryFnData>(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<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData<TQueryFnData>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = undefined>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.queryCache.find<TQueryFnData, 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","mountCount","process","env","NODE_ENV","error","mount","unsubscribeFocus","focusManager","subscribe","isFocused","resumePausedMutations","onFocus","unsubscribeOnline","onlineManager","isOnline","onOnline","unmount","undefined","isFetching","arg1","arg2","filters","parseFilterArgs","fetchStatus","findAll","length","isMutating","fetching","getQueryData","queryKey","find","state","data","ensureQueryData","arg3","parsedOptions","parseQueryArgs","cachedData","Promise","resolve","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","map","setQueryData","updater","options","query","prevData","functionalUpdate","defaultedOptions","defaultQueryOptions","build","setData","manual","setQueriesData","notifyManager","batch","getQueryState","removeQueries","forEach","remove","resetQueries","refetchFilters","type","reset","refetchQueries","cancelQueries","cancelOptions","revert","promises","cancel","all","then","noop","catch","invalidateQueries","invalidate","refetchType","filter","isDisabled","fetch","cancelRefetch","meta","refetchPage","promise","throwOnError","retry","isStaleByTime","staleTime","prefetchQuery","fetchInfiniteQuery","behavior","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getLogger","getDefaultOptions","setDefaultOptions","setQueryDefaults","result","x","hashQueryKey","push","getQueryDefaults","firstMatchingDefaults","partialMatchKey","matchingDefaults","JSON","stringify","setMutationDefaults","mutationKey","getMutationDefaults","_defaulted","queries","queryHash","hashQueryKeyByOptions","refetchOnReconnect","networkMode","useErrorBoundary","suspense","defaultMutationOptions","mutations","clear"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queryClient.esm.js","sources":["../../src/queryClient.ts"],"sourcesContent":["import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashQueryKey,\n noop,\n parseFilterArgs,\n parseQueryArgs,\n partialMatchKey,\n hashQueryKeyByOptions,\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 WithRequired,\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 type { CancelOptions, DefaultedQueryObserverOptions } from './types'\nimport type { Logger } from './logger'\nimport { defaultLogger } 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 mountCount: number\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 this.mountCount = 0\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\n `Passing a custom logger has been deprecated and will be removed in the next major version.`,\n )\n }\n }\n\n mount(): void {\n this.mountCount++\n if (this.mountCount !== 1) return\n\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.mountCount--\n if (this.mountCount !== 0) return\n\n this.unsubscribeFocus?.()\n this.unsubscribeFocus = undefined\n\n this.unsubscribeOnline?.()\n this.unsubscribeOnline = undefined\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<TQueryFnData = unknown>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): TQueryFnData | undefined {\n return this.queryCache.find<TQueryFnData>(queryKey, filters)?.state.data\n }\n\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: WithRequired<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n ): Promise<TData>\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: Omit<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n ): Promise<TData>\n ensureQueryData<\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?: Omit<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n ): Promise<TData>\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | WithRequired<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\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 cachedData = this.getQueryData<TData>(parsedOptions.queryKey!)\n\n return cachedData\n ? Promise.resolve(cachedData)\n : this.fetchQuery(parsedOptions)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData<TQueryFnData = unknown>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.queryCache.find<TQueryFnData>(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<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData<TQueryFnData>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = undefined>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.queryCache.find<TQueryFnData, 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<unknown> {\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","mountCount","process","env","NODE_ENV","error","mount","unsubscribeFocus","focusManager","subscribe","isFocused","resumePausedMutations","onFocus","unsubscribeOnline","onlineManager","isOnline","onOnline","unmount","undefined","isFetching","arg1","arg2","filters","parseFilterArgs","fetchStatus","findAll","length","isMutating","fetching","getQueryData","queryKey","find","state","data","ensureQueryData","arg3","parsedOptions","parseQueryArgs","cachedData","Promise","resolve","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","map","setQueryData","updater","options","query","prevData","functionalUpdate","defaultedOptions","defaultQueryOptions","build","setData","manual","setQueriesData","notifyManager","batch","getQueryState","removeQueries","forEach","remove","resetQueries","refetchFilters","type","reset","refetchQueries","cancelQueries","cancelOptions","revert","promises","cancel","all","then","noop","catch","invalidateQueries","invalidate","refetchType","filter","isDisabled","fetch","cancelRefetch","meta","refetchPage","promise","throwOnError","retry","isStaleByTime","staleTime","prefetchQuery","fetchInfiniteQuery","behavior","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getLogger","getDefaultOptions","setDefaultOptions","setQueryDefaults","result","x","hashQueryKey","push","getQueryDefaults","firstMatchingDefaults","partialMatchKey","matchingDefaults","JSON","stringify","setMutationDefaults","mutationKey","getMutationDefaults","_defaulted","queries","queryHash","hashQueryKeyByOptions","refetchOnReconnect","networkMode","useErrorBoundary","suspense","defaultMutationOptions","mutations","clear"],"mappings":";;;;;;;;;AAuDA;AAEO,MAAMA,WAAN,CAAkB;AAWvBC,EAAAA,WAAW,CAACC,MAAyB,GAAG,EAA7B,EAAiC;IAC1C,IAAKC,CAAAA,UAAL,GAAkBD,MAAM,CAACC,UAAP,IAAqB,IAAIC,UAAJ,EAAvC,CAAA;IACA,IAAKC,CAAAA,aAAL,GAAqBH,MAAM,CAACG,aAAP,IAAwB,IAAIC,aAAJ,EAA7C,CAAA;AACA,IAAA,IAAA,CAAKC,MAAL,GAAcL,MAAM,CAACK,MAAP,IAAiBC,aAA/B,CAAA;AACA,IAAA,IAAA,CAAKC,cAAL,GAAsBP,MAAM,CAACO,cAAP,IAAyB,EAA/C,CAAA;IACA,IAAKC,CAAAA,aAAL,GAAqB,EAArB,CAAA;IACA,IAAKC,CAAAA,gBAAL,GAAwB,EAAxB,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,CAAlB,CAAA;;IAEA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyCb,MAAM,CAACK,MAApD,EAA4D;MAC1D,IAAKA,CAAAA,MAAL,CAAYS,KAAZ,CAAA,4FAAA,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;AAEDC,EAAAA,KAAK,GAAS;AACZ,IAAA,IAAA,CAAKL,UAAL,EAAA,CAAA;AACA,IAAA,IAAI,IAAKA,CAAAA,UAAL,KAAoB,CAAxB,EAA2B,OAAA;AAE3B,IAAA,IAAA,CAAKM,gBAAL,GAAwBC,YAAY,CAACC,SAAb,CAAuB,MAAM;AACnD,MAAA,IAAID,YAAY,CAACE,SAAb,EAAJ,EAA8B;AAC5B,QAAA,IAAA,CAAKC,qBAAL,EAAA,CAAA;QACA,IAAKnB,CAAAA,UAAL,CAAgBoB,OAAhB,EAAA,CAAA;AACD,OAAA;AACF,KALuB,CAAxB,CAAA;AAMA,IAAA,IAAA,CAAKC,iBAAL,GAAyBC,aAAa,CAACL,SAAd,CAAwB,MAAM;AACrD,MAAA,IAAIK,aAAa,CAACC,QAAd,EAAJ,EAA8B;AAC5B,QAAA,IAAA,CAAKJ,qBAAL,EAAA,CAAA;QACA,IAAKnB,CAAAA,UAAL,CAAgBwB,QAAhB,EAAA,CAAA;AACD,OAAA;AACF,KALwB,CAAzB,CAAA;AAMD,GAAA;;AAEDC,EAAAA,OAAO,GAAS;AAAA,IAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;;AACd,IAAA,IAAA,CAAKhB,UAAL,EAAA,CAAA;AACA,IAAA,IAAI,IAAKA,CAAAA,UAAL,KAAoB,CAAxB,EAA2B,OAAA;AAE3B,IAAA,CAAA,qBAAA,GAAA,IAAA,CAAKM,gBAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;IACA,IAAKA,CAAAA,gBAAL,GAAwBW,SAAxB,CAAA;AAEA,IAAA,CAAA,qBAAA,GAAA,IAAA,CAAKL,iBAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;IACA,IAAKA,CAAAA,iBAAL,GAAyBK,SAAzB,CAAA;AACD,GAAA;;AAIDC,EAAAA,UAAU,CAACC,IAAD,EAAiCC,IAAjC,EAA8D;IACtE,MAAM,CAACC,OAAD,CAAYC,GAAAA,eAAe,CAACH,IAAD,EAAOC,IAAP,CAAjC,CAAA;IACAC,OAAO,CAACE,WAAR,GAAsB,UAAtB,CAAA;AACA,IAAA,OAAO,KAAKhC,UAAL,CAAgBiC,OAAhB,CAAwBH,OAAxB,EAAiCI,MAAxC,CAAA;AACD,GAAA;;EAEDC,UAAU,CAACL,OAAD,EAAoC;AAC5C,IAAA,OAAO,KAAK5B,aAAL,CAAmB+B,OAAnB,CAA2B,EAAE,GAAGH,OAAL;AAAcM,MAAAA,QAAQ,EAAE,IAAA;AAAxB,KAA3B,EAA2DF,MAAlE,CAAA;AACD,GAAA;;AAEDG,EAAAA,YAAY,CACVC,QADU,EAEVR,OAFU,EAGgB;AAAA,IAAA,IAAA,qBAAA,CAAA;;AAC1B,IAAA,OAAA,CAAA,qBAAA,GAAO,IAAK9B,CAAAA,UAAL,CAAgBuC,IAAhB,CAAmCD,QAAnC,EAA6CR,OAA7C,CAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAO,qBAAuDU,CAAAA,KAAvD,CAA6DC,IAApE,CAAA;AACD,GAAA;;AAsCDC,EAAAA,eAAe,CAMbd,IANa,EAYbC,IAZa,EAebc,IAfa,EAgBG;IAChB,MAAMC,aAAa,GAAGC,cAAc,CAACjB,IAAD,EAAOC,IAAP,EAAac,IAAb,CAApC,CAAA;IACA,MAAMG,UAAU,GAAG,IAAKT,CAAAA,YAAL,CAAyBO,aAAa,CAACN,QAAvC,CAAnB,CAAA;AAEA,IAAA,OAAOQ,UAAU,GACbC,OAAO,CAACC,OAAR,CAAgBF,UAAhB,CADa,GAEb,IAAA,CAAKG,UAAL,CAAgBL,aAAhB,CAFJ,CAAA;AAGD,GAAA;;EAQDM,cAAc,CACZC,iBADY,EAE4B;IACxC,OAAO,IAAA,CAAKC,aAAL,EACJnB,CAAAA,OADI,CACIkB,iBADJ,CAAA,CAEJE,GAFI,CAEA,CAAC;MAAEf,QAAF;AAAYE,MAAAA,KAAAA;AAAZ,KAAD,KAAyB;AAC5B,MAAA,MAAMC,IAAI,GAAGD,KAAK,CAACC,IAAnB,CAAA;AACA,MAAA,OAAO,CAACH,QAAD,EAAWG,IAAX,CAAP,CAAA;AACD,KALI,CAAP,CAAA;AAMD,GAAA;;AAEDa,EAAAA,YAAY,CACVhB,QADU,EAEViB,OAFU,EAGVC,OAHU,EAIgB;IAC1B,MAAMC,KAAK,GAAG,IAAKzD,CAAAA,UAAL,CAAgBuC,IAAhB,CAAmCD,QAAnC,CAAd,CAAA;IACA,MAAMoB,QAAQ,GAAGD,KAAH,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGA,KAAK,CAAEjB,KAAP,CAAaC,IAA9B,CAAA;AACA,IAAA,MAAMA,IAAI,GAAGkB,gBAAgB,CAACJ,OAAD,EAAUG,QAAV,CAA7B,CAAA;;AAEA,IAAA,IAAI,OAAOjB,IAAP,KAAgB,WAApB,EAAiC;AAC/B,MAAA,OAAOf,SAAP,CAAA;AACD,KAAA;;AAED,IAAA,MAAMkB,aAAa,GAAGC,cAAc,CAACP,QAAD,CAApC,CAAA;AACA,IAAA,MAAMsB,gBAAgB,GAAG,IAAA,CAAKC,mBAAL,CAAyBjB,aAAzB,CAAzB,CAAA;AACA,IAAA,OAAO,IAAK5C,CAAAA,UAAL,CACJ8D,KADI,CACE,IADF,EACQF,gBADR,CAAA,CAEJG,OAFI,CAEItB,IAFJ,EAEU,EAAE,GAAGe,OAAL;AAAcQ,MAAAA,MAAM,EAAE,IAAA;AAAtB,KAFV,CAAP,CAAA;AAGD,GAAA;;AAcDC,EAAAA,cAAc,CACZd,iBADY,EAEZI,OAFY,EAGZC,OAHY,EAI4B;AACxC,IAAA,OAAOU,aAAa,CAACC,KAAd,CAAoB,MACzB,IAAKf,CAAAA,aAAL,EACGnB,CAAAA,OADH,CACWkB,iBADX,CAEGE,CAAAA,GAFH,CAEO,CAAC;AAAEf,MAAAA,QAAAA;AAAF,KAAD,KAAkB,CACrBA,QADqB,EAErB,KAAKgB,YAAL,CAAgChB,QAAhC,EAA0CiB,OAA1C,EAAmDC,OAAnD,CAFqB,CAFzB,CADK,CAAP,CAAA;AAQD,GAAA;;AAEDY,EAAAA,aAAa,CACX9B,QADW,EAEXR,OAFW,EAGmC;AAAA,IAAA,IAAA,sBAAA,CAAA;;IAC9C,OAAO,CAAA,sBAAA,GAAA,IAAA,CAAK9B,UAAL,CAAgBuC,IAAhB,CAA2CD,QAA3C,EAAqDR,OAArD,CAAP,KAAO,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA+DU,KAAtE,CAAA;AACD,GAAA;;AAID6B,EAAAA,aAAa,CAACzC,IAAD,EAAiCC,IAAjC,EAA4D;IACvE,MAAM,CAACC,OAAD,CAAYC,GAAAA,eAAe,CAACH,IAAD,EAAOC,IAAP,CAAjC,CAAA;IACA,MAAM7B,UAAU,GAAG,IAAA,CAAKA,UAAxB,CAAA;IACAkE,aAAa,CAACC,KAAd,CAAoB,MAAM;MACxBnE,UAAU,CAACiC,OAAX,CAAmBH,OAAnB,EAA4BwC,OAA5B,CAAqCb,KAAD,IAAW;QAC7CzD,UAAU,CAACuE,MAAX,CAAkBd,KAAlB,CAAA,CAAA;OADF,CAAA,CAAA;KADF,CAAA,CAAA;AAKD,GAAA;;AAWDe,EAAAA,YAAY,CACV5C,IADU,EAEVC,IAFU,EAGVc,IAHU,EAIK;AACf,IAAA,MAAM,CAACb,OAAD,EAAU0B,OAAV,CAAqBzB,GAAAA,eAAe,CAACH,IAAD,EAAOC,IAAP,EAAac,IAAb,CAA1C,CAAA;IACA,MAAM3C,UAAU,GAAG,IAAA,CAAKA,UAAxB,CAAA;AAEA,IAAA,MAAMyE,cAAmC,GAAG;AAC1CC,MAAAA,IAAI,EAAE,QADoC;MAE1C,GAAG5C,OAAAA;KAFL,CAAA;AAKA,IAAA,OAAOoC,aAAa,CAACC,KAAd,CAAoB,MAAM;MAC/BnE,UAAU,CAACiC,OAAX,CAAmBH,OAAnB,EAA4BwC,OAA5B,CAAqCb,KAAD,IAAW;AAC7CA,QAAAA,KAAK,CAACkB,KAAN,EAAA,CAAA;OADF,CAAA,CAAA;AAGA,MAAA,OAAO,KAAKC,cAAL,CAAoBH,cAApB,EAAoCjB,OAApC,CAAP,CAAA;AACD,KALM,CAAP,CAAA;AAMD,GAAA;;AAQDqB,EAAAA,aAAa,CACXjD,IADW,EAEXC,IAFW,EAGXc,IAHW,EAII;AACf,IAAA,MAAM,CAACb,OAAD,EAAUgD,aAAa,GAAG,EAA1B,CAAA,GAAgC/C,eAAe,CAACH,IAAD,EAAOC,IAAP,EAAac,IAAb,CAArD,CAAA;;AAEA,IAAA,IAAI,OAAOmC,aAAa,CAACC,MAArB,KAAgC,WAApC,EAAiD;MAC/CD,aAAa,CAACC,MAAd,GAAuB,IAAvB,CAAA;AACD,KAAA;;IAED,MAAMC,QAAQ,GAAGd,aAAa,CAACC,KAAd,CAAoB,MACnC,IAAA,CAAKnE,UAAL,CACGiC,OADH,CACWH,OADX,CAEGuB,CAAAA,GAFH,CAEQI,KAAD,IAAWA,KAAK,CAACwB,MAAN,CAAaH,aAAb,CAFlB,CADe,CAAjB,CAAA;AAMA,IAAA,OAAO/B,OAAO,CAACmC,GAAR,CAAYF,QAAZ,CAAA,CAAsBG,IAAtB,CAA2BC,IAA3B,CAAA,CAAiCC,KAAjC,CAAuCD,IAAvC,CAAP,CAAA;AACD,GAAA;;AAWDE,EAAAA,iBAAiB,CACf1D,IADe,EAEfC,IAFe,EAGfc,IAHe,EAIA;AACf,IAAA,MAAM,CAACb,OAAD,EAAU0B,OAAV,CAAqBzB,GAAAA,eAAe,CAACH,IAAD,EAAOC,IAAP,EAAac,IAAb,CAA1C,CAAA;AAEA,IAAA,OAAOuB,aAAa,CAACC,KAAd,CAAoB,MAAM;AAAA,MAAA,IAAA,IAAA,EAAA,oBAAA,CAAA;;MAC/B,IAAKnE,CAAAA,UAAL,CAAgBiC,OAAhB,CAAwBH,OAAxB,CAAiCwC,CAAAA,OAAjC,CAA0Cb,KAAD,IAAW;AAClDA,QAAAA,KAAK,CAAC8B,UAAN,EAAA,CAAA;OADF,CAAA,CAAA;;AAIA,MAAA,IAAIzD,OAAO,CAAC0D,WAAR,KAAwB,MAA5B,EAAoC;QAClC,OAAOzC,OAAO,CAACC,OAAR,EAAP,CAAA;AACD,OAAA;;AACD,MAAA,MAAMyB,cAAmC,GAAG,EAC1C,GAAG3C,OADuC;QAE1C4C,IAAI,EAAA,CAAA,IAAA,GAAA,CAAA,oBAAA,GAAE5C,OAAO,CAAC0D,WAAV,mCAAyB1D,OAAO,CAAC4C,IAAjC,KAAyC,IAAA,GAAA,IAAA,GAAA,QAAA;OAF/C,CAAA;AAIA,MAAA,OAAO,KAAKE,cAAL,CAAoBH,cAApB,EAAoCjB,OAApC,CAAP,CAAA;AACD,KAbM,CAAP,CAAA;AAcD,GAAA;;AAWDoB,EAAAA,cAAc,CACZhD,IADY,EAEZC,IAFY,EAGZc,IAHY,EAIG;AACf,IAAA,MAAM,CAACb,OAAD,EAAU0B,OAAV,CAAqBzB,GAAAA,eAAe,CAACH,IAAD,EAAOC,IAAP,EAAac,IAAb,CAA1C,CAAA;IAEA,MAAMqC,QAAQ,GAAGd,aAAa,CAACC,KAAd,CAAoB,MACnC,IAAKnE,CAAAA,UAAL,CACGiC,OADH,CACWH,OADX,EAEG2D,MAFH,CAEWhC,KAAD,IAAW,CAACA,KAAK,CAACiC,UAAN,EAFtB,CAAA,CAGGrC,GAHH,CAGQI,KAAD,IAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;MAAA,OACHA,KAAK,CAACkC,KAAN,CAAYjE,SAAZ,EAAuB,EACrB,GAAG8B,OADkB;AAErBoC,QAAAA,aAAa,2BAAEpC,OAAF,IAAA,IAAA,GAAA,KAAA,CAAA,GAAEA,OAAO,CAAEoC,aAAX,oCAA4B,IAFpB;AAGrBC,QAAAA,IAAI,EAAE;UAAEC,WAAW,EAAEhE,OAAO,CAACgE,WAAAA;AAAvB,SAAA;AAHe,OAAvB,CADG,CAAA;AAAA,KAHP,CADe,CAAjB,CAAA;IAaA,IAAIC,OAAO,GAAGhD,OAAO,CAACmC,GAAR,CAAYF,QAAZ,CAAsBG,CAAAA,IAAtB,CAA2BC,IAA3B,CAAd,CAAA;;AAEA,IAAA,IAAI,EAAC5B,OAAD,IAAA,IAAA,IAACA,OAAO,CAAEwC,YAAV,CAAJ,EAA4B;AAC1BD,MAAAA,OAAO,GAAGA,OAAO,CAACV,KAAR,CAAcD,IAAd,CAAV,CAAA;AACD,KAAA;;AAED,IAAA,OAAOW,OAAP,CAAA;AACD,GAAA;;AA6BD9C,EAAAA,UAAU,CAMRrB,IANQ,EAORC,IAPQ,EAURc,IAVQ,EAWQ;IAChB,MAAMC,aAAa,GAAGC,cAAc,CAACjB,IAAD,EAAOC,IAAP,EAAac,IAAb,CAApC,CAAA;IACA,MAAMiB,gBAAgB,GAAG,IAAKC,CAAAA,mBAAL,CAAyBjB,aAAzB,CAAzB,CAFgB;;AAKhB,IAAA,IAAI,OAAOgB,gBAAgB,CAACqC,KAAxB,KAAkC,WAAtC,EAAmD;MACjDrC,gBAAgB,CAACqC,KAAjB,GAAyB,KAAzB,CAAA;AACD,KAAA;;IAED,MAAMxC,KAAK,GAAG,IAAA,CAAKzD,UAAL,CAAgB8D,KAAhB,CAAsB,IAAtB,EAA4BF,gBAA5B,CAAd,CAAA;IAEA,OAAOH,KAAK,CAACyC,aAAN,CAAoBtC,gBAAgB,CAACuC,SAArC,CAAA,GACH1C,KAAK,CAACkC,KAAN,CAAY/B,gBAAZ,CADG,GAEHb,OAAO,CAACC,OAAR,CAAgBS,KAAK,CAACjB,KAAN,CAAYC,IAA5B,CAFJ,CAAA;AAGD,GAAA;;AA6BD2D,EAAAA,aAAa,CAMXxE,IANW,EAOXC,IAPW,EAUXc,IAVW,EAWI;AACf,IAAA,OAAO,KAAKM,UAAL,CAAgBrB,IAAhB,EAA6BC,IAA7B,EAA0Cc,IAA1C,CACJwC,CAAAA,IADI,CACCC,IADD,CAAA,CAEJC,KAFI,CAEED,IAFF,CAAP,CAAA;AAGD,GAAA;;AA6BDiB,EAAAA,kBAAkB,CAMhBzE,IANgB,EAShBC,IATgB,EAYhBc,IAZgB,EAac;IAC9B,MAAMC,aAAa,GAAGC,cAAc,CAACjB,IAAD,EAAOC,IAAP,EAAac,IAAb,CAApC,CAAA;AACAC,IAAAA,aAAa,CAAC0D,QAAd,GAAyBC,qBAAqB,EAA9C,CAAA;AAKA,IAAA,OAAO,IAAKtD,CAAAA,UAAL,CAAgBL,aAAhB,CAAP,CAAA;AACD,GAAA;;AA6BD4D,EAAAA,qBAAqB,CAMnB5E,IANmB,EASnBC,IATmB,EAYnBc,IAZmB,EAaJ;AACf,IAAA,OAAO,KAAK0D,kBAAL,CAAwBzE,IAAxB,EAAqCC,IAArC,EAAkDc,IAAlD,CACJwC,CAAAA,IADI,CACCC,IADD,CAAA,CAEJC,KAFI,CAEED,IAFF,CAAP,CAAA;AAGD,GAAA;;AAEDjE,EAAAA,qBAAqB,GAAqB;AACxC,IAAA,OAAO,IAAKjB,CAAAA,aAAL,CAAmBiB,qBAAnB,EAAP,CAAA;AACD,GAAA;;AAEDiC,EAAAA,aAAa,GAAe;AAC1B,IAAA,OAAO,KAAKpD,UAAZ,CAAA;AACD,GAAA;;AAEDyG,EAAAA,gBAAgB,GAAkB;AAChC,IAAA,OAAO,KAAKvG,aAAZ,CAAA;AACD,GAAA;;AAEDwG,EAAAA,SAAS,GAAW;AAClB,IAAA,OAAO,KAAKtG,MAAZ,CAAA;AACD,GAAA;;AAEDuG,EAAAA,iBAAiB,GAAmB;AAClC,IAAA,OAAO,KAAKrG,cAAZ,CAAA;AACD,GAAA;;EAEDsG,iBAAiB,CAACpD,OAAD,EAAgC;IAC/C,IAAKlD,CAAAA,cAAL,GAAsBkD,OAAtB,CAAA;AACD,GAAA;;AAEDqD,EAAAA,gBAAgB,CACdvE,QADc,EAEdkB,OAFc,EAGR;IACN,MAAMsD,MAAM,GAAG,IAAKvG,CAAAA,aAAL,CAAmBgC,IAAnB,CACZwE,CAAD,IAAOC,YAAY,CAAC1E,QAAD,CAAZ,KAA2B0E,YAAY,CAACD,CAAC,CAACzE,QAAH,CADjC,CAAf,CAAA;;AAGA,IAAA,IAAIwE,MAAJ,EAAY;MACVA,MAAM,CAACxG,cAAP,GAAwBkD,OAAxB,CAAA;AACD,KAFD,MAEO;MACL,IAAKjD,CAAAA,aAAL,CAAmB0G,IAAnB,CAAwB;QAAE3E,QAAF;AAAYhC,QAAAA,cAAc,EAAEkD,OAAAA;OAApD,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAED0D,gBAAgB,CACd5E,QADc,EAE6C;IAC3D,IAAI,CAACA,QAAL,EAAe;AACb,MAAA,OAAOZ,SAAP,CAAA;AACD,KAH0D;;;AAM3D,IAAA,MAAMyF,qBAAqB,GAAG,IAAA,CAAK5G,aAAL,CAAmBgC,IAAnB,CAAyBwE,CAAD,IACpDK,eAAe,CAAC9E,QAAD,EAAWyE,CAAC,CAACzE,QAAb,CADa,CAA9B,CAN2D;;AAW3D,IAAA,IAAI5B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;AACA,MAAA,MAAMyG,gBAAgB,GAAG,IAAA,CAAK9G,aAAL,CAAmBkF,MAAnB,CAA2BsB,CAAD,IACjDK,eAAe,CAAC9E,QAAD,EAAWyE,CAAC,CAACzE,QAAb,CADQ,CAAzB,CAFyC;;AAMzC,MAAA,IAAI+E,gBAAgB,CAACnF,MAAjB,GAA0B,CAA9B,EAAiC;QAC/B,IAAK9B,CAAAA,MAAL,CAAYS,KAAZ,CAAA,uDAAA,GAC0DyG,IAAI,CAACC,SAAL,CACtDjF,QADsD,CAD1D,GAAA,gNAAA,CAAA,CAAA;AAKD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO6E,qBAAP,IAAA,IAAA,GAAA,KAAA,CAAA,GAAOA,qBAAqB,CAAE7G,cAA9B,CAAA;AACD,GAAA;;AAEDkH,EAAAA,mBAAmB,CACjBC,WADiB,EAEjBjE,OAFiB,EAGX;IACN,MAAMsD,MAAM,GAAG,IAAKtG,CAAAA,gBAAL,CAAsB+B,IAAtB,CACZwE,CAAD,IAAOC,YAAY,CAACS,WAAD,CAAZ,KAA8BT,YAAY,CAACD,CAAC,CAACU,WAAH,CADpC,CAAf,CAAA;;AAGA,IAAA,IAAIX,MAAJ,EAAY;MACVA,MAAM,CAACxG,cAAP,GAAwBkD,OAAxB,CAAA;AACD,KAFD,MAEO;MACL,IAAKhD,CAAAA,gBAAL,CAAsByG,IAAtB,CAA2B;QAAEQ,WAAF;AAAenH,QAAAA,cAAc,EAAEkD,OAAAA;OAA1D,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAEDkE,mBAAmB,CACjBD,WADiB,EAEwC;IACzD,IAAI,CAACA,WAAL,EAAkB;AAChB,MAAA,OAAO/F,SAAP,CAAA;AACD,KAHwD;;;AAMzD,IAAA,MAAMyF,qBAAqB,GAAG,IAAA,CAAK3G,gBAAL,CAAsB+B,IAAtB,CAA4BwE,CAAD,IACvDK,eAAe,CAACK,WAAD,EAAcV,CAAC,CAACU,WAAhB,CADa,CAA9B,CANyD;;AAWzD,IAAA,IAAI/G,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;AACA,MAAA,MAAMyG,gBAAgB,GAAG,IAAA,CAAK7G,gBAAL,CAAsBiF,MAAtB,CAA8BsB,CAAD,IACpDK,eAAe,CAACK,WAAD,EAAcV,CAAC,CAACU,WAAhB,CADQ,CAAzB,CAFyC;;AAMzC,MAAA,IAAIJ,gBAAgB,CAACnF,MAAjB,GAA0B,CAA9B,EAAiC;QAC/B,IAAK9B,CAAAA,MAAL,CAAYS,KAAZ,CAAA,0DAAA,GAC6DyG,IAAI,CAACC,SAAL,CACzDE,WADyD,CAD7D,GAAA,yNAAA,CAAA,CAAA;AAKD,OAAA;AACF,KAAA;;AAED,IAAA,OAAON,qBAAP,IAAA,IAAA,GAAA,KAAA,CAAA,GAAOA,qBAAqB,CAAE7G,cAA9B,CAAA;AACD,GAAA;;EAEDuD,mBAAmB,CAOjBL,OAPiB,EAsBjB;AACA,IAAA,IAAIA,OAAJ,IAAA,IAAA,IAAIA,OAAO,CAAEmE,UAAb,EAAyB;AACvB,MAAA,OAAOnE,OAAP,CAAA;AAOD,KAAA;;AAED,IAAA,MAAMI,gBAAgB,GAAG,EACvB,GAAG,IAAKtD,CAAAA,cAAL,CAAoBsH,OADA;MAEvB,GAAG,IAAA,CAAKV,gBAAL,CAAsB1D,OAAtB,oBAAsBA,OAAO,CAAElB,QAA/B,CAFoB;AAGvB,MAAA,GAAGkB,OAHoB;AAIvBmE,MAAAA,UAAU,EAAE,IAAA;KAJd,CAAA;;IAOA,IAAI,CAAC/D,gBAAgB,CAACiE,SAAlB,IAA+BjE,gBAAgB,CAACtB,QAApD,EAA8D;MAC5DsB,gBAAgB,CAACiE,SAAjB,GAA6BC,qBAAqB,CAChDlE,gBAAgB,CAACtB,QAD+B,EAEhDsB,gBAFgD,CAAlD,CAAA;AAID,KAvBD;;;AA0BA,IAAA,IAAI,OAAOA,gBAAgB,CAACmE,kBAAxB,KAA+C,WAAnD,EAAgE;AAC9DnE,MAAAA,gBAAgB,CAACmE,kBAAjB,GACEnE,gBAAgB,CAACoE,WAAjB,KAAiC,QADnC,CAAA;AAED,KAAA;;AACD,IAAA,IAAI,OAAOpE,gBAAgB,CAACqE,gBAAxB,KAA6C,WAAjD,EAA8D;AAC5DrE,MAAAA,gBAAgB,CAACqE,gBAAjB,GAAoC,CAAC,CAACrE,gBAAgB,CAACsE,QAAvD,CAAA;AACD,KAAA;;AAED,IAAA,OAAOtE,gBAAP,CAAA;AAOD,GAAA;;EAEDuE,sBAAsB,CACpB3E,OADoB,EAEjB;AACH,IAAA,IAAIA,OAAJ,IAAA,IAAA,IAAIA,OAAO,CAAEmE,UAAb,EAAyB;AACvB,MAAA,OAAOnE,OAAP,CAAA;AACD,KAAA;;AACD,IAAA,OAAO,EACL,GAAG,IAAKlD,CAAAA,cAAL,CAAoB8H,SADlB;MAEL,GAAG,IAAA,CAAKV,mBAAL,CAAyBlE,OAAzB,oBAAyBA,OAAO,CAAEiE,WAAlC,CAFE;AAGL,MAAA,GAAGjE,OAHE;AAILmE,MAAAA,UAAU,EAAE,IAAA;KAJd,CAAA;AAMD,GAAA;;AAEDU,EAAAA,KAAK,GAAS;IACZ,IAAKrI,CAAAA,UAAL,CAAgBqI,KAAhB,EAAA,CAAA;IACA,IAAKnI,CAAAA,aAAL,CAAmBmI,KAAnB,EAAA,CAAA;AACD,GAAA;;AA/tBsB;;;;"}
|